diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java index a70a023..9b6b39b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java @@ -56,7 +56,6 @@ //生成核查记录单 String checkCertificateFileUrl = checkCertificateFile(request); BizEquipmentStandardCheckRecordApprovalMapper bizRecordApprovalMapper = SpringContextUtil.getBean(BizEquipmentStandardCheckRecordApprovalMapper.class); - if (StringUtils.isNotEmpty(checkCertificateFileUrl)) { //原始记录文件 request.setCheckRecordFile(checkCertificateFileUrl); @@ -72,6 +71,62 @@ } } + public void excuteMeasureTaskAsyn(Map map, Long id, String oldCertificateFile) { + List customTemplateUrls = new ArrayList<>(); + customTemplateUrls.add(oldCertificateFile); + //生成证书报告的 + CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile(MULTIFUNCTION_CHECK_DATA, "数据打印", null, map, true, null, customTemplateUrls), threadPool); + certificateFutureTask.thenRun( + () -> { + String certificateFileUrl = certificateFutureTask.join(); + BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); + if (StringUtils.isNotEmpty(certificateFileUrl)) { + BizBusinessDeviceMeasureApproval bizBusinessDeviceMeasureApproval = new BizBusinessDeviceMeasureApproval(); + if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { + return; + } + bizBusinessDeviceMeasureApproval.setId(id); + //原始记录文件 + bizBusinessDeviceMeasureApproval.setOriginalRecordFile(certificateFileUrl); + //更新记录 + int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + }); + } + } + ); + } + + + public void excuteCheckTaskAsyn(Map map, Long id, String oldCertificateFile) { + List customTemplateUrls = new ArrayList<>(); + customTemplateUrls.add(oldCertificateFile); + //生成证书报告的 + CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile(MULTIFUNCTION_CHECK_DATA, "数据打印", null, map, true, null, customTemplateUrls), threadPool); + certificateFutureTask.thenRun( + () -> { + String certificateFileUrl = certificateFutureTask.join(); + BizEquipmentStandardCheckRecordApprovalMapper bizRecordApprovalMapper = SpringContextUtil.getBean(BizEquipmentStandardCheckRecordApprovalMapper.class); + if (StringUtils.isNotEmpty(certificateFileUrl)) { + BizEquipmentStandardCheckRecordApproval checkRecordApproval = new BizEquipmentStandardCheckRecordApproval(); + if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { + return; + } + checkRecordApproval.setId(id); + //原始记录文件 + checkRecordApproval.setCheckRecordFile(certificateFileUrl); + //更新记录 + int updateFlag = bizRecordApprovalMapper.updateById(checkRecordApproval); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + }); + } + } + ); + } /** * 生成更新证书的任务 @@ -134,7 +189,7 @@ private String createCertificateFile(BizBusinessDeviceMeasureApproval measureItemInfo) { try { - //过滤不能生成原始记录的报告 + //过滤不能生成证书的 if (checkOutUnablePrint(measureItemInfo)) { return ""; } @@ -178,7 +233,6 @@ prepareCustomCoverParams(map, measureItemInfo.getMeasureDataCalibratorList()); //这一块逻辑比较复杂 customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "1", measureItemInfo.getItemCategoryName())); - //与证书模板区分 map.put("id", snowflakeUtil.nextId()); //除了选用的模板不一致,模板配置流程是一致的 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java index a70a023..9b6b39b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java @@ -56,7 +56,6 @@ //生成核查记录单 String checkCertificateFileUrl = checkCertificateFile(request); BizEquipmentStandardCheckRecordApprovalMapper bizRecordApprovalMapper = SpringContextUtil.getBean(BizEquipmentStandardCheckRecordApprovalMapper.class); - if (StringUtils.isNotEmpty(checkCertificateFileUrl)) { //原始记录文件 request.setCheckRecordFile(checkCertificateFileUrl); @@ -72,6 +71,62 @@ } } + public void excuteMeasureTaskAsyn(Map map, Long id, String oldCertificateFile) { + List customTemplateUrls = new ArrayList<>(); + customTemplateUrls.add(oldCertificateFile); + //生成证书报告的 + CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile(MULTIFUNCTION_CHECK_DATA, "数据打印", null, map, true, null, customTemplateUrls), threadPool); + certificateFutureTask.thenRun( + () -> { + String certificateFileUrl = certificateFutureTask.join(); + BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); + if (StringUtils.isNotEmpty(certificateFileUrl)) { + BizBusinessDeviceMeasureApproval bizBusinessDeviceMeasureApproval = new BizBusinessDeviceMeasureApproval(); + if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { + return; + } + bizBusinessDeviceMeasureApproval.setId(id); + //原始记录文件 + bizBusinessDeviceMeasureApproval.setOriginalRecordFile(certificateFileUrl); + //更新记录 + int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + }); + } + } + ); + } + + + public void excuteCheckTaskAsyn(Map map, Long id, String oldCertificateFile) { + List customTemplateUrls = new ArrayList<>(); + customTemplateUrls.add(oldCertificateFile); + //生成证书报告的 + CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile(MULTIFUNCTION_CHECK_DATA, "数据打印", null, map, true, null, customTemplateUrls), threadPool); + certificateFutureTask.thenRun( + () -> { + String certificateFileUrl = certificateFutureTask.join(); + BizEquipmentStandardCheckRecordApprovalMapper bizRecordApprovalMapper = SpringContextUtil.getBean(BizEquipmentStandardCheckRecordApprovalMapper.class); + if (StringUtils.isNotEmpty(certificateFileUrl)) { + BizEquipmentStandardCheckRecordApproval checkRecordApproval = new BizEquipmentStandardCheckRecordApproval(); + if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { + return; + } + checkRecordApproval.setId(id); + //原始记录文件 + checkRecordApproval.setCheckRecordFile(certificateFileUrl); + //更新记录 + int updateFlag = bizRecordApprovalMapper.updateById(checkRecordApproval); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + }); + } + } + ); + } /** * 生成更新证书的任务 @@ -134,7 +189,7 @@ private String createCertificateFile(BizBusinessDeviceMeasureApproval measureItemInfo) { try { - //过滤不能生成原始记录的报告 + //过滤不能生成证书的 if (checkOutUnablePrint(measureItemInfo)) { return ""; } @@ -178,7 +233,6 @@ prepareCustomCoverParams(map, measureItemInfo.getMeasureDataCalibratorList()); //这一块逻辑比较复杂 customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "1", measureItemInfo.getItemCategoryName())); - //与证书模板区分 map.put("id", snowflakeUtil.nextId()); //除了选用的模板不一致,模板配置流程是一致的 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java index f98a3e4..f6910bf 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java @@ -1,5 +1,6 @@ package com.casic.missiles.service.listeners.processor; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; import com.alibaba.fastjson.JSONObject; @@ -22,6 +23,7 @@ import com.casic.missiles.model.business.BizBusinessDeviceMeasureInfo; import com.casic.missiles.model.business.BizBusinessOrderSampleRelation; import com.casic.missiles.model.eqpt.EqptEquipmentInfo; +import com.casic.missiles.service.Impl.eqpt.GenericEqptDataProvider; import com.casic.missiles.service.listeners.NotifyEventPostProcessor; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; @@ -29,6 +31,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Map; import java.util.Objects; /** @@ -39,6 +42,7 @@ @Slf4j @Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) public class CertificateReportEventPostProcessor implements NotifyEventPostProcessor { + @Override @Transactional public void doHandleNotifyEvent(NotifyEventStatusDTO notifyEventStatusDTO) { @@ -95,6 +99,9 @@ try { //存储到证书打印表 saveCertificatePrintInfo(deviceMeasureApproval); + GenericEqptDataProvider genericEqptDataProvider=SpringContextUtil.getBean(GenericEqptDataProvider.class); + Map map = BeanUtil.beanToMap(deviceMeasureApproval); + genericEqptDataProvider.excuteMeasureTaskAsyn(map,deviceMeasureApproval.getId(),deviceMeasureApproval.getCertificateFile()); } catch (Exception ex) { log.error("存储到证书打印表异常,证书报告&原始记录信息为{}, 异常信息为{}", JSONObject.toJSON(deviceMeasureApproval), ex); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java index a70a023..9b6b39b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java @@ -56,7 +56,6 @@ //生成核查记录单 String checkCertificateFileUrl = checkCertificateFile(request); BizEquipmentStandardCheckRecordApprovalMapper bizRecordApprovalMapper = SpringContextUtil.getBean(BizEquipmentStandardCheckRecordApprovalMapper.class); - if (StringUtils.isNotEmpty(checkCertificateFileUrl)) { //原始记录文件 request.setCheckRecordFile(checkCertificateFileUrl); @@ -72,6 +71,62 @@ } } + public void excuteMeasureTaskAsyn(Map map, Long id, String oldCertificateFile) { + List customTemplateUrls = new ArrayList<>(); + customTemplateUrls.add(oldCertificateFile); + //生成证书报告的 + CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile(MULTIFUNCTION_CHECK_DATA, "数据打印", null, map, true, null, customTemplateUrls), threadPool); + certificateFutureTask.thenRun( + () -> { + String certificateFileUrl = certificateFutureTask.join(); + BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); + if (StringUtils.isNotEmpty(certificateFileUrl)) { + BizBusinessDeviceMeasureApproval bizBusinessDeviceMeasureApproval = new BizBusinessDeviceMeasureApproval(); + if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { + return; + } + bizBusinessDeviceMeasureApproval.setId(id); + //原始记录文件 + bizBusinessDeviceMeasureApproval.setOriginalRecordFile(certificateFileUrl); + //更新记录 + int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + }); + } + } + ); + } + + + public void excuteCheckTaskAsyn(Map map, Long id, String oldCertificateFile) { + List customTemplateUrls = new ArrayList<>(); + customTemplateUrls.add(oldCertificateFile); + //生成证书报告的 + CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile(MULTIFUNCTION_CHECK_DATA, "数据打印", null, map, true, null, customTemplateUrls), threadPool); + certificateFutureTask.thenRun( + () -> { + String certificateFileUrl = certificateFutureTask.join(); + BizEquipmentStandardCheckRecordApprovalMapper bizRecordApprovalMapper = SpringContextUtil.getBean(BizEquipmentStandardCheckRecordApprovalMapper.class); + if (StringUtils.isNotEmpty(certificateFileUrl)) { + BizEquipmentStandardCheckRecordApproval checkRecordApproval = new BizEquipmentStandardCheckRecordApproval(); + if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { + return; + } + checkRecordApproval.setId(id); + //原始记录文件 + checkRecordApproval.setCheckRecordFile(certificateFileUrl); + //更新记录 + int updateFlag = bizRecordApprovalMapper.updateById(checkRecordApproval); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + }); + } + } + ); + } /** * 生成更新证书的任务 @@ -134,7 +189,7 @@ private String createCertificateFile(BizBusinessDeviceMeasureApproval measureItemInfo) { try { - //过滤不能生成原始记录的报告 + //过滤不能生成证书的 if (checkOutUnablePrint(measureItemInfo)) { return ""; } @@ -178,7 +233,6 @@ prepareCustomCoverParams(map, measureItemInfo.getMeasureDataCalibratorList()); //这一块逻辑比较复杂 customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "1", measureItemInfo.getItemCategoryName())); - //与证书模板区分 map.put("id", snowflakeUtil.nextId()); //除了选用的模板不一致,模板配置流程是一致的 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java index f98a3e4..f6910bf 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java @@ -1,5 +1,6 @@ package com.casic.missiles.service.listeners.processor; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; import com.alibaba.fastjson.JSONObject; @@ -22,6 +23,7 @@ import com.casic.missiles.model.business.BizBusinessDeviceMeasureInfo; import com.casic.missiles.model.business.BizBusinessOrderSampleRelation; import com.casic.missiles.model.eqpt.EqptEquipmentInfo; +import com.casic.missiles.service.Impl.eqpt.GenericEqptDataProvider; import com.casic.missiles.service.listeners.NotifyEventPostProcessor; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; @@ -29,6 +31,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Map; import java.util.Objects; /** @@ -39,6 +42,7 @@ @Slf4j @Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) public class CertificateReportEventPostProcessor implements NotifyEventPostProcessor { + @Override @Transactional public void doHandleNotifyEvent(NotifyEventStatusDTO notifyEventStatusDTO) { @@ -95,6 +99,9 @@ try { //存储到证书打印表 saveCertificatePrintInfo(deviceMeasureApproval); + GenericEqptDataProvider genericEqptDataProvider=SpringContextUtil.getBean(GenericEqptDataProvider.class); + Map map = BeanUtil.beanToMap(deviceMeasureApproval); + genericEqptDataProvider.excuteMeasureTaskAsyn(map,deviceMeasureApproval.getId(),deviceMeasureApproval.getCertificateFile()); } catch (Exception ex) { log.error("存储到证书打印表异常,证书报告&原始记录信息为{}, 异常信息为{}", JSONObject.toJSON(deviceMeasureApproval), ex); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java index 3a7161c..223d290 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java @@ -1,5 +1,6 @@ package com.casic.missiles.service.listeners.processor; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.lang.Assert; import com.casic.missiles.dto.flowable.NotifyEventStatusDTO; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -8,12 +9,14 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.equipment.BizEquipmentStandardCheckRecordApprovalMapper; import com.casic.missiles.model.equipment.BizEquipmentStandardCheckRecordApproval; +import com.casic.missiles.service.Impl.eqpt.GenericEqptDataProvider; import com.casic.missiles.service.listeners.NotifyEventPostProcessor; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Map; import java.util.Objects; /** @@ -27,6 +30,7 @@ @Override @Transactional public void doHandleNotifyEvent(NotifyEventStatusDTO notifyEventStatusDTO) { + Long id = Long.valueOf(notifyEventStatusDTO.getId()); Assert.isFalse(Objects.isNull(id), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); @@ -41,6 +45,9 @@ log.error("核查记录管理审批通过后处理失败"); throw new BusinessException(BusinessExceptionEnum.APPROVAL_PROCESSOR_HANDLE_FAILED); } + GenericEqptDataProvider genericEqptDataProvider=SpringContextUtil.getBean(GenericEqptDataProvider.class); + Map map = BeanUtil.beanToMap(checkRecordApproval); + genericEqptDataProvider.excuteCheckTaskAsyn(map,checkRecordApproval.getId(),checkRecordApproval.getCheckRecordFile()); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java index a70a023..9b6b39b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java @@ -56,7 +56,6 @@ //生成核查记录单 String checkCertificateFileUrl = checkCertificateFile(request); BizEquipmentStandardCheckRecordApprovalMapper bizRecordApprovalMapper = SpringContextUtil.getBean(BizEquipmentStandardCheckRecordApprovalMapper.class); - if (StringUtils.isNotEmpty(checkCertificateFileUrl)) { //原始记录文件 request.setCheckRecordFile(checkCertificateFileUrl); @@ -72,6 +71,62 @@ } } + public void excuteMeasureTaskAsyn(Map map, Long id, String oldCertificateFile) { + List customTemplateUrls = new ArrayList<>(); + customTemplateUrls.add(oldCertificateFile); + //生成证书报告的 + CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile(MULTIFUNCTION_CHECK_DATA, "数据打印", null, map, true, null, customTemplateUrls), threadPool); + certificateFutureTask.thenRun( + () -> { + String certificateFileUrl = certificateFutureTask.join(); + BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); + if (StringUtils.isNotEmpty(certificateFileUrl)) { + BizBusinessDeviceMeasureApproval bizBusinessDeviceMeasureApproval = new BizBusinessDeviceMeasureApproval(); + if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { + return; + } + bizBusinessDeviceMeasureApproval.setId(id); + //原始记录文件 + bizBusinessDeviceMeasureApproval.setOriginalRecordFile(certificateFileUrl); + //更新记录 + int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + }); + } + } + ); + } + + + public void excuteCheckTaskAsyn(Map map, Long id, String oldCertificateFile) { + List customTemplateUrls = new ArrayList<>(); + customTemplateUrls.add(oldCertificateFile); + //生成证书报告的 + CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile(MULTIFUNCTION_CHECK_DATA, "数据打印", null, map, true, null, customTemplateUrls), threadPool); + certificateFutureTask.thenRun( + () -> { + String certificateFileUrl = certificateFutureTask.join(); + BizEquipmentStandardCheckRecordApprovalMapper bizRecordApprovalMapper = SpringContextUtil.getBean(BizEquipmentStandardCheckRecordApprovalMapper.class); + if (StringUtils.isNotEmpty(certificateFileUrl)) { + BizEquipmentStandardCheckRecordApproval checkRecordApproval = new BizEquipmentStandardCheckRecordApproval(); + if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { + return; + } + checkRecordApproval.setId(id); + //原始记录文件 + checkRecordApproval.setCheckRecordFile(certificateFileUrl); + //更新记录 + int updateFlag = bizRecordApprovalMapper.updateById(checkRecordApproval); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + }); + } + } + ); + } /** * 生成更新证书的任务 @@ -134,7 +189,7 @@ private String createCertificateFile(BizBusinessDeviceMeasureApproval measureItemInfo) { try { - //过滤不能生成原始记录的报告 + //过滤不能生成证书的 if (checkOutUnablePrint(measureItemInfo)) { return ""; } @@ -178,7 +233,6 @@ prepareCustomCoverParams(map, measureItemInfo.getMeasureDataCalibratorList()); //这一块逻辑比较复杂 customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "1", measureItemInfo.getItemCategoryName())); - //与证书模板区分 map.put("id", snowflakeUtil.nextId()); //除了选用的模板不一致,模板配置流程是一致的 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java index f98a3e4..f6910bf 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java @@ -1,5 +1,6 @@ package com.casic.missiles.service.listeners.processor; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; import com.alibaba.fastjson.JSONObject; @@ -22,6 +23,7 @@ import com.casic.missiles.model.business.BizBusinessDeviceMeasureInfo; import com.casic.missiles.model.business.BizBusinessOrderSampleRelation; import com.casic.missiles.model.eqpt.EqptEquipmentInfo; +import com.casic.missiles.service.Impl.eqpt.GenericEqptDataProvider; import com.casic.missiles.service.listeners.NotifyEventPostProcessor; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; @@ -29,6 +31,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Map; import java.util.Objects; /** @@ -39,6 +42,7 @@ @Slf4j @Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) public class CertificateReportEventPostProcessor implements NotifyEventPostProcessor { + @Override @Transactional public void doHandleNotifyEvent(NotifyEventStatusDTO notifyEventStatusDTO) { @@ -95,6 +99,9 @@ try { //存储到证书打印表 saveCertificatePrintInfo(deviceMeasureApproval); + GenericEqptDataProvider genericEqptDataProvider=SpringContextUtil.getBean(GenericEqptDataProvider.class); + Map map = BeanUtil.beanToMap(deviceMeasureApproval); + genericEqptDataProvider.excuteMeasureTaskAsyn(map,deviceMeasureApproval.getId(),deviceMeasureApproval.getCertificateFile()); } catch (Exception ex) { log.error("存储到证书打印表异常,证书报告&原始记录信息为{}, 异常信息为{}", JSONObject.toJSON(deviceMeasureApproval), ex); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java index 3a7161c..223d290 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java @@ -1,5 +1,6 @@ package com.casic.missiles.service.listeners.processor; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.lang.Assert; import com.casic.missiles.dto.flowable.NotifyEventStatusDTO; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -8,12 +9,14 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.equipment.BizEquipmentStandardCheckRecordApprovalMapper; import com.casic.missiles.model.equipment.BizEquipmentStandardCheckRecordApproval; +import com.casic.missiles.service.Impl.eqpt.GenericEqptDataProvider; import com.casic.missiles.service.listeners.NotifyEventPostProcessor; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Map; import java.util.Objects; /** @@ -27,6 +30,7 @@ @Override @Transactional public void doHandleNotifyEvent(NotifyEventStatusDTO notifyEventStatusDTO) { + Long id = Long.valueOf(notifyEventStatusDTO.getId()); Assert.isFalse(Objects.isNull(id), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); @@ -41,6 +45,9 @@ log.error("核查记录管理审批通过后处理失败"); throw new BusinessException(BusinessExceptionEnum.APPROVAL_PROCESSOR_HANDLE_FAILED); } + GenericEqptDataProvider genericEqptDataProvider=SpringContextUtil.getBean(GenericEqptDataProvider.class); + Map map = BeanUtil.beanToMap(checkRecordApproval); + genericEqptDataProvider.excuteCheckTaskAsyn(map,checkRecordApproval.getId(),checkRecordApproval.getCheckRecordFile()); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java index b7624ad..03cbd72 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java @@ -109,7 +109,7 @@ //删除无效的文件 File invalidFile = new File(tempLocalFileDir); //删除运行空间下的文件 - deleteFile(invalidFile); +// deleteFile(invalidFile); } return miniName; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java index a70a023..9b6b39b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/GenericEqptDataProvider.java @@ -56,7 +56,6 @@ //生成核查记录单 String checkCertificateFileUrl = checkCertificateFile(request); BizEquipmentStandardCheckRecordApprovalMapper bizRecordApprovalMapper = SpringContextUtil.getBean(BizEquipmentStandardCheckRecordApprovalMapper.class); - if (StringUtils.isNotEmpty(checkCertificateFileUrl)) { //原始记录文件 request.setCheckRecordFile(checkCertificateFileUrl); @@ -72,6 +71,62 @@ } } + public void excuteMeasureTaskAsyn(Map map, Long id, String oldCertificateFile) { + List customTemplateUrls = new ArrayList<>(); + customTemplateUrls.add(oldCertificateFile); + //生成证书报告的 + CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile(MULTIFUNCTION_CHECK_DATA, "数据打印", null, map, true, null, customTemplateUrls), threadPool); + certificateFutureTask.thenRun( + () -> { + String certificateFileUrl = certificateFutureTask.join(); + BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); + if (StringUtils.isNotEmpty(certificateFileUrl)) { + BizBusinessDeviceMeasureApproval bizBusinessDeviceMeasureApproval = new BizBusinessDeviceMeasureApproval(); + if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { + return; + } + bizBusinessDeviceMeasureApproval.setId(id); + //原始记录文件 + bizBusinessDeviceMeasureApproval.setOriginalRecordFile(certificateFileUrl); + //更新记录 + int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + }); + } + } + ); + } + + + public void excuteCheckTaskAsyn(Map map, Long id, String oldCertificateFile) { + List customTemplateUrls = new ArrayList<>(); + customTemplateUrls.add(oldCertificateFile); + //生成证书报告的 + CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile(MULTIFUNCTION_CHECK_DATA, "数据打印", null, map, true, null, customTemplateUrls), threadPool); + certificateFutureTask.thenRun( + () -> { + String certificateFileUrl = certificateFutureTask.join(); + BizEquipmentStandardCheckRecordApprovalMapper bizRecordApprovalMapper = SpringContextUtil.getBean(BizEquipmentStandardCheckRecordApprovalMapper.class); + if (StringUtils.isNotEmpty(certificateFileUrl)) { + BizEquipmentStandardCheckRecordApproval checkRecordApproval = new BizEquipmentStandardCheckRecordApproval(); + if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { + return; + } + checkRecordApproval.setId(id); + //原始记录文件 + checkRecordApproval.setCheckRecordFile(certificateFileUrl); + //更新记录 + int updateFlag = bizRecordApprovalMapper.updateById(checkRecordApproval); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + }); + } + } + ); + } /** * 生成更新证书的任务 @@ -134,7 +189,7 @@ private String createCertificateFile(BizBusinessDeviceMeasureApproval measureItemInfo) { try { - //过滤不能生成原始记录的报告 + //过滤不能生成证书的 if (checkOutUnablePrint(measureItemInfo)) { return ""; } @@ -178,7 +233,6 @@ prepareCustomCoverParams(map, measureItemInfo.getMeasureDataCalibratorList()); //这一块逻辑比较复杂 customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "1", measureItemInfo.getItemCategoryName())); - //与证书模板区分 map.put("id", snowflakeUtil.nextId()); //除了选用的模板不一致,模板配置流程是一致的 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java index f98a3e4..f6910bf 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java @@ -1,5 +1,6 @@ package com.casic.missiles.service.listeners.processor; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; import com.alibaba.fastjson.JSONObject; @@ -22,6 +23,7 @@ import com.casic.missiles.model.business.BizBusinessDeviceMeasureInfo; import com.casic.missiles.model.business.BizBusinessOrderSampleRelation; import com.casic.missiles.model.eqpt.EqptEquipmentInfo; +import com.casic.missiles.service.Impl.eqpt.GenericEqptDataProvider; import com.casic.missiles.service.listeners.NotifyEventPostProcessor; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; @@ -29,6 +31,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Map; import java.util.Objects; /** @@ -39,6 +42,7 @@ @Slf4j @Service(ActionStatusBeanEnum.CERTIFICATE_REPORT_BEAN_NAME) public class CertificateReportEventPostProcessor implements NotifyEventPostProcessor { + @Override @Transactional public void doHandleNotifyEvent(NotifyEventStatusDTO notifyEventStatusDTO) { @@ -95,6 +99,9 @@ try { //存储到证书打印表 saveCertificatePrintInfo(deviceMeasureApproval); + GenericEqptDataProvider genericEqptDataProvider=SpringContextUtil.getBean(GenericEqptDataProvider.class); + Map map = BeanUtil.beanToMap(deviceMeasureApproval); + genericEqptDataProvider.excuteMeasureTaskAsyn(map,deviceMeasureApproval.getId(),deviceMeasureApproval.getCertificateFile()); } catch (Exception ex) { log.error("存储到证书打印表异常,证书报告&原始记录信息为{}, 异常信息为{}", JSONObject.toJSON(deviceMeasureApproval), ex); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java index 3a7161c..223d290 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java @@ -1,5 +1,6 @@ package com.casic.missiles.service.listeners.processor; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.lang.Assert; import com.casic.missiles.dto.flowable.NotifyEventStatusDTO; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -8,12 +9,14 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.equipment.BizEquipmentStandardCheckRecordApprovalMapper; import com.casic.missiles.model.equipment.BizEquipmentStandardCheckRecordApproval; +import com.casic.missiles.service.Impl.eqpt.GenericEqptDataProvider; import com.casic.missiles.service.listeners.NotifyEventPostProcessor; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Map; import java.util.Objects; /** @@ -27,6 +30,7 @@ @Override @Transactional public void doHandleNotifyEvent(NotifyEventStatusDTO notifyEventStatusDTO) { + Long id = Long.valueOf(notifyEventStatusDTO.getId()); Assert.isFalse(Objects.isNull(id), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); @@ -41,6 +45,9 @@ log.error("核查记录管理审批通过后处理失败"); throw new BusinessException(BusinessExceptionEnum.APPROVAL_PROCESSOR_HANDLE_FAILED); } + GenericEqptDataProvider genericEqptDataProvider=SpringContextUtil.getBean(GenericEqptDataProvider.class); + Map map = BeanUtil.beanToMap(checkRecordApproval); + genericEqptDataProvider.excuteCheckTaskAsyn(map,checkRecordApproval.getId(),checkRecordApproval.getCheckRecordFile()); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java index b7624ad..03cbd72 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java @@ -109,7 +109,7 @@ //删除无效的文件 File invalidFile = new File(tempLocalFileDir); //删除运行空间下的文件 - deleteFile(invalidFile); +// deleteFile(invalidFile); } return miniName; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/ElectronicSignSeal.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/ElectronicSignSeal.java index 752a06d..1372729 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/ElectronicSignSeal.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/ElectronicSignSeal.java @@ -118,6 +118,9 @@ } } } else { + if(metaDataMap.containsKey(flowField)||ObjectUtils.isNotEmpty(metaDataMap.get(flowField))){ + return; + } //配置参数中包含有工作流的字段 List> approvalLogList = approvalOperateService.approvalLog((String) metaDataMap.get(flowField)); bindSignPictureKey(filePrintRegister, imageConfig, approvalLogList);