diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java index f198957..da10089 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java @@ -59,7 +59,7 @@ StringBuilder num = new StringBuilder(); AtomicLong count = new AtomicLong(nowNum); - SimpleDateFormat format = new SimpleDateFormat("yyyyMM"); + SimpleDateFormat format = new SimpleDateFormat("YYYYMMdd"); String datePrefix = format.format(new Date()); if(nowNum == 0){ diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java index f198957..da10089 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java @@ -59,7 +59,7 @@ StringBuilder num = new StringBuilder(); AtomicLong count = new AtomicLong(nowNum); - SimpleDateFormat format = new SimpleDateFormat("yyyyMM"); + SimpleDateFormat format = new SimpleDateFormat("YYYYMMdd"); String datePrefix = format.format(new Date()); if(nowNum == 0){ diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 5be46c1..6ca6b9e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -33,7 +33,7 @@ Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); - @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 11)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); BusinessCertificateReport detailById( @Param("id") Long id); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java index f198957..da10089 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java @@ -59,7 +59,7 @@ StringBuilder num = new StringBuilder(); AtomicLong count = new AtomicLong(nowNum); - SimpleDateFormat format = new SimpleDateFormat("yyyyMM"); + SimpleDateFormat format = new SimpleDateFormat("YYYYMMdd"); String datePrefix = format.format(new Date()); if(nowNum == 0){ diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 5be46c1..6ca6b9e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -33,7 +33,7 @@ Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); - @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 11)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); BusinessCertificateReport detailById( @Param("id") Long id); diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml index da16979..dbff6a2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -164,6 +164,9 @@ and id = #{request.id} + + and certificate_report_code = #{request.certificateReportCode} + and sample_id = #{request.sampleId} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java index f198957..da10089 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java @@ -59,7 +59,7 @@ StringBuilder num = new StringBuilder(); AtomicLong count = new AtomicLong(nowNum); - SimpleDateFormat format = new SimpleDateFormat("yyyyMM"); + SimpleDateFormat format = new SimpleDateFormat("YYYYMMdd"); String datePrefix = format.format(new Date()); if(nowNum == 0){ diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 5be46c1..6ca6b9e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -33,7 +33,7 @@ Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); - @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 11)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); BusinessCertificateReport detailById( @Param("id") Long id); diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml index da16979..dbff6a2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -164,6 +164,9 @@ and id = #{request.id} + + and certificate_report_code = #{request.certificateReportCode} + and sample_id = #{request.sampleId} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java index 5f0a3fe..a881218 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -20,4 +20,8 @@ @ApiModelProperty("委托书id") private String orderId; + @ApiModelProperty("委托书报告id") + private String certificateReportCode; + + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java index f198957..da10089 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java @@ -59,7 +59,7 @@ StringBuilder num = new StringBuilder(); AtomicLong count = new AtomicLong(nowNum); - SimpleDateFormat format = new SimpleDateFormat("yyyyMM"); + SimpleDateFormat format = new SimpleDateFormat("YYYYMMdd"); String datePrefix = format.format(new Date()); if(nowNum == 0){ diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 5be46c1..6ca6b9e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -33,7 +33,7 @@ Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); - @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 11)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); BusinessCertificateReport detailById( @Param("id") Long id); diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml index da16979..dbff6a2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -164,6 +164,9 @@ and id = #{request.id} + + and certificate_report_code = #{request.certificateReportCode} + and sample_id = #{request.sampleId} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java index 5f0a3fe..a881218 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -20,4 +20,8 @@ @ApiModelProperty("委托书id") private String orderId; + @ApiModelProperty("委托书报告id") + private String certificateReportCode; + + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java index 67bbf22..29724db 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java @@ -268,7 +268,7 @@ certificateReport.setRemark(certificateReport.getCertificateReportCode()); //重新生成证书编号 String prefix = MonitorCodeEnum.getByCode(certificateReport.getCalibrationMajor()).getValue() - + DateUtil.format(new Date(), "YYYYMM"); + + DateUtil.format(new Date(), "YYYYMMdd"); // String prefix = DateUtil.format(new Date(), "YYYYMM"); Long maxNo = certificateReportMapper.selectMaxCode(prefix); //生成证书编号 diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java index f198957..da10089 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java @@ -59,7 +59,7 @@ StringBuilder num = new StringBuilder(); AtomicLong count = new AtomicLong(nowNum); - SimpleDateFormat format = new SimpleDateFormat("yyyyMM"); + SimpleDateFormat format = new SimpleDateFormat("YYYYMMdd"); String datePrefix = format.format(new Date()); if(nowNum == 0){ diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 5be46c1..6ca6b9e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -33,7 +33,7 @@ Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); - @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 11)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); BusinessCertificateReport detailById( @Param("id") Long id); diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml index da16979..dbff6a2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -164,6 +164,9 @@ and id = #{request.id} + + and certificate_report_code = #{request.certificateReportCode} + and sample_id = #{request.sampleId} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java index 5f0a3fe..a881218 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -20,4 +20,8 @@ @ApiModelProperty("委托书id") private String orderId; + @ApiModelProperty("委托书报告id") + private String certificateReportCode; + + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java index 67bbf22..29724db 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java @@ -268,7 +268,7 @@ certificateReport.setRemark(certificateReport.getCertificateReportCode()); //重新生成证书编号 String prefix = MonitorCodeEnum.getByCode(certificateReport.getCalibrationMajor()).getValue() - + DateUtil.format(new Date(), "YYYYMM"); + + DateUtil.format(new Date(), "YYYYMMdd"); // String prefix = DateUtil.format(new Date(), "YYYYMM"); Long maxNo = certificateReportMapper.selectMaxCode(prefix); //生成证书编号 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 03f3881..8d9ad5f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -104,7 +104,7 @@ private PrintFileRegister printFileRegister; @Autowired private AbstractPermissionContext permissionContext; - private final ThreadPoolExecutor threadPool = new ThreadPoolExecutor(2, 10, 100, + private final ThreadPoolExecutor threadPool = new ThreadPoolExecutor(2, 10, 300, TimeUnit.SECONDS, new LinkedBlockingQueue<>(10)); /** @@ -115,7 +115,6 @@ */ @Override public ReturnDTO saveCertificateReport(BusinessCertificateReport certificateReport) { - initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) { return ReturnUtil.success(certificateReport.getId()); @@ -380,25 +379,34 @@ public ReturnDTO exportApprovalCertificateFile(Long id) { //获取证书报告信息 BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + if (ObjectUtils.isEmpty(certificateReport)) { + return ReturnUtil.success(); + } if (ApprovalStatusEnum.PASSED.equals(certificateReport.getApprovalStatus())) { - //生成证书报告的,需要改变为动态选择性 - CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( - () -> printFileRegister.registerPrintFile( - RegisterCustomParameters.builder() - .customFileName(certificateReport.getCertificateReportName() + certificateReport.getCertificateReportCode()) - .customObject(certificateReport) - .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) - .pdf(true) - .build()), threadPool); - certificateFutureTask.thenRun( - () -> { - String printFileName = certificateFutureTask.join(); -// certificateReport.setCertificateReportFile(certificateFutureTask.join()); -// this.baseMapper.updateById(certificateReport); -// //生成证书打印信息 -// CertificatePrintBuilder(certificateReport, printFileName); - } - ); + try { + //生成证书报告的,需要改变为动态选择性 + CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName() + certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()), threadPool); + certificateFutureTask.thenRun( + () -> { + String printFileName = certificateFutureTask.join(); + certificateReport.setCertificateReportFile(printFileName); + this.baseMapper.updateById(certificateReport); + log.debug("----" + printFileName); + //生成证书打印信息 + CertificatePrintBuilder(certificateReport, printFileName); + log.debug("----success"); + } + ); + }catch (Exception ex){ + log.error(""); + } } return ReturnUtil.success(); } @@ -578,7 +586,7 @@ private void initCertificateReport(BusinessCertificateReport certificateReport) { String prefix = MonitorCodeEnum.getByCode(certificateReport.getCalibrationMajor()).getValue() - + DateUtil.format(new Date(), "YYYYMMDD"); + + DateUtil.format(new Date(), "YYYYMMdd"); // String prefix = DateUtil.format(new Date(), "YYYYMM"); Long maxNo = this.baseMapper.selectMaxCode(prefix); //生成证书编号 diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java index f198957..da10089 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java @@ -59,7 +59,7 @@ StringBuilder num = new StringBuilder(); AtomicLong count = new AtomicLong(nowNum); - SimpleDateFormat format = new SimpleDateFormat("yyyyMM"); + SimpleDateFormat format = new SimpleDateFormat("YYYYMMdd"); String datePrefix = format.format(new Date()); if(nowNum == 0){ diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 5be46c1..6ca6b9e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -33,7 +33,7 @@ Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); - @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 11)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); BusinessCertificateReport detailById( @Param("id") Long id); diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml index da16979..dbff6a2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -164,6 +164,9 @@ and id = #{request.id} + + and certificate_report_code = #{request.certificateReportCode} + and sample_id = #{request.sampleId} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java index 5f0a3fe..a881218 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -20,4 +20,8 @@ @ApiModelProperty("委托书id") private String orderId; + @ApiModelProperty("委托书报告id") + private String certificateReportCode; + + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java index 67bbf22..29724db 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java @@ -268,7 +268,7 @@ certificateReport.setRemark(certificateReport.getCertificateReportCode()); //重新生成证书编号 String prefix = MonitorCodeEnum.getByCode(certificateReport.getCalibrationMajor()).getValue() - + DateUtil.format(new Date(), "YYYYMM"); + + DateUtil.format(new Date(), "YYYYMMdd"); // String prefix = DateUtil.format(new Date(), "YYYYMM"); Long maxNo = certificateReportMapper.selectMaxCode(prefix); //生成证书编号 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 03f3881..8d9ad5f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -104,7 +104,7 @@ private PrintFileRegister printFileRegister; @Autowired private AbstractPermissionContext permissionContext; - private final ThreadPoolExecutor threadPool = new ThreadPoolExecutor(2, 10, 100, + private final ThreadPoolExecutor threadPool = new ThreadPoolExecutor(2, 10, 300, TimeUnit.SECONDS, new LinkedBlockingQueue<>(10)); /** @@ -115,7 +115,6 @@ */ @Override public ReturnDTO saveCertificateReport(BusinessCertificateReport certificateReport) { - initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) { return ReturnUtil.success(certificateReport.getId()); @@ -380,25 +379,34 @@ public ReturnDTO exportApprovalCertificateFile(Long id) { //获取证书报告信息 BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + if (ObjectUtils.isEmpty(certificateReport)) { + return ReturnUtil.success(); + } if (ApprovalStatusEnum.PASSED.equals(certificateReport.getApprovalStatus())) { - //生成证书报告的,需要改变为动态选择性 - CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( - () -> printFileRegister.registerPrintFile( - RegisterCustomParameters.builder() - .customFileName(certificateReport.getCertificateReportName() + certificateReport.getCertificateReportCode()) - .customObject(certificateReport) - .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) - .pdf(true) - .build()), threadPool); - certificateFutureTask.thenRun( - () -> { - String printFileName = certificateFutureTask.join(); -// certificateReport.setCertificateReportFile(certificateFutureTask.join()); -// this.baseMapper.updateById(certificateReport); -// //生成证书打印信息 -// CertificatePrintBuilder(certificateReport, printFileName); - } - ); + try { + //生成证书报告的,需要改变为动态选择性 + CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName() + certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()), threadPool); + certificateFutureTask.thenRun( + () -> { + String printFileName = certificateFutureTask.join(); + certificateReport.setCertificateReportFile(printFileName); + this.baseMapper.updateById(certificateReport); + log.debug("----" + printFileName); + //生成证书打印信息 + CertificatePrintBuilder(certificateReport, printFileName); + log.debug("----success"); + } + ); + }catch (Exception ex){ + log.error(""); + } } return ReturnUtil.success(); } @@ -578,7 +586,7 @@ private void initCertificateReport(BusinessCertificateReport certificateReport) { String prefix = MonitorCodeEnum.getByCode(certificateReport.getCalibrationMajor()).getValue() - + DateUtil.format(new Date(), "YYYYMMDD"); + + DateUtil.format(new Date(), "YYYYMMdd"); // String prefix = DateUtil.format(new Date(), "YYYYMM"); Long maxNo = this.baseMapper.selectMaxCode(prefix); //生成证书编号 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 c2a48b8..970dfc7 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 @@ -238,7 +238,6 @@ resu[2] = curPage; arrays.add(resu); count[0] = count[0] + 1; - isKeyWord = true; loop = true; return; @@ -254,7 +253,6 @@ return; } else { isKeyWord = false; - } } else { // 如果index大于关键字字符数组的长度,则该循环结束 diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java index f198957..da10089 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java @@ -59,7 +59,7 @@ StringBuilder num = new StringBuilder(); AtomicLong count = new AtomicLong(nowNum); - SimpleDateFormat format = new SimpleDateFormat("yyyyMM"); + SimpleDateFormat format = new SimpleDateFormat("YYYYMMdd"); String datePrefix = format.format(new Date()); if(nowNum == 0){ diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 5be46c1..6ca6b9e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -33,7 +33,7 @@ Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); - @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 11)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); BusinessCertificateReport detailById( @Param("id") Long id); diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml index da16979..dbff6a2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -164,6 +164,9 @@ and id = #{request.id} + + and certificate_report_code = #{request.certificateReportCode} + and sample_id = #{request.sampleId} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java index 5f0a3fe..a881218 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -20,4 +20,8 @@ @ApiModelProperty("委托书id") private String orderId; + @ApiModelProperty("委托书报告id") + private String certificateReportCode; + + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java index 67bbf22..29724db 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java @@ -268,7 +268,7 @@ certificateReport.setRemark(certificateReport.getCertificateReportCode()); //重新生成证书编号 String prefix = MonitorCodeEnum.getByCode(certificateReport.getCalibrationMajor()).getValue() - + DateUtil.format(new Date(), "YYYYMM"); + + DateUtil.format(new Date(), "YYYYMMdd"); // String prefix = DateUtil.format(new Date(), "YYYYMM"); Long maxNo = certificateReportMapper.selectMaxCode(prefix); //生成证书编号 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 03f3881..8d9ad5f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -104,7 +104,7 @@ private PrintFileRegister printFileRegister; @Autowired private AbstractPermissionContext permissionContext; - private final ThreadPoolExecutor threadPool = new ThreadPoolExecutor(2, 10, 100, + private final ThreadPoolExecutor threadPool = new ThreadPoolExecutor(2, 10, 300, TimeUnit.SECONDS, new LinkedBlockingQueue<>(10)); /** @@ -115,7 +115,6 @@ */ @Override public ReturnDTO saveCertificateReport(BusinessCertificateReport certificateReport) { - initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) { return ReturnUtil.success(certificateReport.getId()); @@ -380,25 +379,34 @@ public ReturnDTO exportApprovalCertificateFile(Long id) { //获取证书报告信息 BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + if (ObjectUtils.isEmpty(certificateReport)) { + return ReturnUtil.success(); + } if (ApprovalStatusEnum.PASSED.equals(certificateReport.getApprovalStatus())) { - //生成证书报告的,需要改变为动态选择性 - CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( - () -> printFileRegister.registerPrintFile( - RegisterCustomParameters.builder() - .customFileName(certificateReport.getCertificateReportName() + certificateReport.getCertificateReportCode()) - .customObject(certificateReport) - .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) - .pdf(true) - .build()), threadPool); - certificateFutureTask.thenRun( - () -> { - String printFileName = certificateFutureTask.join(); -// certificateReport.setCertificateReportFile(certificateFutureTask.join()); -// this.baseMapper.updateById(certificateReport); -// //生成证书打印信息 -// CertificatePrintBuilder(certificateReport, printFileName); - } - ); + try { + //生成证书报告的,需要改变为动态选择性 + CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName() + certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()), threadPool); + certificateFutureTask.thenRun( + () -> { + String printFileName = certificateFutureTask.join(); + certificateReport.setCertificateReportFile(printFileName); + this.baseMapper.updateById(certificateReport); + log.debug("----" + printFileName); + //生成证书打印信息 + CertificatePrintBuilder(certificateReport, printFileName); + log.debug("----success"); + } + ); + }catch (Exception ex){ + log.error(""); + } } return ReturnUtil.success(); } @@ -578,7 +586,7 @@ private void initCertificateReport(BusinessCertificateReport certificateReport) { String prefix = MonitorCodeEnum.getByCode(certificateReport.getCalibrationMajor()).getValue() - + DateUtil.format(new Date(), "YYYYMMDD"); + + DateUtil.format(new Date(), "YYYYMMdd"); // String prefix = DateUtil.format(new Date(), "YYYYMM"); Long maxNo = this.baseMapper.selectMaxCode(prefix); //生成证书编号 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 c2a48b8..970dfc7 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 @@ -238,7 +238,6 @@ resu[2] = curPage; arrays.add(resu); count[0] = count[0] + 1; - isKeyWord = true; loop = true; return; @@ -254,7 +253,6 @@ return; } else { isKeyWord = false; - } } else { // 如果index大于关键字字符数组的长度,则该循环结束 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 4c02f06..5e171a7 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 @@ -8,7 +8,9 @@ import com.casic.missiles.dto.business.file.FilePrintRegister; import com.casic.missiles.service.listeners.util.ParseWord07; import com.casic.missiles.service.listeners.util.PdfUtils; +import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.QRCodeUtil; +import com.casic.missiles.utils.SpringContextUtil; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; import com.deepoove.poi.config.ConfigureBuilder; @@ -62,7 +64,7 @@ String wordOldUrl = exportWord(filePrintRegister.getTemDir(), filePrintRegister.getFileName(), filePrintRegister.getParams(), null, filePrintRegister.getCustomFileName()); //预先生成二维码图片 - getQrCode(filePrintRegister.getTemDir(), filePrintRegister.getCustomFileName(), wordOldUrl, filePrintRegister); + getQrCode(filePrintRegister.getTemDir(), filePrintRegister.getCustomFileName(), filePrintRegister.getTemDir() + wordOldUrl, filePrintRegister); log.debug("执行完填充参数操作......"); if (CollectionUtils.isNotEmpty(filePrintRegister.getElectronicImageList())) { try { @@ -72,26 +74,26 @@ .collect( Collectors.groupingBy(ElectronicImage::getKeyWord) ); - log.debug("执行关键字打合成操作,打印配置为{}.......", JSON.toJSON(sameKeyWordSealMaps)); + log.debug("执行关键字打合成操作,打印配置为......."); // 3、根据关键字进行添加签章和签字 - selectSeal = addSameKeyWordStamp(wordOldUrl, sameKeyWordSealMaps); + selectSeal = addSameKeyWordStamp(filePrintRegister.getTemDir() + wordOldUrl, sameKeyWordSealMaps); //获取没有关键字的图片,即绝对路径的图片 List absolutePathImageList = filePrintRegister.getElectronicImageList().stream() .filter(electronicImage -> StringUtils.isEmpty(electronicImage.getKeyWord())) .collect(Collectors.toList()); - log.debug("执行绝对打合成操作,打印配置为{}.......", JSON.toJSON(absolutePathImageList)); + log.debug("执行绝对打合成操作,打印配置为......."); //根据设置的绝对路径进行图片的填充 - addAbsolutePathStamp(wordOldUrl, absolutePathImageList); + addAbsolutePathStamp(filePrintRegister.getTemDir() + wordOldUrl, absolutePathImageList); } catch (Exception ex) { log.error("关键字异常,异常信息{}", ex); } if (filePrintRegister.getWatermark()) { - addWatermark(wordOldUrl); + addWatermark(filePrintRegister.getTemDir() + wordOldUrl); } } log.debug("执行完路径设置操作"); //如果有骑缝章新增骑缝章 - return checkExtendSeal(wordOldUrl, selectSeal, filePrintRegister); + return checkExtendSeal(filePrintRegister.getTemDir() + wordOldUrl, selectSeal, filePrintRegister); } private static void getQrCode(String tempDir, String customFileName, String wordOldUrl, FilePrintRegister filePrintRegister) throws IOException { @@ -109,7 +111,8 @@ filePrintRegister.setQrCode(content); // 加载模板 OutputStream output = new FileOutputStream(tempDir + urlPath); - QRCodeUtil.getQRCode(tempDir + content, output); + MinioUtil minioUtil = SpringContextUtil.getBean(MinioUtil.class); + QRCodeUtil.getQRCode(minioUtil.getFileUrl(content), output); } /** @@ -165,17 +168,20 @@ //多处关键字添加同一个签章 for (int keyWordIndex = 0; keyWordIndex < textSelections.length; keyWordIndex++) { Paragraph paragraph = textSelections[keyWordIndex].getAsOneRange().getOwnerParagraph(); + if ("二维码".equals(electronicSeal.getKeyWord())) { + paragraph.setText(""); + } //添加公司印章 DocPicture docPicture = paragraph.appendPicture(electronicSeal.getElectronicSealImageUrl()); + if (INSIGNIA_KEYWORD.equals(electronicSeal.getKeyWord())) { + docPicture.setTextWrappingStyle(TextWrappingStyle.Behind); + } //设置图片位于文字顶层 - if (ObjectUtils.isNotEmpty(electronicSeal.getIsSealImage()) && electronicSeal.getIsSealImage()) { - docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); - } DocPictureProvider.populateSingleImage(electronicSeal, keyWordIndex, textSelections, docPicture); - //带有公章的关键字且页数大于2,需要设置骑缝章 - if (INSIGNIA_KEYWORD.equals(electronicSeal.getKeyWord()) && document.getPageCount() >= 2) { - selectSeal = electronicSeal; - } + } + //带有公章的关键字且页数大于2,需要设置骑缝章 + if (INSIGNIA_KEYWORD.equals(electronicSeal.getKeyWord()) && document.getPageCount() >= 2) { + selectSeal = electronicSeal; } } } @@ -475,7 +481,7 @@ e.printStackTrace(); } } - return filePath; + return customFileName; } /** diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java index f198957..da10089 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java @@ -59,7 +59,7 @@ StringBuilder num = new StringBuilder(); AtomicLong count = new AtomicLong(nowNum); - SimpleDateFormat format = new SimpleDateFormat("yyyyMM"); + SimpleDateFormat format = new SimpleDateFormat("YYYYMMdd"); String datePrefix = format.format(new Date()); if(nowNum == 0){ diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 5be46c1..6ca6b9e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -33,7 +33,7 @@ Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); - @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 11)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); BusinessCertificateReport detailById( @Param("id") Long id); diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml index da16979..dbff6a2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -164,6 +164,9 @@ and id = #{request.id} + + and certificate_report_code = #{request.certificateReportCode} + and sample_id = #{request.sampleId} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java index 5f0a3fe..a881218 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -20,4 +20,8 @@ @ApiModelProperty("委托书id") private String orderId; + @ApiModelProperty("委托书报告id") + private String certificateReportCode; + + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java index 67bbf22..29724db 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java @@ -268,7 +268,7 @@ certificateReport.setRemark(certificateReport.getCertificateReportCode()); //重新生成证书编号 String prefix = MonitorCodeEnum.getByCode(certificateReport.getCalibrationMajor()).getValue() - + DateUtil.format(new Date(), "YYYYMM"); + + DateUtil.format(new Date(), "YYYYMMdd"); // String prefix = DateUtil.format(new Date(), "YYYYMM"); Long maxNo = certificateReportMapper.selectMaxCode(prefix); //生成证书编号 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 03f3881..8d9ad5f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -104,7 +104,7 @@ private PrintFileRegister printFileRegister; @Autowired private AbstractPermissionContext permissionContext; - private final ThreadPoolExecutor threadPool = new ThreadPoolExecutor(2, 10, 100, + private final ThreadPoolExecutor threadPool = new ThreadPoolExecutor(2, 10, 300, TimeUnit.SECONDS, new LinkedBlockingQueue<>(10)); /** @@ -115,7 +115,6 @@ */ @Override public ReturnDTO saveCertificateReport(BusinessCertificateReport certificateReport) { - initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) { return ReturnUtil.success(certificateReport.getId()); @@ -380,25 +379,34 @@ public ReturnDTO exportApprovalCertificateFile(Long id) { //获取证书报告信息 BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + if (ObjectUtils.isEmpty(certificateReport)) { + return ReturnUtil.success(); + } if (ApprovalStatusEnum.PASSED.equals(certificateReport.getApprovalStatus())) { - //生成证书报告的,需要改变为动态选择性 - CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( - () -> printFileRegister.registerPrintFile( - RegisterCustomParameters.builder() - .customFileName(certificateReport.getCertificateReportName() + certificateReport.getCertificateReportCode()) - .customObject(certificateReport) - .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) - .pdf(true) - .build()), threadPool); - certificateFutureTask.thenRun( - () -> { - String printFileName = certificateFutureTask.join(); -// certificateReport.setCertificateReportFile(certificateFutureTask.join()); -// this.baseMapper.updateById(certificateReport); -// //生成证书打印信息 -// CertificatePrintBuilder(certificateReport, printFileName); - } - ); + try { + //生成证书报告的,需要改变为动态选择性 + CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName() + certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()), threadPool); + certificateFutureTask.thenRun( + () -> { + String printFileName = certificateFutureTask.join(); + certificateReport.setCertificateReportFile(printFileName); + this.baseMapper.updateById(certificateReport); + log.debug("----" + printFileName); + //生成证书打印信息 + CertificatePrintBuilder(certificateReport, printFileName); + log.debug("----success"); + } + ); + }catch (Exception ex){ + log.error(""); + } } return ReturnUtil.success(); } @@ -578,7 +586,7 @@ private void initCertificateReport(BusinessCertificateReport certificateReport) { String prefix = MonitorCodeEnum.getByCode(certificateReport.getCalibrationMajor()).getValue() - + DateUtil.format(new Date(), "YYYYMMDD"); + + DateUtil.format(new Date(), "YYYYMMdd"); // String prefix = DateUtil.format(new Date(), "YYYYMM"); Long maxNo = this.baseMapper.selectMaxCode(prefix); //生成证书编号 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 c2a48b8..970dfc7 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 @@ -238,7 +238,6 @@ resu[2] = curPage; arrays.add(resu); count[0] = count[0] + 1; - isKeyWord = true; loop = true; return; @@ -254,7 +253,6 @@ return; } else { isKeyWord = false; - } } else { // 如果index大于关键字字符数组的长度,则该循环结束 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 4c02f06..5e171a7 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 @@ -8,7 +8,9 @@ import com.casic.missiles.dto.business.file.FilePrintRegister; import com.casic.missiles.service.listeners.util.ParseWord07; import com.casic.missiles.service.listeners.util.PdfUtils; +import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.QRCodeUtil; +import com.casic.missiles.utils.SpringContextUtil; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; import com.deepoove.poi.config.ConfigureBuilder; @@ -62,7 +64,7 @@ String wordOldUrl = exportWord(filePrintRegister.getTemDir(), filePrintRegister.getFileName(), filePrintRegister.getParams(), null, filePrintRegister.getCustomFileName()); //预先生成二维码图片 - getQrCode(filePrintRegister.getTemDir(), filePrintRegister.getCustomFileName(), wordOldUrl, filePrintRegister); + getQrCode(filePrintRegister.getTemDir(), filePrintRegister.getCustomFileName(), filePrintRegister.getTemDir() + wordOldUrl, filePrintRegister); log.debug("执行完填充参数操作......"); if (CollectionUtils.isNotEmpty(filePrintRegister.getElectronicImageList())) { try { @@ -72,26 +74,26 @@ .collect( Collectors.groupingBy(ElectronicImage::getKeyWord) ); - log.debug("执行关键字打合成操作,打印配置为{}.......", JSON.toJSON(sameKeyWordSealMaps)); + log.debug("执行关键字打合成操作,打印配置为......."); // 3、根据关键字进行添加签章和签字 - selectSeal = addSameKeyWordStamp(wordOldUrl, sameKeyWordSealMaps); + selectSeal = addSameKeyWordStamp(filePrintRegister.getTemDir() + wordOldUrl, sameKeyWordSealMaps); //获取没有关键字的图片,即绝对路径的图片 List absolutePathImageList = filePrintRegister.getElectronicImageList().stream() .filter(electronicImage -> StringUtils.isEmpty(electronicImage.getKeyWord())) .collect(Collectors.toList()); - log.debug("执行绝对打合成操作,打印配置为{}.......", JSON.toJSON(absolutePathImageList)); + log.debug("执行绝对打合成操作,打印配置为......."); //根据设置的绝对路径进行图片的填充 - addAbsolutePathStamp(wordOldUrl, absolutePathImageList); + addAbsolutePathStamp(filePrintRegister.getTemDir() + wordOldUrl, absolutePathImageList); } catch (Exception ex) { log.error("关键字异常,异常信息{}", ex); } if (filePrintRegister.getWatermark()) { - addWatermark(wordOldUrl); + addWatermark(filePrintRegister.getTemDir() + wordOldUrl); } } log.debug("执行完路径设置操作"); //如果有骑缝章新增骑缝章 - return checkExtendSeal(wordOldUrl, selectSeal, filePrintRegister); + return checkExtendSeal(filePrintRegister.getTemDir() + wordOldUrl, selectSeal, filePrintRegister); } private static void getQrCode(String tempDir, String customFileName, String wordOldUrl, FilePrintRegister filePrintRegister) throws IOException { @@ -109,7 +111,8 @@ filePrintRegister.setQrCode(content); // 加载模板 OutputStream output = new FileOutputStream(tempDir + urlPath); - QRCodeUtil.getQRCode(tempDir + content, output); + MinioUtil minioUtil = SpringContextUtil.getBean(MinioUtil.class); + QRCodeUtil.getQRCode(minioUtil.getFileUrl(content), output); } /** @@ -165,17 +168,20 @@ //多处关键字添加同一个签章 for (int keyWordIndex = 0; keyWordIndex < textSelections.length; keyWordIndex++) { Paragraph paragraph = textSelections[keyWordIndex].getAsOneRange().getOwnerParagraph(); + if ("二维码".equals(electronicSeal.getKeyWord())) { + paragraph.setText(""); + } //添加公司印章 DocPicture docPicture = paragraph.appendPicture(electronicSeal.getElectronicSealImageUrl()); + if (INSIGNIA_KEYWORD.equals(electronicSeal.getKeyWord())) { + docPicture.setTextWrappingStyle(TextWrappingStyle.Behind); + } //设置图片位于文字顶层 - if (ObjectUtils.isNotEmpty(electronicSeal.getIsSealImage()) && electronicSeal.getIsSealImage()) { - docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); - } DocPictureProvider.populateSingleImage(electronicSeal, keyWordIndex, textSelections, docPicture); - //带有公章的关键字且页数大于2,需要设置骑缝章 - if (INSIGNIA_KEYWORD.equals(electronicSeal.getKeyWord()) && document.getPageCount() >= 2) { - selectSeal = electronicSeal; - } + } + //带有公章的关键字且页数大于2,需要设置骑缝章 + if (INSIGNIA_KEYWORD.equals(electronicSeal.getKeyWord()) && document.getPageCount() >= 2) { + selectSeal = electronicSeal; } } } @@ -475,7 +481,7 @@ e.printStackTrace(); } } - return filePath; + return customFileName; } /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java index 34bd121..57a4313 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java @@ -1,7 +1,6 @@ package com.casic.missiles.service.listeners.register; -import cn.afterturn.easypoi.excel.ExcelExportUtil; -import cn.afterturn.easypoi.excel.entity.TemplateExportParams; + import cn.hutool.core.lang.Assert; import com.alibaba.fastjson.JSON; import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; @@ -10,18 +9,13 @@ import com.casic.missiles.enums.notifyevent.AwareFilePrintTypeEnum; import com.casic.missiles.service.listeners.register.data.PrintFileDataGeneric; import com.casic.missiles.service.listeners.util.ExcelPrintUtils; -import com.casic.missiles.utils.QRCodeUtil; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.io.*; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import java.util.Objects; /** @@ -101,13 +95,13 @@ } finally { if (printDocUrl != null) { //如果文件路径不为空,回传文件流 - miniName = createResponseFileInput(printDocUrl, registerParameters.getQrUrl(), registerParameters.getResponse()); + miniName = createResponseFileInput(printDocUrl, filePrintRegister.getQrCode(), registerParameters.getResponse()); } //删除无效的文件 File invalidFile = new File(tempLocalFileDir); // 删除运行空间下的文件 deleteFile(invalidFile); - log.debug("invalid print file start delete, the file directory is {},this file is {}", tempLocalFileDir, miniName); + log.debug("002 invalid print file start delete, the file directory is {},this file is {}", tempLocalFileDir, miniName); } } return miniName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java index f198957..da10089 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java @@ -59,7 +59,7 @@ StringBuilder num = new StringBuilder(); AtomicLong count = new AtomicLong(nowNum); - SimpleDateFormat format = new SimpleDateFormat("yyyyMM"); + SimpleDateFormat format = new SimpleDateFormat("YYYYMMdd"); String datePrefix = format.format(new Date()); if(nowNum == 0){ diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 5be46c1..6ca6b9e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -33,7 +33,7 @@ Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); - @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 11)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); BusinessCertificateReport detailById( @Param("id") Long id); diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml index da16979..dbff6a2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -164,6 +164,9 @@ and id = #{request.id} + + and certificate_report_code = #{request.certificateReportCode} + and sample_id = #{request.sampleId} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java index 5f0a3fe..a881218 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -20,4 +20,8 @@ @ApiModelProperty("委托书id") private String orderId; + @ApiModelProperty("委托书报告id") + private String certificateReportCode; + + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java index 67bbf22..29724db 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java @@ -268,7 +268,7 @@ certificateReport.setRemark(certificateReport.getCertificateReportCode()); //重新生成证书编号 String prefix = MonitorCodeEnum.getByCode(certificateReport.getCalibrationMajor()).getValue() - + DateUtil.format(new Date(), "YYYYMM"); + + DateUtil.format(new Date(), "YYYYMMdd"); // String prefix = DateUtil.format(new Date(), "YYYYMM"); Long maxNo = certificateReportMapper.selectMaxCode(prefix); //生成证书编号 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 03f3881..8d9ad5f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -104,7 +104,7 @@ private PrintFileRegister printFileRegister; @Autowired private AbstractPermissionContext permissionContext; - private final ThreadPoolExecutor threadPool = new ThreadPoolExecutor(2, 10, 100, + private final ThreadPoolExecutor threadPool = new ThreadPoolExecutor(2, 10, 300, TimeUnit.SECONDS, new LinkedBlockingQueue<>(10)); /** @@ -115,7 +115,6 @@ */ @Override public ReturnDTO saveCertificateReport(BusinessCertificateReport certificateReport) { - initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) { return ReturnUtil.success(certificateReport.getId()); @@ -380,25 +379,34 @@ public ReturnDTO exportApprovalCertificateFile(Long id) { //获取证书报告信息 BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + if (ObjectUtils.isEmpty(certificateReport)) { + return ReturnUtil.success(); + } if (ApprovalStatusEnum.PASSED.equals(certificateReport.getApprovalStatus())) { - //生成证书报告的,需要改变为动态选择性 - CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( - () -> printFileRegister.registerPrintFile( - RegisterCustomParameters.builder() - .customFileName(certificateReport.getCertificateReportName() + certificateReport.getCertificateReportCode()) - .customObject(certificateReport) - .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) - .pdf(true) - .build()), threadPool); - certificateFutureTask.thenRun( - () -> { - String printFileName = certificateFutureTask.join(); -// certificateReport.setCertificateReportFile(certificateFutureTask.join()); -// this.baseMapper.updateById(certificateReport); -// //生成证书打印信息 -// CertificatePrintBuilder(certificateReport, printFileName); - } - ); + try { + //生成证书报告的,需要改变为动态选择性 + CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName() + certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()), threadPool); + certificateFutureTask.thenRun( + () -> { + String printFileName = certificateFutureTask.join(); + certificateReport.setCertificateReportFile(printFileName); + this.baseMapper.updateById(certificateReport); + log.debug("----" + printFileName); + //生成证书打印信息 + CertificatePrintBuilder(certificateReport, printFileName); + log.debug("----success"); + } + ); + }catch (Exception ex){ + log.error(""); + } } return ReturnUtil.success(); } @@ -578,7 +586,7 @@ private void initCertificateReport(BusinessCertificateReport certificateReport) { String prefix = MonitorCodeEnum.getByCode(certificateReport.getCalibrationMajor()).getValue() - + DateUtil.format(new Date(), "YYYYMMDD"); + + DateUtil.format(new Date(), "YYYYMMdd"); // String prefix = DateUtil.format(new Date(), "YYYYMM"); Long maxNo = this.baseMapper.selectMaxCode(prefix); //生成证书编号 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 c2a48b8..970dfc7 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 @@ -238,7 +238,6 @@ resu[2] = curPage; arrays.add(resu); count[0] = count[0] + 1; - isKeyWord = true; loop = true; return; @@ -254,7 +253,6 @@ return; } else { isKeyWord = false; - } } else { // 如果index大于关键字字符数组的长度,则该循环结束 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 4c02f06..5e171a7 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 @@ -8,7 +8,9 @@ import com.casic.missiles.dto.business.file.FilePrintRegister; import com.casic.missiles.service.listeners.util.ParseWord07; import com.casic.missiles.service.listeners.util.PdfUtils; +import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.QRCodeUtil; +import com.casic.missiles.utils.SpringContextUtil; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; import com.deepoove.poi.config.ConfigureBuilder; @@ -62,7 +64,7 @@ String wordOldUrl = exportWord(filePrintRegister.getTemDir(), filePrintRegister.getFileName(), filePrintRegister.getParams(), null, filePrintRegister.getCustomFileName()); //预先生成二维码图片 - getQrCode(filePrintRegister.getTemDir(), filePrintRegister.getCustomFileName(), wordOldUrl, filePrintRegister); + getQrCode(filePrintRegister.getTemDir(), filePrintRegister.getCustomFileName(), filePrintRegister.getTemDir() + wordOldUrl, filePrintRegister); log.debug("执行完填充参数操作......"); if (CollectionUtils.isNotEmpty(filePrintRegister.getElectronicImageList())) { try { @@ -72,26 +74,26 @@ .collect( Collectors.groupingBy(ElectronicImage::getKeyWord) ); - log.debug("执行关键字打合成操作,打印配置为{}.......", JSON.toJSON(sameKeyWordSealMaps)); + log.debug("执行关键字打合成操作,打印配置为......."); // 3、根据关键字进行添加签章和签字 - selectSeal = addSameKeyWordStamp(wordOldUrl, sameKeyWordSealMaps); + selectSeal = addSameKeyWordStamp(filePrintRegister.getTemDir() + wordOldUrl, sameKeyWordSealMaps); //获取没有关键字的图片,即绝对路径的图片 List absolutePathImageList = filePrintRegister.getElectronicImageList().stream() .filter(electronicImage -> StringUtils.isEmpty(electronicImage.getKeyWord())) .collect(Collectors.toList()); - log.debug("执行绝对打合成操作,打印配置为{}.......", JSON.toJSON(absolutePathImageList)); + log.debug("执行绝对打合成操作,打印配置为......."); //根据设置的绝对路径进行图片的填充 - addAbsolutePathStamp(wordOldUrl, absolutePathImageList); + addAbsolutePathStamp(filePrintRegister.getTemDir() + wordOldUrl, absolutePathImageList); } catch (Exception ex) { log.error("关键字异常,异常信息{}", ex); } if (filePrintRegister.getWatermark()) { - addWatermark(wordOldUrl); + addWatermark(filePrintRegister.getTemDir() + wordOldUrl); } } log.debug("执行完路径设置操作"); //如果有骑缝章新增骑缝章 - return checkExtendSeal(wordOldUrl, selectSeal, filePrintRegister); + return checkExtendSeal(filePrintRegister.getTemDir() + wordOldUrl, selectSeal, filePrintRegister); } private static void getQrCode(String tempDir, String customFileName, String wordOldUrl, FilePrintRegister filePrintRegister) throws IOException { @@ -109,7 +111,8 @@ filePrintRegister.setQrCode(content); // 加载模板 OutputStream output = new FileOutputStream(tempDir + urlPath); - QRCodeUtil.getQRCode(tempDir + content, output); + MinioUtil minioUtil = SpringContextUtil.getBean(MinioUtil.class); + QRCodeUtil.getQRCode(minioUtil.getFileUrl(content), output); } /** @@ -165,17 +168,20 @@ //多处关键字添加同一个签章 for (int keyWordIndex = 0; keyWordIndex < textSelections.length; keyWordIndex++) { Paragraph paragraph = textSelections[keyWordIndex].getAsOneRange().getOwnerParagraph(); + if ("二维码".equals(electronicSeal.getKeyWord())) { + paragraph.setText(""); + } //添加公司印章 DocPicture docPicture = paragraph.appendPicture(electronicSeal.getElectronicSealImageUrl()); + if (INSIGNIA_KEYWORD.equals(electronicSeal.getKeyWord())) { + docPicture.setTextWrappingStyle(TextWrappingStyle.Behind); + } //设置图片位于文字顶层 - if (ObjectUtils.isNotEmpty(electronicSeal.getIsSealImage()) && electronicSeal.getIsSealImage()) { - docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); - } DocPictureProvider.populateSingleImage(electronicSeal, keyWordIndex, textSelections, docPicture); - //带有公章的关键字且页数大于2,需要设置骑缝章 - if (INSIGNIA_KEYWORD.equals(electronicSeal.getKeyWord()) && document.getPageCount() >= 2) { - selectSeal = electronicSeal; - } + } + //带有公章的关键字且页数大于2,需要设置骑缝章 + if (INSIGNIA_KEYWORD.equals(electronicSeal.getKeyWord()) && document.getPageCount() >= 2) { + selectSeal = electronicSeal; } } } @@ -475,7 +481,7 @@ e.printStackTrace(); } } - return filePath; + return customFileName; } /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java index 34bd121..57a4313 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java @@ -1,7 +1,6 @@ package com.casic.missiles.service.listeners.register; -import cn.afterturn.easypoi.excel.ExcelExportUtil; -import cn.afterturn.easypoi.excel.entity.TemplateExportParams; + import cn.hutool.core.lang.Assert; import com.alibaba.fastjson.JSON; import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; @@ -10,18 +9,13 @@ import com.casic.missiles.enums.notifyevent.AwareFilePrintTypeEnum; import com.casic.missiles.service.listeners.register.data.PrintFileDataGeneric; import com.casic.missiles.service.listeners.util.ExcelPrintUtils; -import com.casic.missiles.utils.QRCodeUtil; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.io.*; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import java.util.Objects; /** @@ -101,13 +95,13 @@ } finally { if (printDocUrl != null) { //如果文件路径不为空,回传文件流 - miniName = createResponseFileInput(printDocUrl, registerParameters.getQrUrl(), registerParameters.getResponse()); + miniName = createResponseFileInput(printDocUrl, filePrintRegister.getQrCode(), registerParameters.getResponse()); } //删除无效的文件 File invalidFile = new File(tempLocalFileDir); // 删除运行空间下的文件 deleteFile(invalidFile); - log.debug("invalid print file start delete, the file directory is {},this file is {}", tempLocalFileDir, miniName); + log.debug("002 invalid print file start delete, the file directory is {},this file is {}", tempLocalFileDir, miniName); } } return miniName; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/util/ExcelPrintUtils.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/util/ExcelPrintUtils.java index 9fbe773..81c514c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/util/ExcelPrintUtils.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/util/ExcelPrintUtils.java @@ -146,6 +146,9 @@ if ("专用章".equals(entry.getKey())) { picture.setWidth(200); picture.setHeight(120); + picture.setTopRowOffset(10);//设置填充图片后的单元格 内边距 + picture.setLeftColumnOffset(10); + break; } else if (!"{qr}".equals(entry.getKey())) { picture.setWidth((int) electronicSeal.getStampWidth()); picture.setHeight((int) electronicSeal.getStampHeight()); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java index f198957..da10089 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NumberGeneratorUtil.java @@ -59,7 +59,7 @@ StringBuilder num = new StringBuilder(); AtomicLong count = new AtomicLong(nowNum); - SimpleDateFormat format = new SimpleDateFormat("yyyyMM"); + SimpleDateFormat format = new SimpleDateFormat("YYYYMMdd"); String datePrefix = format.format(new Date()); if(nowNum == 0){ diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java index 5be46c1..6ca6b9e 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java @@ -33,7 +33,7 @@ Page certificateMonitorsById(Page page, @Param("request") CustomerSampleIdRequest customerSampleIdRequest); - @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 9)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") + @Select("SELECT IFNULL(max(RIGHT(certificate_report_code, 11)), 0) from business_certificate_report where certificate_report_code like CONCAT(#{prefix},'%')") Long selectMaxCode(String prefix); BusinessCertificateReport detailById( @Param("id") Long id); diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml index da16979..dbff6a2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -164,6 +164,9 @@ and id = #{request.id} + + and certificate_report_code = #{request.certificateReportCode} + and sample_id = #{request.sampleId} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java index 5f0a3fe..a881218 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -20,4 +20,8 @@ @ApiModelProperty("委托书id") private String orderId; + @ApiModelProperty("委托书报告id") + private String certificateReportCode; + + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java index 67bbf22..29724db 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java @@ -268,7 +268,7 @@ certificateReport.setRemark(certificateReport.getCertificateReportCode()); //重新生成证书编号 String prefix = MonitorCodeEnum.getByCode(certificateReport.getCalibrationMajor()).getValue() - + DateUtil.format(new Date(), "YYYYMM"); + + DateUtil.format(new Date(), "YYYYMMdd"); // String prefix = DateUtil.format(new Date(), "YYYYMM"); Long maxNo = certificateReportMapper.selectMaxCode(prefix); //生成证书编号 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java index 03f3881..8d9ad5f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificateReportServiceImpl.java @@ -104,7 +104,7 @@ private PrintFileRegister printFileRegister; @Autowired private AbstractPermissionContext permissionContext; - private final ThreadPoolExecutor threadPool = new ThreadPoolExecutor(2, 10, 100, + private final ThreadPoolExecutor threadPool = new ThreadPoolExecutor(2, 10, 300, TimeUnit.SECONDS, new LinkedBlockingQueue<>(10)); /** @@ -115,7 +115,6 @@ */ @Override public ReturnDTO saveCertificateReport(BusinessCertificateReport certificateReport) { - initCertificateReport(certificateReport); if (this.baseMapper.insert(certificateReport) > 0) { return ReturnUtil.success(certificateReport.getId()); @@ -380,25 +379,34 @@ public ReturnDTO exportApprovalCertificateFile(Long id) { //获取证书报告信息 BusinessCertificateReport certificateReport = this.baseMapper.selectById(id); + if (ObjectUtils.isEmpty(certificateReport)) { + return ReturnUtil.success(); + } if (ApprovalStatusEnum.PASSED.equals(certificateReport.getApprovalStatus())) { - //生成证书报告的,需要改变为动态选择性 - CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( - () -> printFileRegister.registerPrintFile( - RegisterCustomParameters.builder() - .customFileName(certificateReport.getCertificateReportName() + certificateReport.getCertificateReportCode()) - .customObject(certificateReport) - .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) - .pdf(true) - .build()), threadPool); - certificateFutureTask.thenRun( - () -> { - String printFileName = certificateFutureTask.join(); -// certificateReport.setCertificateReportFile(certificateFutureTask.join()); -// this.baseMapper.updateById(certificateReport); -// //生成证书打印信息 -// CertificatePrintBuilder(certificateReport, printFileName); - } - ); + try { + //生成证书报告的,需要改变为动态选择性 + CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + () -> printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName() + certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()), threadPool); + certificateFutureTask.thenRun( + () -> { + String printFileName = certificateFutureTask.join(); + certificateReport.setCertificateReportFile(printFileName); + this.baseMapper.updateById(certificateReport); + log.debug("----" + printFileName); + //生成证书打印信息 + CertificatePrintBuilder(certificateReport, printFileName); + log.debug("----success"); + } + ); + }catch (Exception ex){ + log.error(""); + } } return ReturnUtil.success(); } @@ -578,7 +586,7 @@ private void initCertificateReport(BusinessCertificateReport certificateReport) { String prefix = MonitorCodeEnum.getByCode(certificateReport.getCalibrationMajor()).getValue() - + DateUtil.format(new Date(), "YYYYMMDD"); + + DateUtil.format(new Date(), "YYYYMMdd"); // String prefix = DateUtil.format(new Date(), "YYYYMM"); Long maxNo = this.baseMapper.selectMaxCode(prefix); //生成证书编号 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 c2a48b8..970dfc7 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 @@ -238,7 +238,6 @@ resu[2] = curPage; arrays.add(resu); count[0] = count[0] + 1; - isKeyWord = true; loop = true; return; @@ -254,7 +253,6 @@ return; } else { isKeyWord = false; - } } else { // 如果index大于关键字字符数组的长度,则该循环结束 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 4c02f06..5e171a7 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 @@ -8,7 +8,9 @@ import com.casic.missiles.dto.business.file.FilePrintRegister; import com.casic.missiles.service.listeners.util.ParseWord07; import com.casic.missiles.service.listeners.util.PdfUtils; +import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.QRCodeUtil; +import com.casic.missiles.utils.SpringContextUtil; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; import com.deepoove.poi.config.ConfigureBuilder; @@ -62,7 +64,7 @@ String wordOldUrl = exportWord(filePrintRegister.getTemDir(), filePrintRegister.getFileName(), filePrintRegister.getParams(), null, filePrintRegister.getCustomFileName()); //预先生成二维码图片 - getQrCode(filePrintRegister.getTemDir(), filePrintRegister.getCustomFileName(), wordOldUrl, filePrintRegister); + getQrCode(filePrintRegister.getTemDir(), filePrintRegister.getCustomFileName(), filePrintRegister.getTemDir() + wordOldUrl, filePrintRegister); log.debug("执行完填充参数操作......"); if (CollectionUtils.isNotEmpty(filePrintRegister.getElectronicImageList())) { try { @@ -72,26 +74,26 @@ .collect( Collectors.groupingBy(ElectronicImage::getKeyWord) ); - log.debug("执行关键字打合成操作,打印配置为{}.......", JSON.toJSON(sameKeyWordSealMaps)); + log.debug("执行关键字打合成操作,打印配置为......."); // 3、根据关键字进行添加签章和签字 - selectSeal = addSameKeyWordStamp(wordOldUrl, sameKeyWordSealMaps); + selectSeal = addSameKeyWordStamp(filePrintRegister.getTemDir() + wordOldUrl, sameKeyWordSealMaps); //获取没有关键字的图片,即绝对路径的图片 List absolutePathImageList = filePrintRegister.getElectronicImageList().stream() .filter(electronicImage -> StringUtils.isEmpty(electronicImage.getKeyWord())) .collect(Collectors.toList()); - log.debug("执行绝对打合成操作,打印配置为{}.......", JSON.toJSON(absolutePathImageList)); + log.debug("执行绝对打合成操作,打印配置为......."); //根据设置的绝对路径进行图片的填充 - addAbsolutePathStamp(wordOldUrl, absolutePathImageList); + addAbsolutePathStamp(filePrintRegister.getTemDir() + wordOldUrl, absolutePathImageList); } catch (Exception ex) { log.error("关键字异常,异常信息{}", ex); } if (filePrintRegister.getWatermark()) { - addWatermark(wordOldUrl); + addWatermark(filePrintRegister.getTemDir() + wordOldUrl); } } log.debug("执行完路径设置操作"); //如果有骑缝章新增骑缝章 - return checkExtendSeal(wordOldUrl, selectSeal, filePrintRegister); + return checkExtendSeal(filePrintRegister.getTemDir() + wordOldUrl, selectSeal, filePrintRegister); } private static void getQrCode(String tempDir, String customFileName, String wordOldUrl, FilePrintRegister filePrintRegister) throws IOException { @@ -109,7 +111,8 @@ filePrintRegister.setQrCode(content); // 加载模板 OutputStream output = new FileOutputStream(tempDir + urlPath); - QRCodeUtil.getQRCode(tempDir + content, output); + MinioUtil minioUtil = SpringContextUtil.getBean(MinioUtil.class); + QRCodeUtil.getQRCode(minioUtil.getFileUrl(content), output); } /** @@ -165,17 +168,20 @@ //多处关键字添加同一个签章 for (int keyWordIndex = 0; keyWordIndex < textSelections.length; keyWordIndex++) { Paragraph paragraph = textSelections[keyWordIndex].getAsOneRange().getOwnerParagraph(); + if ("二维码".equals(electronicSeal.getKeyWord())) { + paragraph.setText(""); + } //添加公司印章 DocPicture docPicture = paragraph.appendPicture(electronicSeal.getElectronicSealImageUrl()); + if (INSIGNIA_KEYWORD.equals(electronicSeal.getKeyWord())) { + docPicture.setTextWrappingStyle(TextWrappingStyle.Behind); + } //设置图片位于文字顶层 - if (ObjectUtils.isNotEmpty(electronicSeal.getIsSealImage()) && electronicSeal.getIsSealImage()) { - docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); - } DocPictureProvider.populateSingleImage(electronicSeal, keyWordIndex, textSelections, docPicture); - //带有公章的关键字且页数大于2,需要设置骑缝章 - if (INSIGNIA_KEYWORD.equals(electronicSeal.getKeyWord()) && document.getPageCount() >= 2) { - selectSeal = electronicSeal; - } + } + //带有公章的关键字且页数大于2,需要设置骑缝章 + if (INSIGNIA_KEYWORD.equals(electronicSeal.getKeyWord()) && document.getPageCount() >= 2) { + selectSeal = electronicSeal; } } } @@ -475,7 +481,7 @@ e.printStackTrace(); } } - return filePath; + return customFileName; } /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java index 34bd121..57a4313 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java @@ -1,7 +1,6 @@ package com.casic.missiles.service.listeners.register; -import cn.afterturn.easypoi.excel.ExcelExportUtil; -import cn.afterturn.easypoi.excel.entity.TemplateExportParams; + import cn.hutool.core.lang.Assert; import com.alibaba.fastjson.JSON; import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; @@ -10,18 +9,13 @@ import com.casic.missiles.enums.notifyevent.AwareFilePrintTypeEnum; import com.casic.missiles.service.listeners.register.data.PrintFileDataGeneric; import com.casic.missiles.service.listeners.util.ExcelPrintUtils; -import com.casic.missiles.utils.QRCodeUtil; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.io.*; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import java.util.Objects; /** @@ -101,13 +95,13 @@ } finally { if (printDocUrl != null) { //如果文件路径不为空,回传文件流 - miniName = createResponseFileInput(printDocUrl, registerParameters.getQrUrl(), registerParameters.getResponse()); + miniName = createResponseFileInput(printDocUrl, filePrintRegister.getQrCode(), registerParameters.getResponse()); } //删除无效的文件 File invalidFile = new File(tempLocalFileDir); // 删除运行空间下的文件 deleteFile(invalidFile); - log.debug("invalid print file start delete, the file directory is {},this file is {}", tempLocalFileDir, miniName); + log.debug("002 invalid print file start delete, the file directory is {},this file is {}", tempLocalFileDir, miniName); } } return miniName; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/util/ExcelPrintUtils.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/util/ExcelPrintUtils.java index 9fbe773..81c514c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/util/ExcelPrintUtils.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/util/ExcelPrintUtils.java @@ -146,6 +146,9 @@ if ("专用章".equals(entry.getKey())) { picture.setWidth(200); picture.setHeight(120); + picture.setTopRowOffset(10);//设置填充图片后的单元格 内边距 + picture.setLeftColumnOffset(10); + break; } else if (!"{qr}".equals(entry.getKey())) { picture.setWidth((int) electronicSeal.getStampWidth()); picture.setHeight((int) electronicSeal.getStampHeight()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/util/PdfUtils.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/util/PdfUtils.java index edd6aaf..e4086aa 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/util/PdfUtils.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/util/PdfUtils.java @@ -56,7 +56,7 @@ long now = System.currentTimeMillis(); os.close(); //转化用时 - System.out.println("Word 转 Pdf 共耗时:" + ((now - old) / 1000.0) + "秒"); + log.debug("Word 转 Pdf 共耗时:" + ((now - old) / 1000.0) + "秒"); } catch (Exception e) { System.out.println("Word 转 Pdf 失败..."); e.printStackTrace();