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 aadfaf9..1c3fcd8 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 @@ -98,34 +98,80 @@ //生成证书报告的,需要改变为动态选择性 originFutureTask = CompletableFuture.supplyAsync( () -> printFileRegister.registerPrintFile(ORIGINAL_RECORD_APPROVAL, "数据打印", null, map, true, null, customOriginUrls), threadPool); + parallelCreateFile(originFutureTask, certificateFutureTask, id, map); } - 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; + singleCreateFile(originFutureTask, certificateFutureTask, id, map); + } + + private void singleCreateFile(CompletableFuture originFutureTask, CompletableFuture certificateFutureTask, Long id, Map map) { + if (certificateFutureTask != null) { + certificateFutureTask.thenRun( + () -> { + BizBusinessDeviceMeasureApproval measureApproval = new BizBusinessDeviceMeasureApproval(); + measureApproval.setId(id); + measureApproval.setCertificateFile(certificateFutureTask.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); + }); } - //更新记录 - int updateFlag = bizBusinessMapper.updateById(measureApproval); - Assert.isFalse(updateFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); - }); } - } - ); + ).join(); + } + if (originFutureTask != null) { + originFutureTask.thenRun( + () -> { + BizBusinessDeviceMeasureApproval measureApproval = new BizBusinessDeviceMeasureApproval(); + measureApproval.setId(id); + measureApproval.setOriginalRecordFile(originFutureTask.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); + }); + } + } + ).join(); + } + } + + private void parallelCreateFile(CompletableFuture originFutureTask, CompletableFuture certificateFutureTask, Long id, Map map) { + if (certificateFutureTask != null && originFutureTask != null) { + CompletableFuture tempCertificateFutureTask = certificateFutureTask; + CompletableFuture tempOriginFutureTask = originFutureTask; + //等到所有线程异步结束 + CompletableFuture combinedFuture = CompletableFuture.allOf(tempCertificateFutureTask, tempOriginFutureTask); + combinedFuture.thenRun( + () -> { + BizBusinessDeviceMeasureApproval measureApproval = new BizBusinessDeviceMeasureApproval(); + measureApproval.setId(id); + measureApproval.setCertificateFile(tempCertificateFutureTask.join()); + 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); + }); + } + } + ).join(); + } } /** 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 aadfaf9..1c3fcd8 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 @@ -98,34 +98,80 @@ //生成证书报告的,需要改变为动态选择性 originFutureTask = CompletableFuture.supplyAsync( () -> printFileRegister.registerPrintFile(ORIGINAL_RECORD_APPROVAL, "数据打印", null, map, true, null, customOriginUrls), threadPool); + parallelCreateFile(originFutureTask, certificateFutureTask, id, map); } - 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; + singleCreateFile(originFutureTask, certificateFutureTask, id, map); + } + + private void singleCreateFile(CompletableFuture originFutureTask, CompletableFuture certificateFutureTask, Long id, Map map) { + if (certificateFutureTask != null) { + certificateFutureTask.thenRun( + () -> { + BizBusinessDeviceMeasureApproval measureApproval = new BizBusinessDeviceMeasureApproval(); + measureApproval.setId(id); + measureApproval.setCertificateFile(certificateFutureTask.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); + }); } - //更新记录 - int updateFlag = bizBusinessMapper.updateById(measureApproval); - Assert.isFalse(updateFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); - }); } - } - ); + ).join(); + } + if (originFutureTask != null) { + originFutureTask.thenRun( + () -> { + BizBusinessDeviceMeasureApproval measureApproval = new BizBusinessDeviceMeasureApproval(); + measureApproval.setId(id); + measureApproval.setOriginalRecordFile(originFutureTask.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); + }); + } + } + ).join(); + } + } + + private void parallelCreateFile(CompletableFuture originFutureTask, CompletableFuture certificateFutureTask, Long id, Map map) { + if (certificateFutureTask != null && originFutureTask != null) { + CompletableFuture tempCertificateFutureTask = certificateFutureTask; + CompletableFuture tempOriginFutureTask = originFutureTask; + //等到所有线程异步结束 + CompletableFuture combinedFuture = CompletableFuture.allOf(tempCertificateFutureTask, tempOriginFutureTask); + combinedFuture.thenRun( + () -> { + BizBusinessDeviceMeasureApproval measureApproval = new BizBusinessDeviceMeasureApproval(); + measureApproval.setId(id); + measureApproval.setCertificateFile(tempCertificateFutureTask.join()); + 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); + }); + } + } + ).join(); + } } /** 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 dc746c6..74b981e 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 @@ -68,8 +68,11 @@ @Override public void exportZip(List list, HttpServletResponse response) { - //1、每条数据都进行生成、生成zip - //2、 + //1、每条数据都创建一个线程,进行数据的生成,但是需要zip标识 + //2、创建大文件夹, + //3、处理完之后,将文件扔到到大文件,并且目录名称是当前文件的名称 + //4、等待所有线程结束,然后打包 + //zip参数:大文件夹名称、zip标识、当前文件的名称 } 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 aadfaf9..1c3fcd8 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 @@ -98,34 +98,80 @@ //生成证书报告的,需要改变为动态选择性 originFutureTask = CompletableFuture.supplyAsync( () -> printFileRegister.registerPrintFile(ORIGINAL_RECORD_APPROVAL, "数据打印", null, map, true, null, customOriginUrls), threadPool); + parallelCreateFile(originFutureTask, certificateFutureTask, id, map); } - 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; + singleCreateFile(originFutureTask, certificateFutureTask, id, map); + } + + private void singleCreateFile(CompletableFuture originFutureTask, CompletableFuture certificateFutureTask, Long id, Map map) { + if (certificateFutureTask != null) { + certificateFutureTask.thenRun( + () -> { + BizBusinessDeviceMeasureApproval measureApproval = new BizBusinessDeviceMeasureApproval(); + measureApproval.setId(id); + measureApproval.setCertificateFile(certificateFutureTask.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); + }); } - //更新记录 - int updateFlag = bizBusinessMapper.updateById(measureApproval); - Assert.isFalse(updateFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); - }); } - } - ); + ).join(); + } + if (originFutureTask != null) { + originFutureTask.thenRun( + () -> { + BizBusinessDeviceMeasureApproval measureApproval = new BizBusinessDeviceMeasureApproval(); + measureApproval.setId(id); + measureApproval.setOriginalRecordFile(originFutureTask.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); + }); + } + } + ).join(); + } + } + + private void parallelCreateFile(CompletableFuture originFutureTask, CompletableFuture certificateFutureTask, Long id, Map map) { + if (certificateFutureTask != null && originFutureTask != null) { + CompletableFuture tempCertificateFutureTask = certificateFutureTask; + CompletableFuture tempOriginFutureTask = originFutureTask; + //等到所有线程异步结束 + CompletableFuture combinedFuture = CompletableFuture.allOf(tempCertificateFutureTask, tempOriginFutureTask); + combinedFuture.thenRun( + () -> { + BizBusinessDeviceMeasureApproval measureApproval = new BizBusinessDeviceMeasureApproval(); + measureApproval.setId(id); + measureApproval.setCertificateFile(tempCertificateFutureTask.join()); + 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); + }); + } + } + ).join(); + } } /** 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 dc746c6..74b981e 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 @@ -68,8 +68,11 @@ @Override public void exportZip(List list, HttpServletResponse response) { - //1、每条数据都进行生成、生成zip - //2、 + //1、每条数据都创建一个线程,进行数据的生成,但是需要zip标识 + //2、创建大文件夹, + //3、处理完之后,将文件扔到到大文件,并且目录名称是当前文件的名称 + //4、等待所有线程结束,然后打包 + //zip参数:大文件夹名称、zip标识、当前文件的名称 } 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 9e7f09b..121b5c7 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 @@ -103,7 +103,7 @@ log.info("-----------------{}", JSON.toJSON(deviceMeasureApproval)); GenericEqptDataProvider genericEqptDataProvider=SpringContextUtil.getBean(GenericEqptDataProvider.class); Map map = BeanUtil.beanToMap(deviceMeasureApproval); - genericEqptDataProvider.excuteMeasureTaskAsyn(map,deviceMeasureApproval.getId(),deviceMeasureApproval.getCertificateWordFile(),deviceMeasureApproval.getOriginalRecordFile()); + genericEqptDataProvider.excuteMeasureTaskAsyn(map,deviceMeasureApproval.getId(),deviceMeasureApproval.getCertificateWordFile(),deviceMeasureApproval.getOriginalRecordWordFile()); } catch (Exception ex) { log.error("存储到证书打印表异常,证书报告&原始记录信息为{}, 异常信息为{}", JSONObject.toJSON(deviceMeasureApproval), ex); }