diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java index 19ada99..f584ad5 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java @@ -113,6 +113,13 @@ private String certificateFile; /** + * 证书报告文件(minio存储文件名) + */ + @ApiModelProperty(value = "证书pdf报告文件(minio存储文件名)", dataType = "String") + @TableField("certificate_word_file") + private String certificateWordFile; + + /** * 创建用户id */ @ApiModelProperty(value = "创建用户id", dataType = "Long") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java index 19ada99..f584ad5 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java @@ -113,6 +113,13 @@ private String certificateFile; /** + * 证书报告文件(minio存储文件名) + */ + @ApiModelProperty(value = "证书pdf报告文件(minio存储文件名)", dataType = "String") + @TableField("certificate_word_file") + private String certificateWordFile; + + /** * 创建用户id */ @ApiModelProperty(value = "创建用户id", dataType = "Long") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java index d581629..18f3168 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java @@ -151,6 +151,9 @@ @ApiModelProperty(value = "核查记录文件名称", dataType = "String") private String checkRecordFile; + @ApiModelProperty(value = "核查记录word文件名称", dataType = "String") + private String checkRecordWordFile; + @ApiModelProperty(value = "检查日期(打印)", dataType = "String") @TableField(exist = false) private String checkDate; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java index 19ada99..f584ad5 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java @@ -113,6 +113,13 @@ private String certificateFile; /** + * 证书报告文件(minio存储文件名) + */ + @ApiModelProperty(value = "证书pdf报告文件(minio存储文件名)", dataType = "String") + @TableField("certificate_word_file") + private String certificateWordFile; + + /** * 创建用户id */ @ApiModelProperty(value = "创建用户id", dataType = "Long") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java index d581629..18f3168 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java @@ -151,6 +151,9 @@ @ApiModelProperty(value = "核查记录文件名称", dataType = "String") private String checkRecordFile; + @ApiModelProperty(value = "核查记录word文件名称", dataType = "String") + private String checkRecordWordFile; + @ApiModelProperty(value = "检查日期(打印)", dataType = "String") @TableField(exist = false) private String checkDate; 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 1a5bd51..d25dd30 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 @@ -19,6 +19,7 @@ import com.casic.missiles.service.listeners.register.PrintFileRegister; import com.casic.missiles.utils.SnowflakeUtil; import com.casic.missiles.utils.SpringContextUtil; +import liquibase.pro.packaged.A; import liquibase.pro.packaged.M; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -55,11 +56,12 @@ */ public void checkCertificateTask(BizEquipmentStandardCheckRecordApproval request) { //生成核查记录单 - String checkCertificateFileUrl = checkCertificateFile(request); + List checkCertificateFileList = checkCertificateFile(request); BizEquipmentStandardCheckRecordApprovalMapper bizRecordApprovalMapper = SpringContextUtil.getBean(BizEquipmentStandardCheckRecordApprovalMapper.class); - if (StringUtils.isNotEmpty(checkCertificateFileUrl)) { + if (CollectionUtils.isNotEmpty(checkCertificateFileList)) { //原始记录文件 - request.setCheckRecordFile(checkCertificateFileUrl); + request.setCheckRecordFile(checkCertificateFileList.size() > 1 ? checkCertificateFileList.get(1) : ""); + request.setCheckRecordWordFile(checkCertificateFileList.get(0)); //更新记录 int updateFlag = bizRecordApprovalMapper.updateById(request); Assert.isFalse(updateFlag <= 0, () -> { @@ -96,7 +98,7 @@ } bizBusinessDeviceMeasureApproval.setId(id); //原始记录文件 - bizBusinessDeviceMeasureApproval.setOriginalRecordFile(certificateFileUrl); + bizBusinessDeviceMeasureApproval.setCertificateFile(certificateFileUrl); //更新记录 int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); Assert.isFalse(updateFlag <= 0, () -> { @@ -147,7 +149,7 @@ */ public void measureCertificateTask(BizBusinessDeviceMeasureApproval request) { //生成证书报告的 - CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + CompletableFuture> certificateFutureTask = CompletableFuture.supplyAsync( () -> createCertificateFile(request), threadPool); //生成原始记录的线程 CompletableFuture originalFutureTask = CompletableFuture.supplyAsync( @@ -157,12 +159,13 @@ combinedFuture.thenRun(() -> { try { //获取结果 - String certificateFileUrl = certificateFutureTask.join(); + List certificateFileUrl = certificateFutureTask.join(); String originalRecordFileUrl = originalFutureTask.join(); BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); - if (StringUtils.isNotEmpty(certificateFileUrl) || StringUtils.isNotEmpty(originalRecordFileUrl)) { + if (CollectionUtils.isNotEmpty(certificateFileUrl) || StringUtils.isNotEmpty(originalRecordFileUrl)) { //生成证书文件 - request.setCertificateFile(certificateFileUrl); + request.setCertificateFile(certificateFileUrl.size() > 1 ? certificateFileUrl.get(1) : ""); + request.setCertificateWordFile(certificateFileUrl.get(0)); //原始记录文件 request.setOriginalRecordFile(originalRecordFileUrl); //更新记录 @@ -187,14 +190,14 @@ * @param request * @return */ - private String checkCertificateFile(BizEquipmentStandardCheckRecordApproval request) { + private List checkCertificateFile(BizEquipmentStandardCheckRecordApproval request) { for (BizEquipmentInfo checkEquipment : request.getCheckEquipmentList()) { checkEquipment.setEquipmentType("测量设备"); } try { //健壮性判断 if (ObjectUtils.isEmpty(request)) { - return ""; + return null; } Map map = BeanUtil.beanToMap(request); //划分为最佳点,最差点,典型点 @@ -206,8 +209,8 @@ .stream().filter(e -> BEST_POINT.equals(e.getTestType()) && StringUtils.isEmpty(e.getTestValueFiveDate())).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(repList)) { - List repMapList=new ArrayList<>(); - for(BizEquipmentStandardCheckDataCalibrator rep:repList){ + List repMapList = new ArrayList<>(); + for (BizEquipmentStandardCheckDataCalibrator rep : repList) { Map repMap = BeanUtil.beanToMap(rep); repMapList.add(repMap); } @@ -225,7 +228,13 @@ map.put(UP_STANDARD, "\uF0A3"); map.put(BELOW_STANDARD, "\uF0A3"); //除了选用的模板不一致,模板配置流程是一致的 - return printFileRegister.registerPrintFile(MULTIFUNCTION_CHECK_DATA, "数据打印", null, map, true, null, null); + String wordUrl = printFileRegister.registerPrintFile(MULTIFUNCTION_CHECK_DATA, "数据打印", null, map, true, null, null); + List urlList = new ArrayList<>(); + urlList.add(wordUrl); + if (map.containsKey("pdfUrl")) { + urlList.add((String) map.get("pdfUrl")); + } + return urlList; } catch (Exception ex) { throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); } @@ -258,11 +267,11 @@ * @param measureItemInfo * @return */ - private String createCertificateFile(BizBusinessDeviceMeasureApproval measureItemInfo) { + private List createCertificateFile(BizBusinessDeviceMeasureApproval measureItemInfo) { try { //过滤不能生成证书的 if (checkOutUnablePrint(measureItemInfo)) { - return ""; + return null; } if (CollectionUtil.isEmpty(measureItemInfo.getMeasureDataCalibratorList())) { List bizBusinessDeviceMeasureDataCalibrators = new ArrayList<>(); @@ -278,8 +287,15 @@ customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "2", measureItemInfo.getMeasureCategoryName())); customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "2", "数字记录表内容")); map.put("id", snowflakeUtil.nextId()); + map.put("pdfStatus", 1); + List urlList = new ArrayList<>(); //除了选用的模板不一致,模板配置流程是一致的 - return printFileRegister.registerPrintFile(MEASURE_DATA, "证书打印", null, map, false, null, customTemplateUrls); + String wordUrl = printFileRegister.registerPrintFile(MEASURE_DATA, "证书打印", null, map, false, null, customTemplateUrls); + urlList.add(wordUrl); + if (map.containsKey("pdfUrl")) { + urlList.add((String) map.get("pdfUrl")); + } + return urlList; } catch (Exception ex) { throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); } @@ -306,6 +322,7 @@ customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "1", measureItemInfo.getItemCategoryName())); //与证书模板区分 map.put("id", snowflakeUtil.nextId()); + map.put("pdfStatus", 1); //除了选用的模板不一致,模板配置流程是一致的 return printFileRegister.registerPrintFile(MEASURE_DATA, "原始记录打印", null, map, true, null, customTemplateUrls); } catch (Exception ex) { diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java index 19ada99..f584ad5 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java @@ -113,6 +113,13 @@ private String certificateFile; /** + * 证书报告文件(minio存储文件名) + */ + @ApiModelProperty(value = "证书pdf报告文件(minio存储文件名)", dataType = "String") + @TableField("certificate_word_file") + private String certificateWordFile; + + /** * 创建用户id */ @ApiModelProperty(value = "创建用户id", dataType = "Long") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java index d581629..18f3168 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java @@ -151,6 +151,9 @@ @ApiModelProperty(value = "核查记录文件名称", dataType = "String") private String checkRecordFile; + @ApiModelProperty(value = "核查记录word文件名称", dataType = "String") + private String checkRecordWordFile; + @ApiModelProperty(value = "检查日期(打印)", dataType = "String") @TableField(exist = false) private String checkDate; 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 1a5bd51..d25dd30 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 @@ -19,6 +19,7 @@ import com.casic.missiles.service.listeners.register.PrintFileRegister; import com.casic.missiles.utils.SnowflakeUtil; import com.casic.missiles.utils.SpringContextUtil; +import liquibase.pro.packaged.A; import liquibase.pro.packaged.M; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -55,11 +56,12 @@ */ public void checkCertificateTask(BizEquipmentStandardCheckRecordApproval request) { //生成核查记录单 - String checkCertificateFileUrl = checkCertificateFile(request); + List checkCertificateFileList = checkCertificateFile(request); BizEquipmentStandardCheckRecordApprovalMapper bizRecordApprovalMapper = SpringContextUtil.getBean(BizEquipmentStandardCheckRecordApprovalMapper.class); - if (StringUtils.isNotEmpty(checkCertificateFileUrl)) { + if (CollectionUtils.isNotEmpty(checkCertificateFileList)) { //原始记录文件 - request.setCheckRecordFile(checkCertificateFileUrl); + request.setCheckRecordFile(checkCertificateFileList.size() > 1 ? checkCertificateFileList.get(1) : ""); + request.setCheckRecordWordFile(checkCertificateFileList.get(0)); //更新记录 int updateFlag = bizRecordApprovalMapper.updateById(request); Assert.isFalse(updateFlag <= 0, () -> { @@ -96,7 +98,7 @@ } bizBusinessDeviceMeasureApproval.setId(id); //原始记录文件 - bizBusinessDeviceMeasureApproval.setOriginalRecordFile(certificateFileUrl); + bizBusinessDeviceMeasureApproval.setCertificateFile(certificateFileUrl); //更新记录 int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); Assert.isFalse(updateFlag <= 0, () -> { @@ -147,7 +149,7 @@ */ public void measureCertificateTask(BizBusinessDeviceMeasureApproval request) { //生成证书报告的 - CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + CompletableFuture> certificateFutureTask = CompletableFuture.supplyAsync( () -> createCertificateFile(request), threadPool); //生成原始记录的线程 CompletableFuture originalFutureTask = CompletableFuture.supplyAsync( @@ -157,12 +159,13 @@ combinedFuture.thenRun(() -> { try { //获取结果 - String certificateFileUrl = certificateFutureTask.join(); + List certificateFileUrl = certificateFutureTask.join(); String originalRecordFileUrl = originalFutureTask.join(); BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); - if (StringUtils.isNotEmpty(certificateFileUrl) || StringUtils.isNotEmpty(originalRecordFileUrl)) { + if (CollectionUtils.isNotEmpty(certificateFileUrl) || StringUtils.isNotEmpty(originalRecordFileUrl)) { //生成证书文件 - request.setCertificateFile(certificateFileUrl); + request.setCertificateFile(certificateFileUrl.size() > 1 ? certificateFileUrl.get(1) : ""); + request.setCertificateWordFile(certificateFileUrl.get(0)); //原始记录文件 request.setOriginalRecordFile(originalRecordFileUrl); //更新记录 @@ -187,14 +190,14 @@ * @param request * @return */ - private String checkCertificateFile(BizEquipmentStandardCheckRecordApproval request) { + private List checkCertificateFile(BizEquipmentStandardCheckRecordApproval request) { for (BizEquipmentInfo checkEquipment : request.getCheckEquipmentList()) { checkEquipment.setEquipmentType("测量设备"); } try { //健壮性判断 if (ObjectUtils.isEmpty(request)) { - return ""; + return null; } Map map = BeanUtil.beanToMap(request); //划分为最佳点,最差点,典型点 @@ -206,8 +209,8 @@ .stream().filter(e -> BEST_POINT.equals(e.getTestType()) && StringUtils.isEmpty(e.getTestValueFiveDate())).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(repList)) { - List repMapList=new ArrayList<>(); - for(BizEquipmentStandardCheckDataCalibrator rep:repList){ + List repMapList = new ArrayList<>(); + for (BizEquipmentStandardCheckDataCalibrator rep : repList) { Map repMap = BeanUtil.beanToMap(rep); repMapList.add(repMap); } @@ -225,7 +228,13 @@ map.put(UP_STANDARD, "\uF0A3"); map.put(BELOW_STANDARD, "\uF0A3"); //除了选用的模板不一致,模板配置流程是一致的 - return printFileRegister.registerPrintFile(MULTIFUNCTION_CHECK_DATA, "数据打印", null, map, true, null, null); + String wordUrl = printFileRegister.registerPrintFile(MULTIFUNCTION_CHECK_DATA, "数据打印", null, map, true, null, null); + List urlList = new ArrayList<>(); + urlList.add(wordUrl); + if (map.containsKey("pdfUrl")) { + urlList.add((String) map.get("pdfUrl")); + } + return urlList; } catch (Exception ex) { throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); } @@ -258,11 +267,11 @@ * @param measureItemInfo * @return */ - private String createCertificateFile(BizBusinessDeviceMeasureApproval measureItemInfo) { + private List createCertificateFile(BizBusinessDeviceMeasureApproval measureItemInfo) { try { //过滤不能生成证书的 if (checkOutUnablePrint(measureItemInfo)) { - return ""; + return null; } if (CollectionUtil.isEmpty(measureItemInfo.getMeasureDataCalibratorList())) { List bizBusinessDeviceMeasureDataCalibrators = new ArrayList<>(); @@ -278,8 +287,15 @@ customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "2", measureItemInfo.getMeasureCategoryName())); customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "2", "数字记录表内容")); map.put("id", snowflakeUtil.nextId()); + map.put("pdfStatus", 1); + List urlList = new ArrayList<>(); //除了选用的模板不一致,模板配置流程是一致的 - return printFileRegister.registerPrintFile(MEASURE_DATA, "证书打印", null, map, false, null, customTemplateUrls); + String wordUrl = printFileRegister.registerPrintFile(MEASURE_DATA, "证书打印", null, map, false, null, customTemplateUrls); + urlList.add(wordUrl); + if (map.containsKey("pdfUrl")) { + urlList.add((String) map.get("pdfUrl")); + } + return urlList; } catch (Exception ex) { throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); } @@ -306,6 +322,7 @@ customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "1", measureItemInfo.getItemCategoryName())); //与证书模板区分 map.put("id", snowflakeUtil.nextId()); + map.put("pdfStatus", 1); //除了选用的模板不一致,模板配置流程是一致的 return printFileRegister.registerPrintFile(MEASURE_DATA, "原始记录打印", null, map, true, null, customTemplateUrls); } catch (Exception ex) { 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 f6910bf..22597c2 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 @@ -101,7 +101,7 @@ saveCertificatePrintInfo(deviceMeasureApproval); GenericEqptDataProvider genericEqptDataProvider=SpringContextUtil.getBean(GenericEqptDataProvider.class); Map map = BeanUtil.beanToMap(deviceMeasureApproval); - genericEqptDataProvider.excuteMeasureTaskAsyn(map,deviceMeasureApproval.getId(),deviceMeasureApproval.getCertificateFile()); + genericEqptDataProvider.excuteMeasureTaskAsyn(map,deviceMeasureApproval.getId(),deviceMeasureApproval.getCertificateWordFile()); } catch (Exception ex) { log.error("存储到证书打印表异常,证书报告&原始记录信息为{}, 异常信息为{}", JSONObject.toJSON(deviceMeasureApproval), ex); } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java index 19ada99..f584ad5 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java @@ -113,6 +113,13 @@ private String certificateFile; /** + * 证书报告文件(minio存储文件名) + */ + @ApiModelProperty(value = "证书pdf报告文件(minio存储文件名)", dataType = "String") + @TableField("certificate_word_file") + private String certificateWordFile; + + /** * 创建用户id */ @ApiModelProperty(value = "创建用户id", dataType = "Long") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java index d581629..18f3168 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java @@ -151,6 +151,9 @@ @ApiModelProperty(value = "核查记录文件名称", dataType = "String") private String checkRecordFile; + @ApiModelProperty(value = "核查记录word文件名称", dataType = "String") + private String checkRecordWordFile; + @ApiModelProperty(value = "检查日期(打印)", dataType = "String") @TableField(exist = false) private String checkDate; 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 1a5bd51..d25dd30 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 @@ -19,6 +19,7 @@ import com.casic.missiles.service.listeners.register.PrintFileRegister; import com.casic.missiles.utils.SnowflakeUtil; import com.casic.missiles.utils.SpringContextUtil; +import liquibase.pro.packaged.A; import liquibase.pro.packaged.M; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -55,11 +56,12 @@ */ public void checkCertificateTask(BizEquipmentStandardCheckRecordApproval request) { //生成核查记录单 - String checkCertificateFileUrl = checkCertificateFile(request); + List checkCertificateFileList = checkCertificateFile(request); BizEquipmentStandardCheckRecordApprovalMapper bizRecordApprovalMapper = SpringContextUtil.getBean(BizEquipmentStandardCheckRecordApprovalMapper.class); - if (StringUtils.isNotEmpty(checkCertificateFileUrl)) { + if (CollectionUtils.isNotEmpty(checkCertificateFileList)) { //原始记录文件 - request.setCheckRecordFile(checkCertificateFileUrl); + request.setCheckRecordFile(checkCertificateFileList.size() > 1 ? checkCertificateFileList.get(1) : ""); + request.setCheckRecordWordFile(checkCertificateFileList.get(0)); //更新记录 int updateFlag = bizRecordApprovalMapper.updateById(request); Assert.isFalse(updateFlag <= 0, () -> { @@ -96,7 +98,7 @@ } bizBusinessDeviceMeasureApproval.setId(id); //原始记录文件 - bizBusinessDeviceMeasureApproval.setOriginalRecordFile(certificateFileUrl); + bizBusinessDeviceMeasureApproval.setCertificateFile(certificateFileUrl); //更新记录 int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); Assert.isFalse(updateFlag <= 0, () -> { @@ -147,7 +149,7 @@ */ public void measureCertificateTask(BizBusinessDeviceMeasureApproval request) { //生成证书报告的 - CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + CompletableFuture> certificateFutureTask = CompletableFuture.supplyAsync( () -> createCertificateFile(request), threadPool); //生成原始记录的线程 CompletableFuture originalFutureTask = CompletableFuture.supplyAsync( @@ -157,12 +159,13 @@ combinedFuture.thenRun(() -> { try { //获取结果 - String certificateFileUrl = certificateFutureTask.join(); + List certificateFileUrl = certificateFutureTask.join(); String originalRecordFileUrl = originalFutureTask.join(); BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); - if (StringUtils.isNotEmpty(certificateFileUrl) || StringUtils.isNotEmpty(originalRecordFileUrl)) { + if (CollectionUtils.isNotEmpty(certificateFileUrl) || StringUtils.isNotEmpty(originalRecordFileUrl)) { //生成证书文件 - request.setCertificateFile(certificateFileUrl); + request.setCertificateFile(certificateFileUrl.size() > 1 ? certificateFileUrl.get(1) : ""); + request.setCertificateWordFile(certificateFileUrl.get(0)); //原始记录文件 request.setOriginalRecordFile(originalRecordFileUrl); //更新记录 @@ -187,14 +190,14 @@ * @param request * @return */ - private String checkCertificateFile(BizEquipmentStandardCheckRecordApproval request) { + private List checkCertificateFile(BizEquipmentStandardCheckRecordApproval request) { for (BizEquipmentInfo checkEquipment : request.getCheckEquipmentList()) { checkEquipment.setEquipmentType("测量设备"); } try { //健壮性判断 if (ObjectUtils.isEmpty(request)) { - return ""; + return null; } Map map = BeanUtil.beanToMap(request); //划分为最佳点,最差点,典型点 @@ -206,8 +209,8 @@ .stream().filter(e -> BEST_POINT.equals(e.getTestType()) && StringUtils.isEmpty(e.getTestValueFiveDate())).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(repList)) { - List repMapList=new ArrayList<>(); - for(BizEquipmentStandardCheckDataCalibrator rep:repList){ + List repMapList = new ArrayList<>(); + for (BizEquipmentStandardCheckDataCalibrator rep : repList) { Map repMap = BeanUtil.beanToMap(rep); repMapList.add(repMap); } @@ -225,7 +228,13 @@ map.put(UP_STANDARD, "\uF0A3"); map.put(BELOW_STANDARD, "\uF0A3"); //除了选用的模板不一致,模板配置流程是一致的 - return printFileRegister.registerPrintFile(MULTIFUNCTION_CHECK_DATA, "数据打印", null, map, true, null, null); + String wordUrl = printFileRegister.registerPrintFile(MULTIFUNCTION_CHECK_DATA, "数据打印", null, map, true, null, null); + List urlList = new ArrayList<>(); + urlList.add(wordUrl); + if (map.containsKey("pdfUrl")) { + urlList.add((String) map.get("pdfUrl")); + } + return urlList; } catch (Exception ex) { throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); } @@ -258,11 +267,11 @@ * @param measureItemInfo * @return */ - private String createCertificateFile(BizBusinessDeviceMeasureApproval measureItemInfo) { + private List createCertificateFile(BizBusinessDeviceMeasureApproval measureItemInfo) { try { //过滤不能生成证书的 if (checkOutUnablePrint(measureItemInfo)) { - return ""; + return null; } if (CollectionUtil.isEmpty(measureItemInfo.getMeasureDataCalibratorList())) { List bizBusinessDeviceMeasureDataCalibrators = new ArrayList<>(); @@ -278,8 +287,15 @@ customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "2", measureItemInfo.getMeasureCategoryName())); customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "2", "数字记录表内容")); map.put("id", snowflakeUtil.nextId()); + map.put("pdfStatus", 1); + List urlList = new ArrayList<>(); //除了选用的模板不一致,模板配置流程是一致的 - return printFileRegister.registerPrintFile(MEASURE_DATA, "证书打印", null, map, false, null, customTemplateUrls); + String wordUrl = printFileRegister.registerPrintFile(MEASURE_DATA, "证书打印", null, map, false, null, customTemplateUrls); + urlList.add(wordUrl); + if (map.containsKey("pdfUrl")) { + urlList.add((String) map.get("pdfUrl")); + } + return urlList; } catch (Exception ex) { throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); } @@ -306,6 +322,7 @@ customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "1", measureItemInfo.getItemCategoryName())); //与证书模板区分 map.put("id", snowflakeUtil.nextId()); + map.put("pdfStatus", 1); //除了选用的模板不一致,模板配置流程是一致的 return printFileRegister.registerPrintFile(MEASURE_DATA, "原始记录打印", null, map, true, null, customTemplateUrls); } catch (Exception ex) { 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 f6910bf..22597c2 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 @@ -101,7 +101,7 @@ saveCertificatePrintInfo(deviceMeasureApproval); GenericEqptDataProvider genericEqptDataProvider=SpringContextUtil.getBean(GenericEqptDataProvider.class); Map map = BeanUtil.beanToMap(deviceMeasureApproval); - genericEqptDataProvider.excuteMeasureTaskAsyn(map,deviceMeasureApproval.getId(),deviceMeasureApproval.getCertificateFile()); + genericEqptDataProvider.excuteMeasureTaskAsyn(map,deviceMeasureApproval.getId(),deviceMeasureApproval.getCertificateWordFile()); } catch (Exception ex) { log.error("存储到证书打印表异常,证书报告&原始记录信息为{}, 异常信息为{}", JSONObject.toJSON(deviceMeasureApproval), ex); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java index 223d290..bab8149 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java @@ -47,7 +47,7 @@ } GenericEqptDataProvider genericEqptDataProvider=SpringContextUtil.getBean(GenericEqptDataProvider.class); Map map = BeanUtil.beanToMap(checkRecordApproval); - genericEqptDataProvider.excuteCheckTaskAsyn(map,checkRecordApproval.getId(),checkRecordApproval.getCheckRecordFile()); + genericEqptDataProvider.excuteCheckTaskAsyn(map,checkRecordApproval.getId(),checkRecordApproval.getCheckRecordWordFile()); } } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java index 19ada99..f584ad5 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java @@ -113,6 +113,13 @@ private String certificateFile; /** + * 证书报告文件(minio存储文件名) + */ + @ApiModelProperty(value = "证书pdf报告文件(minio存储文件名)", dataType = "String") + @TableField("certificate_word_file") + private String certificateWordFile; + + /** * 创建用户id */ @ApiModelProperty(value = "创建用户id", dataType = "Long") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java index d581629..18f3168 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/BizEquipmentStandardCheckRecordApproval.java @@ -151,6 +151,9 @@ @ApiModelProperty(value = "核查记录文件名称", dataType = "String") private String checkRecordFile; + @ApiModelProperty(value = "核查记录word文件名称", dataType = "String") + private String checkRecordWordFile; + @ApiModelProperty(value = "检查日期(打印)", dataType = "String") @TableField(exist = false) private String checkDate; 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 1a5bd51..d25dd30 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 @@ -19,6 +19,7 @@ import com.casic.missiles.service.listeners.register.PrintFileRegister; import com.casic.missiles.utils.SnowflakeUtil; import com.casic.missiles.utils.SpringContextUtil; +import liquibase.pro.packaged.A; import liquibase.pro.packaged.M; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -55,11 +56,12 @@ */ public void checkCertificateTask(BizEquipmentStandardCheckRecordApproval request) { //生成核查记录单 - String checkCertificateFileUrl = checkCertificateFile(request); + List checkCertificateFileList = checkCertificateFile(request); BizEquipmentStandardCheckRecordApprovalMapper bizRecordApprovalMapper = SpringContextUtil.getBean(BizEquipmentStandardCheckRecordApprovalMapper.class); - if (StringUtils.isNotEmpty(checkCertificateFileUrl)) { + if (CollectionUtils.isNotEmpty(checkCertificateFileList)) { //原始记录文件 - request.setCheckRecordFile(checkCertificateFileUrl); + request.setCheckRecordFile(checkCertificateFileList.size() > 1 ? checkCertificateFileList.get(1) : ""); + request.setCheckRecordWordFile(checkCertificateFileList.get(0)); //更新记录 int updateFlag = bizRecordApprovalMapper.updateById(request); Assert.isFalse(updateFlag <= 0, () -> { @@ -96,7 +98,7 @@ } bizBusinessDeviceMeasureApproval.setId(id); //原始记录文件 - bizBusinessDeviceMeasureApproval.setOriginalRecordFile(certificateFileUrl); + bizBusinessDeviceMeasureApproval.setCertificateFile(certificateFileUrl); //更新记录 int updateFlag = bizBusinessMapper.updateById(bizBusinessDeviceMeasureApproval); Assert.isFalse(updateFlag <= 0, () -> { @@ -147,7 +149,7 @@ */ public void measureCertificateTask(BizBusinessDeviceMeasureApproval request) { //生成证书报告的 - CompletableFuture certificateFutureTask = CompletableFuture.supplyAsync( + CompletableFuture> certificateFutureTask = CompletableFuture.supplyAsync( () -> createCertificateFile(request), threadPool); //生成原始记录的线程 CompletableFuture originalFutureTask = CompletableFuture.supplyAsync( @@ -157,12 +159,13 @@ combinedFuture.thenRun(() -> { try { //获取结果 - String certificateFileUrl = certificateFutureTask.join(); + List certificateFileUrl = certificateFutureTask.join(); String originalRecordFileUrl = originalFutureTask.join(); BizBusinessDeviceMeasureApprovalMapper bizBusinessMapper = SpringContextUtil.getBean(BizBusinessDeviceMeasureApprovalMapper.class); - if (StringUtils.isNotEmpty(certificateFileUrl) || StringUtils.isNotEmpty(originalRecordFileUrl)) { + if (CollectionUtils.isNotEmpty(certificateFileUrl) || StringUtils.isNotEmpty(originalRecordFileUrl)) { //生成证书文件 - request.setCertificateFile(certificateFileUrl); + request.setCertificateFile(certificateFileUrl.size() > 1 ? certificateFileUrl.get(1) : ""); + request.setCertificateWordFile(certificateFileUrl.get(0)); //原始记录文件 request.setOriginalRecordFile(originalRecordFileUrl); //更新记录 @@ -187,14 +190,14 @@ * @param request * @return */ - private String checkCertificateFile(BizEquipmentStandardCheckRecordApproval request) { + private List checkCertificateFile(BizEquipmentStandardCheckRecordApproval request) { for (BizEquipmentInfo checkEquipment : request.getCheckEquipmentList()) { checkEquipment.setEquipmentType("测量设备"); } try { //健壮性判断 if (ObjectUtils.isEmpty(request)) { - return ""; + return null; } Map map = BeanUtil.beanToMap(request); //划分为最佳点,最差点,典型点 @@ -206,8 +209,8 @@ .stream().filter(e -> BEST_POINT.equals(e.getTestType()) && StringUtils.isEmpty(e.getTestValueFiveDate())).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(repList)) { - List repMapList=new ArrayList<>(); - for(BizEquipmentStandardCheckDataCalibrator rep:repList){ + List repMapList = new ArrayList<>(); + for (BizEquipmentStandardCheckDataCalibrator rep : repList) { Map repMap = BeanUtil.beanToMap(rep); repMapList.add(repMap); } @@ -225,7 +228,13 @@ map.put(UP_STANDARD, "\uF0A3"); map.put(BELOW_STANDARD, "\uF0A3"); //除了选用的模板不一致,模板配置流程是一致的 - return printFileRegister.registerPrintFile(MULTIFUNCTION_CHECK_DATA, "数据打印", null, map, true, null, null); + String wordUrl = printFileRegister.registerPrintFile(MULTIFUNCTION_CHECK_DATA, "数据打印", null, map, true, null, null); + List urlList = new ArrayList<>(); + urlList.add(wordUrl); + if (map.containsKey("pdfUrl")) { + urlList.add((String) map.get("pdfUrl")); + } + return urlList; } catch (Exception ex) { throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); } @@ -258,11 +267,11 @@ * @param measureItemInfo * @return */ - private String createCertificateFile(BizBusinessDeviceMeasureApproval measureItemInfo) { + private List createCertificateFile(BizBusinessDeviceMeasureApproval measureItemInfo) { try { //过滤不能生成证书的 if (checkOutUnablePrint(measureItemInfo)) { - return ""; + return null; } if (CollectionUtil.isEmpty(measureItemInfo.getMeasureDataCalibratorList())) { List bizBusinessDeviceMeasureDataCalibrators = new ArrayList<>(); @@ -278,8 +287,15 @@ customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "2", measureItemInfo.getMeasureCategoryName())); customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "2", "数字记录表内容")); map.put("id", snowflakeUtil.nextId()); + map.put("pdfStatus", 1); + List urlList = new ArrayList<>(); //除了选用的模板不一致,模板配置流程是一致的 - return printFileRegister.registerPrintFile(MEASURE_DATA, "证书打印", null, map, false, null, customTemplateUrls); + String wordUrl = printFileRegister.registerPrintFile(MEASURE_DATA, "证书打印", null, map, false, null, customTemplateUrls); + urlList.add(wordUrl); + if (map.containsKey("pdfUrl")) { + urlList.add((String) map.get("pdfUrl")); + } + return urlList; } catch (Exception ex) { throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); } @@ -306,6 +322,7 @@ customTemplateUrls.add(bizBusinessMapper.customTemplateUrl(MEASURE_DATA, "1", measureItemInfo.getItemCategoryName())); //与证书模板区分 map.put("id", snowflakeUtil.nextId()); + map.put("pdfStatus", 1); //除了选用的模板不一致,模板配置流程是一致的 return printFileRegister.registerPrintFile(MEASURE_DATA, "原始记录打印", null, map, true, null, customTemplateUrls); } catch (Exception ex) { 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 f6910bf..22597c2 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 @@ -101,7 +101,7 @@ saveCertificatePrintInfo(deviceMeasureApproval); GenericEqptDataProvider genericEqptDataProvider=SpringContextUtil.getBean(GenericEqptDataProvider.class); Map map = BeanUtil.beanToMap(deviceMeasureApproval); - genericEqptDataProvider.excuteMeasureTaskAsyn(map,deviceMeasureApproval.getId(),deviceMeasureApproval.getCertificateFile()); + genericEqptDataProvider.excuteMeasureTaskAsyn(map,deviceMeasureApproval.getId(),deviceMeasureApproval.getCertificateWordFile()); } catch (Exception ex) { log.error("存储到证书打印表异常,证书报告&原始记录信息为{}, 异常信息为{}", JSONObject.toJSON(deviceMeasureApproval), ex); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java index 223d290..bab8149 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/StandardCheckRecordEventPostProcessor.java @@ -47,7 +47,7 @@ } GenericEqptDataProvider genericEqptDataProvider=SpringContextUtil.getBean(GenericEqptDataProvider.class); Map map = BeanUtil.beanToMap(checkRecordApproval); - genericEqptDataProvider.excuteCheckTaskAsyn(map,checkRecordApproval.getId(),checkRecordApproval.getCheckRecordFile()); + genericEqptDataProvider.excuteCheckTaskAsyn(map,checkRecordApproval.getId(),checkRecordApproval.getCheckRecordWordFile()); } } 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 96af8ce..a57043b 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 @@ -79,14 +79,14 @@ //是否合并,自定义动态模版是否上传是否超过两个 filePrintRegister.setMergeDoc(customTemplateUrls != null && customTemplateUrls.size() > 1 ? true : false); //自定义模版,超过两个,则认为需要进行合并 - if(customTemplateUrls != null){ + if (customTemplateUrls != null) { for (String customTemplate : customTemplateUrls) { filePrintRegister.setFileNames(customTemplate); downTemplateFile(customTemplate, tempLocalFileDir); } } //证书产生准备工作,将相应的文件下载到本地的工作空间,获取相应的模板的读取权限 - if(CollectionUtils.isNotEmpty(filePrintRegister.getBeDownloadedFileNames())){ + if (CollectionUtils.isNotEmpty(filePrintRegister.getBeDownloadedFileNames())) { for (String fileName : filePrintRegister.getBeDownloadedFileNames()) { downTemplateFile(fileName, tempLocalFileDir); } @@ -101,6 +101,12 @@ String pdfNewUrl = printDocUrl.replaceAll("docx", "pdf"); FilePrintRegisterUtils.wordToPdf(printDocUrl, pdfNewUrl); printDocUrl = pdfNewUrl; + } else if (customParam.containsKey("pdfStatus") && printDocUrl.contains("docx")) { + //默认转为docx,只需要进行docx的替换即可 + String pdfNewUrl = printDocUrl.replaceAll("docx", "pdf"); + FilePrintRegisterUtils.wordToPdf(printDocUrl, pdfNewUrl); + miniName = createResponseFileInput(pdfNewUrl, response); + customParam.put("pdfUrl", pdfNewUrl); } } catch (RuntimeException rex) { log.error("文件打印出现异常,打印参数信息为{},异常信息为{}", JSON.toJSON(filePrintRegister), rex);