Commit ac832c1d authored by suhuiguang's avatar suhuiguang

1.问题生产增加充装检查不合格

parent ea0c8eb4
package com.yeejoin.amos.boot.module.cylinder.flc.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
......@@ -78,5 +78,19 @@ public class CylinderFillingRecordDto extends BaseDto {
@ApiModelProperty(value = "充装信息审核ID")
private String fillingExamineId;
@ApiModelProperty(value = "单位下气瓶唯一标识")
private String sequenceCode;
@ApiModelProperty(value = "地区信息")
private String regionCode;
@ApiModelProperty(value = "充装单位名称")
private String fillingUnitName;
@ApiModelProperty(value = "充装前检查结果")
private String fillingResult;
@ApiModelProperty(value = "充装后检查结果")
private String checkResult;
}
package com.yeejoin.amos.boot.module.cylinder.biz.event;
import com.yeejoin.amos.boot.module.cylinder.api.dto.CylinderQuestionInfoDto;
import lombok.Getter;
import org.springframework.context.ApplicationEvent;
/**
* @author Administrator
*/
@Getter
public class CylinderQuestionCreateEvent extends ApplicationEvent {
private CylinderQuestionInfoDto cylinderQuestionInfoDto;
/**
* Create a new {@code ApplicationEvent}.
*
* @param source the object on which the event initially occurred or with
* which the event is associated (never {@code null})
*/
public CylinderQuestionCreateEvent(Object source, CylinderQuestionInfoDto cylinderQuestionInfoDto) {
super(source);
this.cylinderQuestionInfoDto = cylinderQuestionInfoDto;
}
}
package com.yeejoin.amos.boot.module.cylinder.biz.event.listener;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.module.cylinder.api.dto.CylinderQuestionInfoDto;
import com.yeejoin.amos.boot.module.cylinder.api.entity.CylinderQuestionInfo;
import com.yeejoin.amos.boot.module.cylinder.biz.event.CylinderQuestionCreateEvent;
import com.yeejoin.amos.boot.module.cylinder.biz.service.impl.CylinderQuestionInfoServiceImpl;
import com.yeejoin.amos.boot.module.cylinder.flc.api.entity.CylinderInfo;
import com.yeejoin.amos.boot.module.cylinder.flc.biz.service.impl.CylinderInfoServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.*;
import java.util.concurrent.locks.ReentrantLock;
import java.util.stream.Collectors;
/**
* @author Administrator
*/
@Component
@Slf4j
public class CylinderQuestionCreateEventListener implements ApplicationListener<CylinderQuestionCreateEvent> {
@Value("${cylinder.question.create.thread.number:3}")
private int threadNumber;
private CylinderInfoServiceImpl cylinderInfoService;
private CylinderQuestionInfoServiceImpl cylinderQuestionInfoService;
private Sequence sequence;
public CylinderQuestionCreateEventListener(CylinderInfoServiceImpl cylinderInfoService,
CylinderQuestionInfoServiceImpl cylinderQuestionInfoService,
Sequence sequence) {
this.cylinderInfoService = cylinderInfoService;
this.cylinderQuestionInfoService = cylinderQuestionInfoService;
this.sequence = sequence;
}
private Map<String, CylinderInfo> sequenceCodeAppIdCylinderInfoMap = new ConcurrentHashMap<>();
/**
* 批量入库大小
*/
private int batchSize = 10;
private List<BlockingQueue<CylinderQuestionInfoDto>> hashCodeBlockingQueues = new ArrayList<>();
private ReentrantLock reentrantLock = new ReentrantLock();
@Override
public void onApplicationEvent(CylinderQuestionCreateEvent event) {
// 按照一定的规则将不同的问题对象放到不同的队列里,保证多线程不会同时操作不同的问题对象数据,减少了线程的冲突,提高执行效率
int queueIndex = Math.abs(event.getCylinderQuestionInfoDto().getQuestionObjectId().hashCode()) % threadNumber;
hashCodeBlockingQueues.get(queueIndex).add(event.getCylinderQuestionInfoDto());
}
@PostConstruct
public void initCustomThread() {
// 初始化队列,按照线程数动态创建队列
initQueue();
// 多线程执行消费队列入库
ExecutorService executorService = Executors.newFixedThreadPool(threadNumber);
for (int i = 0; i < threadNumber; i++) {
BlockingQueue<CylinderQuestionInfoDto> queue = hashCodeBlockingQueues.get(i);
executorService.execute(() -> {
while (true) {
try {
CylinderQuestionInfoDto questionInfoDto = queue.take();
List<CylinderQuestionInfoDto> waitSaveData = new ArrayList<>();
waitSaveData.add(questionInfoDto);
try {
reentrantLock.lock();
if (queue.size() > batchSize) {
queue.drainTo(waitSaveData, batchSize);
}
} finally {
reentrantLock.unlock();
}
this.save2DbBatch(waitSaveData);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
});
}
}
private void initQueue() {
for (int i = 0; i < threadNumber; i++) {
hashCodeBlockingQueues.add(new LinkedBlockingQueue<>());
}
}
private void save2DbBatch(List<CylinderQuestionInfoDto> questionInfos) {
List<CylinderQuestionInfo> cylinderQuestionInfos = questionInfos.stream().map(q -> {
CylinderQuestionInfo cylinderQuestionInfo = new CylinderQuestionInfo();
BeanUtil.copyProperties(q, cylinderQuestionInfo);
cylinderQuestionInfo.setSequenceNbr(sequence.nextId());
// 将sequenceCode换成sequenceNbr
cylinderQuestionInfo.setQuestionObjectId(this.castSeqCode2SeqNo(q.getQuestionObjectId(), q.getQuestionAttributionId()));
cylinderQuestionInfo.setQuestionObjectName(this.getQuestionObjectName(q.getQuestionObjectId(), q.getQuestionAttributionId()));
cylinderQuestionInfo.setRecDate(new Date());
return cylinderQuestionInfo;
}).collect(Collectors.toList());
cylinderQuestionInfoService.saveBatch(cylinderQuestionInfos);
}
private String getQuestionObjectName(String sequenceCode, String appId) {
String uniKey = getUniKey(appId, sequenceCode);
if (sequenceCodeAppIdCylinderInfoMap.get(uniKey) != null) {
return sequenceCodeAppIdCylinderInfoMap.get(uniKey).getFactoryNum() + "";
}
return "";
}
private String castSeqCode2SeqNo(String sequenceCode, String appId) {
String uniKey = getUniKey(appId, sequenceCode);
if (sequenceCodeAppIdCylinderInfoMap.get(uniKey) != null) {
return sequenceCodeAppIdCylinderInfoMap.get(uniKey).getSequenceNbr() + "";
}
synchronized (this) {
if (sequenceCodeAppIdCylinderInfoMap.get(uniKey) != null) {
return sequenceCodeAppIdCylinderInfoMap.get(uniKey).getSequenceNbr() + "";
}
CylinderInfo cylinderInfo = cylinderInfoService.getBaseMapper().selectOne(new LambdaQueryWrapper<CylinderInfo>()
.eq(CylinderInfo::getSequenceCode, sequenceCode)
.select(BaseEntity::getSequenceNbr, CylinderInfo::getAppId, CylinderInfo::getUnitName, CylinderInfo::getFactoryNum));
sequenceCodeAppIdCylinderInfoMap.put(uniKey, cylinderInfo);
}
return sequenceCodeAppIdCylinderInfoMap.get(uniKey).getSequenceNbr() + "";
}
private String getUniKey(String appId, String sequenceCode) {
return String.format("%s:%s", appId, sequenceCode);
}
}
package com.yeejoin.amos.boot.module.cylinder.biz.event.publisher;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
/**
* @author Administrator
*/
@Component
public class EventPublisher {
private ApplicationEventPublisher publisher;
public EventPublisher(ApplicationEventPublisher publisher) {
this.publisher = publisher;
}
@Async
public void publish(ApplicationEvent event) {
publisher.publishEvent(event);
}
}
\ No newline at end of file
//package com.yeejoin.amos.boot.module.cylinder.biz.listener;
//
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.Collection;
//import java.util.Collections;
//import java.util.HashMap;
//import java.util.HashSet;
//import java.util.List;
//import java.util.Map;
//import java.util.Set;
//import java.util.stream.Collectors;
//
//import com.yeejoin.amos.boot.module.cylinder.biz.utils.DesUtil;
//import com.yeejoin.amos.boot.module.cylinder.biz.utils.RedisUtil;
//import org.eclipse.paho.client.mqttv3.MqttMessage;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Component;
//import org.typroject.tyboot.component.emq.EmqxListener;
//import org.typroject.tyboot.core.foundation.context.RequestContext;
//
//import com.alibaba.fastjson.JSONObject;
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
//import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
//import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
//import com.yeejoin.amos.component.feign.model.FeignClientResult;
//import com.yeejoin.amos.feign.privilege.Privilege;
//import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
//import com.yeejoin.amos.feign.privilege.model.ApplicationModel;
//import com.yeejoin.amos.feign.privilege.model.CompanyModel;
//import com.yeejoin.amos.feign.privilege.model.RoleModel;
//
//import lombok.extern.slf4j.Slf4j;
//
///**
// * @Description: mqtt监听服务
// * @Author: duanwei
// * @Date: 2020/9/15
// */
//@Component
//@Slf4j
//public class BaseEnterpriseMqTtlListener extends EmqxListener {
// @Value("${amos.secret.key}")
// String secretKey;
//
// @Value("${amos.system.user.product:AMOS_STUDIO_WEB}")
// String product;
//
// @Value("${amos.system.user.app-key:AMOS_STUDIO}")
// String appkey;
// @Autowired
// RedisUtil redisUtil;
//
// @Autowired
// DataDictionaryServiceImpl iDataDictionaryService;
//
// @Value("${org.filter.group.seq}")
// private Long groupSeq;
//
// @Override
// public void processMessage(String topic, MqttMessage message) throws Exception {
// System.out.println(message);
// JSONObject object = null;
// try {
// object = JSONObject.parseObject(message.toString());
// } catch (Exception e) {
// throw new Exception("公司同步消息解析失败");
// }
// RequestContext.setAppKey(appkey);
// RequestContext.setProduct(product);
// RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
// FeignClientResult<List<ApplicationModel>> aResult = Privilege.applicationClient.queryAgencyApplications();
// List<ApplicationModel> aList = aResult.getResult();
//// List<String> appCodes = aList.stream().filter(i -> "监管端,企业端".indexOf(i.getAppName()) != -1)
//// .map(i -> i.getAppCode()).collect(Collectors.toList());
// FeignClientResult<CompanyModel> cResult = Privilege.companyClient.seleteOne(object.getLong("sequence_nbr"));
// // FeignClientResult<Collection<CompanyModel>> cResult =
// // Privilege.companyClient.queryAgencyTree(null);
// String useCode = object.getString("use_code");
// // if (useCode == null || !isUse(useCode, cResult.getResult())) {
// if (cResult.getResult() == null) {
// CompanyModel companyModel = new CompanyModel();
// companyModel.setCompanyName(object.getString("use_unit"));
// companyModel.setParentId(0L);
// companyModel.setLevel("company");
// String unitTypes = object.getString("unit_type");
// companyModel.setCompanyType(unitTypes);
// // companyModel.setSequenceNbr(object.getLong("sequence_nbr"));
// companyModel.setCompanyCode(useCode);
// if (object.getString("supervise_org_code") != null) {
// FeignClientResult<HashMap<String, Object>> result = Privilege.companyClient
// .queryByOrgcode(object.getString("supervise_org_code"));
// // JSONObject parent =
// // JSONObject.parseObject(JSONObject.toJSONString(result.getResult()));
// if (result.getResult().get("sequenceNbr") != null) {
// companyModel.setParentId(Long.valueOf(result.getResult().get("sequenceNbr").toString()));
// }
// }
// FeignClientResult<CompanyModel> createResult = Privilege.companyClient.create(companyModel);
// Long companySqr = createResult.getResult().getSequenceNbr();
// String unitCode = object.getString("use_code");
// if (unitCode == null || unitCode.length() < 6) {
// log.error("公司统一信用代码长度不够6位");
// throw new Exception("公司统一信用代码长度不够6位");
// }
// String userName = unitCode.substring(unitCode.length() - 6, unitCode.length());
// FeignClientResult<AgencyUserModel> uResult = Privilege.agencyUserClient.queryByUserName(userName);
// if (uResult.getResult() == null) {
// FeignClientResult<List<RoleModel>> roleListResult = Privilege.roleClient.queryRoleList(null, null);
// List<RoleModel> allRoleList = roleListResult.getResult();
// AgencyUserModel userModel = new AgencyUserModel();
// userModel.setUserName(userName);
// userModel.setRealName(userName);
// userModel.setPassword(DesUtil.encode(userName, secretKey));
// userModel.setRePassword(DesUtil.encode(userName, secretKey));
// // userModel.setMobile(vo.getPhoneNo());
// userModel.setLockStatus("UNLOCK");
// // FeignClientResult<List<RoleModel>> list =
// // Privilege.roleClient.queryRoleList("使用单位", "admin");
// String[] unitTypeArray = unitTypes.split(",");
// List<String> unitTypeList = Arrays.asList(unitTypeArray);
// Set<String> roleNameSet = new HashSet<>();
// Set<String> appCodesSet = new HashSet<>();
// List<RoleModel> userRoleList = new ArrayList<>();
// List<Long> roleIds = new ArrayList<>();
// Map<Long, List<Long>> roleSeqMap = new HashMap<>();
// for (String unitTypeStr : unitTypeList) {
// DataDictionary unitType = iDataDictionaryService
// .getOne(new LambdaQueryWrapper<DataDictionary>().eq(DataDictionary::getName, unitTypeStr));
// String appCode = unitType.getTypeDesc() != null ? unitType.getTypeDesc() : "";
// String[] appCodes = appCode.split(",");
// Collections.addAll(appCodesSet, appCodes);
// roleNameSet.add(unitType.getName());
// userRoleList = allRoleList.stream().filter(r -> r.getRoleName().equals(unitType.getName()))
// .collect(Collectors.toList());
// for (RoleModel r : userRoleList) {
// if (!roleIds.contains(r.getSequenceNbr())) {
// roleIds.add(r.getSequenceNbr());
// }
// }
// roleSeqMap.put(companySqr, roleIds);
// }
// userModel.setAppCodes(new ArrayList<>(appCodesSet));
// userModel.setOrgRoleSeqs(roleSeqMap);
// FeignClientResult<AgencyUserModel> userResult = Privilege.agencyUserClient.create(userModel);
// String[] userIds = { userResult.getResult().getUserId() };
//// if (groupSeq != null) {
//// Privilege.groupUserClient.create(groupSeq, Arrays.asList(userIds));
//// }
// }
// }
// }
//
// private boolean isUse(String useCode, Collection<CompanyModel> companys) {
// for (Object obj : companys) {
// String json = JSONObject.toJSONString(obj);
// CompanyModel companyMode = JSONObject.toJavaObject(JSONObject.parseObject(json), CompanyModel.class);
// if (useCode.equals(companyMode.getCompanyCode())) {
// return true;
// } else if (companyMode.getChildren() != null) {
// return isUse(useCode, companyMode.getChildren());
// }
// }
// return false;
// }
//}
//package com.yeejoin.amos.boot.module.cylinder.biz.listener;
//
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//import java.util.stream.Collectors;
//
//import com.yeejoin.amos.boot.module.cylinder.biz.utils.DesUtil;
//import com.yeejoin.amos.boot.module.cylinder.biz.utils.RedisUtil;
//import org.eclipse.paho.client.mqttv3.MqttMessage;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Component;
//import org.typroject.tyboot.component.emq.EmqxListener;
//import org.typroject.tyboot.core.foundation.context.RequestContext;
//
//import com.alibaba.fastjson.JSONObject;
//import com.yeejoin.amos.component.feign.model.FeignClientResult;
//import com.yeejoin.amos.feign.privilege.Privilege;
//import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
//import com.yeejoin.amos.feign.privilege.model.ApplicationModel;
//import com.yeejoin.amos.feign.privilege.model.CompanyModel;
//import com.yeejoin.amos.feign.privilege.model.RoleModel;
//
//import lombok.extern.slf4j.Slf4j;
//
///**
// * @Description: mqtt监听服务
// * @Author: duanwei
// * @Date: 2020/9/15
// */
//@Component
//@Slf4j
//public class CarcylUnitInspectMqTtlListener extends EmqxListener {
// @Value("${amos.secret.key}")
// String secretKey;
//
// @Value("${amos.system.user.product:AMOS_STUDIO_WEB}")
// String product;
//
// @Value("${amos.system.user.app-key:AMOS_STUDIO}")
// String appkey;
// @Autowired
// RedisUtil redisUtil;
//
// @Value("${org.filter.group.seq}")
// private Long groupSeq;
//
// @Override
// public void processMessage(String topic, MqttMessage message) throws Exception {
// System.out.println(message);
// JSONObject object = null;
// try {
// object = JSONObject.parseObject(message.toString());
// } catch (Exception e) {
// throw new Exception("公司同步消息解析失败");
// }
// RequestContext.setAppKey(appkey);
// RequestContext.setProduct(product);
// RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
// FeignClientResult<List<ApplicationModel>> aResult = Privilege.applicationClient.queryAgencyApplications();
// List<ApplicationModel> aList = aResult.getResult();
// List<String> appCodes = aList.stream().filter(i -> "监管端,企业端".indexOf(i.getAppName()) != -1)
// .map(i -> i.getAppCode()).collect(Collectors.toList());
// String uuid = object.getString("id");
// Long id = Long.valueOf(uuid.replaceAll("-","").hashCode());
//
// FeignClientResult<CompanyModel> cResult = Privilege.companyClient.seleteOne(id);
// if (cResult.getResult() == null) {
// CompanyModel companyModel = new CompanyModel();
// companyModel.setCompanyName(object.getString("inspect_unit_name"));
// companyModel.setParentId(0L);
// companyModel.setLevel("company");
// companyModel.setSequenceNbr(id);
// companyModel.setCompanyCode(object.getString("org_unit_name"));
// companyModel.setCompanyType("检验单位");
// Privilege.companyClient.create(companyModel);
// }
//
// String unitCode = object.getString("org_unit_name");
// if (unitCode == null || unitCode.length() < 6) {
// log.error("公司统一信用代码长度不够6位");
// throw new Exception("公司统一信用代码长度不够6位");
// }
// String userName = unitCode.substring(unitCode.length() - 6, unitCode.length());
// FeignClientResult<AgencyUserModel> uResult = Privilege.agencyUserClient.queryByUserName(userName);
// if (uResult.getResult() == null) {
// AgencyUserModel userModel = new AgencyUserModel();
// userModel.setUserName(userName);
// userModel.setRealName(userName);
// userModel.setPassword(DesUtil.encode(userName, secretKey));
// userModel.setRePassword(DesUtil.encode(userName, secretKey));
// // userModel.setMobile(vo.getPhoneNo());
// userModel.setLockStatus("UNLOCK");
// FeignClientResult<List<RoleModel>> list = Privilege.roleClient.queryRoleList("检验单位", "admin");
// Map<Long, List<Long>> orgRoles = new HashMap<>();
// List<Long> roleIds = new ArrayList<>();
// roleIds.add(list.getResult().get(0).getSequenceNbr());
// orgRoles.put(id, roleIds);
// userModel.setAppCodes(appCodes);
// userModel.setOrgRoleSeqs(orgRoles);
// FeignClientResult<AgencyUserModel> userResult =Privilege.agencyUserClient.create(userModel);
// String[] userIds = {userResult.getResult().getUserId()};
//// if (groupSeq != null) {
//// Privilege.groupUserClient.create(groupSeq, Arrays.asList(userIds));
//// }
// }
// }
//}
package com.yeejoin.amos.boot.module.cylinder.biz.listener;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.cylinder.api.dto.CylinderQuestionInfoDto;
import com.yeejoin.amos.boot.module.cylinder.api.enums.QuestionTypeEnum;
import com.yeejoin.amos.boot.module.cylinder.biz.event.CylinderQuestionCreateEvent;
import com.yeejoin.amos.boot.module.cylinder.biz.event.publisher.EventPublisher;
import com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderFillingRecordDto;
import com.yeejoin.amos.boot.module.cylinder.flc.api.enums.CyclinderStatus;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.component.emq.EmqxListener;
import javax.annotation.PostConstruct;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
/**
* @author Administrator
*/
@Component
@Slf4j
public class CylinderFillingInsertEventListener extends EmqxListener {
@Value("${cylinder.filling.insert.msg.custom.thread.number:3}")
private int threadNumber;
@Value("${cylinder.filling.insert.topic:cylinder/filling/insert/topic}")
private String insertTopic;
@Value("${spring.application.name:TZS-CYLINDER}")
private String applicationName;
private EventPublisher eventPublisher;
private EmqKeeper emqKeeper;
private BlockingQueue<CylinderFillingRecordDto> blockingQueue = new LinkedBlockingQueue<>();
public CylinderFillingInsertEventListener(EventPublisher eventPublisher,
EmqKeeper emqKeeper) {
this.eventPublisher = eventPublisher;
this.emqKeeper = emqKeeper;
}
@PostConstruct
public void init() throws Exception {
emqKeeper.subscript(this.getShareTopic(), 2, this);
consumeTheQueue();
}
private void consumeTheQueue() {
ExecutorService executorService = Executors.newFixedThreadPool(threadNumber);
for (int i = 0; i < threadNumber; i++) {
executorService.execute(() -> {
while (true) {
try {
CylinderFillingRecordDto cylinderFillingRecordDto = blockingQueue.take();
this.createCylinderFillingQuestion(cylinderFillingRecordDto);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
});
}
}
private String getShareTopic() {
return String.format("%s/%s/%s", "$share", applicationName, insertTopic);
}
private void createCylinderFillingQuestion(CylinderFillingRecordDto cylinderFillingRecordDto) {
if (CyclinderStatus.HEGE.getName().equals(cylinderFillingRecordDto.getFillingResult()) && CyclinderStatus.HEGE.getName().equals(cylinderFillingRecordDto.getCheckResult())) {
log.info("气瓶充装信息前后全部合格,不创建问题!");
} else {
CylinderQuestionInfoDto questionInfo = new CylinderQuestionInfoDto();
questionInfo.setQuestionType(QuestionTypeEnum.CZJCBHG.getCode());
questionInfo.setQuestionTypeName(QuestionTypeEnum.CZJCBHG.getName());
questionInfo.setQuestionAttributionId(cylinderFillingRecordDto.getAppId());
questionInfo.setQuestionAttributionName(cylinderFillingRecordDto.getFillingUnitName());
questionInfo.setRegionCode(cylinderFillingRecordDto.getRegionCode());
questionInfo.setQuestionObjectId(cylinderFillingRecordDto.getSequenceCode());
questionInfo.setHappenDate(cylinderFillingRecordDto.getSyncDate());
eventPublisher.publish(new CylinderQuestionCreateEvent(this, questionInfo));
}
}
@Override
public void processMessage(String topic, MqttMessage message) {
log.info("收到充装信息插入消息:{}", JSONObject.toJSONString(message));
String msg = new String(message.getPayload(), StandardCharsets.UTF_8);
CylinderFillingRecordDto cylinderFillingRecordDto = JSONObject.parseObject(msg, CylinderFillingRecordDto.class);
blockingQueue.add(cylinderFillingRecordDto);
}
}
//package com.yeejoin.amos.boot.module.cylinder.biz.listener;
//
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONObject;
//import com.baomidou.mybatisplus.core.toolkit.StringUtils;
//import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
//import com.yeejoin.amos.boot.module.cylinder.api.service.IEquipmentCategoryService;
//import com.yeejoin.amos.boot.module.cylinder.flc.api.service.IRegUnitInfoService;
//import lombok.extern.slf4j.Slf4j;
//import org.eclipse.paho.client.mqttv3.MqttMessage;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.scheduling.annotation.EnableScheduling;
//import org.springframework.stereotype.Component;
//import org.typroject.tyboot.component.emq.EmqKeeper;
//import org.typroject.tyboot.component.emq.EmqxListener;
//import org.typroject.tyboot.core.foundation.context.RequestContext;
//
//import javax.annotation.PostConstruct;
//import javax.annotation.Resource;
//
//@Component
//@EnableScheduling
//@Slf4j
//public class PlatformUserTopicMessage extends EmqxListener {
// @Resource
// protected EmqKeeper emqKeeper;
//
// @Value("${amos.operation.log}")
// private String amosOperationLog;
//
// @PostConstruct
// void init() throws Exception {
// emqKeeper.subscript(amosOperationLog, 1, this);
// }
//
// @Value("${amos.agency.code}")
// String amosAgencyCode;
//
// @Autowired
// RedisUtils redisUtil;
//
// @Value("${amos.system.user.product:AMOS_STUDIO_WEB}")
// String product;
//
// @Value("${amos.system.user.app-key:AMOS_STUDIO}")
// String appKey;
//
// @Autowired
// IEquipmentCategoryService equipmentCategoryService;
//
// @Autowired
// IRegUnitInfoService regUnitInfoService;
//
// @Override
// public void processMessage(String topic, MqttMessage message) {
// RequestContext.setAppKey(appKey);
// RequestContext.setProduct(product);
// RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
// JSONObject jsonObject = JSON.parseObject(message.toString());
// JSONObject result = jsonObject.getJSONObject("result");
// JSONObject dataResult = result.getJSONObject("result");
// String path = result.getString("path");
// String agencyCode = jsonObject.getString("agencyCode");
// if (!amosAgencyCode.equals(agencyCode)) {
// return;
// }
// try {
// if (StringUtils.isNotEmpty(path)) {
// if (path.contains("company") && !"company".equals(dataResult.get("level"))) {
// equipmentCategoryService.creatTree();
// } else if (path.contains("agencyuser")) {
// regUnitInfoService.updateAdminInfo(dataResult);
// }
// }
// } catch (Exception e) {
// log.info("平台同步消息失败:{}", e.getMessage());
// e.printStackTrace();
// }
// log.info("平台推送消息同步完成");
// }
//}
//package com.yeejoin.amos.boot.module.cylinder.biz.listener;
//
//import com.yeejoin.amos.boot.module.cylinder.biz.utils.RedisUtil;
//import lombok.extern.slf4j.Slf4j;
//import org.eclipse.paho.client.mqttv3.MqttMessage;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Component;
//import org.typroject.tyboot.component.emq.EmqxListener;
//
//@Component
//@Slf4j
//public class PrivilegeCompanyDeleteListener extends EmqxListener {
//
// @Autowired
// RedisUtil redisUtil;
//
// @Value("${amos.system.user.product:AMOS_STUDIO_WEB}")
// String product;
//
// @Value("${amos.system.user.app-key:AMOS_STUDIO}")
// String appkey;
//
//
// @Override
// public void processMessage(String s, MqttMessage message) throws Exception {
//// System.out.println(message);
//// JSONObject object = null;
//// try {
//// object = JSONObject.parseObject(message.toString());
//// } catch (Exception e) {
//// throw new Exception("公司同步消息解析失败");
//// }
//// RequestContext.setAppKey(appkey);
//// RequestContext.setProduct(product);
//// RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
////
//// //通过sequence_nbr删除企业
//// Privilege.companyClient.deleteCompany(object.getString("sequence_nbr"));
// }
//}
//package com.yeejoin.amos.boot.module.cylinder.biz.listener;
//
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONObject;
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
//import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
//import com.yeejoin.amos.boot.module.cylinder.biz.utils.RedisUtil;
//import com.yeejoin.amos.boot.module.cylinder.api.entity.TzBaseEnterpriseInfo;
//import com.yeejoin.amos.boot.module.cylinder.biz.service.impl.TzBaseEnterpriseInfoServiceImpl;
//import com.yeejoin.amos.boot.module.cylinder.flc.api.feign.AccessFeignService;
//
//import com.yeejoin.amos.feign.privilege.Privilege;
//import com.yeejoin.amos.feign.privilege.model.CompanyModel;
//import lombok.extern.slf4j.Slf4j;
//import org.eclipse.paho.client.mqttv3.MqttMessage;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Component;
//import org.typroject.tyboot.component.emq.EmqxListener;
//import org.typroject.tyboot.core.foundation.context.RequestContext;
//import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
//
//import java.text.SimpleDateFormat;
//import java.util.*;
//
//@Component
//@Slf4j
//public class PrivilegeCompanyUpdateAddListener extends EmqxListener {
//
// Logger logger = LoggerFactory.getLogger(PrivilegeCompanyUpdateAddListener.class);
//
// @Autowired
// TzBaseEnterpriseInfoServiceImpl tzBaseEnterpriseInfoService;
//
// @Autowired
// AccessFeignService accessFeignService;
//
// @Autowired
// RedisUtil redisUtil;
//
// @Value("${amos.system.user.product:AMOS_STUDIO_WEB}")
// String product;
//
// @Value("${amos.system.user.app-key:AMOS_STUDIO}")
// String appKey;
//
// @Override
// public void processMessage(String s, MqttMessage message) throws Exception {
// logger.info("received mqtt message: " + message);
//
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//
// JSONObject object = null;
// try {
// object = JSONObject.parseObject(message.toString());
// } catch (Exception e) {
// throw new Exception("公司同步消息解析失败");
// }
// RequestContext.setAppKey(appKey);
// RequestContext.setProduct(product);
// RequestContext.setToken(String.valueOf(redisUtil.get("platform_token")));
//
// //判断库中业务tz_base_enterprise_info是否存在
// QueryWrapper<TzBaseEnterpriseInfo> queryWrapper = new QueryWrapper<TzBaseEnterpriseInfo>();
// queryWrapper.eq("use_code",object.getString("unit_code"));
// TzBaseEnterpriseInfo tzBaseEnterprisePrivilegeInfo = tzBaseEnterpriseInfoService.getOne(queryWrapper);
// if(!ValidationUtil.isEmpty(tzBaseEnterprisePrivilegeInfo)){
// accessFeignService.updateSyncCompanyState(object.getString("sequence_nbr"));
// return;
// }
//
//
// TzBaseEnterpriseInfo tzBaseEnterpriseInfo = new TzBaseEnterpriseInfo();
//
// Date syncDate = sdf.parse(object.getString("sync_date"));
// Date recDate = sdf.parse(object.getString("issue_date"));
//
// String unitType = object.getString("cert_type");
//
//
// tzBaseEnterpriseInfo.setSequenceNbr(object.getLong("sequence_nbr"));
// tzBaseEnterpriseInfo.setAddress(object.getString("reg_address"));
// tzBaseEnterpriseInfo.setUnitType(unitType);
// tzBaseEnterpriseInfo.setUseCode(object.getString("unit_code"));
// tzBaseEnterpriseInfo.setUseUnit(object.getString("unit_name"));
// tzBaseEnterpriseInfo.setProvince(object.getString("province"));
// tzBaseEnterpriseInfo.setCity(object.getString("city"));
// tzBaseEnterpriseInfo.setDistrict(object.getString("district"));
// tzBaseEnterpriseInfo.setSyncDate(syncDate);
// tzBaseEnterpriseInfo.setSyncState(object.getInteger("sync_state"));
// tzBaseEnterpriseInfo.setRecDate(recDate);
//
//
// //业务表更新条件构造器
// UpdateWrapper<TzBaseEnterpriseInfo> updateWrapper = new UpdateWrapper<>();
// updateWrapper.eq("use_code",object.getString("unit_code"));
//
// String regCode = object.getString("reg_code");
// CompanyModel supervisePrivilegeCompanyModel;
// if (!ValidationUtil.isEmpty(regCode)) {
// supervisePrivilegeCompanyModel = Privilege.companyClient.queryByCompanyCode(regCode).getResult();
//
// if(ValidationUtil.isEmpty(supervisePrivilegeCompanyModel)){
// supervisePrivilegeCompanyModel = Privilege.companyClient.queryByCompanyCode("610000").getResult();
//
// if (ValidationUtil.isEmpty(supervisePrivilegeCompanyModel)) {
// logger.error("【" + object.getString("unit_name") + "】对应监管企业为空");
// return;
// }
// }
// } else {
// supervisePrivilegeCompanyModel = Privilege.companyClient.queryByCompanyCode("610000").getResult();
// if (ValidationUtil.isEmpty(supervisePrivilegeCompanyModel)) {
// logger.error("【" + object.getString("unit_name") + "】对应监管企业为空");
// return;
// }
// }
// tzBaseEnterpriseInfo.setSuperviseOrgCode(supervisePrivilegeCompanyModel.getOrgCode());
// tzBaseEnterpriseInfo.setSuperviseOrgName(supervisePrivilegeCompanyModel.getCompanyName());
//
// if(ValidationUtil.isEmpty(tzBaseEnterpriseInfo.getUnitType())){
// tzBaseEnterpriseInfo.setUnitType("");
// }
//
//
// try {
// if (tzBaseEnterprisePrivilegeInfo == null ) {
// tzBaseEnterpriseInfoService.save(tzBaseEnterpriseInfo);
// accessFeignService.updateSyncCompanyState(object.getString("sequence_nbr"));
// return;
// }
// } catch(Exception e) {
// logger.error("【" + object.getString("unit_name") + "】许可信息同步【失败】:" + e.getMessage());
// }
// }
//
// public Map<String, CompanyModel> getCompanyInfoMap(Collection companyModels,Map<String, CompanyModel> map){
// if(companyModels == null){
// return map;
// }
// Iterator iter = companyModels.iterator();
// while(iter.hasNext()){
// String json = JSON.toJSONString(iter.next());
// CompanyModel companyModel = JSON.parseObject(json,CompanyModel.class);
//
// String code = companyModel.getCompanyCode();
// if(code.length() >=6){
// code = code.substring(0, 6);
// }
// map.put(code,companyModel);
// getCompanyInfoMap(companyModel.getChildren(),map);
// }
// return map;
// }
//}
......@@ -129,7 +129,7 @@ public class CylinderUnitVideoServiceImpl extends BaseService<CylinderUnitVideoD
*/
private void setDefaultChannelData(List<CommonVideoDto> result, CommonVideoDto channelNo) {
CommonVideoDto commonVideoDto = new CommonVideoDto();
commonVideoDto.setUrl("");
commonVideoDto.setUrl(channelNo.getThumb());
commonVideoDto.setKey(channelNo.getKey());
commonVideoDto.setType(CommonVideoEnum.IMG.getName());
commonVideoDto.setTitle(channelNo.getTitle());
......@@ -153,7 +153,7 @@ public class CylinderUnitVideoServiceImpl extends BaseService<CylinderUnitVideoD
private void setDefaultVideoIfNoAccess(List<CommonVideoDto> result, String unitSeq) {
CylinderUnit cylinderUnit = cylinderUnitService.getBaseMapper().selectOne(new LambdaQueryWrapper<CylinderUnit>().eq(CylinderUnit::getAppId, unitSeq ));
CommonVideoDto commonVideoDto = new CommonVideoDto();
commonVideoDto.setUrl("");
commonVideoDto.setUrl(defaultVideoUrl);
commonVideoDto.setKey(UUID.fastUUID().toString());
commonVideoDto.setType(CommonVideoEnum.IMG.getName());
if(cylinderUnit != null){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment