Commit 408d00ab authored by suhuiguang's avatar suhuiguang

feat(jyjc): 报检结果接收调整

1.台套类接收结果自测bug修改 2.增加气瓶检验附件表,并在气瓶报检数据接收时进行数据入库及更新 3.检验详情接口增加对老存量数据兼容性
parent fff3c83c
...@@ -101,4 +101,9 @@ public interface BizCommonConstant { ...@@ -101,4 +101,9 @@ public interface BizCommonConstant {
* 空标识 * 空标识
*/ */
String NONE= "none"; String NONE= "none";
/**
* 气瓶设备类别
*/
String EQU_CATEGORY_CYLINDER = "2300";
} }
package com.yeejoin.amos.boot.module.jyjc.biz.result.processor; package com.yeejoin.amos.boot.module.jyjc.biz.result.processor;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil; import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.yeejoin.amos.boot.module.common.api.enums.EquipmentClassifityEnum; import com.yeejoin.amos.boot.module.common.api.enums.EquipmentClassifityEnum;
import com.yeejoin.amos.boot.module.jyjc.api.common.BizCommonConstant;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionResult; import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionResult;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionResultAttachment;
import com.yeejoin.amos.boot.module.jyjc.biz.event.publisher.BizEmqPublisher; import com.yeejoin.amos.boot.module.jyjc.biz.event.publisher.BizEmqPublisher;
import com.yeejoin.amos.boot.module.jyjc.biz.result.factory.support.SupportableResultDataProcessor; import com.yeejoin.amos.boot.module.jyjc.biz.result.factory.support.SupportableResultDataProcessor;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.CommonServiceImpl; import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.CommonServiceImpl;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcInspectionResultAttachmentServiceImpl;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcInspectionResultServiceImpl; import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcInspectionResultServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgInspectionCylinderAttachment;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgInspectionDetectionInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgInspectionDetectionInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgInspectionCylinderAttachmentMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgInspectionDetectionInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgInspectionDetectionInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.UseInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.UseInfoMapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
...@@ -41,6 +50,10 @@ public class SingleEquipResultDataProcessor implements SupportableResultDataProc ...@@ -41,6 +50,10 @@ public class SingleEquipResultDataProcessor implements SupportableResultDataProc
private final JyjcInspectionResultServiceImpl inspectionResultService; private final JyjcInspectionResultServiceImpl inspectionResultService;
private final JyjcInspectionResultAttachmentServiceImpl attachmentService;
private final IdxBizJgInspectionCylinderAttachmentMapper inspectionCylinderAttachmentMapper;
private static final Set<String> SUPPORTED_TYPES = Sets.newHashSet( private static final Set<String> SUPPORTED_TYPES = Sets.newHashSet(
EquipmentClassifityEnum.GL.getCode(), EquipmentClassifityEnum.GL.getCode(),
EquipmentClassifityEnum.YLRQ.getCode(), EquipmentClassifityEnum.YLRQ.getCode(),
...@@ -83,14 +96,60 @@ public class SingleEquipResultDataProcessor implements SupportableResultDataProc ...@@ -83,14 +96,60 @@ public class SingleEquipResultDataProcessor implements SupportableResultDataProc
useInfoMapper.updateByRecord(jyjcInspectionResult.getEquipUnicode(), jyjcInspectionResult.getNextInspectionDate(), jyjcInspectionResult.getInspectionType(), jyjcInspectionResult.getApplicationNo()); useInfoMapper.updateByRecord(jyjcInspectionResult.getEquipUnicode(), jyjcInspectionResult.getNextInspectionDate(), jyjcInspectionResult.getInspectionType(), jyjcInspectionResult.getApplicationNo());
// 4.es更新下次检验日期 // 4.es更新下次检验日期
commonService.updateEquipNextInspectDate(jyjcInspectionResult, jyjcInspectionResult.getEquipUnicode()); commonService.updateEquipNextInspectDate(jyjcInspectionResult, jyjcInspectionResult.getEquipUnicode());
// 5.气瓶时记录气瓶附件表
this.saveOrUpdateCylinderAttachment(jyjcInspectionResult, info);
// 发送数据刷新消息 // 发送数据刷新消息
inspectionResultService.sendDataRefreshMsg(Collections.singleton(record)); inspectionResultService.sendDataRefreshMsg(Collections.singleton(record));
} }
private void saveOrUpdateCylinderAttachment(JyjcInspectionResult jyjcInspectionResult, IdxBizJgInspectionDetectionInfo info) {
// 气瓶时记录气瓶附件信息
if (BizCommonConstant.EQU_CATEGORY_CYLINDER.equals(jyjcInspectionResult.getEquCategory())) {
List<IdxBizJgInspectionCylinderAttachment> attachments = inspectionCylinderAttachmentMapper.selectList(new LambdaQueryWrapper<IdxBizJgInspectionCylinderAttachment>()
.eq(IdxBizJgInspectionCylinderAttachment::getResultSeq, jyjcInspectionResult.getSequenceNbr()));
LambdaQueryWrapper<JyjcInspectionResultAttachment> fileWrapper = new LambdaQueryWrapper<>();
fileWrapper.eq(JyjcInspectionResultAttachment::getResultSeq, jyjcInspectionResult.getSequenceNbr());
List<JyjcInspectionResultAttachment> fileList = attachmentService.list(fileWrapper);
JSONObject attKv = new JSONObject();
fileList.forEach(item -> attKv.put(this.buildAttKey(item), item.getAttachmentUrl()));
IdxBizJgInspectionCylinderAttachment attachment = new IdxBizJgInspectionCylinderAttachment();
BeanUtil.copyProperties(attKv, attachment, true);
if (attachments.isEmpty()) {
attachment.setInspectSeq(info.getSequenceNbr());
attachment.setRecDate(new Date());
attachment.setRecord(info.getRecord());
attachment.setResultSeq(info.getResultSeq());
inspectionCylinderAttachmentMapper.insert(attachment);
} else {
LambdaUpdateWrapper<IdxBizJgInspectionCylinderAttachment> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(IdxBizJgInspectionCylinderAttachment::getResultSeq, jyjcInspectionResult.getSequenceNbr());
updateWrapper.set(IdxBizJgInspectionCylinderAttachment::getFacePic, attachment.getFacePic());
updateWrapper.set(IdxBizJgInspectionCylinderAttachment::getRecord, info.getRecord());
updateWrapper.set(IdxBizJgInspectionCylinderAttachment::getJtPic, attachment.getJtPic());
updateWrapper.set(IdxBizJgInspectionCylinderAttachment::getNyCurve, attachment.getNyCurve());
updateWrapper.set(IdxBizJgInspectionCylinderAttachment::getQmxPic, attachment.getQmxPic());
updateWrapper.set(IdxBizJgInspectionCylinderAttachment::getRecordForm, attachment.getRecordForm());
updateWrapper.set(IdxBizJgInspectionCylinderAttachment::getWgCheckPic, attachment.getWgCheckPic());
updateWrapper.set(IdxBizJgInspectionCylinderAttachment::getWsPic, attachment.getWsPic());
updateWrapper.set(IdxBizJgInspectionCylinderAttachment::getWgPic, attachment.getWgPic());
updateWrapper.set(IdxBizJgInspectionCylinderAttachment::getNyPic, attachment.getNyPic());
updateWrapper.set(IdxBizJgInspectionCylinderAttachment::getQmxCurve, attachment.getQmxCurve());
updateWrapper.set(IdxBizJgInspectionCylinderAttachment::getInspectSeq, info.getSequenceNbr());
updateWrapper.set(IdxBizJgInspectionCylinderAttachment::getRecDate, new Date());
inspectionCylinderAttachmentMapper.update(null, updateWrapper);
}
}
}
private String buildAttKey(JyjcInspectionResultAttachment item) {
return item.getAttachmentType().replace("JYJC_", "");
}
private void fillInspectionFields(JyjcInspectionResult jyjcInspectionResult, IdxBizJgInspectionDetectionInfo info) { private void fillInspectionFields(JyjcInspectionResult jyjcInspectionResult, IdxBizJgInspectionDetectionInfo info) {
info.setInspectOrgName(jyjcInspectionResult.getInspectionTypeName()); info.setInspectOrgName(jyjcInspectionResult.getInspectionTypeName());
info.setInspectType(jyjcInspectionResult.getInspectionType()); info.setInspectType(jyjcInspectionResult.getInspectionType());
info.setRecord(jyjcInspectionResult.getEquipUnicode()); info.setRecord(jyjcInspectionResult.getEquipUnicode());
info.setInspectReport(this.getReport(jyjcInspectionResult));
info.setInspectDate(jyjcInspectionResult.getInspectionDate()); info.setInspectDate(jyjcInspectionResult.getInspectionDate());
info.setInspectStaff(getInspectUserName(jyjcInspectionResult)); info.setInspectStaff(getInspectUserName(jyjcInspectionResult));
info.setInspectStaffCode(jyjcInspectionResult.getInspector()); info.setInspectStaffCode(jyjcInspectionResult.getInspector());
...@@ -104,6 +163,11 @@ public class SingleEquipResultDataProcessor implements SupportableResultDataProc ...@@ -104,6 +163,11 @@ public class SingleEquipResultDataProcessor implements SupportableResultDataProc
info.setRecDate(new Date()); info.setRecDate(new Date());
} }
private String getReport(JyjcInspectionResult jyjcInspectionResult) {
JyjcInspectionResultAttachment jybgFile = inspectionResultService.getReportAttachment(jyjcInspectionResult.getSequenceNbr());
return jybgFile.getAttachmentUrl();
}
private String getInspectUserName(JyjcInspectionResult model) { private String getInspectUserName(JyjcInspectionResult model) {
List<TzsUserInfo> userInfos = commonService.getUserInfosByUnitCode(model.getInspectionUnitCode()); List<TzsUserInfo> userInfos = commonService.getUserInfosByUnitCode(model.getInspectionUnitCode());
return userInfos.stream().filter(u -> model.getInspector().contains(u.getSequenceNbr() + "")).map(TzsUserInfo::getName).collect(Collectors.joining(",")); return userInfos.stream().filter(u -> model.getInspector().contains(u.getSequenceNbr() + "")).map(TzsUserInfo::getName).collect(Collectors.joining(","));
......
...@@ -638,8 +638,8 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -638,8 +638,8 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
// 其他设备 // 其他设备
List<Map<String, Object>> arrayList = getEquipInfoList(sequenceNbr, model); List<Map<String, Object>> arrayList = getEquipInfoList(sequenceNbr, model);
map.put("equip", arrayList); map.put("equip", arrayList);
map.put(BizCommonConstant.TECH_PARAM1, inspectionHistory.getHistoryData().get(BizCommonConstant.TECH_PARAM1)); map.put(BizCommonConstant.TECH_PARAM1, Optional.ofNullable(inspectionHistory).map(JyjcInspectionHistory::getHistoryData).map(s->s.get(BizCommonConstant.TECH_PARAM1)).orElse(0));
map.put(BizCommonConstant.TECH_PARAM2, inspectionHistory.getHistoryData().get(BizCommonConstant.TECH_PARAM2)); map.put(BizCommonConstant.TECH_PARAM2, Optional.ofNullable(inspectionHistory).map(JyjcInspectionHistory::getHistoryData).map(s->s.get(BizCommonConstant.TECH_PARAM2)).orElse(0));
} }
} }
map.putAll(attMap); map.putAll(attMap);
......
...@@ -664,7 +664,9 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR ...@@ -664,7 +664,9 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR
private String getUserSeqByPersonCode(String innerPersonCode) { private String getUserSeqByPersonCode(String innerPersonCode) {
if (StrUtil.isNotEmpty(innerPersonCode)) { if (StrUtil.isNotEmpty(innerPersonCode)) {
List<TzsUserInfo> tzsUserInfos = tzsUserInfoMapper.selectList(new LambdaQueryWrapper<TzsUserInfo>().in(TzsUserInfo::getCertificateNum, Arrays.asList(innerPersonCode.split(",")))); List<TzsUserInfo> tzsUserInfos = tzsUserInfoMapper.selectList(new LambdaQueryWrapper<TzsUserInfo>()
.in(TzsUserInfo::getCertificateNum, Arrays.asList(innerPersonCode.split(",")))
.select(com.yeejoin.amos.boot.biz.common.entity.BaseEntity::getSequenceNbr));
return tzsUserInfos.stream().map(u -> u.getSequenceNbr() + "").collect(Collectors.joining(",")); return tzsUserInfos.stream().map(u -> u.getSequenceNbr() + "").collect(Collectors.joining(","));
} }
log.error("检验人员内部编号为空"); log.error("检验人员内部编号为空");
......
package com.yeejoin.amos.boot.module.ymt.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 lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 气瓶检验检测附件表
*
* @author system_generator
* @date 2025-09-28
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "IdxBizJgInspectionCylinderAttachmentDto", description = "气瓶检验检测附件表")
public class IdxBizJgInspectionCylinderAttachmentDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "设备唯一标识")
private String record;
@ApiModelProperty(value = "检验结果表seq,用于关联使用单位录入的检验结果记录")
private String resultSeq;
@ApiModelProperty(value = "外观检查气瓶影像照片")
private String wgPic;
@ApiModelProperty(value = "外观检查照片")
private String wgCheckPic;
@ApiModelProperty(value = "耐压试验曲线图")
private String nyCurve;
@ApiModelProperty(value = "耐压试验影像照片")
private String nyPic;
@ApiModelProperty(value = "气密性试验曲线图")
private String qmxCurve;
@ApiModelProperty(value = "气密性现场影像照片")
private String qmxPic;
@ApiModelProperty(value = "无损检测影像照片")
private String wsPic;
@ApiModelProperty(value = "静态蒸发率检测影像照片")
private String jtPic;
@ApiModelProperty(value = "检验原始记录")
private String recordForm;
@ApiModelProperty(value = "检查人员刷脸照片")
private String facePic;
@ApiModelProperty(value = "检验流水主表id")
private String inspectSeq;
}
package com.yeejoin.amos.boot.module.ymt.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.TzsBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 气瓶检验检测附件表
*
* @author system_generator
* @date 2025-09-28
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("idx_biz_jg_inspection_cylinder_attachment")
public class IdxBizJgInspectionCylinderAttachment extends TzsBaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableField("\"RECORD\"")
private String record;
/**
* 检验结果表seq,用于关联使用单位录入的检验结果记录
*/
@TableField("\"RESULT_SEQ\"")
private String resultSeq;
/**
* 外观检查气瓶影像照片
*/
@TableField("\"WG_PIC\"")
private String wgPic;
/**
* 外观检查照片
*/
@TableField("\"WG_CHECK_PIC\"")
private String wgCheckPic;
/**
* 耐压试验曲线图
*/
@TableField("\"NY_CURVE\"")
private String nyCurve;
/**
* 耐压试验影像照片
*/
@TableField("\"NY_PIC\"")
private String nyPic;
/**
* 气密性试验曲线图
*/
@TableField("\"QMX_CURVE\"")
private String qmxCurve;
/**
* 气密性现场影像照片
*/
@TableField("\"QMX_PIC\"")
private String qmxPic;
/**
* 无损检测影像照片
*/
@TableField("\"WS_PIC\"")
private String wsPic;
/**
* 静态蒸发率检测影像照片
*/
@TableField("\"JT_PIC\"")
private String jtPic;
/**
* 检验原始记录
*/
@TableField("\"RECORD_FORM\"")
private String recordForm;
/**
* 检查人员刷脸照片
*/
@TableField("\"FACE_PIC\"")
private String facePic;
/**
* 检验流水主表id
*/
@TableField("\"INSPECT_SEQ\"")
private String inspectSeq;
}
package com.yeejoin.amos.boot.module.ymt.api.mapper;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgInspectionCylinderAttachment;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 气瓶检验检测附件表 Mapper 接口
*
* @author system_generator
* @date 2025-09-28
*/
public interface IdxBizJgInspectionCylinderAttachmentMapper extends BaseMapper<IdxBizJgInspectionCylinderAttachment> {
}
package com.yeejoin.amos.boot.module.ymt.api.service;
/**
* 气瓶检验检测附件表接口类
*
* @author system_generator
* @date 2025-09-28
*/
public interface IIdxBizJgInspectionCylinderAttachmentService {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgInspectionCylinderAttachmentMapper">
</mapper>
package com.yeejoin.amos.boot.module.ymt.biz.service.impl;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgInspectionCylinderAttachment;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgInspectionCylinderAttachmentMapper;
import com.yeejoin.amos.boot.module.ymt.api.service.IIdxBizJgInspectionCylinderAttachmentService;
import com.yeejoin.amos.boot.module.ymt.api.dto.IdxBizJgInspectionCylinderAttachmentDto;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List;
/**
* 气瓶检验检测附件表服务实现类
*
* @author system_generator
* @date 2025-09-28
*/
@Service
public class IdxBizJgInspectionCylinderAttachmentServiceImpl extends BaseService<IdxBizJgInspectionCylinderAttachmentDto,IdxBizJgInspectionCylinderAttachment,IdxBizJgInspectionCylinderAttachmentMapper> implements IIdxBizJgInspectionCylinderAttachmentService {
/**
* 分页查询
*/
public Page<IdxBizJgInspectionCylinderAttachmentDto> queryForIdxBizJgInspectionCylinderAttachmentPage(Page<IdxBizJgInspectionCylinderAttachmentDto> page) {
return this.queryForPage(page, null, false);
}
/**
* 列表查询 示例
*/
public List<IdxBizJgInspectionCylinderAttachmentDto> queryForIdxBizJgInspectionCylinderAttachmentList() {
return this.queryForList("" , false);
}
}
\ No newline at end of file
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