diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java index 8c3d31b..ebc9257 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java @@ -24,6 +24,7 @@ String MEASURE_DATA = "检定数据管理"; String MULTIFUNCTION_CHECK_DATA = "多功能核查数据"; String MEASURE_DATA_APPROVAL = "检定数据管理审批"; + String ORIGINAL_RECORD_APPROVAL = "检定数据原始记录审批"; String RESISTANCE_CHECK_DATA = "活塞式压力"; String ELECTRICAL_SAFETY_CHECK_DATA = "多功能电气安全"; String DC_POWER_SUPPLY_CHECK_DATA = "直流稳压电源核查数据"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java index 8c3d31b..ebc9257 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java @@ -24,6 +24,7 @@ String MEASURE_DATA = "检定数据管理"; String MULTIFUNCTION_CHECK_DATA = "多功能核查数据"; String MEASURE_DATA_APPROVAL = "检定数据管理审批"; + String ORIGINAL_RECORD_APPROVAL = "检定数据原始记录审批"; String RESISTANCE_CHECK_DATA = "活塞式压力"; String ELECTRICAL_SAFETY_CHECK_DATA = "多功能电气安全"; String DC_POWER_SUPPLY_CHECK_DATA = "直流稳压电源核查数据"; 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 88717fa..aadfaf9 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 @@ -13,6 +13,7 @@ import com.casic.missiles.model.equipment.BizEquipmentStandardCheckRecordApproval; import com.casic.missiles.service.Impl.eqpt.standard.StandardEquipmentPrint; import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.utils.SnowflakeUtil; import com.casic.missiles.utils.SpringContextUtil; import com.gexin.fastjson.JSON; import lombok.RequiredArgsConstructor; @@ -76,64 +77,55 @@ * @param id * @param oldCertificateFile */ - public void excuteMeasureTaskAsyn(Map map, Long id, String oldCertificateFile,String oldOriginRecordFile) { + public void excuteMeasureTaskAsyn(Map map, Long id, String oldCertificateFile, String oldOriginRecordFile) { ThreadPoolExecutor threadPool = new ThreadPoolExecutor(1, 2, 100, TimeUnit.SECONDS, new LinkedBlockingQueue<>(2)); log.info("measure data is check,please wait ..."); List customTemplateUrls = new ArrayList<>(); - if(StringUtils.isNotEmpty(oldCertificateFile)){ - customTemplateUrls.add(oldCertificateFile); + customTemplateUrls.add(oldCertificateFile); + CompletableFuture certificateFutureTask = null; + if (StringUtils.isNotEmpty(oldCertificateFile)) { //生成证书报告的,需要改变为动态选择性 - CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + certificateFutureTask = CompletableFuture.supplyAsync( () -> printFileRegister.registerPrintFile(MEASURE_DATA_APPROVAL, "数据打印", 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.setCertificateFile(certificateFileUrl); - //更新记录 - int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); - Assert.isFalse(updateFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); - }); - } - } - ); } - if(StringUtils.isNotEmpty(oldOriginRecordFile)){ - List customOriginUrls = new ArrayList<>(); - customOriginUrls.add(oldOriginRecordFile); + CompletableFuture originFutureTask = null; + List customOriginUrls = new ArrayList<>(); + customOriginUrls.add(oldOriginRecordFile); + SnowflakeUtil snowflakeUtil = new SnowflakeUtil(); + map.put("id", snowflakeUtil.nextId()); + if (StringUtils.isNotEmpty(oldOriginRecordFile)) { //生成证书报告的,需要改变为动态选择性 - CompletableFuture originFutureTask = CompletableFuture.supplyAsync( - () -> printFileRegister.registerPrintFile(MEASURE_DATA_APPROVAL, "数据打印", null, map, true, null, customOriginUrls), threadPool); - originFutureTask.thenRun( - () -> { - String originFileUrl = originFutureTask.join(); - BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); - if (StringUtils.isNotEmpty(originFileUrl)) { - BizBusinessDeviceMeasureApproval bizBusinessDeviceMeasureApproval = new BizBusinessDeviceMeasureApproval(); - if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { - return; - } - bizBusinessDeviceMeasureApproval.setId(id); - //原始记录文件 - bizBusinessDeviceMeasureApproval.setOriginalRecordFile(originFileUrl); - //更新记录 - int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); - Assert.isFalse(updateFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); - }); - } - } - ); + originFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile(ORIGINAL_RECORD_APPROVAL, "数据打印", null, map, true, null, customOriginUrls), threadPool); } + CompletableFuture tempCertificateFutureTask = certificateFutureTask; + CompletableFuture tempOriginFutureTask = originFutureTask; + //等到所有线程异步结束 + CompletableFuture combinedFuture = CompletableFuture.allOf(tempCertificateFutureTask, tempOriginFutureTask); + combinedFuture.thenRun( + () -> { + BizBusinessDeviceMeasureApproval measureApproval = new BizBusinessDeviceMeasureApproval(); + measureApproval.setId(id); + if(tempCertificateFutureTask!=null){ + measureApproval.setCertificateFile(tempCertificateFutureTask.join()); + } + if(tempOriginFutureTask!=null){ + measureApproval.setOriginalRecordFile(tempOriginFutureTask.join()); + } + BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); + if (StringUtils.isNotEmpty(measureApproval.getOriginalRecordFile())|| StringUtils.isNotEmpty(measureApproval.getCertificateFile())) { + if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { + return; + } + //更新记录 + int updateFlag = bizBusinessMapper.updateById(measureApproval); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + }); + } + } + ); } /** diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java index 8c3d31b..ebc9257 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java @@ -24,6 +24,7 @@ String MEASURE_DATA = "检定数据管理"; String MULTIFUNCTION_CHECK_DATA = "多功能核查数据"; String MEASURE_DATA_APPROVAL = "检定数据管理审批"; + String ORIGINAL_RECORD_APPROVAL = "检定数据原始记录审批"; String RESISTANCE_CHECK_DATA = "活塞式压力"; String ELECTRICAL_SAFETY_CHECK_DATA = "多功能电气安全"; String DC_POWER_SUPPLY_CHECK_DATA = "直流稳压电源核查数据"; 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 88717fa..aadfaf9 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 @@ -13,6 +13,7 @@ import com.casic.missiles.model.equipment.BizEquipmentStandardCheckRecordApproval; import com.casic.missiles.service.Impl.eqpt.standard.StandardEquipmentPrint; import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.utils.SnowflakeUtil; import com.casic.missiles.utils.SpringContextUtil; import com.gexin.fastjson.JSON; import lombok.RequiredArgsConstructor; @@ -76,64 +77,55 @@ * @param id * @param oldCertificateFile */ - public void excuteMeasureTaskAsyn(Map map, Long id, String oldCertificateFile,String oldOriginRecordFile) { + public void excuteMeasureTaskAsyn(Map map, Long id, String oldCertificateFile, String oldOriginRecordFile) { ThreadPoolExecutor threadPool = new ThreadPoolExecutor(1, 2, 100, TimeUnit.SECONDS, new LinkedBlockingQueue<>(2)); log.info("measure data is check,please wait ..."); List customTemplateUrls = new ArrayList<>(); - if(StringUtils.isNotEmpty(oldCertificateFile)){ - customTemplateUrls.add(oldCertificateFile); + customTemplateUrls.add(oldCertificateFile); + CompletableFuture certificateFutureTask = null; + if (StringUtils.isNotEmpty(oldCertificateFile)) { //生成证书报告的,需要改变为动态选择性 - CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + certificateFutureTask = CompletableFuture.supplyAsync( () -> printFileRegister.registerPrintFile(MEASURE_DATA_APPROVAL, "数据打印", 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.setCertificateFile(certificateFileUrl); - //更新记录 - int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); - Assert.isFalse(updateFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); - }); - } - } - ); } - if(StringUtils.isNotEmpty(oldOriginRecordFile)){ - List customOriginUrls = new ArrayList<>(); - customOriginUrls.add(oldOriginRecordFile); + CompletableFuture originFutureTask = null; + List customOriginUrls = new ArrayList<>(); + customOriginUrls.add(oldOriginRecordFile); + SnowflakeUtil snowflakeUtil = new SnowflakeUtil(); + map.put("id", snowflakeUtil.nextId()); + if (StringUtils.isNotEmpty(oldOriginRecordFile)) { //生成证书报告的,需要改变为动态选择性 - CompletableFuture originFutureTask = CompletableFuture.supplyAsync( - () -> printFileRegister.registerPrintFile(MEASURE_DATA_APPROVAL, "数据打印", null, map, true, null, customOriginUrls), threadPool); - originFutureTask.thenRun( - () -> { - String originFileUrl = originFutureTask.join(); - BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); - if (StringUtils.isNotEmpty(originFileUrl)) { - BizBusinessDeviceMeasureApproval bizBusinessDeviceMeasureApproval = new BizBusinessDeviceMeasureApproval(); - if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { - return; - } - bizBusinessDeviceMeasureApproval.setId(id); - //原始记录文件 - bizBusinessDeviceMeasureApproval.setOriginalRecordFile(originFileUrl); - //更新记录 - int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); - Assert.isFalse(updateFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); - }); - } - } - ); + originFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile(ORIGINAL_RECORD_APPROVAL, "数据打印", null, map, true, null, customOriginUrls), threadPool); } + CompletableFuture tempCertificateFutureTask = certificateFutureTask; + CompletableFuture tempOriginFutureTask = originFutureTask; + //等到所有线程异步结束 + CompletableFuture combinedFuture = CompletableFuture.allOf(tempCertificateFutureTask, tempOriginFutureTask); + combinedFuture.thenRun( + () -> { + BizBusinessDeviceMeasureApproval measureApproval = new BizBusinessDeviceMeasureApproval(); + measureApproval.setId(id); + if(tempCertificateFutureTask!=null){ + measureApproval.setCertificateFile(tempCertificateFutureTask.join()); + } + if(tempOriginFutureTask!=null){ + measureApproval.setOriginalRecordFile(tempOriginFutureTask.join()); + } + BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); + if (StringUtils.isNotEmpty(measureApproval.getOriginalRecordFile())|| StringUtils.isNotEmpty(measureApproval.getCertificateFile())) { + if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { + return; + } + //更新记录 + int updateFlag = bizBusinessMapper.updateById(measureApproval); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + }); + } + } + ); } /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java index 3ec1e9a..453d749 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java @@ -151,6 +151,7 @@ customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "1", measureItemInfo.getItemCategoryName())); //与证书模板区分 SnowflakeUtil snowflakeUtil = new SnowflakeUtil(); + map.put("pdfStatus", 1); map.put("id", snowflakeUtil.nextId()); log.debug("original before ----"); //除了选用的模板不一致,模板配置流程是一致的 @@ -251,6 +252,8 @@ map.put("test", "\uF0A3"); map.put("calibrate", "\uF0A3"); map.put("measure", "\uF0A3"); + map.put("surveyor","{{@surveyor}}"); + map.put("auditor","{{@auditor}}"); //选择方框 switch ((String) map.get("measureCategoryName")) { case TEST_REPORT: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java index 8c3d31b..ebc9257 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java @@ -24,6 +24,7 @@ String MEASURE_DATA = "检定数据管理"; String MULTIFUNCTION_CHECK_DATA = "多功能核查数据"; String MEASURE_DATA_APPROVAL = "检定数据管理审批"; + String ORIGINAL_RECORD_APPROVAL = "检定数据原始记录审批"; String RESISTANCE_CHECK_DATA = "活塞式压力"; String ELECTRICAL_SAFETY_CHECK_DATA = "多功能电气安全"; String DC_POWER_SUPPLY_CHECK_DATA = "直流稳压电源核查数据"; 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 88717fa..aadfaf9 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 @@ -13,6 +13,7 @@ import com.casic.missiles.model.equipment.BizEquipmentStandardCheckRecordApproval; import com.casic.missiles.service.Impl.eqpt.standard.StandardEquipmentPrint; import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.utils.SnowflakeUtil; import com.casic.missiles.utils.SpringContextUtil; import com.gexin.fastjson.JSON; import lombok.RequiredArgsConstructor; @@ -76,64 +77,55 @@ * @param id * @param oldCertificateFile */ - public void excuteMeasureTaskAsyn(Map map, Long id, String oldCertificateFile,String oldOriginRecordFile) { + public void excuteMeasureTaskAsyn(Map map, Long id, String oldCertificateFile, String oldOriginRecordFile) { ThreadPoolExecutor threadPool = new ThreadPoolExecutor(1, 2, 100, TimeUnit.SECONDS, new LinkedBlockingQueue<>(2)); log.info("measure data is check,please wait ..."); List customTemplateUrls = new ArrayList<>(); - if(StringUtils.isNotEmpty(oldCertificateFile)){ - customTemplateUrls.add(oldCertificateFile); + customTemplateUrls.add(oldCertificateFile); + CompletableFuture certificateFutureTask = null; + if (StringUtils.isNotEmpty(oldCertificateFile)) { //生成证书报告的,需要改变为动态选择性 - CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + certificateFutureTask = CompletableFuture.supplyAsync( () -> printFileRegister.registerPrintFile(MEASURE_DATA_APPROVAL, "数据打印", 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.setCertificateFile(certificateFileUrl); - //更新记录 - int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); - Assert.isFalse(updateFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); - }); - } - } - ); } - if(StringUtils.isNotEmpty(oldOriginRecordFile)){ - List customOriginUrls = new ArrayList<>(); - customOriginUrls.add(oldOriginRecordFile); + CompletableFuture originFutureTask = null; + List customOriginUrls = new ArrayList<>(); + customOriginUrls.add(oldOriginRecordFile); + SnowflakeUtil snowflakeUtil = new SnowflakeUtil(); + map.put("id", snowflakeUtil.nextId()); + if (StringUtils.isNotEmpty(oldOriginRecordFile)) { //生成证书报告的,需要改变为动态选择性 - CompletableFuture originFutureTask = CompletableFuture.supplyAsync( - () -> printFileRegister.registerPrintFile(MEASURE_DATA_APPROVAL, "数据打印", null, map, true, null, customOriginUrls), threadPool); - originFutureTask.thenRun( - () -> { - String originFileUrl = originFutureTask.join(); - BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); - if (StringUtils.isNotEmpty(originFileUrl)) { - BizBusinessDeviceMeasureApproval bizBusinessDeviceMeasureApproval = new BizBusinessDeviceMeasureApproval(); - if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { - return; - } - bizBusinessDeviceMeasureApproval.setId(id); - //原始记录文件 - bizBusinessDeviceMeasureApproval.setOriginalRecordFile(originFileUrl); - //更新记录 - int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); - Assert.isFalse(updateFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); - }); - } - } - ); + originFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile(ORIGINAL_RECORD_APPROVAL, "数据打印", null, map, true, null, customOriginUrls), threadPool); } + CompletableFuture tempCertificateFutureTask = certificateFutureTask; + CompletableFuture tempOriginFutureTask = originFutureTask; + //等到所有线程异步结束 + CompletableFuture combinedFuture = CompletableFuture.allOf(tempCertificateFutureTask, tempOriginFutureTask); + combinedFuture.thenRun( + () -> { + BizBusinessDeviceMeasureApproval measureApproval = new BizBusinessDeviceMeasureApproval(); + measureApproval.setId(id); + if(tempCertificateFutureTask!=null){ + measureApproval.setCertificateFile(tempCertificateFutureTask.join()); + } + if(tempOriginFutureTask!=null){ + measureApproval.setOriginalRecordFile(tempOriginFutureTask.join()); + } + BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); + if (StringUtils.isNotEmpty(measureApproval.getOriginalRecordFile())|| StringUtils.isNotEmpty(measureApproval.getCertificateFile())) { + if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { + return; + } + //更新记录 + int updateFlag = bizBusinessMapper.updateById(measureApproval); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + }); + } + } + ); } /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java index 3ec1e9a..453d749 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java @@ -151,6 +151,7 @@ customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "1", measureItemInfo.getItemCategoryName())); //与证书模板区分 SnowflakeUtil snowflakeUtil = new SnowflakeUtil(); + map.put("pdfStatus", 1); map.put("id", snowflakeUtil.nextId()); log.debug("original before ----"); //除了选用的模板不一致,模板配置流程是一致的 @@ -251,6 +252,8 @@ map.put("test", "\uF0A3"); map.put("calibrate", "\uF0A3"); map.put("measure", "\uF0A3"); + map.put("surveyor","{{@surveyor}}"); + map.put("auditor","{{@auditor}}"); //选择方框 switch ((String) map.get("measureCategoryName")) { case TEST_REPORT: diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java index f2dd318..3aa20cc 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java @@ -4,7 +4,6 @@ import com.casic.missiles.dto.business.deviceMeasure.MeasureEquipmentInfoDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.PrintFileModuleNameEnum; -import com.casic.missiles.enums.business.MeasureCategoryEnum; import com.casic.missiles.enums.business.MeasureItemBelongStandardEquipmentDictEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BizBusinessDeviceMeasureApprovalMapper; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java index 8c3d31b..ebc9257 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java @@ -24,6 +24,7 @@ String MEASURE_DATA = "检定数据管理"; String MULTIFUNCTION_CHECK_DATA = "多功能核查数据"; String MEASURE_DATA_APPROVAL = "检定数据管理审批"; + String ORIGINAL_RECORD_APPROVAL = "检定数据原始记录审批"; String RESISTANCE_CHECK_DATA = "活塞式压力"; String ELECTRICAL_SAFETY_CHECK_DATA = "多功能电气安全"; String DC_POWER_SUPPLY_CHECK_DATA = "直流稳压电源核查数据"; 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 88717fa..aadfaf9 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 @@ -13,6 +13,7 @@ import com.casic.missiles.model.equipment.BizEquipmentStandardCheckRecordApproval; import com.casic.missiles.service.Impl.eqpt.standard.StandardEquipmentPrint; import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.utils.SnowflakeUtil; import com.casic.missiles.utils.SpringContextUtil; import com.gexin.fastjson.JSON; import lombok.RequiredArgsConstructor; @@ -76,64 +77,55 @@ * @param id * @param oldCertificateFile */ - public void excuteMeasureTaskAsyn(Map map, Long id, String oldCertificateFile,String oldOriginRecordFile) { + public void excuteMeasureTaskAsyn(Map map, Long id, String oldCertificateFile, String oldOriginRecordFile) { ThreadPoolExecutor threadPool = new ThreadPoolExecutor(1, 2, 100, TimeUnit.SECONDS, new LinkedBlockingQueue<>(2)); log.info("measure data is check,please wait ..."); List customTemplateUrls = new ArrayList<>(); - if(StringUtils.isNotEmpty(oldCertificateFile)){ - customTemplateUrls.add(oldCertificateFile); + customTemplateUrls.add(oldCertificateFile); + CompletableFuture certificateFutureTask = null; + if (StringUtils.isNotEmpty(oldCertificateFile)) { //生成证书报告的,需要改变为动态选择性 - CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + certificateFutureTask = CompletableFuture.supplyAsync( () -> printFileRegister.registerPrintFile(MEASURE_DATA_APPROVAL, "数据打印", 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.setCertificateFile(certificateFileUrl); - //更新记录 - int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); - Assert.isFalse(updateFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); - }); - } - } - ); } - if(StringUtils.isNotEmpty(oldOriginRecordFile)){ - List customOriginUrls = new ArrayList<>(); - customOriginUrls.add(oldOriginRecordFile); + CompletableFuture originFutureTask = null; + List customOriginUrls = new ArrayList<>(); + customOriginUrls.add(oldOriginRecordFile); + SnowflakeUtil snowflakeUtil = new SnowflakeUtil(); + map.put("id", snowflakeUtil.nextId()); + if (StringUtils.isNotEmpty(oldOriginRecordFile)) { //生成证书报告的,需要改变为动态选择性 - CompletableFuture originFutureTask = CompletableFuture.supplyAsync( - () -> printFileRegister.registerPrintFile(MEASURE_DATA_APPROVAL, "数据打印", null, map, true, null, customOriginUrls), threadPool); - originFutureTask.thenRun( - () -> { - String originFileUrl = originFutureTask.join(); - BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); - if (StringUtils.isNotEmpty(originFileUrl)) { - BizBusinessDeviceMeasureApproval bizBusinessDeviceMeasureApproval = new BizBusinessDeviceMeasureApproval(); - if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { - return; - } - bizBusinessDeviceMeasureApproval.setId(id); - //原始记录文件 - bizBusinessDeviceMeasureApproval.setOriginalRecordFile(originFileUrl); - //更新记录 - int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); - Assert.isFalse(updateFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); - }); - } - } - ); + originFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile(ORIGINAL_RECORD_APPROVAL, "数据打印", null, map, true, null, customOriginUrls), threadPool); } + CompletableFuture tempCertificateFutureTask = certificateFutureTask; + CompletableFuture tempOriginFutureTask = originFutureTask; + //等到所有线程异步结束 + CompletableFuture combinedFuture = CompletableFuture.allOf(tempCertificateFutureTask, tempOriginFutureTask); + combinedFuture.thenRun( + () -> { + BizBusinessDeviceMeasureApproval measureApproval = new BizBusinessDeviceMeasureApproval(); + measureApproval.setId(id); + if(tempCertificateFutureTask!=null){ + measureApproval.setCertificateFile(tempCertificateFutureTask.join()); + } + if(tempOriginFutureTask!=null){ + measureApproval.setOriginalRecordFile(tempOriginFutureTask.join()); + } + BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); + if (StringUtils.isNotEmpty(measureApproval.getOriginalRecordFile())|| StringUtils.isNotEmpty(measureApproval.getCertificateFile())) { + if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { + return; + } + //更新记录 + int updateFlag = bizBusinessMapper.updateById(measureApproval); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + }); + } + } + ); } /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java index 3ec1e9a..453d749 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java @@ -151,6 +151,7 @@ customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "1", measureItemInfo.getItemCategoryName())); //与证书模板区分 SnowflakeUtil snowflakeUtil = new SnowflakeUtil(); + map.put("pdfStatus", 1); map.put("id", snowflakeUtil.nextId()); log.debug("original before ----"); //除了选用的模板不一致,模板配置流程是一致的 @@ -251,6 +252,8 @@ map.put("test", "\uF0A3"); map.put("calibrate", "\uF0A3"); map.put("measure", "\uF0A3"); + map.put("surveyor","{{@surveyor}}"); + map.put("auditor","{{@auditor}}"); //选择方框 switch ((String) map.get("measureCategoryName")) { case TEST_REPORT: diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java index f2dd318..3aa20cc 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java @@ -4,7 +4,6 @@ import com.casic.missiles.dto.business.deviceMeasure.MeasureEquipmentInfoDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.PrintFileModuleNameEnum; -import com.casic.missiles.enums.business.MeasureCategoryEnum; import com.casic.missiles.enums.business.MeasureItemBelongStandardEquipmentDictEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BizBusinessDeviceMeasureApprovalMapper; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java index d7ca374..adcbe20 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java @@ -65,6 +65,12 @@ return subfileUrls; } + public static void main(String[] args ){ + wordFullSeam("D:\\casic\\tmp\\1762311829649956866\\测试报告.pdf","D:\\casic\\tmp\\1762311829649956866\\海口实验室证书或报告发放_1699357889588.png", + "D:\\casic\\tmp\\1762311829649956866\\测试报告2.pdf"); + + } + /** * 骑缝章只存在一个章在进行打印 */ diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java index 8c3d31b..ebc9257 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java @@ -24,6 +24,7 @@ String MEASURE_DATA = "检定数据管理"; String MULTIFUNCTION_CHECK_DATA = "多功能核查数据"; String MEASURE_DATA_APPROVAL = "检定数据管理审批"; + String ORIGINAL_RECORD_APPROVAL = "检定数据原始记录审批"; String RESISTANCE_CHECK_DATA = "活塞式压力"; String ELECTRICAL_SAFETY_CHECK_DATA = "多功能电气安全"; String DC_POWER_SUPPLY_CHECK_DATA = "直流稳压电源核查数据"; 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 88717fa..aadfaf9 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 @@ -13,6 +13,7 @@ import com.casic.missiles.model.equipment.BizEquipmentStandardCheckRecordApproval; import com.casic.missiles.service.Impl.eqpt.standard.StandardEquipmentPrint; import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.utils.SnowflakeUtil; import com.casic.missiles.utils.SpringContextUtil; import com.gexin.fastjson.JSON; import lombok.RequiredArgsConstructor; @@ -76,64 +77,55 @@ * @param id * @param oldCertificateFile */ - public void excuteMeasureTaskAsyn(Map map, Long id, String oldCertificateFile,String oldOriginRecordFile) { + public void excuteMeasureTaskAsyn(Map map, Long id, String oldCertificateFile, String oldOriginRecordFile) { ThreadPoolExecutor threadPool = new ThreadPoolExecutor(1, 2, 100, TimeUnit.SECONDS, new LinkedBlockingQueue<>(2)); log.info("measure data is check,please wait ..."); List customTemplateUrls = new ArrayList<>(); - if(StringUtils.isNotEmpty(oldCertificateFile)){ - customTemplateUrls.add(oldCertificateFile); + customTemplateUrls.add(oldCertificateFile); + CompletableFuture certificateFutureTask = null; + if (StringUtils.isNotEmpty(oldCertificateFile)) { //生成证书报告的,需要改变为动态选择性 - CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + certificateFutureTask = CompletableFuture.supplyAsync( () -> printFileRegister.registerPrintFile(MEASURE_DATA_APPROVAL, "数据打印", 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.setCertificateFile(certificateFileUrl); - //更新记录 - int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); - Assert.isFalse(updateFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); - }); - } - } - ); } - if(StringUtils.isNotEmpty(oldOriginRecordFile)){ - List customOriginUrls = new ArrayList<>(); - customOriginUrls.add(oldOriginRecordFile); + CompletableFuture originFutureTask = null; + List customOriginUrls = new ArrayList<>(); + customOriginUrls.add(oldOriginRecordFile); + SnowflakeUtil snowflakeUtil = new SnowflakeUtil(); + map.put("id", snowflakeUtil.nextId()); + if (StringUtils.isNotEmpty(oldOriginRecordFile)) { //生成证书报告的,需要改变为动态选择性 - CompletableFuture originFutureTask = CompletableFuture.supplyAsync( - () -> printFileRegister.registerPrintFile(MEASURE_DATA_APPROVAL, "数据打印", null, map, true, null, customOriginUrls), threadPool); - originFutureTask.thenRun( - () -> { - String originFileUrl = originFutureTask.join(); - BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); - if (StringUtils.isNotEmpty(originFileUrl)) { - BizBusinessDeviceMeasureApproval bizBusinessDeviceMeasureApproval = new BizBusinessDeviceMeasureApproval(); - if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { - return; - } - bizBusinessDeviceMeasureApproval.setId(id); - //原始记录文件 - bizBusinessDeviceMeasureApproval.setOriginalRecordFile(originFileUrl); - //更新记录 - int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); - Assert.isFalse(updateFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); - }); - } - } - ); + originFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile(ORIGINAL_RECORD_APPROVAL, "数据打印", null, map, true, null, customOriginUrls), threadPool); } + CompletableFuture tempCertificateFutureTask = certificateFutureTask; + CompletableFuture tempOriginFutureTask = originFutureTask; + //等到所有线程异步结束 + CompletableFuture combinedFuture = CompletableFuture.allOf(tempCertificateFutureTask, tempOriginFutureTask); + combinedFuture.thenRun( + () -> { + BizBusinessDeviceMeasureApproval measureApproval = new BizBusinessDeviceMeasureApproval(); + measureApproval.setId(id); + if(tempCertificateFutureTask!=null){ + measureApproval.setCertificateFile(tempCertificateFutureTask.join()); + } + if(tempOriginFutureTask!=null){ + measureApproval.setOriginalRecordFile(tempOriginFutureTask.join()); + } + BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); + if (StringUtils.isNotEmpty(measureApproval.getOriginalRecordFile())|| StringUtils.isNotEmpty(measureApproval.getCertificateFile())) { + if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { + return; + } + //更新记录 + int updateFlag = bizBusinessMapper.updateById(measureApproval); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + }); + } + } + ); } /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java index 3ec1e9a..453d749 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java @@ -151,6 +151,7 @@ customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "1", measureItemInfo.getItemCategoryName())); //与证书模板区分 SnowflakeUtil snowflakeUtil = new SnowflakeUtil(); + map.put("pdfStatus", 1); map.put("id", snowflakeUtil.nextId()); log.debug("original before ----"); //除了选用的模板不一致,模板配置流程是一致的 @@ -251,6 +252,8 @@ map.put("test", "\uF0A3"); map.put("calibrate", "\uF0A3"); map.put("measure", "\uF0A3"); + map.put("surveyor","{{@surveyor}}"); + map.put("auditor","{{@auditor}}"); //选择方框 switch ((String) map.get("measureCategoryName")) { case TEST_REPORT: diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java index f2dd318..3aa20cc 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java @@ -4,7 +4,6 @@ import com.casic.missiles.dto.business.deviceMeasure.MeasureEquipmentInfoDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.PrintFileModuleNameEnum; -import com.casic.missiles.enums.business.MeasureCategoryEnum; import com.casic.missiles.enums.business.MeasureItemBelongStandardEquipmentDictEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BizBusinessDeviceMeasureApprovalMapper; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java index d7ca374..adcbe20 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java @@ -65,6 +65,12 @@ return subfileUrls; } + public static void main(String[] args ){ + wordFullSeam("D:\\casic\\tmp\\1762311829649956866\\测试报告.pdf","D:\\casic\\tmp\\1762311829649956866\\海口实验室证书或报告发放_1699357889588.png", + "D:\\casic\\tmp\\1762311829649956866\\测试报告2.pdf"); + + } + /** * 骑缝章只存在一个章在进行打印 */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java index 2d67d61..5b235f8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java @@ -96,8 +96,9 @@ private static String checkExtendSeal(String wordOldUrl, ElectronicImage selectSeal, FilePrintRegister filePrintRegister) { if (ObjectUtils.isNotEmpty(selectSeal)) { //默认转为docx,只需要进行docx的替换即可 - String pdfNewUrl = filePrintRegister.getFileNames().get(0).replaceAll("docx", "pdf"); - String tempPdfUrl = filePrintRegister.getTemDir() + pdfNewUrl; + String[] pdfUrl = filePrintRegister.getFileNames().get(0).split("_"); + String pdfNewUrl = pdfUrl[0] + ".pdf"; + String tempPdfUrl = filePrintRegister.getTemDir() +"XH"+ pdfNewUrl; FilePrintRegisterUtils.wordToPdf(wordOldUrl, tempPdfUrl); DocPictureProvider.wordFullSeam(tempPdfUrl, selectSeal.getElectronicSealImageUrl(), filePrintRegister.getTemDir() + pdfNewUrl); return filePrintRegister.getTemDir() + pdfNewUrl; @@ -231,7 +232,7 @@ for (ElectronicImage absolutePathImage : absolutePathImageList) { if (ObjectUtils.isNotEmpty(absolutePathImage.getImageConfig())) { //列表章处理的方法 - DocPictureProvider.populateMultiImage( absolutePathImage,document); + DocPictureProvider.populateMultiImage(absolutePathImage, document); } else { //不是骑缝章,就是认定章,获取默认段落信息,进行添加电子印章的信息位置 Section section = document.getSections().get(DEFAULT_SEAL_INDEX); @@ -367,7 +368,7 @@ */ public static String exportWord(String temDir, List fileNames, Map params, List mergeColNames) { //两个文档合并为fileNames[0]文档 - String fileName = mergeDoc(temDir, fileNames,(String)params.get("certificateNo")); + String fileName = mergeDoc(temDir, fileNames, (String) params.get("certificateNo")); Assert.notNull(temDir, "临时文件路径不能为空"); Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); File dir = new File(temDir); @@ -412,7 +413,7 @@ * @param fileNames * @return */ - public static String mergeDoc(String localPathUrl, List fileNames,String recordNo) { + public static String mergeDoc(String localPathUrl, List fileNames, String recordNo) { //doc合并 if (CollectionUtils.isEmpty(fileNames)) { return null; @@ -424,7 +425,7 @@ String word2Url = localPathUrl + fileNames.get(i++); mainDoc.insertTextFromFile(word2Url, FileFormat.Docx_2010); } - DocPictureProvider.headerFooter(mainDoc,recordNo); + DocPictureProvider.headerFooter(mainDoc, recordNo); //保存合并后的文档 mainDoc.saveToFile(word1Url, FileFormat.Docx_2010); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java index 8c3d31b..ebc9257 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrintFileModuleNameEnum.java @@ -24,6 +24,7 @@ String MEASURE_DATA = "检定数据管理"; String MULTIFUNCTION_CHECK_DATA = "多功能核查数据"; String MEASURE_DATA_APPROVAL = "检定数据管理审批"; + String ORIGINAL_RECORD_APPROVAL = "检定数据原始记录审批"; String RESISTANCE_CHECK_DATA = "活塞式压力"; String ELECTRICAL_SAFETY_CHECK_DATA = "多功能电气安全"; String DC_POWER_SUPPLY_CHECK_DATA = "直流稳压电源核查数据"; 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 88717fa..aadfaf9 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 @@ -13,6 +13,7 @@ import com.casic.missiles.model.equipment.BizEquipmentStandardCheckRecordApproval; import com.casic.missiles.service.Impl.eqpt.standard.StandardEquipmentPrint; import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.utils.SnowflakeUtil; import com.casic.missiles.utils.SpringContextUtil; import com.gexin.fastjson.JSON; import lombok.RequiredArgsConstructor; @@ -76,64 +77,55 @@ * @param id * @param oldCertificateFile */ - public void excuteMeasureTaskAsyn(Map map, Long id, String oldCertificateFile,String oldOriginRecordFile) { + public void excuteMeasureTaskAsyn(Map map, Long id, String oldCertificateFile, String oldOriginRecordFile) { ThreadPoolExecutor threadPool = new ThreadPoolExecutor(1, 2, 100, TimeUnit.SECONDS, new LinkedBlockingQueue<>(2)); log.info("measure data is check,please wait ..."); List customTemplateUrls = new ArrayList<>(); - if(StringUtils.isNotEmpty(oldCertificateFile)){ - customTemplateUrls.add(oldCertificateFile); + customTemplateUrls.add(oldCertificateFile); + CompletableFuture certificateFutureTask = null; + if (StringUtils.isNotEmpty(oldCertificateFile)) { //生成证书报告的,需要改变为动态选择性 - CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + certificateFutureTask = CompletableFuture.supplyAsync( () -> printFileRegister.registerPrintFile(MEASURE_DATA_APPROVAL, "数据打印", 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.setCertificateFile(certificateFileUrl); - //更新记录 - int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); - Assert.isFalse(updateFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); - }); - } - } - ); } - if(StringUtils.isNotEmpty(oldOriginRecordFile)){ - List customOriginUrls = new ArrayList<>(); - customOriginUrls.add(oldOriginRecordFile); + CompletableFuture originFutureTask = null; + List customOriginUrls = new ArrayList<>(); + customOriginUrls.add(oldOriginRecordFile); + SnowflakeUtil snowflakeUtil = new SnowflakeUtil(); + map.put("id", snowflakeUtil.nextId()); + if (StringUtils.isNotEmpty(oldOriginRecordFile)) { //生成证书报告的,需要改变为动态选择性 - CompletableFuture originFutureTask = CompletableFuture.supplyAsync( - () -> printFileRegister.registerPrintFile(MEASURE_DATA_APPROVAL, "数据打印", null, map, true, null, customOriginUrls), threadPool); - originFutureTask.thenRun( - () -> { - String originFileUrl = originFutureTask.join(); - BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); - if (StringUtils.isNotEmpty(originFileUrl)) { - BizBusinessDeviceMeasureApproval bizBusinessDeviceMeasureApproval = new BizBusinessDeviceMeasureApproval(); - if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { - return; - } - bizBusinessDeviceMeasureApproval.setId(id); - //原始记录文件 - bizBusinessDeviceMeasureApproval.setOriginalRecordFile(originFileUrl); - //更新记录 - int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); - Assert.isFalse(updateFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); - }); - } - } - ); + originFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile(ORIGINAL_RECORD_APPROVAL, "数据打印", null, map, true, null, customOriginUrls), threadPool); } + CompletableFuture tempCertificateFutureTask = certificateFutureTask; + CompletableFuture tempOriginFutureTask = originFutureTask; + //等到所有线程异步结束 + CompletableFuture combinedFuture = CompletableFuture.allOf(tempCertificateFutureTask, tempOriginFutureTask); + combinedFuture.thenRun( + () -> { + BizBusinessDeviceMeasureApproval measureApproval = new BizBusinessDeviceMeasureApproval(); + measureApproval.setId(id); + if(tempCertificateFutureTask!=null){ + measureApproval.setCertificateFile(tempCertificateFutureTask.join()); + } + if(tempOriginFutureTask!=null){ + measureApproval.setOriginalRecordFile(tempOriginFutureTask.join()); + } + BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); + if (StringUtils.isNotEmpty(measureApproval.getOriginalRecordFile())|| StringUtils.isNotEmpty(measureApproval.getCertificateFile())) { + if (!map.containsKey("id") || ObjectUtils.isEmpty(map.get("id"))) { + return; + } + //更新记录 + int updateFlag = bizBusinessMapper.updateById(measureApproval); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + }); + } + } + ); } /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java index 3ec1e9a..453d749 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiCalibrationHandler.java @@ -151,6 +151,7 @@ customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "1", measureItemInfo.getItemCategoryName())); //与证书模板区分 SnowflakeUtil snowflakeUtil = new SnowflakeUtil(); + map.put("pdfStatus", 1); map.put("id", snowflakeUtil.nextId()); log.debug("original before ----"); //除了选用的模板不一致,模板配置流程是一致的 @@ -251,6 +252,8 @@ map.put("test", "\uF0A3"); map.put("calibrate", "\uF0A3"); map.put("measure", "\uF0A3"); + map.put("surveyor","{{@surveyor}}"); + map.put("auditor","{{@auditor}}"); //选择方框 switch ((String) map.get("measureCategoryName")) { case TEST_REPORT: diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java index f2dd318..3aa20cc 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java @@ -4,7 +4,6 @@ import com.casic.missiles.dto.business.deviceMeasure.MeasureEquipmentInfoDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.PrintFileModuleNameEnum; -import com.casic.missiles.enums.business.MeasureCategoryEnum; import com.casic.missiles.enums.business.MeasureItemBelongStandardEquipmentDictEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BizBusinessDeviceMeasureApprovalMapper; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java index d7ca374..adcbe20 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java @@ -65,6 +65,12 @@ return subfileUrls; } + public static void main(String[] args ){ + wordFullSeam("D:\\casic\\tmp\\1762311829649956866\\测试报告.pdf","D:\\casic\\tmp\\1762311829649956866\\海口实验室证书或报告发放_1699357889588.png", + "D:\\casic\\tmp\\1762311829649956866\\测试报告2.pdf"); + + } + /** * 骑缝章只存在一个章在进行打印 */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java index 2d67d61..5b235f8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java @@ -96,8 +96,9 @@ private static String checkExtendSeal(String wordOldUrl, ElectronicImage selectSeal, FilePrintRegister filePrintRegister) { if (ObjectUtils.isNotEmpty(selectSeal)) { //默认转为docx,只需要进行docx的替换即可 - String pdfNewUrl = filePrintRegister.getFileNames().get(0).replaceAll("docx", "pdf"); - String tempPdfUrl = filePrintRegister.getTemDir() + pdfNewUrl; + String[] pdfUrl = filePrintRegister.getFileNames().get(0).split("_"); + String pdfNewUrl = pdfUrl[0] + ".pdf"; + String tempPdfUrl = filePrintRegister.getTemDir() +"XH"+ pdfNewUrl; FilePrintRegisterUtils.wordToPdf(wordOldUrl, tempPdfUrl); DocPictureProvider.wordFullSeam(tempPdfUrl, selectSeal.getElectronicSealImageUrl(), filePrintRegister.getTemDir() + pdfNewUrl); return filePrintRegister.getTemDir() + pdfNewUrl; @@ -231,7 +232,7 @@ for (ElectronicImage absolutePathImage : absolutePathImageList) { if (ObjectUtils.isNotEmpty(absolutePathImage.getImageConfig())) { //列表章处理的方法 - DocPictureProvider.populateMultiImage( absolutePathImage,document); + DocPictureProvider.populateMultiImage(absolutePathImage, document); } else { //不是骑缝章,就是认定章,获取默认段落信息,进行添加电子印章的信息位置 Section section = document.getSections().get(DEFAULT_SEAL_INDEX); @@ -367,7 +368,7 @@ */ public static String exportWord(String temDir, List fileNames, Map params, List mergeColNames) { //两个文档合并为fileNames[0]文档 - String fileName = mergeDoc(temDir, fileNames,(String)params.get("certificateNo")); + String fileName = mergeDoc(temDir, fileNames, (String) params.get("certificateNo")); Assert.notNull(temDir, "临时文件路径不能为空"); Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); File dir = new File(temDir); @@ -412,7 +413,7 @@ * @param fileNames * @return */ - public static String mergeDoc(String localPathUrl, List fileNames,String recordNo) { + public static String mergeDoc(String localPathUrl, List fileNames, String recordNo) { //doc合并 if (CollectionUtils.isEmpty(fileNames)) { return null; @@ -424,7 +425,7 @@ String word2Url = localPathUrl + fileNames.get(i++); mainDoc.insertTextFromFile(word2Url, FileFormat.Docx_2010); } - DocPictureProvider.headerFooter(mainDoc,recordNo); + DocPictureProvider.headerFooter(mainDoc, recordNo); //保存合并后的文档 mainDoc.saveToFile(word1Url, FileFormat.Docx_2010); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/image/ApprovalImage.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/image/ApprovalImage.java index c7da6e1..44bed17 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/image/ApprovalImage.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/image/ApprovalImage.java @@ -149,7 +149,7 @@ filePrintRegister.setBeDownloadedFileNames(signFileName); electronicImageList.add(electronicImage); if (StringUtils.isNotEmpty(signFileName) && !signFileName.contains(",") && approvalImageList.get(i).getDocName().matches("[a-zA-Z]+")) { - filePrintRegister.getParams().put(approvalImageList.get(i).getDocName(), new PictureRenderData(100, 35, filePrintRegister.getTemDir() + signFileName)); + filePrintRegister.getParams().put(approvalImageList.get(i).getDocName(), new PictureRenderData(60, 20, filePrintRegister.getTemDir() + signFileName)); } } }