Commit b1503e7a authored by suhuiguang's avatar suhuiguang

1. 监管的注册登记信息表增加冗余字段:最新使用登记证路径,施工信息表增加字段:告知书编号、告知书路径,检验检测报检需要使用到

2.检验检测推送增加字段
parent 021497d0
......@@ -40,6 +40,18 @@ public class InspectionEquipData {
@ApiModelProperty(value = "使用/施工单位名称")
private String unitCreditName;
@ApiModelProperty(value = "告知书编号")
private String informCode;
@ApiModelProperty(value = "告知书附件附件相对路径")
private String informFilePath;
@ApiModelProperty(value = "使用登记证编号")
private String useRegistrationCode;
@ApiModelProperty(value = "使用登记证附件相对路径")
private String useCertFilePath;
@ApiModelProperty(value = "技术参数")
private Map<String, Object> techParams;
......
......@@ -17,6 +17,7 @@ import com.yeejoin.amos.boot.module.jyjc.biz.kafka.KafkaProducer;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcInspectionApplicationEquipServiceImpl;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcInspectionApplicationPushLogServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgConstructionInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.ymt.api.mapper.*;
......@@ -27,10 +28,7 @@ import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
......@@ -62,6 +60,9 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
IdxBizJgUseInfoMapper useInfoMapper;
@Autowired
IdxBizJgRegisterInfoMapper idxBizJgRegisterInfoMapper;
@Autowired
TzBaseEnterpriseInfoMapper baseEnterpriseInfoMapper;
@Autowired
......@@ -94,10 +95,21 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
@Autowired
Sequence sequence;
/**
* 报检推送主题, 第一位为接收单位标识
*/
private final String INSPECTION_APPLICATION_PUSH_TOPIC = "%s_INSPECTION_APPLICATION_TOPIC";
private final static String INSPECTION_APPLICATION_PUSH_TOPIC = "%s_INSPECTION_APPLICATION_TOPIC";
/**
* 监督检验-检验类型
*/
private final static List<String> JDJY_ARRAY = Arrays.asList("AZJDJY", "GZJDJY", "WXJDJY");
/**
* 定首检-检验类型
*/
private final static List<String> DSJ_ARRAY = Arrays.asList("DQJY", "SCJY");
@Override
......@@ -109,11 +121,16 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
@PostConstruct
public void init() {
ExecutorService executorService = Executors.newFixedThreadPool(threadNum);
// 可处理的检验检测类型,目前只处理检验的,不处理检测业务
List<String> canDealInspectionTypes = getCanDealInspectionType();
for (int i = 0; i < threadNum; i++) {
executorService.execute(() -> {
while (true) {
try {
JyjcInspectionApplicationModel applicationModel = queue.take();
if (!canDealInspectionTypes.contains(applicationModel.getInspectionType())) {
return;
}
//构建数据
JyjcInspectionApplicationPushLog pushLog = this.createPushData(applicationModel);
// 发送数据
......@@ -126,6 +143,12 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
}
}
private List<String> getCanDealInspectionType() {
List<String> canDealInspectionTypes = new ArrayList<>(JDJY_ARRAY);
canDealInspectionTypes.addAll(DSJ_ARRAY);
return canDealInspectionTypes;
}
private void pushData2Kafka(String dockingUnitCode, JyjcInspectionApplicationPushLog pushLog) {
// 发送kafka指定的主题
String topic = String.format(INSPECTION_APPLICATION_PUSH_TOPIC, dockingUnitCode);
......@@ -154,19 +177,20 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
// 监管机构
pushData.setSuperviseOrgName(this.getSuperviseNameByCode(applicationModel.getApplicationUnitCode()));
// 报检的设备信息
pushData.setInspectionEquips(this.buildInspectionEquipInfo(applicationModel.getSequenceNbr()));
pushData.setInspectionEquips(this.buildInspectionEquipInfo(applicationModel));
pushData.setTraceId(traceId + "");
return JSONObject.toJSONString(pushData);
}
private List<InspectionEquipData> buildInspectionEquipInfo(Long sequenceNbr) {
List<JyjcInspectionApplicationEquip> jyjcInspectionApplicationEquips = applicationEquipService.list(new LambdaQueryWrapper<JyjcInspectionApplicationEquip>().eq(JyjcInspectionApplicationEquip::getApplicationSeq, sequenceNbr));
private List<InspectionEquipData> buildInspectionEquipInfo(JyjcInspectionApplicationModel applicationModel) {
Long applicationSeq = applicationModel.getSequenceNbr();
List<JyjcInspectionApplicationEquip> jyjcInspectionApplicationEquips = applicationEquipService.list(new LambdaQueryWrapper<JyjcInspectionApplicationEquip>().eq(JyjcInspectionApplicationEquip::getApplicationSeq, applicationSeq));
return jyjcInspectionApplicationEquips.stream().map(e -> {
InspectionEquipData equipData = new InspectionEquipData();
BeanUtil.copyProperties(e, equipData);
equipData.setAddress(this.getAddressByRecord(e.getEquipUnicode()));
// 单个查询执行,原因数据量较大 in 慢
this.setUscUnitInfo(equipData, e.getEquipUnicode());
this.setOtherInfo(equipData, e.getEquipUnicode(), applicationModel.getInspectionType());
// 单个查询执行,原因数据量较大 in 慢
this.setTechParams(equipData, e.getEquipUnicode());
return equipData;
......@@ -220,8 +244,27 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
return StrUtil.isNotEmpty(str) ? str : "";
}
private void setUscUnitInfo(InspectionEquipData equipData, String equipUnicode) {
private void setOtherInfo(InspectionEquipData equipData, String equipUnicode, String inspectionType) {
// 监督检验送施工单位信息
if (JDJY_ARRAY.contains(inspectionType)) {
setConstructionInfo(equipData, equipUnicode);
}
// 定首检送使用单位信息
if (DSJ_ARRAY.contains(inspectionType)) {
// 填充单位信息
this.setUnitInfo(equipData, equipUnicode);
// 填充使用登记证编号、登记证路径
this.setUseCodeAndCertPath(equipData, equipUnicode);
}
}
private void setConstructionInfo(InspectionEquipData equipData, String equipUnicode) {
LambdaQueryWrapper<IdxBizJgConstructionInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.select(IdxBizJgConstructionInfo::getUscUnitCreditCode,
IdxBizJgConstructionInfo::getUscUnitName,
IdxBizJgConstructionInfo::getInformCode,
IdxBizJgConstructionInfo::getInformFilePath);
wrapper.eq(IdxBizJgConstructionInfo::getRecord, equipUnicode);
wrapper.orderByDesc(TzsBaseEntity::getRecDate);
wrapper.last("limit 1");
......@@ -229,6 +272,31 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
if (jgConstructionInfo != null) {
equipData.setUnitCreditCode(jgConstructionInfo.getUscUnitCreditCode());
equipData.setUnitCreditName(jgConstructionInfo.getUscUnitName());
equipData.setInformCode(jgConstructionInfo.getInformCode());
equipData.setInformFilePath(jgConstructionInfo.getInformFilePath());
}
}
private void setUseCodeAndCertPath(InspectionEquipData equipData, String equipUnicode) {
LambdaQueryWrapper<IdxBizJgRegisterInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.select(IdxBizJgRegisterInfo::getUseOrgCode, IdxBizJgRegisterInfo::getLastUseCertFilePath);
wrapper.eq(IdxBizJgRegisterInfo::getRecord, equipUnicode);
IdxBizJgRegisterInfo jgRegisterInfo = idxBizJgRegisterInfoMapper.selectOne(wrapper);
if (jgRegisterInfo != null) {
equipData.setUseRegistrationCode(jgRegisterInfo.getUseOrgCode());
equipData.setUseCertFilePath(jgRegisterInfo.getLastUseCertFilePath());
}
}
private void setUnitInfo(InspectionEquipData equipData, String equipUnicode) {
LambdaQueryWrapper<IdxBizJgUseInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.select(IdxBizJgUseInfo::getUseUnitCreditCode, IdxBizJgUseInfo::getUseUnitName);
wrapper.eq(IdxBizJgUseInfo::getRecord, equipUnicode);
IdxBizJgUseInfo idxBizJgUseInfo = useInfoMapper.selectOne(wrapper);
if (idxBizJgUseInfo != null) {
equipData.setUnitCreditCode(idxBizJgUseInfo.getUseUnitCreditCode());
equipData.setUnitCreditName(idxBizJgUseInfo.getUseUnitName());
}
}
......
package com.yeejoin.amos.boot.module.jyjc.biz.kafka;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.kafka.support.SendResult;
import org.springframework.stereotype.Component;
......@@ -17,7 +16,6 @@ public class KafkaProducer {
private final KafkaTemplate<String, String> kafkaTemplate;
@Autowired
public KafkaProducer(KafkaTemplate<String, String> kafkaTemplate) {
this.kafkaTemplate = kafkaTemplate;
}
......
package com.yeejoin.amos.boot.module.ymt.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
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;
import java.util.Date;
/**
......@@ -17,10 +17,10 @@ import java.util.Date;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="IdxBizJgConstructionInfoDto", description="施工信息表")
public class IdxBizJgConstructionInfoDto extends BaseDto {
@ApiModel(value = "IdxBizJgConstructionInfoDto", description = "施工信息表")
public class IdxBizJgConstructionInfoDto extends BaseDto {
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 1L;
@TableField("RECORD")
private String record;
......@@ -32,23 +32,31 @@ public class IdxBizJgConstructionInfoDto extends BaseDto {
private String status;
@ApiModelProperty(value = "施工类型")
@TableField("CONSTRUCTION_TYPE")
private String constructionType;
@ApiModelProperty(value = "施工单位统一社会信用代码")
@TableField("USC_UNIT_CREDIT_CODE")
private String uscUnitCreditCode;
@ApiModelProperty(value = "施工单位名称")
@TableField("USC_UNIT_NAME")
private String uscUnitName;
@ApiModelProperty(value = "施工时间")
@TableField("USC_DATE")
private Date uscDate;
@ApiModelProperty(value = "设备唯一标识")
@TableField("SEQUENCE_CODE")
private String sequenceCode;
@ApiModelProperty(value = "告知业务id-告知作废时使用")
private String noticeId;
@ApiModelProperty(value = "告知书编号")
private String informCode;
@ApiModelProperty(value = "告知书路径")
private String informFilePath;
}
package com.yeejoin.amos.boot.module.ymt.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
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;
import java.util.Date;
/**
* 注册登记信息表
......@@ -17,99 +14,77 @@ import java.util.Date;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="IdxBizJgRegisterInfoDto", description="注册登记信息表")
public class IdxBizJgRegisterInfoDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModel(value = "IdxBizJgRegisterInfoDto", description = "注册登记信息表")
public class IdxBizJgRegisterInfoDto extends BaseDto {
private static final long serialVersionUID = 1L;
@TableField("RECORD")
private String record;
@TableField("INSTANCE_ID")
private String instanceId;
@TableField("STATUS")
private String status;
@ApiModelProperty(value = "登记机关组织机构代码")
@TableField("ORGANIZATION_CODE")
private String organizationCode;
@ApiModelProperty(value = "登记机关名称")
@TableField("ORGANIZATION_NAME")
private String organizationName;
@ApiModelProperty(value = "使用登记证编号")
@TableField("USE_ORG_CODE")
private String useOrgCode;
@ApiModelProperty(value = "注册状态")
@TableField("REGISTER_STATE")
private String registerState;
@ApiModelProperty(value = "设备代码")
@TableField("EQU_CODE")
private String equCode;
@ApiModelProperty(value = "设备种类")
@TableField("EQU_LIST")
private String equList;
@ApiModelProperty(value = "设备类别")
@TableField("EQU_CATEGORY")
private String equCategory;
@ApiModelProperty(value = "设备品种")
@TableField("EQU_DEFINE")
private String equDefine;
@ApiModelProperty(value = "产品名称")
@TableField("PRODUCT_NAME")
private String productName;
@ApiModelProperty(value = "品牌名称")
@TableField("BRAND_NAME")
private String brandName;
@ApiModelProperty(value = "设备型号")
@TableField("EQU_TYPE")
private String equType;
@ApiModelProperty(value = "设备总价值(万元)")
@TableField("EQU_PRICE")
private String equPrice;
@ApiModelProperty(value = "使用登记证")
@TableField("USE_REGISTRATION_CERTIFICATE")
private String useRegistrationCertificate;
@ApiModelProperty(value = "使用标志")
@TableField("USE_SIGN")
private String useSign;
@ApiModelProperty(value = "产品照片")
@TableField("PRODUCT_PHOTO")
private String productPhoto;
@ApiModelProperty(value = "车辆牌号")
@TableField("CAR_NUMBER")
private String carNumber;
@ApiModelProperty(value = "车架编号")
@TableField("FRAME_NUMBER")
private String frameNumber;
@ApiModelProperty(value = "发动机编号")
@TableField("ENGINE_NUMBER")
private String engineNumber;
@ApiModelProperty(value = "电动机编号")
@TableField("MOTOR_NUMBER")
private String motorNumber;
@ApiModelProperty(value = "最新使用登记证路径")
private String lastUseCertFilePath;
}
......@@ -82,4 +82,17 @@ public class IdxBizJgConstructionInfo extends TzsBaseEntity {
private String noticeId;
/**
* 告知书编号
*/
@TableField(value = "\"INFORM_CODE\"")
private String informCode;
/**
* 告知书路径
*/
@TableField(value = "\"INFORM_FILE_PATH\"")
private String informFilePath;
}
......@@ -185,5 +185,11 @@ public class IdxBizJgRegisterInfo extends TzsBaseEntity {
@TableField("\"WHETHER_SKID_MOUNTED_PRESSURE_VESSEL\"")
private String whetherSkidMountedPressureVessel;
/**
* 最新使用登记证路径
*/
@TableField("\"LAST_USE_CERT_FILE_PATH\"")
private String lastUseCertFilePath;
}
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.bouncycastle.cms.PasswordRecipientId;
import java.math.BigDecimal;
......@@ -22,47 +23,46 @@ public class RegistrationInfo extends AbstractEquipBaseEntity {
private static final long serialVersionUID = 1L;
/**
* * $column.comments
* */
/**
* * $column.comments
* */
* * $column.comments
*/
@TableField(value ="\"INSTANCE_ID\"")
@TableField(value = "\"INSTANCE_ID\"")
private String instanceId;
/**
* * $column.comments
* */
* * $column.comments
*/
@TableField(value ="\"STATUS\"")
@TableField(value = "\"STATUS\"")
private String status;
/**
* * 登记机关组织机构代码
* */
* * 登记机关组织机构代码
*/
@TableField(value ="\"ORGANIZATION_CODE\"")
@TableField(value = "\"ORGANIZATION_CODE\"")
private String organizationCode;
/**
* * 登记机关名称
* */
* * 登记机关名称
*/
@TableField(value ="\"ORGANIZATION_NAME\"")
@TableField(value = "\"ORGANIZATION_NAME\"")
private String organizationName;
/**
* * 使用登记证编号
* */
* * 使用登记证编号
*/
@TableField(value ="\"USE_ORG_CODE\"")
@TableField(value = "\"USE_ORG_CODE\"")
private String useOrgCode;
/**
* * 注册状态
* */
* * 注册状态
*/
@TableField(value ="\"REGISTER_STATE\"")
@TableField(value = "\"REGISTER_STATE\"")
private String registerState;
......@@ -72,94 +72,94 @@ public class RegistrationInfo extends AbstractEquipBaseEntity {
@TableField("\"EQU_CODE_TYPE\"")
private String equCodeType;
/**
* * 设备代码
* */
* * 设备代码
*/
@TableField(value ="\"EQU_CODE\"")
@TableField(value = "\"EQU_CODE\"")
private String equCode;
/**
* * 设备种类
* */
* * 设备种类
*/
@TableField(value ="\"EQU_LIST\"")
@TableField(value = "\"EQU_LIST\"")
private String equList;
/**
* * 设备类别
* */
* * 设备类别
*/
@TableField(value ="\"EQU_CATEGORY\"")
@TableField(value = "\"EQU_CATEGORY\"")
private String equCategory;
/**
* * 设备品种
* */
* * 设备品种
*/
@TableField(value ="\"EQU_DEFINE\"")
@TableField(value = "\"EQU_DEFINE\"")
private String equDefine;
/**
* * 产品名称
* */
* * 产品名称
*/
@TableField(value ="\"PRODUCT_NAME\"")
@TableField(value = "\"PRODUCT_NAME\"")
private String productName;
/**
* * 品牌名称
* */
* * 品牌名称
*/
@TableField(value ="\"BRAND_NAME\"")
@TableField(value = "\"BRAND_NAME\"")
private String brandName;
/**
* * 设备型号
* */
* * 设备型号
*/
@TableField(value ="\"EQU_TYPE\"")
@TableField(value = "\"EQU_TYPE\"")
private String equType;
/**
* * 设备总价值(万元)
* */
* * 设备总价值(万元)
*/
@TableField(value ="\"EQU_PRICE\"")
@TableField(value = "\"EQU_PRICE\"")
private BigDecimal equPrice;
/**
* * 使用登记证
* */
* * 使用登记证
*/
@TableField(value ="\"USE_REGISTRATION_CERTIFICATE\"")
@TableField(value = "\"USE_REGISTRATION_CERTIFICATE\"")
private String useRegistrationCertificate;
/**
* * 使用标志
* */
* * 使用标志
*/
@TableField(value ="\"USE_SIGN\"")
@TableField(value = "\"USE_SIGN\"")
private String useSign;
/**
* * 产品照片
* */
* * 产品照片
*/
@TableField(value ="\"PRODUCT_PHOTO\"")
@TableField(value = "\"PRODUCT_PHOTO\"")
private String productPhoto;
/**
* * 车辆牌号
* */
* * 车辆牌号
*/
@TableField(value ="\"CAR_NUMBER\"")
@TableField(value = "\"CAR_NUMBER\"")
private String carNumber;
/**
* * 车架编号
* */
* * 车架编号
*/
@TableField(value ="\"FRAME_NUMBER\"")
@TableField(value = "\"FRAME_NUMBER\"")
private String frameNumber;
/**
* * 发动机编号
* */
* * 发动机编号
*/
@TableField(value ="\"ENGINE_NUMBER\"")
@TableField(value = "\"ENGINE_NUMBER\"")
private String engineNumber;
/**
* * 电动机编号
* */
* * 电动机编号
*/
@TableField(value ="\"MOTOR_NUMBER\"")
@TableField(value = "\"MOTOR_NUMBER\"")
private String motorNumber;
......@@ -171,10 +171,18 @@ public class RegistrationInfo extends AbstractEquipBaseEntity {
/**
* 是否车用气瓶(特种气瓶用于区分“内装填料气瓶、纤维缠绕气瓶、低温绝热气瓶”和车用气瓶)
* 1:是
* 0:不是
* 1:是
* 0:不是
*/
@TableField("\"WHETHER_VEHICLE_CYLINDER\"")
private String whetherVehicleCylinder;
/**
* 最新使用登记证路径
*/
@TableField("\"LAST_USE_CERT_FILE_PATH\"")
private String lastUseCertFilePath;
}
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