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/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/quality/BizQualityTechnicalAnalysisRepServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityTechnicalAnalysisRepServiceImpl.java index e7df020..dc746c6 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityTechnicalAnalysisRepServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityTechnicalAnalysisRepServiceImpl.java @@ -11,6 +11,7 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.dto.ExportDTO; +import com.casic.missiles.dto.quality.BizQualityTechnicalAnalysisRepVO; import com.casic.missiles.enums.PrintFileModuleNameEnum; import com.casic.missiles.enums.quality.QualityDictTypeEnum; import com.casic.missiles.enums.quality.QualityTableEnum; @@ -49,6 +50,7 @@ private final AbstractDictService dictService; private final IBizQualityManagementReviewService bizQualityManagementReviewService; private final PrintFileRegister printFileRegister; + public BizQualityTechnicalAnalysisRepServiceImpl(AbstractPermissionContext permissionContext, AbstractDictService dictService, IBizQualityManagementReviewService bizQualityManagementReviewService, PrintFileRegister printFileRegister) { this.permissionContext = permissionContext; this.dictService = dictService; @@ -65,12 +67,20 @@ } @Override + public void exportZip(List list, HttpServletResponse response) { + //1、每条数据都进行生成、生成zip + //2、 + + + } + + @Override public void exportFile(ExportDTO exportDTO, HttpServletResponse response) { BizQualityTechnicalAnalysisRep bizQualityTechnicalAnalysisRep = this.baseMapper.selectById(exportDTO.getId()); //todo 技术能力分析报告 - if (ObjectUtil.isNotEmpty(bizQualityTechnicalAnalysisRep)){ + if (ObjectUtil.isNotEmpty(bizQualityTechnicalAnalysisRep)) { Map map = BeanUtil.beanToMap(bizQualityTechnicalAnalysisRep); - printFileRegister.registerPrintFile(QUALITY_TECHNICAL_ANALYSIS_REPORT,EXPORT_TEMPLATE,null,map,exportDTO.isPdf(),response); + printFileRegister.registerPrintFile(QUALITY_TECHNICAL_ANALYSIS_REPORT, EXPORT_TEMPLATE, null, map, exportDTO.isPdf(), response); } } 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/quality/BizQualityTechnicalAnalysisRepServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityTechnicalAnalysisRepServiceImpl.java index e7df020..dc746c6 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityTechnicalAnalysisRepServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityTechnicalAnalysisRepServiceImpl.java @@ -11,6 +11,7 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.dto.ExportDTO; +import com.casic.missiles.dto.quality.BizQualityTechnicalAnalysisRepVO; import com.casic.missiles.enums.PrintFileModuleNameEnum; import com.casic.missiles.enums.quality.QualityDictTypeEnum; import com.casic.missiles.enums.quality.QualityTableEnum; @@ -49,6 +50,7 @@ private final AbstractDictService dictService; private final IBizQualityManagementReviewService bizQualityManagementReviewService; private final PrintFileRegister printFileRegister; + public BizQualityTechnicalAnalysisRepServiceImpl(AbstractPermissionContext permissionContext, AbstractDictService dictService, IBizQualityManagementReviewService bizQualityManagementReviewService, PrintFileRegister printFileRegister) { this.permissionContext = permissionContext; this.dictService = dictService; @@ -65,12 +67,20 @@ } @Override + public void exportZip(List list, HttpServletResponse response) { + //1、每条数据都进行生成、生成zip + //2、 + + + } + + @Override public void exportFile(ExportDTO exportDTO, HttpServletResponse response) { BizQualityTechnicalAnalysisRep bizQualityTechnicalAnalysisRep = this.baseMapper.selectById(exportDTO.getId()); //todo 技术能力分析报告 - if (ObjectUtil.isNotEmpty(bizQualityTechnicalAnalysisRep)){ + if (ObjectUtil.isNotEmpty(bizQualityTechnicalAnalysisRep)) { Map map = BeanUtil.beanToMap(bizQualityTechnicalAnalysisRep); - printFileRegister.registerPrintFile(QUALITY_TECHNICAL_ANALYSIS_REPORT,EXPORT_TEMPLATE,null,map,exportDTO.isPdf(),response); + printFileRegister.registerPrintFile(QUALITY_TECHNICAL_ANALYSIS_REPORT, EXPORT_TEMPLATE, null, map, exportDTO.isPdf(), response); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java index 935090c..bb0ad54 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java @@ -156,10 +156,36 @@ System.out.println("完成切割"); } - public static void main(String[] args) throws Exception { - testNumbericRender(); - } + public static void main(String[] args){ + String localPathUrl = "D:\\casic\\cut\\"; + // 目标文件地址 + String wordOldUrl = "cs.docx"; + List woldUrlList = new ArrayList<>(); + woldUrlList.add(wordOldUrl); + Map params = new HashMap<>(); + List> assetList = new ArrayList<>(); + for (int i = 0; i < 8; i++) { + Map assetMap = new HashMap<>(); + assetMap.put("seq", String.valueOf(i / 4)); + assetMap.put("customer", "供方" + String.valueOf(i / 4)); + assetMap.put("customerName", "供方名字" + i); + assetMap.put("model", "型号" + i); + assetMap.put("proposeTime", "启用时间" + i); + assetMap.put("score", "维修时间"); + assetMap.put("status", "我醉"); + assetMap.put("evaluate", "我醒"); + assetList.add(assetMap); + } + params.put("twoAssetList", assetList); + params.put("two", "2、张三的话"); +// if(Math.random()/2==0.0){ +// params.put("assetList", assetList); +// params.put("one", "1、李四的意思"); +// } + String newOldUrl = FilePrintRegisterUtils.exportWord(localPathUrl, woldUrlList, params, null); + System.out.println(newOldUrl); + } //在固定的文本框,填写签名 public static void testNumbericRender() throws Exception { 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/quality/BizQualityTechnicalAnalysisRepServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityTechnicalAnalysisRepServiceImpl.java index e7df020..dc746c6 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityTechnicalAnalysisRepServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityTechnicalAnalysisRepServiceImpl.java @@ -11,6 +11,7 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.dto.ExportDTO; +import com.casic.missiles.dto.quality.BizQualityTechnicalAnalysisRepVO; import com.casic.missiles.enums.PrintFileModuleNameEnum; import com.casic.missiles.enums.quality.QualityDictTypeEnum; import com.casic.missiles.enums.quality.QualityTableEnum; @@ -49,6 +50,7 @@ private final AbstractDictService dictService; private final IBizQualityManagementReviewService bizQualityManagementReviewService; private final PrintFileRegister printFileRegister; + public BizQualityTechnicalAnalysisRepServiceImpl(AbstractPermissionContext permissionContext, AbstractDictService dictService, IBizQualityManagementReviewService bizQualityManagementReviewService, PrintFileRegister printFileRegister) { this.permissionContext = permissionContext; this.dictService = dictService; @@ -65,12 +67,20 @@ } @Override + public void exportZip(List list, HttpServletResponse response) { + //1、每条数据都进行生成、生成zip + //2、 + + + } + + @Override public void exportFile(ExportDTO exportDTO, HttpServletResponse response) { BizQualityTechnicalAnalysisRep bizQualityTechnicalAnalysisRep = this.baseMapper.selectById(exportDTO.getId()); //todo 技术能力分析报告 - if (ObjectUtil.isNotEmpty(bizQualityTechnicalAnalysisRep)){ + if (ObjectUtil.isNotEmpty(bizQualityTechnicalAnalysisRep)) { Map map = BeanUtil.beanToMap(bizQualityTechnicalAnalysisRep); - printFileRegister.registerPrintFile(QUALITY_TECHNICAL_ANALYSIS_REPORT,EXPORT_TEMPLATE,null,map,exportDTO.isPdf(),response); + printFileRegister.registerPrintFile(QUALITY_TECHNICAL_ANALYSIS_REPORT, EXPORT_TEMPLATE, null, map, exportDTO.isPdf(), response); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java index 935090c..bb0ad54 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java @@ -156,10 +156,36 @@ System.out.println("完成切割"); } - public static void main(String[] args) throws Exception { - testNumbericRender(); - } + public static void main(String[] args){ + String localPathUrl = "D:\\casic\\cut\\"; + // 目标文件地址 + String wordOldUrl = "cs.docx"; + List woldUrlList = new ArrayList<>(); + woldUrlList.add(wordOldUrl); + Map params = new HashMap<>(); + List> assetList = new ArrayList<>(); + for (int i = 0; i < 8; i++) { + Map assetMap = new HashMap<>(); + assetMap.put("seq", String.valueOf(i / 4)); + assetMap.put("customer", "供方" + String.valueOf(i / 4)); + assetMap.put("customerName", "供方名字" + i); + assetMap.put("model", "型号" + i); + assetMap.put("proposeTime", "启用时间" + i); + assetMap.put("score", "维修时间"); + assetMap.put("status", "我醉"); + assetMap.put("evaluate", "我醒"); + assetList.add(assetMap); + } + params.put("twoAssetList", assetList); + params.put("two", "2、张三的话"); +// if(Math.random()/2==0.0){ +// params.put("assetList", assetList); +// params.put("one", "1、李四的意思"); +// } + String newOldUrl = FilePrintRegisterUtils.exportWord(localPathUrl, woldUrlList, params, null); + System.out.println(newOldUrl); + } //在固定的文本框,填写签名 public static void testNumbericRender() throws Exception { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/quality/IBizQualityTechnicalAnalysisRepService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/quality/IBizQualityTechnicalAnalysisRepService.java index 9da1653..efa8cfa 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/quality/IBizQualityTechnicalAnalysisRepService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/quality/IBizQualityTechnicalAnalysisRepService.java @@ -2,9 +2,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.ExportDTO; -import com.casic.missiles.model.quality.BizQualityTechnicalAnalysisRep; +import com.casic.missiles.dto.quality.BizQualityTechnicalAnalysisRepVO; +import com.casic.missiles.model.quality.BizQualityTechnicalAnalysisRep; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.web.bind.annotation.RequestBody; import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -22,7 +24,9 @@ /** * 技术能力分析报告 分页检索 */ - List selectBizQualityTechnicalAnalysisRepPage(Page page,QueryWrapper query); + List selectBizQualityTechnicalAnalysisRepPage(Page page, QueryWrapper query); + + void exportZip(List list, HttpServletResponse response); void exportFile(ExportDTO exportDTO, HttpServletResponse response); }