diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); 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 a8e07f8..da16979 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -155,13 +155,22 @@ ORDER BY bcp.create_time DESC - SELECT FROM( SELECT * FROM business_certificate_print where is_del=0 - AND id=#{id} + + and id = #{request.id} + + + and sample_id = #{request.sampleId} + + + and order_id = #{request.orderId} + and print_status != 4 + ) bcp LEFT JOIN( SELECT id,customer_name,customer_phone,customer_address,customer_no,deliverer_id,deliverer,deliverer_tel,require_over_time,plan_deliver_time,customer_id diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); 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 a8e07f8..da16979 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -155,13 +155,22 @@ ORDER BY bcp.create_time DESC - SELECT FROM( SELECT * FROM business_certificate_print where is_del=0 - AND id=#{id} + + and id = #{request.id} + + + and sample_id = #{request.sampleId} + + + and order_id = #{request.orderId} + and print_status != 4 + ) bcp LEFT JOIN( SELECT id,customer_name,customer_phone,customer_address,customer_no,deliverer_id,deliverer,deliverer_tel,require_over_time,plan_deliver_time,customer_id diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index fab6275..d4f828a 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -141,6 +141,7 @@ #{id} + ORDER BY bcr.create_time desc @@ -201,7 +202,7 @@ - + ORDER BY bcr.create_time desc diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); 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 a8e07f8..da16979 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -155,13 +155,22 @@ ORDER BY bcp.create_time DESC - SELECT FROM( SELECT * FROM business_certificate_print where is_del=0 - AND id=#{id} + + and id = #{request.id} + + + and sample_id = #{request.sampleId} + + + and order_id = #{request.orderId} + and print_status != 4 + ) bcp LEFT JOIN( SELECT id,customer_name,customer_phone,customer_address,customer_no,deliverer_id,deliverer,deliverer_tel,require_over_time,plan_deliver_time,customer_id diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index fab6275..d4f828a 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -141,6 +141,7 @@ #{id} + ORDER BY bcr.create_time desc @@ -201,7 +202,7 @@ - + ORDER BY bcr.create_time desc diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 0f19b4d..9a6976b 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -127,6 +127,9 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + AND blei.remark LIKE concat('%',#{request.remark},'%') + AND bo.order_code LIKE concat('%',#{request.orderNo},'%') diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); 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 a8e07f8..da16979 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -155,13 +155,22 @@ ORDER BY bcp.create_time DESC - SELECT FROM( SELECT * FROM business_certificate_print where is_del=0 - AND id=#{id} + + and id = #{request.id} + + + and sample_id = #{request.sampleId} + + + and order_id = #{request.orderId} + and print_status != 4 + ) bcp LEFT JOIN( SELECT id,customer_name,customer_phone,customer_address,customer_no,deliverer_id,deliverer,deliverer_tel,require_over_time,plan_deliver_time,customer_id diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index fab6275..d4f828a 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -141,6 +141,7 @@ #{id} + ORDER BY bcr.create_time desc @@ -201,7 +202,7 @@ - + ORDER BY bcr.create_time desc diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 0f19b4d..9a6976b 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -127,6 +127,9 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + AND blei.remark LIKE concat('%',#{request.remark},'%') + AND bo.order_code LIKE concat('%',#{request.orderNo},'%') diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java index 85cce7d..78ecba2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java @@ -30,30 +30,30 @@ * 表位置 */ @ApiModelProperty("表位置") - private Integer tableIndex; + private Integer tableIndex=-1; /** * 行位置 */ @ApiModelProperty("行位置") - private Integer rowIndex; + private Integer rowIndex=-1; /** * 列位置 */ @ApiModelProperty("列位置") - private Integer colIndex; + private Integer colIndex=-1; /** * 行合并数 */ @ApiModelProperty("行合并数") - private Integer rowSpan; + private Integer rowSpan=-1; /** * 列合并列数 */ @ApiModelProperty("列合并列数") - private Integer colSpan; + private Integer colSpan=-1; } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); 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 a8e07f8..da16979 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -155,13 +155,22 @@ ORDER BY bcp.create_time DESC - SELECT FROM( SELECT * FROM business_certificate_print where is_del=0 - AND id=#{id} + + and id = #{request.id} + + + and sample_id = #{request.sampleId} + + + and order_id = #{request.orderId} + and print_status != 4 + ) bcp LEFT JOIN( SELECT id,customer_name,customer_phone,customer_address,customer_no,deliverer_id,deliverer,deliverer_tel,require_over_time,plan_deliver_time,customer_id diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index fab6275..d4f828a 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -141,6 +141,7 @@ #{id} + ORDER BY bcr.create_time desc @@ -201,7 +202,7 @@ - + ORDER BY bcr.create_time desc diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 0f19b4d..9a6976b 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -127,6 +127,9 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + AND blei.remark LIKE concat('%',#{request.remark},'%') + AND bo.order_code LIKE concat('%',#{request.orderNo},'%') diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java index 85cce7d..78ecba2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java @@ -30,30 +30,30 @@ * 表位置 */ @ApiModelProperty("表位置") - private Integer tableIndex; + private Integer tableIndex=-1; /** * 行位置 */ @ApiModelProperty("行位置") - private Integer rowIndex; + private Integer rowIndex=-1; /** * 列位置 */ @ApiModelProperty("列位置") - private Integer colIndex; + private Integer colIndex=-1; /** * 行合并数 */ @ApiModelProperty("行合并数") - private Integer rowSpan; + private Integer rowSpan=-1; /** * 列合并列数 */ @ApiModelProperty("列合并列数") - private Integer colSpan; + private Integer colSpan=-1; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java index 71dd76b..bd1c6b8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java @@ -1,8 +1,11 @@ package com.casic.missiles.dto.business.file; +import cn.hutool.core.collection.CollectionUtil; import com.casic.missiles.dto.business.certificate.ElectronicImage; import lombok.Data; +import org.apache.commons.lang3.StringUtils; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -57,4 +60,26 @@ * word模板类型 */ private Boolean templateWordType; + + public void setMergeColNames(List newMergeColNames) { + //健壮性校验 + if (CollectionUtil.isEmpty(newMergeColNames)) { + return; + } + if (CollectionUtil.isEmpty(mergeColNames)) { + mergeColNames = new ArrayList<>(); + } + mergeColNames.addAll(newMergeColNames); + } + + public void setBeDownloadedFileNames(String beDownloadedFileName) { + //健壮性校验 + if (StringUtils.isEmpty(beDownloadedFileName)) { + return; + } + if (CollectionUtil.isEmpty(beDownloadedFileNames)) { + beDownloadedFileNames = new ArrayList<>(); + } + beDownloadedFileNames.add(beDownloadedFileName); + } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); 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 a8e07f8..da16979 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -155,13 +155,22 @@ ORDER BY bcp.create_time DESC - SELECT FROM( SELECT * FROM business_certificate_print where is_del=0 - AND id=#{id} + + and id = #{request.id} + + + and sample_id = #{request.sampleId} + + + and order_id = #{request.orderId} + and print_status != 4 + ) bcp LEFT JOIN( SELECT id,customer_name,customer_phone,customer_address,customer_no,deliverer_id,deliverer,deliverer_tel,require_over_time,plan_deliver_time,customer_id diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index fab6275..d4f828a 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -141,6 +141,7 @@ #{id} + ORDER BY bcr.create_time desc @@ -201,7 +202,7 @@ - + ORDER BY bcr.create_time desc diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 0f19b4d..9a6976b 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -127,6 +127,9 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + AND blei.remark LIKE concat('%',#{request.remark},'%') + AND bo.order_code LIKE concat('%',#{request.orderNo},'%') diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java index 85cce7d..78ecba2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java @@ -30,30 +30,30 @@ * 表位置 */ @ApiModelProperty("表位置") - private Integer tableIndex; + private Integer tableIndex=-1; /** * 行位置 */ @ApiModelProperty("行位置") - private Integer rowIndex; + private Integer rowIndex=-1; /** * 列位置 */ @ApiModelProperty("列位置") - private Integer colIndex; + private Integer colIndex=-1; /** * 行合并数 */ @ApiModelProperty("行合并数") - private Integer rowSpan; + private Integer rowSpan=-1; /** * 列合并列数 */ @ApiModelProperty("列合并列数") - private Integer colSpan; + private Integer colSpan=-1; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java index 71dd76b..bd1c6b8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java @@ -1,8 +1,11 @@ package com.casic.missiles.dto.business.file; +import cn.hutool.core.collection.CollectionUtil; import com.casic.missiles.dto.business.certificate.ElectronicImage; import lombok.Data; +import org.apache.commons.lang3.StringUtils; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -57,4 +60,26 @@ * word模板类型 */ private Boolean templateWordType; + + public void setMergeColNames(List newMergeColNames) { + //健壮性校验 + if (CollectionUtil.isEmpty(newMergeColNames)) { + return; + } + if (CollectionUtil.isEmpty(mergeColNames)) { + mergeColNames = new ArrayList<>(); + } + mergeColNames.addAll(newMergeColNames); + } + + public void setBeDownloadedFileNames(String beDownloadedFileName) { + //健壮性校验 + if (StringUtils.isEmpty(beDownloadedFileName)) { + return; + } + if (CollectionUtil.isEmpty(beDownloadedFileNames)) { + beDownloadedFileNames = new ArrayList<>(); + } + beDownloadedFileNames.add(beDownloadedFileName); + } } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java index 199b748..af78122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java @@ -40,6 +40,9 @@ @ApiModelProperty(value = "是否加急(1是0否null全部)", dataType = "Integer") private String isUrgent; + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @DictCodeField(message = "样品属性不合法", cacheName = MeterDictCode.SAMPLE_BELONG) @ApiModelProperty(value = "样品属性(字典code)", dataType = "String") private String sampleBelong; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); 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 a8e07f8..da16979 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -155,13 +155,22 @@ ORDER BY bcp.create_time DESC - SELECT FROM( SELECT * FROM business_certificate_print where is_del=0 - AND id=#{id} + + and id = #{request.id} + + + and sample_id = #{request.sampleId} + + + and order_id = #{request.orderId} + and print_status != 4 + ) bcp LEFT JOIN( SELECT id,customer_name,customer_phone,customer_address,customer_no,deliverer_id,deliverer,deliverer_tel,require_over_time,plan_deliver_time,customer_id diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index fab6275..d4f828a 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -141,6 +141,7 @@ #{id} + ORDER BY bcr.create_time desc @@ -201,7 +202,7 @@ - + ORDER BY bcr.create_time desc diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 0f19b4d..9a6976b 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -127,6 +127,9 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + AND blei.remark LIKE concat('%',#{request.remark},'%') + AND bo.order_code LIKE concat('%',#{request.orderNo},'%') diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java index 85cce7d..78ecba2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java @@ -30,30 +30,30 @@ * 表位置 */ @ApiModelProperty("表位置") - private Integer tableIndex; + private Integer tableIndex=-1; /** * 行位置 */ @ApiModelProperty("行位置") - private Integer rowIndex; + private Integer rowIndex=-1; /** * 列位置 */ @ApiModelProperty("列位置") - private Integer colIndex; + private Integer colIndex=-1; /** * 行合并数 */ @ApiModelProperty("行合并数") - private Integer rowSpan; + private Integer rowSpan=-1; /** * 列合并列数 */ @ApiModelProperty("列合并列数") - private Integer colSpan; + private Integer colSpan=-1; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java index 71dd76b..bd1c6b8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java @@ -1,8 +1,11 @@ package com.casic.missiles.dto.business.file; +import cn.hutool.core.collection.CollectionUtil; import com.casic.missiles.dto.business.certificate.ElectronicImage; import lombok.Data; +import org.apache.commons.lang3.StringUtils; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -57,4 +60,26 @@ * word模板类型 */ private Boolean templateWordType; + + public void setMergeColNames(List newMergeColNames) { + //健壮性校验 + if (CollectionUtil.isEmpty(newMergeColNames)) { + return; + } + if (CollectionUtil.isEmpty(mergeColNames)) { + mergeColNames = new ArrayList<>(); + } + mergeColNames.addAll(newMergeColNames); + } + + public void setBeDownloadedFileNames(String beDownloadedFileName) { + //健壮性校验 + if (StringUtils.isEmpty(beDownloadedFileName)) { + return; + } + if (CollectionUtil.isEmpty(beDownloadedFileNames)) { + beDownloadedFileNames = new ArrayList<>(); + } + beDownloadedFileNames.add(beDownloadedFileName); + } } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java index 199b748..af78122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java @@ -40,6 +40,9 @@ @ApiModelProperty(value = "是否加急(1是0否null全部)", dataType = "Integer") private String isUrgent; + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @DictCodeField(message = "样品属性不合法", cacheName = MeterDictCode.SAMPLE_BELONG) @ApiModelProperty(value = "样品属性(字典code)", dataType = "String") private String sampleBelong; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index 70813f5..ebc0bf5 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -107,6 +107,10 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); 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 a8e07f8..da16979 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -155,13 +155,22 @@ ORDER BY bcp.create_time DESC - SELECT FROM( SELECT * FROM business_certificate_print where is_del=0 - AND id=#{id} + + and id = #{request.id} + + + and sample_id = #{request.sampleId} + + + and order_id = #{request.orderId} + and print_status != 4 + ) bcp LEFT JOIN( SELECT id,customer_name,customer_phone,customer_address,customer_no,deliverer_id,deliverer,deliverer_tel,require_over_time,plan_deliver_time,customer_id diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index fab6275..d4f828a 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -141,6 +141,7 @@ #{id} + ORDER BY bcr.create_time desc @@ -201,7 +202,7 @@ - + ORDER BY bcr.create_time desc diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 0f19b4d..9a6976b 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -127,6 +127,9 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + AND blei.remark LIKE concat('%',#{request.remark},'%') + AND bo.order_code LIKE concat('%',#{request.orderNo},'%') diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java index 85cce7d..78ecba2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java @@ -30,30 +30,30 @@ * 表位置 */ @ApiModelProperty("表位置") - private Integer tableIndex; + private Integer tableIndex=-1; /** * 行位置 */ @ApiModelProperty("行位置") - private Integer rowIndex; + private Integer rowIndex=-1; /** * 列位置 */ @ApiModelProperty("列位置") - private Integer colIndex; + private Integer colIndex=-1; /** * 行合并数 */ @ApiModelProperty("行合并数") - private Integer rowSpan; + private Integer rowSpan=-1; /** * 列合并列数 */ @ApiModelProperty("列合并列数") - private Integer colSpan; + private Integer colSpan=-1; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java index 71dd76b..bd1c6b8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java @@ -1,8 +1,11 @@ package com.casic.missiles.dto.business.file; +import cn.hutool.core.collection.CollectionUtil; import com.casic.missiles.dto.business.certificate.ElectronicImage; import lombok.Data; +import org.apache.commons.lang3.StringUtils; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -57,4 +60,26 @@ * word模板类型 */ private Boolean templateWordType; + + public void setMergeColNames(List newMergeColNames) { + //健壮性校验 + if (CollectionUtil.isEmpty(newMergeColNames)) { + return; + } + if (CollectionUtil.isEmpty(mergeColNames)) { + mergeColNames = new ArrayList<>(); + } + mergeColNames.addAll(newMergeColNames); + } + + public void setBeDownloadedFileNames(String beDownloadedFileName) { + //健壮性校验 + if (StringUtils.isEmpty(beDownloadedFileName)) { + return; + } + if (CollectionUtil.isEmpty(beDownloadedFileNames)) { + beDownloadedFileNames = new ArrayList<>(); + } + beDownloadedFileNames.add(beDownloadedFileName); + } } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java index 199b748..af78122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java @@ -40,6 +40,9 @@ @ApiModelProperty(value = "是否加急(1是0否null全部)", dataType = "Integer") private String isUrgent; + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @DictCodeField(message = "样品属性不合法", cacheName = MeterDictCode.SAMPLE_BELONG) @ApiModelProperty(value = "样品属性(字典code)", dataType = "String") private String sampleBelong; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index 70813f5..ebc0bf5 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -107,6 +107,10 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @JSONField(serialize = false) private String measureStatus; 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 new file mode 100644 index 0000000..5f0a3fe --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -0,0 +1,23 @@ +package com.casic.missiles.dto.business.print; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author cz + * @date 2024/3/18 + */ +@Data +@ApiModel("作废请求参数") +public class InvalidCertificateRequest { + + @ApiModelProperty("证书打印页面主键ID") + private Long id; + @ApiModelProperty("样品id") + private String sampleId; + + @ApiModelProperty("委托书id") + private String orderId; + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); 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 a8e07f8..da16979 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -155,13 +155,22 @@ ORDER BY bcp.create_time DESC - SELECT FROM( SELECT * FROM business_certificate_print where is_del=0 - AND id=#{id} + + and id = #{request.id} + + + and sample_id = #{request.sampleId} + + + and order_id = #{request.orderId} + and print_status != 4 + ) bcp LEFT JOIN( SELECT id,customer_name,customer_phone,customer_address,customer_no,deliverer_id,deliverer,deliverer_tel,require_over_time,plan_deliver_time,customer_id diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index fab6275..d4f828a 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -141,6 +141,7 @@ #{id} + ORDER BY bcr.create_time desc @@ -201,7 +202,7 @@ - + ORDER BY bcr.create_time desc diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 0f19b4d..9a6976b 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -127,6 +127,9 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + AND blei.remark LIKE concat('%',#{request.remark},'%') + AND bo.order_code LIKE concat('%',#{request.orderNo},'%') diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java index 85cce7d..78ecba2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java @@ -30,30 +30,30 @@ * 表位置 */ @ApiModelProperty("表位置") - private Integer tableIndex; + private Integer tableIndex=-1; /** * 行位置 */ @ApiModelProperty("行位置") - private Integer rowIndex; + private Integer rowIndex=-1; /** * 列位置 */ @ApiModelProperty("列位置") - private Integer colIndex; + private Integer colIndex=-1; /** * 行合并数 */ @ApiModelProperty("行合并数") - private Integer rowSpan; + private Integer rowSpan=-1; /** * 列合并列数 */ @ApiModelProperty("列合并列数") - private Integer colSpan; + private Integer colSpan=-1; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java index 71dd76b..bd1c6b8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java @@ -1,8 +1,11 @@ package com.casic.missiles.dto.business.file; +import cn.hutool.core.collection.CollectionUtil; import com.casic.missiles.dto.business.certificate.ElectronicImage; import lombok.Data; +import org.apache.commons.lang3.StringUtils; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -57,4 +60,26 @@ * word模板类型 */ private Boolean templateWordType; + + public void setMergeColNames(List newMergeColNames) { + //健壮性校验 + if (CollectionUtil.isEmpty(newMergeColNames)) { + return; + } + if (CollectionUtil.isEmpty(mergeColNames)) { + mergeColNames = new ArrayList<>(); + } + mergeColNames.addAll(newMergeColNames); + } + + public void setBeDownloadedFileNames(String beDownloadedFileName) { + //健壮性校验 + if (StringUtils.isEmpty(beDownloadedFileName)) { + return; + } + if (CollectionUtil.isEmpty(beDownloadedFileNames)) { + beDownloadedFileNames = new ArrayList<>(); + } + beDownloadedFileNames.add(beDownloadedFileName); + } } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java index 199b748..af78122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java @@ -40,6 +40,9 @@ @ApiModelProperty(value = "是否加急(1是0否null全部)", dataType = "Integer") private String isUrgent; + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @DictCodeField(message = "样品属性不合法", cacheName = MeterDictCode.SAMPLE_BELONG) @ApiModelProperty(value = "样品属性(字典code)", dataType = "String") private String sampleBelong; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index 70813f5..ebc0bf5 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -107,6 +107,10 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @JSONField(serialize = false) private String measureStatus; 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 new file mode 100644 index 0000000..5f0a3fe --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -0,0 +1,23 @@ +package com.casic.missiles.dto.business.print; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author cz + * @date 2024/3/18 + */ +@Data +@ApiModel("作废请求参数") +public class InvalidCertificateRequest { + + @ApiModelProperty("证书打印页面主键ID") + private Long id; + @ApiModelProperty("样品id") + private String sampleId; + + @ApiModelProperty("委托书id") + private String orderId; + +} 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 4139168..67bbf22 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 @@ -92,7 +92,9 @@ @Override public CertificatePrintDetail certificatePrintDetail(Long id) { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + InvalidCertificateRequest invalidCertificateRequest=new InvalidCertificateRequest(); + invalidCertificateRequest.setId(id); + CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetail(invalidCertificateRequest); return certificatePrintDetail; } @@ -168,13 +170,17 @@ * 3、查询获取到最新的原始记录和 * 4、生成一条新的实验室信息,并在老的实验室信息备注 * - * @param id + * @param invalidCertificateRequest * @return */ @Transactional @Override - public ReturnDTO invalidPrint(Long id) throws Exception { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + public ReturnDTO invalidPrint(InvalidCertificateRequest invalidCertificateRequest) throws Exception { + CertificatePrintDetail certificatePrintDetail = getCertificatePrintDetail(invalidCertificateRequest); + if (ObjectUtils.isEmpty(certificatePrintDetail)) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getMessage()); + } + Long id = certificatePrintDetail.getId(); //修改为作废状态 this.certificatePrintStatus(id, "4"); //作废旧的证书报告,并重新生成新的证书报告 @@ -186,6 +192,18 @@ return ReturnUtil.success(); } + private CertificatePrintDetail getCertificatePrintDetail(InvalidCertificateRequest invalidCertificateRequest) { + if (!ObjectUtils.isEmpty(invalidCertificateRequest.getId())) { + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } else { + if (ObjectUtils.isEmpty(invalidCertificateRequest.getSampleId()) || ObjectUtils.isEmpty(invalidCertificateRequest.getOrderId())) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getMessage()); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } + } + private void againCreateLabInfo(Long sampleId, Long orderId, String oldCertificateCode) throws Exception { if (ObjectUtils.isEmpty(sampleId) || ObjectUtils.isEmpty(orderId)) { return; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); 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 a8e07f8..da16979 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -155,13 +155,22 @@ ORDER BY bcp.create_time DESC - SELECT FROM( SELECT * FROM business_certificate_print where is_del=0 - AND id=#{id} + + and id = #{request.id} + + + and sample_id = #{request.sampleId} + + + and order_id = #{request.orderId} + and print_status != 4 + ) bcp LEFT JOIN( SELECT id,customer_name,customer_phone,customer_address,customer_no,deliverer_id,deliverer,deliverer_tel,require_over_time,plan_deliver_time,customer_id diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index fab6275..d4f828a 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -141,6 +141,7 @@ #{id} + ORDER BY bcr.create_time desc @@ -201,7 +202,7 @@ - + ORDER BY bcr.create_time desc diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 0f19b4d..9a6976b 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -127,6 +127,9 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + AND blei.remark LIKE concat('%',#{request.remark},'%') + AND bo.order_code LIKE concat('%',#{request.orderNo},'%') diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java index 85cce7d..78ecba2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java @@ -30,30 +30,30 @@ * 表位置 */ @ApiModelProperty("表位置") - private Integer tableIndex; + private Integer tableIndex=-1; /** * 行位置 */ @ApiModelProperty("行位置") - private Integer rowIndex; + private Integer rowIndex=-1; /** * 列位置 */ @ApiModelProperty("列位置") - private Integer colIndex; + private Integer colIndex=-1; /** * 行合并数 */ @ApiModelProperty("行合并数") - private Integer rowSpan; + private Integer rowSpan=-1; /** * 列合并列数 */ @ApiModelProperty("列合并列数") - private Integer colSpan; + private Integer colSpan=-1; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java index 71dd76b..bd1c6b8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java @@ -1,8 +1,11 @@ package com.casic.missiles.dto.business.file; +import cn.hutool.core.collection.CollectionUtil; import com.casic.missiles.dto.business.certificate.ElectronicImage; import lombok.Data; +import org.apache.commons.lang3.StringUtils; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -57,4 +60,26 @@ * word模板类型 */ private Boolean templateWordType; + + public void setMergeColNames(List newMergeColNames) { + //健壮性校验 + if (CollectionUtil.isEmpty(newMergeColNames)) { + return; + } + if (CollectionUtil.isEmpty(mergeColNames)) { + mergeColNames = new ArrayList<>(); + } + mergeColNames.addAll(newMergeColNames); + } + + public void setBeDownloadedFileNames(String beDownloadedFileName) { + //健壮性校验 + if (StringUtils.isEmpty(beDownloadedFileName)) { + return; + } + if (CollectionUtil.isEmpty(beDownloadedFileNames)) { + beDownloadedFileNames = new ArrayList<>(); + } + beDownloadedFileNames.add(beDownloadedFileName); + } } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java index 199b748..af78122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java @@ -40,6 +40,9 @@ @ApiModelProperty(value = "是否加急(1是0否null全部)", dataType = "Integer") private String isUrgent; + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @DictCodeField(message = "样品属性不合法", cacheName = MeterDictCode.SAMPLE_BELONG) @ApiModelProperty(value = "样品属性(字典code)", dataType = "String") private String sampleBelong; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index 70813f5..ebc0bf5 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -107,6 +107,10 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @JSONField(serialize = false) private String measureStatus; 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 new file mode 100644 index 0000000..5f0a3fe --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -0,0 +1,23 @@ +package com.casic.missiles.dto.business.print; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author cz + * @date 2024/3/18 + */ +@Data +@ApiModel("作废请求参数") +public class InvalidCertificateRequest { + + @ApiModelProperty("证书打印页面主键ID") + private Long id; + @ApiModelProperty("样品id") + private String sampleId; + + @ApiModelProperty("委托书id") + private String orderId; + +} 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 4139168..67bbf22 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 @@ -92,7 +92,9 @@ @Override public CertificatePrintDetail certificatePrintDetail(Long id) { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + InvalidCertificateRequest invalidCertificateRequest=new InvalidCertificateRequest(); + invalidCertificateRequest.setId(id); + CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetail(invalidCertificateRequest); return certificatePrintDetail; } @@ -168,13 +170,17 @@ * 3、查询获取到最新的原始记录和 * 4、生成一条新的实验室信息,并在老的实验室信息备注 * - * @param id + * @param invalidCertificateRequest * @return */ @Transactional @Override - public ReturnDTO invalidPrint(Long id) throws Exception { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + public ReturnDTO invalidPrint(InvalidCertificateRequest invalidCertificateRequest) throws Exception { + CertificatePrintDetail certificatePrintDetail = getCertificatePrintDetail(invalidCertificateRequest); + if (ObjectUtils.isEmpty(certificatePrintDetail)) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getMessage()); + } + Long id = certificatePrintDetail.getId(); //修改为作废状态 this.certificatePrintStatus(id, "4"); //作废旧的证书报告,并重新生成新的证书报告 @@ -186,6 +192,18 @@ return ReturnUtil.success(); } + private CertificatePrintDetail getCertificatePrintDetail(InvalidCertificateRequest invalidCertificateRequest) { + if (!ObjectUtils.isEmpty(invalidCertificateRequest.getId())) { + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } else { + if (ObjectUtils.isEmpty(invalidCertificateRequest.getSampleId()) || ObjectUtils.isEmpty(invalidCertificateRequest.getOrderId())) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getMessage()); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } + } + private void againCreateLabInfo(Long sampleId, Long orderId, String oldCertificateCode) throws Exception { if (ObjectUtils.isEmpty(sampleId) || ObjectUtils.isEmpty(orderId)) { return; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 8033e90..b4eb651 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -370,7 +370,6 @@ resultPage = labExecutiveInfoMapper.selectListByUserIdAndStatus(page, labExecutiveListRequest, userId, MeasureStatusEnum.MEASURE_COMPLETE); //查询样品检定到的其他实验室或样品检测完成 enrichLabExecutiveRecords(resultPage); - break; } if (!CollectionUtils.isEmpty(resultPage.getRecords())) { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); 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 a8e07f8..da16979 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -155,13 +155,22 @@ ORDER BY bcp.create_time DESC - SELECT FROM( SELECT * FROM business_certificate_print where is_del=0 - AND id=#{id} + + and id = #{request.id} + + + and sample_id = #{request.sampleId} + + + and order_id = #{request.orderId} + and print_status != 4 + ) bcp LEFT JOIN( SELECT id,customer_name,customer_phone,customer_address,customer_no,deliverer_id,deliverer,deliverer_tel,require_over_time,plan_deliver_time,customer_id diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index fab6275..d4f828a 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -141,6 +141,7 @@ #{id} + ORDER BY bcr.create_time desc @@ -201,7 +202,7 @@ - + ORDER BY bcr.create_time desc diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 0f19b4d..9a6976b 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -127,6 +127,9 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + AND blei.remark LIKE concat('%',#{request.remark},'%') + AND bo.order_code LIKE concat('%',#{request.orderNo},'%') diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java index 85cce7d..78ecba2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java @@ -30,30 +30,30 @@ * 表位置 */ @ApiModelProperty("表位置") - private Integer tableIndex; + private Integer tableIndex=-1; /** * 行位置 */ @ApiModelProperty("行位置") - private Integer rowIndex; + private Integer rowIndex=-1; /** * 列位置 */ @ApiModelProperty("列位置") - private Integer colIndex; + private Integer colIndex=-1; /** * 行合并数 */ @ApiModelProperty("行合并数") - private Integer rowSpan; + private Integer rowSpan=-1; /** * 列合并列数 */ @ApiModelProperty("列合并列数") - private Integer colSpan; + private Integer colSpan=-1; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java index 71dd76b..bd1c6b8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java @@ -1,8 +1,11 @@ package com.casic.missiles.dto.business.file; +import cn.hutool.core.collection.CollectionUtil; import com.casic.missiles.dto.business.certificate.ElectronicImage; import lombok.Data; +import org.apache.commons.lang3.StringUtils; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -57,4 +60,26 @@ * word模板类型 */ private Boolean templateWordType; + + public void setMergeColNames(List newMergeColNames) { + //健壮性校验 + if (CollectionUtil.isEmpty(newMergeColNames)) { + return; + } + if (CollectionUtil.isEmpty(mergeColNames)) { + mergeColNames = new ArrayList<>(); + } + mergeColNames.addAll(newMergeColNames); + } + + public void setBeDownloadedFileNames(String beDownloadedFileName) { + //健壮性校验 + if (StringUtils.isEmpty(beDownloadedFileName)) { + return; + } + if (CollectionUtil.isEmpty(beDownloadedFileNames)) { + beDownloadedFileNames = new ArrayList<>(); + } + beDownloadedFileNames.add(beDownloadedFileName); + } } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java index 199b748..af78122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java @@ -40,6 +40,9 @@ @ApiModelProperty(value = "是否加急(1是0否null全部)", dataType = "Integer") private String isUrgent; + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @DictCodeField(message = "样品属性不合法", cacheName = MeterDictCode.SAMPLE_BELONG) @ApiModelProperty(value = "样品属性(字典code)", dataType = "String") private String sampleBelong; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index 70813f5..ebc0bf5 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -107,6 +107,10 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @JSONField(serialize = false) private String measureStatus; 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 new file mode 100644 index 0000000..5f0a3fe --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -0,0 +1,23 @@ +package com.casic.missiles.dto.business.print; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author cz + * @date 2024/3/18 + */ +@Data +@ApiModel("作废请求参数") +public class InvalidCertificateRequest { + + @ApiModelProperty("证书打印页面主键ID") + private Long id; + @ApiModelProperty("样品id") + private String sampleId; + + @ApiModelProperty("委托书id") + private String orderId; + +} 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 4139168..67bbf22 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 @@ -92,7 +92,9 @@ @Override public CertificatePrintDetail certificatePrintDetail(Long id) { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + InvalidCertificateRequest invalidCertificateRequest=new InvalidCertificateRequest(); + invalidCertificateRequest.setId(id); + CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetail(invalidCertificateRequest); return certificatePrintDetail; } @@ -168,13 +170,17 @@ * 3、查询获取到最新的原始记录和 * 4、生成一条新的实验室信息,并在老的实验室信息备注 * - * @param id + * @param invalidCertificateRequest * @return */ @Transactional @Override - public ReturnDTO invalidPrint(Long id) throws Exception { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + public ReturnDTO invalidPrint(InvalidCertificateRequest invalidCertificateRequest) throws Exception { + CertificatePrintDetail certificatePrintDetail = getCertificatePrintDetail(invalidCertificateRequest); + if (ObjectUtils.isEmpty(certificatePrintDetail)) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getMessage()); + } + Long id = certificatePrintDetail.getId(); //修改为作废状态 this.certificatePrintStatus(id, "4"); //作废旧的证书报告,并重新生成新的证书报告 @@ -186,6 +192,18 @@ return ReturnUtil.success(); } + private CertificatePrintDetail getCertificatePrintDetail(InvalidCertificateRequest invalidCertificateRequest) { + if (!ObjectUtils.isEmpty(invalidCertificateRequest.getId())) { + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } else { + if (ObjectUtils.isEmpty(invalidCertificateRequest.getSampleId()) || ObjectUtils.isEmpty(invalidCertificateRequest.getOrderId())) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getMessage()); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } + } + private void againCreateLabInfo(Long sampleId, Long orderId, String oldCertificateCode) throws Exception { if (ObjectUtils.isEmpty(sampleId) || ObjectUtils.isEmpty(orderId)) { return; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 8033e90..b4eb651 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -370,7 +370,6 @@ resultPage = labExecutiveInfoMapper.selectListByUserIdAndStatus(page, labExecutiveListRequest, userId, MeasureStatusEnum.MEASURE_COMPLETE); //查询样品检定到的其他实验室或样品检测完成 enrichLabExecutiveRecords(resultPage); - break; } if (!CollectionUtils.isEmpty(resultPage.getRecords())) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java index f8c334a..f65fd40 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java @@ -25,7 +25,7 @@ ReturnDTO refuseAgainPrint(CertificateRefusePrintRequest request); - ReturnDTO invalidPrint(Long id)throws Exception; + ReturnDTO invalidPrint(InvalidCertificateRequest invalidCertificateRequest)throws Exception; ReturnDTO submitAgainPrint(BaseApprovalSubmitRequest request); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); 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 a8e07f8..da16979 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -155,13 +155,22 @@ ORDER BY bcp.create_time DESC - SELECT FROM( SELECT * FROM business_certificate_print where is_del=0 - AND id=#{id} + + and id = #{request.id} + + + and sample_id = #{request.sampleId} + + + and order_id = #{request.orderId} + and print_status != 4 + ) bcp LEFT JOIN( SELECT id,customer_name,customer_phone,customer_address,customer_no,deliverer_id,deliverer,deliverer_tel,require_over_time,plan_deliver_time,customer_id diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index fab6275..d4f828a 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -141,6 +141,7 @@ #{id} + ORDER BY bcr.create_time desc @@ -201,7 +202,7 @@ - + ORDER BY bcr.create_time desc diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 0f19b4d..9a6976b 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -127,6 +127,9 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + AND blei.remark LIKE concat('%',#{request.remark},'%') + AND bo.order_code LIKE concat('%',#{request.orderNo},'%') diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java index 85cce7d..78ecba2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java @@ -30,30 +30,30 @@ * 表位置 */ @ApiModelProperty("表位置") - private Integer tableIndex; + private Integer tableIndex=-1; /** * 行位置 */ @ApiModelProperty("行位置") - private Integer rowIndex; + private Integer rowIndex=-1; /** * 列位置 */ @ApiModelProperty("列位置") - private Integer colIndex; + private Integer colIndex=-1; /** * 行合并数 */ @ApiModelProperty("行合并数") - private Integer rowSpan; + private Integer rowSpan=-1; /** * 列合并列数 */ @ApiModelProperty("列合并列数") - private Integer colSpan; + private Integer colSpan=-1; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java index 71dd76b..bd1c6b8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java @@ -1,8 +1,11 @@ package com.casic.missiles.dto.business.file; +import cn.hutool.core.collection.CollectionUtil; import com.casic.missiles.dto.business.certificate.ElectronicImage; import lombok.Data; +import org.apache.commons.lang3.StringUtils; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -57,4 +60,26 @@ * word模板类型 */ private Boolean templateWordType; + + public void setMergeColNames(List newMergeColNames) { + //健壮性校验 + if (CollectionUtil.isEmpty(newMergeColNames)) { + return; + } + if (CollectionUtil.isEmpty(mergeColNames)) { + mergeColNames = new ArrayList<>(); + } + mergeColNames.addAll(newMergeColNames); + } + + public void setBeDownloadedFileNames(String beDownloadedFileName) { + //健壮性校验 + if (StringUtils.isEmpty(beDownloadedFileName)) { + return; + } + if (CollectionUtil.isEmpty(beDownloadedFileNames)) { + beDownloadedFileNames = new ArrayList<>(); + } + beDownloadedFileNames.add(beDownloadedFileName); + } } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java index 199b748..af78122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java @@ -40,6 +40,9 @@ @ApiModelProperty(value = "是否加急(1是0否null全部)", dataType = "Integer") private String isUrgent; + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @DictCodeField(message = "样品属性不合法", cacheName = MeterDictCode.SAMPLE_BELONG) @ApiModelProperty(value = "样品属性(字典code)", dataType = "String") private String sampleBelong; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index 70813f5..ebc0bf5 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -107,6 +107,10 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @JSONField(serialize = false) private String measureStatus; 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 new file mode 100644 index 0000000..5f0a3fe --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -0,0 +1,23 @@ +package com.casic.missiles.dto.business.print; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author cz + * @date 2024/3/18 + */ +@Data +@ApiModel("作废请求参数") +public class InvalidCertificateRequest { + + @ApiModelProperty("证书打印页面主键ID") + private Long id; + @ApiModelProperty("样品id") + private String sampleId; + + @ApiModelProperty("委托书id") + private String orderId; + +} 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 4139168..67bbf22 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 @@ -92,7 +92,9 @@ @Override public CertificatePrintDetail certificatePrintDetail(Long id) { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + InvalidCertificateRequest invalidCertificateRequest=new InvalidCertificateRequest(); + invalidCertificateRequest.setId(id); + CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetail(invalidCertificateRequest); return certificatePrintDetail; } @@ -168,13 +170,17 @@ * 3、查询获取到最新的原始记录和 * 4、生成一条新的实验室信息,并在老的实验室信息备注 * - * @param id + * @param invalidCertificateRequest * @return */ @Transactional @Override - public ReturnDTO invalidPrint(Long id) throws Exception { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + public ReturnDTO invalidPrint(InvalidCertificateRequest invalidCertificateRequest) throws Exception { + CertificatePrintDetail certificatePrintDetail = getCertificatePrintDetail(invalidCertificateRequest); + if (ObjectUtils.isEmpty(certificatePrintDetail)) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getMessage()); + } + Long id = certificatePrintDetail.getId(); //修改为作废状态 this.certificatePrintStatus(id, "4"); //作废旧的证书报告,并重新生成新的证书报告 @@ -186,6 +192,18 @@ return ReturnUtil.success(); } + private CertificatePrintDetail getCertificatePrintDetail(InvalidCertificateRequest invalidCertificateRequest) { + if (!ObjectUtils.isEmpty(invalidCertificateRequest.getId())) { + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } else { + if (ObjectUtils.isEmpty(invalidCertificateRequest.getSampleId()) || ObjectUtils.isEmpty(invalidCertificateRequest.getOrderId())) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getMessage()); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } + } + private void againCreateLabInfo(Long sampleId, Long orderId, String oldCertificateCode) throws Exception { if (ObjectUtils.isEmpty(sampleId) || ObjectUtils.isEmpty(orderId)) { return; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 8033e90..b4eb651 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -370,7 +370,6 @@ resultPage = labExecutiveInfoMapper.selectListByUserIdAndStatus(page, labExecutiveListRequest, userId, MeasureStatusEnum.MEASURE_COMPLETE); //查询样品检定到的其他实验室或样品检测完成 enrichLabExecutiveRecords(resultPage); - break; } if (!CollectionUtils.isEmpty(resultPage.getRecords())) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java index f8c334a..f65fd40 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java @@ -25,7 +25,7 @@ ReturnDTO refuseAgainPrint(CertificateRefusePrintRequest request); - ReturnDTO invalidPrint(Long id)throws Exception; + ReturnDTO invalidPrint(InvalidCertificateRequest invalidCertificateRequest)throws Exception; ReturnDTO submitAgainPrint(BaseApprovalSubmitRequest request); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java index 370cf5a..3c4e372 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java @@ -1,7 +1,10 @@ package com.casic.missiles.service.listeners.register; import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.ImageConfig; +import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -21,15 +24,37 @@ * 自定义签名名字 */ protected List customizedSignNames; + @Resource + protected PrintFileRegisterMapper fileRegisterMapper; /** * 文件自定义名称参数构建器 */ - protected void customizedSignNamesParamCreator() { + protected List customizedSignNamesParamCreator() { + List approvalImageList = new ArrayList<>(); keyParamList = Arrays.asList("发起人", "审核人", "批准人"); - customizedSignNames = Arrays.asList("发起人", "核验人", "批准人"); + customizedSignNames = Arrays.asList("编制:", "审核:", "批准:"); + for (int i = 0; i < 3; i++) { + ImageConfig imageConfig = new ImageConfig(); + imageConfig.setFiledName(keyParamList.get(i)); + imageConfig.setDocName(customizedSignNames.get(i)); + } + return approvalImageList; } + + protected String getTemplateName(T templateIdOrName) { + String fileName = ""; + if (templateIdOrName instanceof Long) { + fileName = fileRegisterMapper.getSignFileSealById((Long) templateIdOrName, "system_template"); + } + if (templateIdOrName instanceof String) { + fileName = fileRegisterMapper.getFileNameByName((String) templateIdOrName, "system_template"); + } + return fileName; + } + + protected FileImageTemplateProvider() { this.keyParamList = new ArrayList<>(); customizedSignNames = new ArrayList<>(); @@ -52,22 +77,6 @@ } /** - * 默认电子签章的图片设置,允许重写 - */ - protected ElectronicImage defaultElectronicSignSeal(String keyWord) { - ElectronicImage electronicImage = ElectronicImage.builder() - .keyWordIndex(-1) - .keyWord(keyWord) - .vertical(-10f) - .horizontal(80f) - .stampHeight(100f) - .stampWidth(100f) - .diaphaneity(150f) - .build(); - return electronicImage; - } - - /** * 自动生成是根据宽度设定取空隙平均值 * 默认电子签章的图片设置,允许重写 * word长度大约为400*600 diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); 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 a8e07f8..da16979 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -155,13 +155,22 @@ ORDER BY bcp.create_time DESC - SELECT FROM( SELECT * FROM business_certificate_print where is_del=0 - AND id=#{id} + + and id = #{request.id} + + + and sample_id = #{request.sampleId} + + + and order_id = #{request.orderId} + and print_status != 4 + ) bcp LEFT JOIN( SELECT id,customer_name,customer_phone,customer_address,customer_no,deliverer_id,deliverer,deliverer_tel,require_over_time,plan_deliver_time,customer_id diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index fab6275..d4f828a 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -141,6 +141,7 @@ #{id} + ORDER BY bcr.create_time desc @@ -201,7 +202,7 @@ - + ORDER BY bcr.create_time desc diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 0f19b4d..9a6976b 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -127,6 +127,9 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + AND blei.remark LIKE concat('%',#{request.remark},'%') + AND bo.order_code LIKE concat('%',#{request.orderNo},'%') diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java index 85cce7d..78ecba2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java @@ -30,30 +30,30 @@ * 表位置 */ @ApiModelProperty("表位置") - private Integer tableIndex; + private Integer tableIndex=-1; /** * 行位置 */ @ApiModelProperty("行位置") - private Integer rowIndex; + private Integer rowIndex=-1; /** * 列位置 */ @ApiModelProperty("列位置") - private Integer colIndex; + private Integer colIndex=-1; /** * 行合并数 */ @ApiModelProperty("行合并数") - private Integer rowSpan; + private Integer rowSpan=-1; /** * 列合并列数 */ @ApiModelProperty("列合并列数") - private Integer colSpan; + private Integer colSpan=-1; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java index 71dd76b..bd1c6b8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java @@ -1,8 +1,11 @@ package com.casic.missiles.dto.business.file; +import cn.hutool.core.collection.CollectionUtil; import com.casic.missiles.dto.business.certificate.ElectronicImage; import lombok.Data; +import org.apache.commons.lang3.StringUtils; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -57,4 +60,26 @@ * word模板类型 */ private Boolean templateWordType; + + public void setMergeColNames(List newMergeColNames) { + //健壮性校验 + if (CollectionUtil.isEmpty(newMergeColNames)) { + return; + } + if (CollectionUtil.isEmpty(mergeColNames)) { + mergeColNames = new ArrayList<>(); + } + mergeColNames.addAll(newMergeColNames); + } + + public void setBeDownloadedFileNames(String beDownloadedFileName) { + //健壮性校验 + if (StringUtils.isEmpty(beDownloadedFileName)) { + return; + } + if (CollectionUtil.isEmpty(beDownloadedFileNames)) { + beDownloadedFileNames = new ArrayList<>(); + } + beDownloadedFileNames.add(beDownloadedFileName); + } } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java index 199b748..af78122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java @@ -40,6 +40,9 @@ @ApiModelProperty(value = "是否加急(1是0否null全部)", dataType = "Integer") private String isUrgent; + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @DictCodeField(message = "样品属性不合法", cacheName = MeterDictCode.SAMPLE_BELONG) @ApiModelProperty(value = "样品属性(字典code)", dataType = "String") private String sampleBelong; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index 70813f5..ebc0bf5 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -107,6 +107,10 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @JSONField(serialize = false) private String measureStatus; 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 new file mode 100644 index 0000000..5f0a3fe --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -0,0 +1,23 @@ +package com.casic.missiles.dto.business.print; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author cz + * @date 2024/3/18 + */ +@Data +@ApiModel("作废请求参数") +public class InvalidCertificateRequest { + + @ApiModelProperty("证书打印页面主键ID") + private Long id; + @ApiModelProperty("样品id") + private String sampleId; + + @ApiModelProperty("委托书id") + private String orderId; + +} 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 4139168..67bbf22 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 @@ -92,7 +92,9 @@ @Override public CertificatePrintDetail certificatePrintDetail(Long id) { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + InvalidCertificateRequest invalidCertificateRequest=new InvalidCertificateRequest(); + invalidCertificateRequest.setId(id); + CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetail(invalidCertificateRequest); return certificatePrintDetail; } @@ -168,13 +170,17 @@ * 3、查询获取到最新的原始记录和 * 4、生成一条新的实验室信息,并在老的实验室信息备注 * - * @param id + * @param invalidCertificateRequest * @return */ @Transactional @Override - public ReturnDTO invalidPrint(Long id) throws Exception { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + public ReturnDTO invalidPrint(InvalidCertificateRequest invalidCertificateRequest) throws Exception { + CertificatePrintDetail certificatePrintDetail = getCertificatePrintDetail(invalidCertificateRequest); + if (ObjectUtils.isEmpty(certificatePrintDetail)) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getMessage()); + } + Long id = certificatePrintDetail.getId(); //修改为作废状态 this.certificatePrintStatus(id, "4"); //作废旧的证书报告,并重新生成新的证书报告 @@ -186,6 +192,18 @@ return ReturnUtil.success(); } + private CertificatePrintDetail getCertificatePrintDetail(InvalidCertificateRequest invalidCertificateRequest) { + if (!ObjectUtils.isEmpty(invalidCertificateRequest.getId())) { + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } else { + if (ObjectUtils.isEmpty(invalidCertificateRequest.getSampleId()) || ObjectUtils.isEmpty(invalidCertificateRequest.getOrderId())) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getMessage()); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } + } + private void againCreateLabInfo(Long sampleId, Long orderId, String oldCertificateCode) throws Exception { if (ObjectUtils.isEmpty(sampleId) || ObjectUtils.isEmpty(orderId)) { return; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 8033e90..b4eb651 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -370,7 +370,6 @@ resultPage = labExecutiveInfoMapper.selectListByUserIdAndStatus(page, labExecutiveListRequest, userId, MeasureStatusEnum.MEASURE_COMPLETE); //查询样品检定到的其他实验室或样品检测完成 enrichLabExecutiveRecords(resultPage); - break; } if (!CollectionUtils.isEmpty(resultPage.getRecords())) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java index f8c334a..f65fd40 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java @@ -25,7 +25,7 @@ ReturnDTO refuseAgainPrint(CertificateRefusePrintRequest request); - ReturnDTO invalidPrint(Long id)throws Exception; + ReturnDTO invalidPrint(InvalidCertificateRequest invalidCertificateRequest)throws Exception; ReturnDTO submitAgainPrint(BaseApprovalSubmitRequest request); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java index 370cf5a..3c4e372 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java @@ -1,7 +1,10 @@ package com.casic.missiles.service.listeners.register; import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.ImageConfig; +import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -21,15 +24,37 @@ * 自定义签名名字 */ protected List customizedSignNames; + @Resource + protected PrintFileRegisterMapper fileRegisterMapper; /** * 文件自定义名称参数构建器 */ - protected void customizedSignNamesParamCreator() { + protected List customizedSignNamesParamCreator() { + List approvalImageList = new ArrayList<>(); keyParamList = Arrays.asList("发起人", "审核人", "批准人"); - customizedSignNames = Arrays.asList("发起人", "核验人", "批准人"); + customizedSignNames = Arrays.asList("编制:", "审核:", "批准:"); + for (int i = 0; i < 3; i++) { + ImageConfig imageConfig = new ImageConfig(); + imageConfig.setFiledName(keyParamList.get(i)); + imageConfig.setDocName(customizedSignNames.get(i)); + } + return approvalImageList; } + + protected String getTemplateName(T templateIdOrName) { + String fileName = ""; + if (templateIdOrName instanceof Long) { + fileName = fileRegisterMapper.getSignFileSealById((Long) templateIdOrName, "system_template"); + } + if (templateIdOrName instanceof String) { + fileName = fileRegisterMapper.getFileNameByName((String) templateIdOrName, "system_template"); + } + return fileName; + } + + protected FileImageTemplateProvider() { this.keyParamList = new ArrayList<>(); customizedSignNames = new ArrayList<>(); @@ -52,22 +77,6 @@ } /** - * 默认电子签章的图片设置,允许重写 - */ - protected ElectronicImage defaultElectronicSignSeal(String keyWord) { - ElectronicImage electronicImage = ElectronicImage.builder() - .keyWordIndex(-1) - .keyWord(keyWord) - .vertical(-10f) - .horizontal(80f) - .stampHeight(100f) - .stampWidth(100f) - .diaphaneity(150f) - .build(); - return electronicImage; - } - - /** * 自动生成是根据宽度设定取空隙平均值 * 默认电子签章的图片设置,允许重写 * word长度大约为400*600 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java index c259241..fb843dd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java @@ -1,5 +1,6 @@ package com.casic.missiles.service.listeners.register.data; +import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.customer.CustomerSampleInfo; @@ -8,10 +9,12 @@ import com.casic.missiles.service.business.IBusinessSiteExecutiveInfoEquipmentRelationService; import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.customer.CustomerService; +import liquibase.pro.packaged.F; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.util.*; /** @@ -31,11 +34,14 @@ private BusinessOrder businessOrder; private Map fileParamData; + FileParamDataProvider builder() { fileParamData = new HashMap<>(); return this; } + + /** * 基本年月日信息 */ @@ -72,7 +78,7 @@ fileParamData.put("sampleNo", customerSampleInfo.getSampleNo()); fileParamData.put("sampleName", customerSampleInfo.getSampleName()); fileParamData.put("customerSampleNo", customerSampleInfo.getSampleNo()); - fileParamData.put("customerAddress", customerSampleInfo.getCustomerAddress().replace("null","")); + fileParamData.put("customerAddress", customerSampleInfo.getCustomerAddress().replace("null", "")); fileParamData.put("deliverer", customerSampleInfo.getDeliverer()); fileParamData.put("delivererTel", customerSampleInfo.getDelivererTel()); return this; @@ -89,6 +95,7 @@ fileParamData.put("customerNo", customerInfo.getCustomerNo()); return this; } + /** * 外场检定查询测量设备 */ diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); 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 a8e07f8..da16979 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -155,13 +155,22 @@ ORDER BY bcp.create_time DESC - SELECT FROM( SELECT * FROM business_certificate_print where is_del=0 - AND id=#{id} + + and id = #{request.id} + + + and sample_id = #{request.sampleId} + + + and order_id = #{request.orderId} + and print_status != 4 + ) bcp LEFT JOIN( SELECT id,customer_name,customer_phone,customer_address,customer_no,deliverer_id,deliverer,deliverer_tel,require_over_time,plan_deliver_time,customer_id diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index fab6275..d4f828a 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -141,6 +141,7 @@ #{id} + ORDER BY bcr.create_time desc @@ -201,7 +202,7 @@ - + ORDER BY bcr.create_time desc diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 0f19b4d..9a6976b 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -127,6 +127,9 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + AND blei.remark LIKE concat('%',#{request.remark},'%') + AND bo.order_code LIKE concat('%',#{request.orderNo},'%') diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java index 85cce7d..78ecba2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java @@ -30,30 +30,30 @@ * 表位置 */ @ApiModelProperty("表位置") - private Integer tableIndex; + private Integer tableIndex=-1; /** * 行位置 */ @ApiModelProperty("行位置") - private Integer rowIndex; + private Integer rowIndex=-1; /** * 列位置 */ @ApiModelProperty("列位置") - private Integer colIndex; + private Integer colIndex=-1; /** * 行合并数 */ @ApiModelProperty("行合并数") - private Integer rowSpan; + private Integer rowSpan=-1; /** * 列合并列数 */ @ApiModelProperty("列合并列数") - private Integer colSpan; + private Integer colSpan=-1; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java index 71dd76b..bd1c6b8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java @@ -1,8 +1,11 @@ package com.casic.missiles.dto.business.file; +import cn.hutool.core.collection.CollectionUtil; import com.casic.missiles.dto.business.certificate.ElectronicImage; import lombok.Data; +import org.apache.commons.lang3.StringUtils; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -57,4 +60,26 @@ * word模板类型 */ private Boolean templateWordType; + + public void setMergeColNames(List newMergeColNames) { + //健壮性校验 + if (CollectionUtil.isEmpty(newMergeColNames)) { + return; + } + if (CollectionUtil.isEmpty(mergeColNames)) { + mergeColNames = new ArrayList<>(); + } + mergeColNames.addAll(newMergeColNames); + } + + public void setBeDownloadedFileNames(String beDownloadedFileName) { + //健壮性校验 + if (StringUtils.isEmpty(beDownloadedFileName)) { + return; + } + if (CollectionUtil.isEmpty(beDownloadedFileNames)) { + beDownloadedFileNames = new ArrayList<>(); + } + beDownloadedFileNames.add(beDownloadedFileName); + } } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java index 199b748..af78122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java @@ -40,6 +40,9 @@ @ApiModelProperty(value = "是否加急(1是0否null全部)", dataType = "Integer") private String isUrgent; + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @DictCodeField(message = "样品属性不合法", cacheName = MeterDictCode.SAMPLE_BELONG) @ApiModelProperty(value = "样品属性(字典code)", dataType = "String") private String sampleBelong; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index 70813f5..ebc0bf5 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -107,6 +107,10 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @JSONField(serialize = false) private String measureStatus; 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 new file mode 100644 index 0000000..5f0a3fe --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -0,0 +1,23 @@ +package com.casic.missiles.dto.business.print; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author cz + * @date 2024/3/18 + */ +@Data +@ApiModel("作废请求参数") +public class InvalidCertificateRequest { + + @ApiModelProperty("证书打印页面主键ID") + private Long id; + @ApiModelProperty("样品id") + private String sampleId; + + @ApiModelProperty("委托书id") + private String orderId; + +} 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 4139168..67bbf22 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 @@ -92,7 +92,9 @@ @Override public CertificatePrintDetail certificatePrintDetail(Long id) { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + InvalidCertificateRequest invalidCertificateRequest=new InvalidCertificateRequest(); + invalidCertificateRequest.setId(id); + CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetail(invalidCertificateRequest); return certificatePrintDetail; } @@ -168,13 +170,17 @@ * 3、查询获取到最新的原始记录和 * 4、生成一条新的实验室信息,并在老的实验室信息备注 * - * @param id + * @param invalidCertificateRequest * @return */ @Transactional @Override - public ReturnDTO invalidPrint(Long id) throws Exception { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + public ReturnDTO invalidPrint(InvalidCertificateRequest invalidCertificateRequest) throws Exception { + CertificatePrintDetail certificatePrintDetail = getCertificatePrintDetail(invalidCertificateRequest); + if (ObjectUtils.isEmpty(certificatePrintDetail)) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getMessage()); + } + Long id = certificatePrintDetail.getId(); //修改为作废状态 this.certificatePrintStatus(id, "4"); //作废旧的证书报告,并重新生成新的证书报告 @@ -186,6 +192,18 @@ return ReturnUtil.success(); } + private CertificatePrintDetail getCertificatePrintDetail(InvalidCertificateRequest invalidCertificateRequest) { + if (!ObjectUtils.isEmpty(invalidCertificateRequest.getId())) { + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } else { + if (ObjectUtils.isEmpty(invalidCertificateRequest.getSampleId()) || ObjectUtils.isEmpty(invalidCertificateRequest.getOrderId())) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getMessage()); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } + } + private void againCreateLabInfo(Long sampleId, Long orderId, String oldCertificateCode) throws Exception { if (ObjectUtils.isEmpty(sampleId) || ObjectUtils.isEmpty(orderId)) { return; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 8033e90..b4eb651 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -370,7 +370,6 @@ resultPage = labExecutiveInfoMapper.selectListByUserIdAndStatus(page, labExecutiveListRequest, userId, MeasureStatusEnum.MEASURE_COMPLETE); //查询样品检定到的其他实验室或样品检测完成 enrichLabExecutiveRecords(resultPage); - break; } if (!CollectionUtils.isEmpty(resultPage.getRecords())) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java index f8c334a..f65fd40 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java @@ -25,7 +25,7 @@ ReturnDTO refuseAgainPrint(CertificateRefusePrintRequest request); - ReturnDTO invalidPrint(Long id)throws Exception; + ReturnDTO invalidPrint(InvalidCertificateRequest invalidCertificateRequest)throws Exception; ReturnDTO submitAgainPrint(BaseApprovalSubmitRequest request); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java index 370cf5a..3c4e372 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java @@ -1,7 +1,10 @@ package com.casic.missiles.service.listeners.register; import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.ImageConfig; +import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -21,15 +24,37 @@ * 自定义签名名字 */ protected List customizedSignNames; + @Resource + protected PrintFileRegisterMapper fileRegisterMapper; /** * 文件自定义名称参数构建器 */ - protected void customizedSignNamesParamCreator() { + protected List customizedSignNamesParamCreator() { + List approvalImageList = new ArrayList<>(); keyParamList = Arrays.asList("发起人", "审核人", "批准人"); - customizedSignNames = Arrays.asList("发起人", "核验人", "批准人"); + customizedSignNames = Arrays.asList("编制:", "审核:", "批准:"); + for (int i = 0; i < 3; i++) { + ImageConfig imageConfig = new ImageConfig(); + imageConfig.setFiledName(keyParamList.get(i)); + imageConfig.setDocName(customizedSignNames.get(i)); + } + return approvalImageList; } + + protected String getTemplateName(T templateIdOrName) { + String fileName = ""; + if (templateIdOrName instanceof Long) { + fileName = fileRegisterMapper.getSignFileSealById((Long) templateIdOrName, "system_template"); + } + if (templateIdOrName instanceof String) { + fileName = fileRegisterMapper.getFileNameByName((String) templateIdOrName, "system_template"); + } + return fileName; + } + + protected FileImageTemplateProvider() { this.keyParamList = new ArrayList<>(); customizedSignNames = new ArrayList<>(); @@ -52,22 +77,6 @@ } /** - * 默认电子签章的图片设置,允许重写 - */ - protected ElectronicImage defaultElectronicSignSeal(String keyWord) { - ElectronicImage electronicImage = ElectronicImage.builder() - .keyWordIndex(-1) - .keyWord(keyWord) - .vertical(-10f) - .horizontal(80f) - .stampHeight(100f) - .stampWidth(100f) - .diaphaneity(150f) - .build(); - return electronicImage; - } - - /** * 自动生成是根据宽度设定取空隙平均值 * 默认电子签章的图片设置,允许重写 * word长度大约为400*600 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java index c259241..fb843dd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java @@ -1,5 +1,6 @@ package com.casic.missiles.service.listeners.register.data; +import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.customer.CustomerSampleInfo; @@ -8,10 +9,12 @@ import com.casic.missiles.service.business.IBusinessSiteExecutiveInfoEquipmentRelationService; import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.customer.CustomerService; +import liquibase.pro.packaged.F; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.util.*; /** @@ -31,11 +34,14 @@ private BusinessOrder businessOrder; private Map fileParamData; + FileParamDataProvider builder() { fileParamData = new HashMap<>(); return this; } + + /** * 基本年月日信息 */ @@ -72,7 +78,7 @@ fileParamData.put("sampleNo", customerSampleInfo.getSampleNo()); fileParamData.put("sampleName", customerSampleInfo.getSampleName()); fileParamData.put("customerSampleNo", customerSampleInfo.getSampleNo()); - fileParamData.put("customerAddress", customerSampleInfo.getCustomerAddress().replace("null","")); + fileParamData.put("customerAddress", customerSampleInfo.getCustomerAddress().replace("null", "")); fileParamData.put("deliverer", customerSampleInfo.getDeliverer()); fileParamData.put("delivererTel", customerSampleInfo.getDelivererTel()); return this; @@ -89,6 +95,7 @@ fileParamData.put("customerNo", customerInfo.getCustomerNo()); return this; } + /** * 外场检定查询测量设备 */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileApprovalDataSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileApprovalDataSupport.java new file mode 100644 index 0000000..b6fbcf9 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileApprovalDataSupport.java @@ -0,0 +1,176 @@ +package com.casic.missiles.service.listeners.register.data; + +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.ImageConfig; +import com.casic.missiles.dto.business.file.FilePrintRegister; +import com.casic.missiles.dto.flowable.ApprovalLogResponse; +import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.service.flowable.ApprovalOperateService; +import com.casic.missiles.service.listeners.register.FileImageTemplateProvider; +import com.casic.missiles.utils.SpringContextUtil; +import com.deepoove.poi.data.PictureRenderData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; + +import javax.annotation.Resource; +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @author cz + * @date 2024-03-18 + */ +@Slf4j +public class PrintFileApprovalDataSupport extends FileImageTemplateProvider { + + @Autowired + protected ApprovalOperateService approvalOperateService; + @Resource + protected PrintFileRegisterMapper fileRegisterMapper; + + /** + * 初始化文件数据注册信息 + * 1、获取证书模板 + * 2、设置临时处理空间路径、文件名称、文件资源路径 + * 3、设置文件id,作为操作空间文件名称,防止对其他同时处理的证书形成影响 + */ + protected final FilePrintRegister initialization(String templateFileDir, + Long id, String fileName) { + FilePrintRegister filePrintRegister = new FilePrintRegister(); + filePrintRegister.setTemplateWordType(fileName.endsWith(".doc") ? true : false); + templateFileDir = templateFileDir + id + File.separator; + filePrintRegister.setFileName(fileName); + filePrintRegister.setTemDir(templateFileDir); + filePrintRegister.setTemplatePath(templateFileDir + fileName); + filePrintRegister.setFileNameId(id); + filePrintRegister.setBeDownloadedFileNames(fileName); + return filePrintRegister; + } + + public List createSignNames(Map> approvalLogMap, + FilePrintRegister filePrintRegister, List approvalImageList) { + { + if (CollectionUtils.isEmpty(approvalImageList)) { + return null; + } + List electronicImageList = new ArrayList<>(); + PrintFileRegisterMapper fileRegisterMapper = SpringContextUtil.getBean(PrintFileRegisterMapper.class); + int timeSeqCount = 1; + for (int i = 0; i < approvalImageList.size(); i++) { + //是不是当前的人员,不是就skip + if (!approvalLogMap.containsKey(approvalImageList.get(i).getFiledName())) { + //工作流节点跳过 + timeSeqCount++; + continue; + } + //这里新增处理多个签名的情况和处理放到定制表格内的情况 + final String customizedSignName = approvalImageList.get(i).getDocName(); + List approvalLogList = approvalLogMap.get(approvalImageList.get(i).getFiledName()); + if (CollectionUtils.isNotEmpty(approvalLogList)) { + if (StringUtils.isEmpty(approvalImageList.get(i).getDocName())) { + //多个签名的情况 + String signFileNames = ""; + for (ApprovalLogResponse approvalLog : approvalLogList) { + filePrintRegister.getParams().putAll(createApprovalParam(timeSeqCount, approvalLog)); + timeSeqCount++; + String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); + if (StringUtils.isEmpty(signFileName)) { + continue; + } + signFileNames += signFileName + ","; + log.debug("工作图片签名url为:{}", filePrintRegister.getTemDir() + signFileName); + } + if (StringUtils.isNotEmpty(signFileNames)) { + signFileNames = signFileNames.substring(0, signFileNames.length() - 1); + } + ElectronicImage electronicImage = defaultElectronicSignName(customizedSignName); + electronicImage.setSealImageUrlsDir(filePrintRegister.getTemDir()); + electronicImage.setElectronicSealImageUrls(signFileNames); + electronicImage.setImageConfig(approvalImageList.get(i)); + //放入待下载的文件集合 + filePrintRegister.getBeDownloadedFileNames().add(signFileNames); + electronicImageList.add(electronicImage); + if (StringUtils.isNotEmpty(signFileNames) && !signFileNames.contains(",") && approvalImageList.get(i).getDocName().matches("[a-zA-Z]+")) { + filePrintRegister.getParams().put(approvalImageList.get(i).getDocName(), new PictureRenderData(100, 35, filePrintRegister.getTemDir() + signFileNames)); + } + } else { + //多个工作流字段签名 + for (ApprovalLogResponse approvalLog : approvalLogList) { + ElectronicImage electronicImage = defaultElectronicSignName(customizedSignName); + filePrintRegister.getParams().putAll(createApprovalParam(timeSeqCount, approvalLog)); + timeSeqCount++; + String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); + if (StringUtils.isEmpty(signFileName)) { + continue; + } + log.debug("工作图片签名url为:{}", filePrintRegister.getTemDir() + signFileName); + //将工作流图片签名放置待下载的文件和图片信息集合 + electronicImage.setElectronicSealImageUrl(filePrintRegister.getTemDir() + signFileName); + electronicImage.setImageConfig(approvalImageList.get(i)); + //放入待下载的文件集合 + filePrintRegister.setBeDownloadedFileNames(signFileName); + electronicImageList.add(electronicImage); + if (StringUtils.isNotEmpty(signFileName) && !signFileName.contains(",") && approvalImageList.get(i).getDocName().matches("[a-zA-Z]+")) { + filePrintRegister.getParams().put(approvalImageList.get(i).getDocName(), new PictureRenderData(60, 20, filePrintRegister.getTemDir() + signFileName)); + } + } + } + } + } + return electronicImageList; + } + } + /** + * 根据节点序号,工作流日志,对工作流参数进行存储到内存,作为提前内存的参数 + * + * @param nodeSeq 节点数 + * @param approvalLog + * @return + */ + private static Map createApprovalParam(Integer nodeSeq, ApprovalLogResponse approvalLog) { + Map approvalParam = new HashMap<>(); + AbstractPermissionContext permissionContext = SpringContextUtil.getBean(AbstractPermissionContext.class); + User user = permissionContext.getUserService().getById(approvalLog.getAssigneeId()); + approvalParam.put("approvalUser" + nodeSeq, ObjectUtils.isNotEmpty(user) ? user.getName() : ""); + //设置时间 + Calendar calendar = Calendar.getInstance(); + //健壮性校验 + if (ObjectUtils.isNotEmpty(approvalLog.getFinishTime())) { + calendar.setTime(approvalLog.getFinishTime()); + approvalParam.put("year" + nodeSeq, calendar.get(Calendar.YEAR)); + approvalParam.put("month" + nodeSeq, calendar.get(Calendar.MONTH) + 1); + approvalParam.put("day" + nodeSeq, calendar.get(Calendar.DAY_OF_MONTH)); + approvalParam.put("approvalTime" + nodeSeq, new SimpleDateFormat("yyyy年MM月dd日").format(approvalLog.getFinishTime())); + } + //健壮性校验 + if (ObjectUtils.isNotEmpty(approvalLog.getComment())) { + //工作流新增理由 + approvalParam.put("comment" + nodeSeq, approvalLog.getComment().getComment()); + } + return approvalParam; + } + + + /** + * 电子签章获取 + * + * @param electronicSealId 证书报告文件数据 + * @param electronicImage 关键字 + * @return + */ + protected final ElectronicImage doPopulateElectronicSignSeal(Long electronicSealId, ElectronicImage electronicImage, FilePrintRegister filePrintRegister) { + String electronicSealName = fileRegisterMapper.getSignFileSealById(electronicSealId, "system_sign"); + //设置集合 + electronicImage.setElectronicSealImageUrl(filePrintRegister.getTemDir() + electronicSealName); + //放入待下载的文件集合 + filePrintRegister.getBeDownloadedFileNames().add(electronicSealName); + return electronicImage; + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); 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 a8e07f8..da16979 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -155,13 +155,22 @@ ORDER BY bcp.create_time DESC - SELECT FROM( SELECT * FROM business_certificate_print where is_del=0 - AND id=#{id} + + and id = #{request.id} + + + and sample_id = #{request.sampleId} + + + and order_id = #{request.orderId} + and print_status != 4 + ) bcp LEFT JOIN( SELECT id,customer_name,customer_phone,customer_address,customer_no,deliverer_id,deliverer,deliverer_tel,require_over_time,plan_deliver_time,customer_id diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index fab6275..d4f828a 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -141,6 +141,7 @@ #{id} + ORDER BY bcr.create_time desc @@ -201,7 +202,7 @@ - + ORDER BY bcr.create_time desc diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 0f19b4d..9a6976b 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -127,6 +127,9 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + AND blei.remark LIKE concat('%',#{request.remark},'%') + AND bo.order_code LIKE concat('%',#{request.orderNo},'%') diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java index 85cce7d..78ecba2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java @@ -30,30 +30,30 @@ * 表位置 */ @ApiModelProperty("表位置") - private Integer tableIndex; + private Integer tableIndex=-1; /** * 行位置 */ @ApiModelProperty("行位置") - private Integer rowIndex; + private Integer rowIndex=-1; /** * 列位置 */ @ApiModelProperty("列位置") - private Integer colIndex; + private Integer colIndex=-1; /** * 行合并数 */ @ApiModelProperty("行合并数") - private Integer rowSpan; + private Integer rowSpan=-1; /** * 列合并列数 */ @ApiModelProperty("列合并列数") - private Integer colSpan; + private Integer colSpan=-1; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java index 71dd76b..bd1c6b8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java @@ -1,8 +1,11 @@ package com.casic.missiles.dto.business.file; +import cn.hutool.core.collection.CollectionUtil; import com.casic.missiles.dto.business.certificate.ElectronicImage; import lombok.Data; +import org.apache.commons.lang3.StringUtils; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -57,4 +60,26 @@ * word模板类型 */ private Boolean templateWordType; + + public void setMergeColNames(List newMergeColNames) { + //健壮性校验 + if (CollectionUtil.isEmpty(newMergeColNames)) { + return; + } + if (CollectionUtil.isEmpty(mergeColNames)) { + mergeColNames = new ArrayList<>(); + } + mergeColNames.addAll(newMergeColNames); + } + + public void setBeDownloadedFileNames(String beDownloadedFileName) { + //健壮性校验 + if (StringUtils.isEmpty(beDownloadedFileName)) { + return; + } + if (CollectionUtil.isEmpty(beDownloadedFileNames)) { + beDownloadedFileNames = new ArrayList<>(); + } + beDownloadedFileNames.add(beDownloadedFileName); + } } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java index 199b748..af78122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java @@ -40,6 +40,9 @@ @ApiModelProperty(value = "是否加急(1是0否null全部)", dataType = "Integer") private String isUrgent; + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @DictCodeField(message = "样品属性不合法", cacheName = MeterDictCode.SAMPLE_BELONG) @ApiModelProperty(value = "样品属性(字典code)", dataType = "String") private String sampleBelong; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index 70813f5..ebc0bf5 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -107,6 +107,10 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @JSONField(serialize = false) private String measureStatus; 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 new file mode 100644 index 0000000..5f0a3fe --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -0,0 +1,23 @@ +package com.casic.missiles.dto.business.print; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author cz + * @date 2024/3/18 + */ +@Data +@ApiModel("作废请求参数") +public class InvalidCertificateRequest { + + @ApiModelProperty("证书打印页面主键ID") + private Long id; + @ApiModelProperty("样品id") + private String sampleId; + + @ApiModelProperty("委托书id") + private String orderId; + +} 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 4139168..67bbf22 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 @@ -92,7 +92,9 @@ @Override public CertificatePrintDetail certificatePrintDetail(Long id) { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + InvalidCertificateRequest invalidCertificateRequest=new InvalidCertificateRequest(); + invalidCertificateRequest.setId(id); + CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetail(invalidCertificateRequest); return certificatePrintDetail; } @@ -168,13 +170,17 @@ * 3、查询获取到最新的原始记录和 * 4、生成一条新的实验室信息,并在老的实验室信息备注 * - * @param id + * @param invalidCertificateRequest * @return */ @Transactional @Override - public ReturnDTO invalidPrint(Long id) throws Exception { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + public ReturnDTO invalidPrint(InvalidCertificateRequest invalidCertificateRequest) throws Exception { + CertificatePrintDetail certificatePrintDetail = getCertificatePrintDetail(invalidCertificateRequest); + if (ObjectUtils.isEmpty(certificatePrintDetail)) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getMessage()); + } + Long id = certificatePrintDetail.getId(); //修改为作废状态 this.certificatePrintStatus(id, "4"); //作废旧的证书报告,并重新生成新的证书报告 @@ -186,6 +192,18 @@ return ReturnUtil.success(); } + private CertificatePrintDetail getCertificatePrintDetail(InvalidCertificateRequest invalidCertificateRequest) { + if (!ObjectUtils.isEmpty(invalidCertificateRequest.getId())) { + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } else { + if (ObjectUtils.isEmpty(invalidCertificateRequest.getSampleId()) || ObjectUtils.isEmpty(invalidCertificateRequest.getOrderId())) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getMessage()); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } + } + private void againCreateLabInfo(Long sampleId, Long orderId, String oldCertificateCode) throws Exception { if (ObjectUtils.isEmpty(sampleId) || ObjectUtils.isEmpty(orderId)) { return; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 8033e90..b4eb651 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -370,7 +370,6 @@ resultPage = labExecutiveInfoMapper.selectListByUserIdAndStatus(page, labExecutiveListRequest, userId, MeasureStatusEnum.MEASURE_COMPLETE); //查询样品检定到的其他实验室或样品检测完成 enrichLabExecutiveRecords(resultPage); - break; } if (!CollectionUtils.isEmpty(resultPage.getRecords())) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java index f8c334a..f65fd40 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java @@ -25,7 +25,7 @@ ReturnDTO refuseAgainPrint(CertificateRefusePrintRequest request); - ReturnDTO invalidPrint(Long id)throws Exception; + ReturnDTO invalidPrint(InvalidCertificateRequest invalidCertificateRequest)throws Exception; ReturnDTO submitAgainPrint(BaseApprovalSubmitRequest request); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java index 370cf5a..3c4e372 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java @@ -1,7 +1,10 @@ package com.casic.missiles.service.listeners.register; import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.ImageConfig; +import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -21,15 +24,37 @@ * 自定义签名名字 */ protected List customizedSignNames; + @Resource + protected PrintFileRegisterMapper fileRegisterMapper; /** * 文件自定义名称参数构建器 */ - protected void customizedSignNamesParamCreator() { + protected List customizedSignNamesParamCreator() { + List approvalImageList = new ArrayList<>(); keyParamList = Arrays.asList("发起人", "审核人", "批准人"); - customizedSignNames = Arrays.asList("发起人", "核验人", "批准人"); + customizedSignNames = Arrays.asList("编制:", "审核:", "批准:"); + for (int i = 0; i < 3; i++) { + ImageConfig imageConfig = new ImageConfig(); + imageConfig.setFiledName(keyParamList.get(i)); + imageConfig.setDocName(customizedSignNames.get(i)); + } + return approvalImageList; } + + protected String getTemplateName(T templateIdOrName) { + String fileName = ""; + if (templateIdOrName instanceof Long) { + fileName = fileRegisterMapper.getSignFileSealById((Long) templateIdOrName, "system_template"); + } + if (templateIdOrName instanceof String) { + fileName = fileRegisterMapper.getFileNameByName((String) templateIdOrName, "system_template"); + } + return fileName; + } + + protected FileImageTemplateProvider() { this.keyParamList = new ArrayList<>(); customizedSignNames = new ArrayList<>(); @@ -52,22 +77,6 @@ } /** - * 默认电子签章的图片设置,允许重写 - */ - protected ElectronicImage defaultElectronicSignSeal(String keyWord) { - ElectronicImage electronicImage = ElectronicImage.builder() - .keyWordIndex(-1) - .keyWord(keyWord) - .vertical(-10f) - .horizontal(80f) - .stampHeight(100f) - .stampWidth(100f) - .diaphaneity(150f) - .build(); - return electronicImage; - } - - /** * 自动生成是根据宽度设定取空隙平均值 * 默认电子签章的图片设置,允许重写 * word长度大约为400*600 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java index c259241..fb843dd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java @@ -1,5 +1,6 @@ package com.casic.missiles.service.listeners.register.data; +import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.customer.CustomerSampleInfo; @@ -8,10 +9,12 @@ import com.casic.missiles.service.business.IBusinessSiteExecutiveInfoEquipmentRelationService; import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.customer.CustomerService; +import liquibase.pro.packaged.F; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.util.*; /** @@ -31,11 +34,14 @@ private BusinessOrder businessOrder; private Map fileParamData; + FileParamDataProvider builder() { fileParamData = new HashMap<>(); return this; } + + /** * 基本年月日信息 */ @@ -72,7 +78,7 @@ fileParamData.put("sampleNo", customerSampleInfo.getSampleNo()); fileParamData.put("sampleName", customerSampleInfo.getSampleName()); fileParamData.put("customerSampleNo", customerSampleInfo.getSampleNo()); - fileParamData.put("customerAddress", customerSampleInfo.getCustomerAddress().replace("null","")); + fileParamData.put("customerAddress", customerSampleInfo.getCustomerAddress().replace("null", "")); fileParamData.put("deliverer", customerSampleInfo.getDeliverer()); fileParamData.put("delivererTel", customerSampleInfo.getDelivererTel()); return this; @@ -89,6 +95,7 @@ fileParamData.put("customerNo", customerInfo.getCustomerNo()); return this; } + /** * 外场检定查询测量设备 */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileApprovalDataSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileApprovalDataSupport.java new file mode 100644 index 0000000..b6fbcf9 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileApprovalDataSupport.java @@ -0,0 +1,176 @@ +package com.casic.missiles.service.listeners.register.data; + +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.ImageConfig; +import com.casic.missiles.dto.business.file.FilePrintRegister; +import com.casic.missiles.dto.flowable.ApprovalLogResponse; +import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.service.flowable.ApprovalOperateService; +import com.casic.missiles.service.listeners.register.FileImageTemplateProvider; +import com.casic.missiles.utils.SpringContextUtil; +import com.deepoove.poi.data.PictureRenderData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; + +import javax.annotation.Resource; +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @author cz + * @date 2024-03-18 + */ +@Slf4j +public class PrintFileApprovalDataSupport extends FileImageTemplateProvider { + + @Autowired + protected ApprovalOperateService approvalOperateService; + @Resource + protected PrintFileRegisterMapper fileRegisterMapper; + + /** + * 初始化文件数据注册信息 + * 1、获取证书模板 + * 2、设置临时处理空间路径、文件名称、文件资源路径 + * 3、设置文件id,作为操作空间文件名称,防止对其他同时处理的证书形成影响 + */ + protected final FilePrintRegister initialization(String templateFileDir, + Long id, String fileName) { + FilePrintRegister filePrintRegister = new FilePrintRegister(); + filePrintRegister.setTemplateWordType(fileName.endsWith(".doc") ? true : false); + templateFileDir = templateFileDir + id + File.separator; + filePrintRegister.setFileName(fileName); + filePrintRegister.setTemDir(templateFileDir); + filePrintRegister.setTemplatePath(templateFileDir + fileName); + filePrintRegister.setFileNameId(id); + filePrintRegister.setBeDownloadedFileNames(fileName); + return filePrintRegister; + } + + public List createSignNames(Map> approvalLogMap, + FilePrintRegister filePrintRegister, List approvalImageList) { + { + if (CollectionUtils.isEmpty(approvalImageList)) { + return null; + } + List electronicImageList = new ArrayList<>(); + PrintFileRegisterMapper fileRegisterMapper = SpringContextUtil.getBean(PrintFileRegisterMapper.class); + int timeSeqCount = 1; + for (int i = 0; i < approvalImageList.size(); i++) { + //是不是当前的人员,不是就skip + if (!approvalLogMap.containsKey(approvalImageList.get(i).getFiledName())) { + //工作流节点跳过 + timeSeqCount++; + continue; + } + //这里新增处理多个签名的情况和处理放到定制表格内的情况 + final String customizedSignName = approvalImageList.get(i).getDocName(); + List approvalLogList = approvalLogMap.get(approvalImageList.get(i).getFiledName()); + if (CollectionUtils.isNotEmpty(approvalLogList)) { + if (StringUtils.isEmpty(approvalImageList.get(i).getDocName())) { + //多个签名的情况 + String signFileNames = ""; + for (ApprovalLogResponse approvalLog : approvalLogList) { + filePrintRegister.getParams().putAll(createApprovalParam(timeSeqCount, approvalLog)); + timeSeqCount++; + String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); + if (StringUtils.isEmpty(signFileName)) { + continue; + } + signFileNames += signFileName + ","; + log.debug("工作图片签名url为:{}", filePrintRegister.getTemDir() + signFileName); + } + if (StringUtils.isNotEmpty(signFileNames)) { + signFileNames = signFileNames.substring(0, signFileNames.length() - 1); + } + ElectronicImage electronicImage = defaultElectronicSignName(customizedSignName); + electronicImage.setSealImageUrlsDir(filePrintRegister.getTemDir()); + electronicImage.setElectronicSealImageUrls(signFileNames); + electronicImage.setImageConfig(approvalImageList.get(i)); + //放入待下载的文件集合 + filePrintRegister.getBeDownloadedFileNames().add(signFileNames); + electronicImageList.add(electronicImage); + if (StringUtils.isNotEmpty(signFileNames) && !signFileNames.contains(",") && approvalImageList.get(i).getDocName().matches("[a-zA-Z]+")) { + filePrintRegister.getParams().put(approvalImageList.get(i).getDocName(), new PictureRenderData(100, 35, filePrintRegister.getTemDir() + signFileNames)); + } + } else { + //多个工作流字段签名 + for (ApprovalLogResponse approvalLog : approvalLogList) { + ElectronicImage electronicImage = defaultElectronicSignName(customizedSignName); + filePrintRegister.getParams().putAll(createApprovalParam(timeSeqCount, approvalLog)); + timeSeqCount++; + String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); + if (StringUtils.isEmpty(signFileName)) { + continue; + } + log.debug("工作图片签名url为:{}", filePrintRegister.getTemDir() + signFileName); + //将工作流图片签名放置待下载的文件和图片信息集合 + electronicImage.setElectronicSealImageUrl(filePrintRegister.getTemDir() + signFileName); + electronicImage.setImageConfig(approvalImageList.get(i)); + //放入待下载的文件集合 + filePrintRegister.setBeDownloadedFileNames(signFileName); + electronicImageList.add(electronicImage); + if (StringUtils.isNotEmpty(signFileName) && !signFileName.contains(",") && approvalImageList.get(i).getDocName().matches("[a-zA-Z]+")) { + filePrintRegister.getParams().put(approvalImageList.get(i).getDocName(), new PictureRenderData(60, 20, filePrintRegister.getTemDir() + signFileName)); + } + } + } + } + } + return electronicImageList; + } + } + /** + * 根据节点序号,工作流日志,对工作流参数进行存储到内存,作为提前内存的参数 + * + * @param nodeSeq 节点数 + * @param approvalLog + * @return + */ + private static Map createApprovalParam(Integer nodeSeq, ApprovalLogResponse approvalLog) { + Map approvalParam = new HashMap<>(); + AbstractPermissionContext permissionContext = SpringContextUtil.getBean(AbstractPermissionContext.class); + User user = permissionContext.getUserService().getById(approvalLog.getAssigneeId()); + approvalParam.put("approvalUser" + nodeSeq, ObjectUtils.isNotEmpty(user) ? user.getName() : ""); + //设置时间 + Calendar calendar = Calendar.getInstance(); + //健壮性校验 + if (ObjectUtils.isNotEmpty(approvalLog.getFinishTime())) { + calendar.setTime(approvalLog.getFinishTime()); + approvalParam.put("year" + nodeSeq, calendar.get(Calendar.YEAR)); + approvalParam.put("month" + nodeSeq, calendar.get(Calendar.MONTH) + 1); + approvalParam.put("day" + nodeSeq, calendar.get(Calendar.DAY_OF_MONTH)); + approvalParam.put("approvalTime" + nodeSeq, new SimpleDateFormat("yyyy年MM月dd日").format(approvalLog.getFinishTime())); + } + //健壮性校验 + if (ObjectUtils.isNotEmpty(approvalLog.getComment())) { + //工作流新增理由 + approvalParam.put("comment" + nodeSeq, approvalLog.getComment().getComment()); + } + return approvalParam; + } + + + /** + * 电子签章获取 + * + * @param electronicSealId 证书报告文件数据 + * @param electronicImage 关键字 + * @return + */ + protected final ElectronicImage doPopulateElectronicSignSeal(Long electronicSealId, ElectronicImage electronicImage, FilePrintRegister filePrintRegister) { + String electronicSealName = fileRegisterMapper.getSignFileSealById(electronicSealId, "system_sign"); + //设置集合 + electronicImage.setElectronicSealImageUrl(filePrintRegister.getTemDir() + electronicSealName); + //放入待下载的文件集合 + filePrintRegister.getBeDownloadedFileNames().add(electronicSealName); + return electronicImage; + } + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileDataSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileDataSupport.java index 8a16e91..491d298 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileDataSupport.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileDataSupport.java @@ -1,17 +1,25 @@ package com.casic.missiles.service.listeners.register.data; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.ImageConfig; import com.casic.missiles.dto.business.file.FilePrintRegister; import com.casic.missiles.dto.flowable.ApprovalLogResponse; import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; +import com.casic.missiles.modular.system.model.User; import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.service.listeners.register.FileImageTemplateProvider; +import com.casic.missiles.utils.SpringContextUtil; +import com.deepoove.poi.data.PictureRenderData; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.io.File; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -20,13 +28,9 @@ * @author cz * @date 2023-03-10 */ +@Slf4j public class PrintFileDataSupport extends FileImageTemplateProvider { - @Autowired - protected ApprovalOperateService approvalOperateService; - @Resource - protected PrintFileRegisterMapper fileRegisterMapper; - @Resource private FileParamDataProvider fileParamDataCreator; @@ -45,73 +49,10 @@ filePrintRegister.setTemDir(templateFileDir); filePrintRegister.setTemplatePath(templateFileDir + fileName); filePrintRegister.setFileNameId(id); - List fileNames = new ArrayList<>(); - fileNames.add(fileName); - filePrintRegister.setBeDownloadedFileNames(fileNames); + filePrintRegister.setBeDownloadedFileNames(fileName); return filePrintRegister; } - public String getTemplateName(T templateIdOrName) { - String fileName = ""; - if (templateIdOrName instanceof Long) { - fileName = fileRegisterMapper.getSignFileSealById((Long) templateIdOrName, "system_template"); - } - if (templateIdOrName instanceof String) { - fileName = fileRegisterMapper.getFileNameByName((String) templateIdOrName, "system_template"); - } - return fileName; - } - - - /** - * 电子签名创建器 - */ - protected final List signNamesCreator(Map> approvalLogMap, FilePrintRegister filePrintRegister) { - List electronicImageList = new ArrayList<>(); - for (int i = 0; i < keyParamList.size(); i++) { - //是不是当前的人员,不是就skip - if (!approvalLogMap.containsKey(keyParamList.get(i))) { - continue; - } - final String customizedSignName = customizedSignNames.get(i); - List approvalLogList = approvalLogMap.get(keyParamList.get(i)); - if (CollectionUtils.isNotEmpty(approvalLogList)) { - approvalLogList.forEach( - approvalLog -> { - ElectronicImage electronicImage = defaultElectronicSignName(customizedSignName); - String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); - if (StringUtils.isEmpty(signFileName)) { - return; - } - //设置集合 - electronicImage.setElectronicSealImageUrl(filePrintRegister.getTemDir() + signFileName); - //放入待下载的文件集合 - filePrintRegister.getBeDownloadedFileNames().add(signFileName); - electronicImageList.add(electronicImage); - } - ); - } - } - return electronicImageList; - } - - - /** - * 电子签章获取 - * - * @param electronicSealId 证书报告文件数据 - * @param electronicImage 关键字 - * @return - */ - protected final ElectronicImage doPopulateElectronicSignSeal(Long electronicSealId, ElectronicImage electronicImage, FilePrintRegister filePrintRegister) { - String electronicSealName = fileRegisterMapper.getSignFileSealById(electronicSealId, "system_sign"); - //设置集合 - electronicImage.setElectronicSealImageUrl(filePrintRegister.getTemDir() + electronicSealName); - //放入待下载的文件集合 - filePrintRegister.getBeDownloadedFileNames().add(electronicSealName); - return electronicImage; - } - /** * 证书参数在模板中起替换作用 * 基本所包含的参数替换 @@ -149,4 +90,5 @@ return fileParamData; } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); 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 a8e07f8..da16979 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -155,13 +155,22 @@ ORDER BY bcp.create_time DESC - SELECT FROM( SELECT * FROM business_certificate_print where is_del=0 - AND id=#{id} + + and id = #{request.id} + + + and sample_id = #{request.sampleId} + + + and order_id = #{request.orderId} + and print_status != 4 + ) bcp LEFT JOIN( SELECT id,customer_name,customer_phone,customer_address,customer_no,deliverer_id,deliverer,deliverer_tel,require_over_time,plan_deliver_time,customer_id diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index fab6275..d4f828a 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -141,6 +141,7 @@ #{id} + ORDER BY bcr.create_time desc @@ -201,7 +202,7 @@ - + ORDER BY bcr.create_time desc diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 0f19b4d..9a6976b 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -127,6 +127,9 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + AND blei.remark LIKE concat('%',#{request.remark},'%') + AND bo.order_code LIKE concat('%',#{request.orderNo},'%') diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java index 85cce7d..78ecba2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java @@ -30,30 +30,30 @@ * 表位置 */ @ApiModelProperty("表位置") - private Integer tableIndex; + private Integer tableIndex=-1; /** * 行位置 */ @ApiModelProperty("行位置") - private Integer rowIndex; + private Integer rowIndex=-1; /** * 列位置 */ @ApiModelProperty("列位置") - private Integer colIndex; + private Integer colIndex=-1; /** * 行合并数 */ @ApiModelProperty("行合并数") - private Integer rowSpan; + private Integer rowSpan=-1; /** * 列合并列数 */ @ApiModelProperty("列合并列数") - private Integer colSpan; + private Integer colSpan=-1; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java index 71dd76b..bd1c6b8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java @@ -1,8 +1,11 @@ package com.casic.missiles.dto.business.file; +import cn.hutool.core.collection.CollectionUtil; import com.casic.missiles.dto.business.certificate.ElectronicImage; import lombok.Data; +import org.apache.commons.lang3.StringUtils; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -57,4 +60,26 @@ * word模板类型 */ private Boolean templateWordType; + + public void setMergeColNames(List newMergeColNames) { + //健壮性校验 + if (CollectionUtil.isEmpty(newMergeColNames)) { + return; + } + if (CollectionUtil.isEmpty(mergeColNames)) { + mergeColNames = new ArrayList<>(); + } + mergeColNames.addAll(newMergeColNames); + } + + public void setBeDownloadedFileNames(String beDownloadedFileName) { + //健壮性校验 + if (StringUtils.isEmpty(beDownloadedFileName)) { + return; + } + if (CollectionUtil.isEmpty(beDownloadedFileNames)) { + beDownloadedFileNames = new ArrayList<>(); + } + beDownloadedFileNames.add(beDownloadedFileName); + } } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java index 199b748..af78122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java @@ -40,6 +40,9 @@ @ApiModelProperty(value = "是否加急(1是0否null全部)", dataType = "Integer") private String isUrgent; + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @DictCodeField(message = "样品属性不合法", cacheName = MeterDictCode.SAMPLE_BELONG) @ApiModelProperty(value = "样品属性(字典code)", dataType = "String") private String sampleBelong; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index 70813f5..ebc0bf5 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -107,6 +107,10 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @JSONField(serialize = false) private String measureStatus; 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 new file mode 100644 index 0000000..5f0a3fe --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -0,0 +1,23 @@ +package com.casic.missiles.dto.business.print; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author cz + * @date 2024/3/18 + */ +@Data +@ApiModel("作废请求参数") +public class InvalidCertificateRequest { + + @ApiModelProperty("证书打印页面主键ID") + private Long id; + @ApiModelProperty("样品id") + private String sampleId; + + @ApiModelProperty("委托书id") + private String orderId; + +} 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 4139168..67bbf22 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 @@ -92,7 +92,9 @@ @Override public CertificatePrintDetail certificatePrintDetail(Long id) { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + InvalidCertificateRequest invalidCertificateRequest=new InvalidCertificateRequest(); + invalidCertificateRequest.setId(id); + CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetail(invalidCertificateRequest); return certificatePrintDetail; } @@ -168,13 +170,17 @@ * 3、查询获取到最新的原始记录和 * 4、生成一条新的实验室信息,并在老的实验室信息备注 * - * @param id + * @param invalidCertificateRequest * @return */ @Transactional @Override - public ReturnDTO invalidPrint(Long id) throws Exception { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + public ReturnDTO invalidPrint(InvalidCertificateRequest invalidCertificateRequest) throws Exception { + CertificatePrintDetail certificatePrintDetail = getCertificatePrintDetail(invalidCertificateRequest); + if (ObjectUtils.isEmpty(certificatePrintDetail)) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getMessage()); + } + Long id = certificatePrintDetail.getId(); //修改为作废状态 this.certificatePrintStatus(id, "4"); //作废旧的证书报告,并重新生成新的证书报告 @@ -186,6 +192,18 @@ return ReturnUtil.success(); } + private CertificatePrintDetail getCertificatePrintDetail(InvalidCertificateRequest invalidCertificateRequest) { + if (!ObjectUtils.isEmpty(invalidCertificateRequest.getId())) { + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } else { + if (ObjectUtils.isEmpty(invalidCertificateRequest.getSampleId()) || ObjectUtils.isEmpty(invalidCertificateRequest.getOrderId())) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getMessage()); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } + } + private void againCreateLabInfo(Long sampleId, Long orderId, String oldCertificateCode) throws Exception { if (ObjectUtils.isEmpty(sampleId) || ObjectUtils.isEmpty(orderId)) { return; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 8033e90..b4eb651 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -370,7 +370,6 @@ resultPage = labExecutiveInfoMapper.selectListByUserIdAndStatus(page, labExecutiveListRequest, userId, MeasureStatusEnum.MEASURE_COMPLETE); //查询样品检定到的其他实验室或样品检测完成 enrichLabExecutiveRecords(resultPage); - break; } if (!CollectionUtils.isEmpty(resultPage.getRecords())) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java index f8c334a..f65fd40 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java @@ -25,7 +25,7 @@ ReturnDTO refuseAgainPrint(CertificateRefusePrintRequest request); - ReturnDTO invalidPrint(Long id)throws Exception; + ReturnDTO invalidPrint(InvalidCertificateRequest invalidCertificateRequest)throws Exception; ReturnDTO submitAgainPrint(BaseApprovalSubmitRequest request); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java index 370cf5a..3c4e372 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java @@ -1,7 +1,10 @@ package com.casic.missiles.service.listeners.register; import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.ImageConfig; +import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -21,15 +24,37 @@ * 自定义签名名字 */ protected List customizedSignNames; + @Resource + protected PrintFileRegisterMapper fileRegisterMapper; /** * 文件自定义名称参数构建器 */ - protected void customizedSignNamesParamCreator() { + protected List customizedSignNamesParamCreator() { + List approvalImageList = new ArrayList<>(); keyParamList = Arrays.asList("发起人", "审核人", "批准人"); - customizedSignNames = Arrays.asList("发起人", "核验人", "批准人"); + customizedSignNames = Arrays.asList("编制:", "审核:", "批准:"); + for (int i = 0; i < 3; i++) { + ImageConfig imageConfig = new ImageConfig(); + imageConfig.setFiledName(keyParamList.get(i)); + imageConfig.setDocName(customizedSignNames.get(i)); + } + return approvalImageList; } + + protected String getTemplateName(T templateIdOrName) { + String fileName = ""; + if (templateIdOrName instanceof Long) { + fileName = fileRegisterMapper.getSignFileSealById((Long) templateIdOrName, "system_template"); + } + if (templateIdOrName instanceof String) { + fileName = fileRegisterMapper.getFileNameByName((String) templateIdOrName, "system_template"); + } + return fileName; + } + + protected FileImageTemplateProvider() { this.keyParamList = new ArrayList<>(); customizedSignNames = new ArrayList<>(); @@ -52,22 +77,6 @@ } /** - * 默认电子签章的图片设置,允许重写 - */ - protected ElectronicImage defaultElectronicSignSeal(String keyWord) { - ElectronicImage electronicImage = ElectronicImage.builder() - .keyWordIndex(-1) - .keyWord(keyWord) - .vertical(-10f) - .horizontal(80f) - .stampHeight(100f) - .stampWidth(100f) - .diaphaneity(150f) - .build(); - return electronicImage; - } - - /** * 自动生成是根据宽度设定取空隙平均值 * 默认电子签章的图片设置,允许重写 * word长度大约为400*600 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java index c259241..fb843dd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java @@ -1,5 +1,6 @@ package com.casic.missiles.service.listeners.register.data; +import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.customer.CustomerSampleInfo; @@ -8,10 +9,12 @@ import com.casic.missiles.service.business.IBusinessSiteExecutiveInfoEquipmentRelationService; import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.customer.CustomerService; +import liquibase.pro.packaged.F; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.util.*; /** @@ -31,11 +34,14 @@ private BusinessOrder businessOrder; private Map fileParamData; + FileParamDataProvider builder() { fileParamData = new HashMap<>(); return this; } + + /** * 基本年月日信息 */ @@ -72,7 +78,7 @@ fileParamData.put("sampleNo", customerSampleInfo.getSampleNo()); fileParamData.put("sampleName", customerSampleInfo.getSampleName()); fileParamData.put("customerSampleNo", customerSampleInfo.getSampleNo()); - fileParamData.put("customerAddress", customerSampleInfo.getCustomerAddress().replace("null","")); + fileParamData.put("customerAddress", customerSampleInfo.getCustomerAddress().replace("null", "")); fileParamData.put("deliverer", customerSampleInfo.getDeliverer()); fileParamData.put("delivererTel", customerSampleInfo.getDelivererTel()); return this; @@ -89,6 +95,7 @@ fileParamData.put("customerNo", customerInfo.getCustomerNo()); return this; } + /** * 外场检定查询测量设备 */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileApprovalDataSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileApprovalDataSupport.java new file mode 100644 index 0000000..b6fbcf9 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileApprovalDataSupport.java @@ -0,0 +1,176 @@ +package com.casic.missiles.service.listeners.register.data; + +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.ImageConfig; +import com.casic.missiles.dto.business.file.FilePrintRegister; +import com.casic.missiles.dto.flowable.ApprovalLogResponse; +import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.service.flowable.ApprovalOperateService; +import com.casic.missiles.service.listeners.register.FileImageTemplateProvider; +import com.casic.missiles.utils.SpringContextUtil; +import com.deepoove.poi.data.PictureRenderData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; + +import javax.annotation.Resource; +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @author cz + * @date 2024-03-18 + */ +@Slf4j +public class PrintFileApprovalDataSupport extends FileImageTemplateProvider { + + @Autowired + protected ApprovalOperateService approvalOperateService; + @Resource + protected PrintFileRegisterMapper fileRegisterMapper; + + /** + * 初始化文件数据注册信息 + * 1、获取证书模板 + * 2、设置临时处理空间路径、文件名称、文件资源路径 + * 3、设置文件id,作为操作空间文件名称,防止对其他同时处理的证书形成影响 + */ + protected final FilePrintRegister initialization(String templateFileDir, + Long id, String fileName) { + FilePrintRegister filePrintRegister = new FilePrintRegister(); + filePrintRegister.setTemplateWordType(fileName.endsWith(".doc") ? true : false); + templateFileDir = templateFileDir + id + File.separator; + filePrintRegister.setFileName(fileName); + filePrintRegister.setTemDir(templateFileDir); + filePrintRegister.setTemplatePath(templateFileDir + fileName); + filePrintRegister.setFileNameId(id); + filePrintRegister.setBeDownloadedFileNames(fileName); + return filePrintRegister; + } + + public List createSignNames(Map> approvalLogMap, + FilePrintRegister filePrintRegister, List approvalImageList) { + { + if (CollectionUtils.isEmpty(approvalImageList)) { + return null; + } + List electronicImageList = new ArrayList<>(); + PrintFileRegisterMapper fileRegisterMapper = SpringContextUtil.getBean(PrintFileRegisterMapper.class); + int timeSeqCount = 1; + for (int i = 0; i < approvalImageList.size(); i++) { + //是不是当前的人员,不是就skip + if (!approvalLogMap.containsKey(approvalImageList.get(i).getFiledName())) { + //工作流节点跳过 + timeSeqCount++; + continue; + } + //这里新增处理多个签名的情况和处理放到定制表格内的情况 + final String customizedSignName = approvalImageList.get(i).getDocName(); + List approvalLogList = approvalLogMap.get(approvalImageList.get(i).getFiledName()); + if (CollectionUtils.isNotEmpty(approvalLogList)) { + if (StringUtils.isEmpty(approvalImageList.get(i).getDocName())) { + //多个签名的情况 + String signFileNames = ""; + for (ApprovalLogResponse approvalLog : approvalLogList) { + filePrintRegister.getParams().putAll(createApprovalParam(timeSeqCount, approvalLog)); + timeSeqCount++; + String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); + if (StringUtils.isEmpty(signFileName)) { + continue; + } + signFileNames += signFileName + ","; + log.debug("工作图片签名url为:{}", filePrintRegister.getTemDir() + signFileName); + } + if (StringUtils.isNotEmpty(signFileNames)) { + signFileNames = signFileNames.substring(0, signFileNames.length() - 1); + } + ElectronicImage electronicImage = defaultElectronicSignName(customizedSignName); + electronicImage.setSealImageUrlsDir(filePrintRegister.getTemDir()); + electronicImage.setElectronicSealImageUrls(signFileNames); + electronicImage.setImageConfig(approvalImageList.get(i)); + //放入待下载的文件集合 + filePrintRegister.getBeDownloadedFileNames().add(signFileNames); + electronicImageList.add(electronicImage); + if (StringUtils.isNotEmpty(signFileNames) && !signFileNames.contains(",") && approvalImageList.get(i).getDocName().matches("[a-zA-Z]+")) { + filePrintRegister.getParams().put(approvalImageList.get(i).getDocName(), new PictureRenderData(100, 35, filePrintRegister.getTemDir() + signFileNames)); + } + } else { + //多个工作流字段签名 + for (ApprovalLogResponse approvalLog : approvalLogList) { + ElectronicImage electronicImage = defaultElectronicSignName(customizedSignName); + filePrintRegister.getParams().putAll(createApprovalParam(timeSeqCount, approvalLog)); + timeSeqCount++; + String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); + if (StringUtils.isEmpty(signFileName)) { + continue; + } + log.debug("工作图片签名url为:{}", filePrintRegister.getTemDir() + signFileName); + //将工作流图片签名放置待下载的文件和图片信息集合 + electronicImage.setElectronicSealImageUrl(filePrintRegister.getTemDir() + signFileName); + electronicImage.setImageConfig(approvalImageList.get(i)); + //放入待下载的文件集合 + filePrintRegister.setBeDownloadedFileNames(signFileName); + electronicImageList.add(electronicImage); + if (StringUtils.isNotEmpty(signFileName) && !signFileName.contains(",") && approvalImageList.get(i).getDocName().matches("[a-zA-Z]+")) { + filePrintRegister.getParams().put(approvalImageList.get(i).getDocName(), new PictureRenderData(60, 20, filePrintRegister.getTemDir() + signFileName)); + } + } + } + } + } + return electronicImageList; + } + } + /** + * 根据节点序号,工作流日志,对工作流参数进行存储到内存,作为提前内存的参数 + * + * @param nodeSeq 节点数 + * @param approvalLog + * @return + */ + private static Map createApprovalParam(Integer nodeSeq, ApprovalLogResponse approvalLog) { + Map approvalParam = new HashMap<>(); + AbstractPermissionContext permissionContext = SpringContextUtil.getBean(AbstractPermissionContext.class); + User user = permissionContext.getUserService().getById(approvalLog.getAssigneeId()); + approvalParam.put("approvalUser" + nodeSeq, ObjectUtils.isNotEmpty(user) ? user.getName() : ""); + //设置时间 + Calendar calendar = Calendar.getInstance(); + //健壮性校验 + if (ObjectUtils.isNotEmpty(approvalLog.getFinishTime())) { + calendar.setTime(approvalLog.getFinishTime()); + approvalParam.put("year" + nodeSeq, calendar.get(Calendar.YEAR)); + approvalParam.put("month" + nodeSeq, calendar.get(Calendar.MONTH) + 1); + approvalParam.put("day" + nodeSeq, calendar.get(Calendar.DAY_OF_MONTH)); + approvalParam.put("approvalTime" + nodeSeq, new SimpleDateFormat("yyyy年MM月dd日").format(approvalLog.getFinishTime())); + } + //健壮性校验 + if (ObjectUtils.isNotEmpty(approvalLog.getComment())) { + //工作流新增理由 + approvalParam.put("comment" + nodeSeq, approvalLog.getComment().getComment()); + } + return approvalParam; + } + + + /** + * 电子签章获取 + * + * @param electronicSealId 证书报告文件数据 + * @param electronicImage 关键字 + * @return + */ + protected final ElectronicImage doPopulateElectronicSignSeal(Long electronicSealId, ElectronicImage electronicImage, FilePrintRegister filePrintRegister) { + String electronicSealName = fileRegisterMapper.getSignFileSealById(electronicSealId, "system_sign"); + //设置集合 + electronicImage.setElectronicSealImageUrl(filePrintRegister.getTemDir() + electronicSealName); + //放入待下载的文件集合 + filePrintRegister.getBeDownloadedFileNames().add(electronicSealName); + return electronicImage; + } + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileDataSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileDataSupport.java index 8a16e91..491d298 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileDataSupport.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileDataSupport.java @@ -1,17 +1,25 @@ package com.casic.missiles.service.listeners.register.data; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.ImageConfig; import com.casic.missiles.dto.business.file.FilePrintRegister; import com.casic.missiles.dto.flowable.ApprovalLogResponse; import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; +import com.casic.missiles.modular.system.model.User; import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.service.listeners.register.FileImageTemplateProvider; +import com.casic.missiles.utils.SpringContextUtil; +import com.deepoove.poi.data.PictureRenderData; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.io.File; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -20,13 +28,9 @@ * @author cz * @date 2023-03-10 */ +@Slf4j public class PrintFileDataSupport extends FileImageTemplateProvider { - @Autowired - protected ApprovalOperateService approvalOperateService; - @Resource - protected PrintFileRegisterMapper fileRegisterMapper; - @Resource private FileParamDataProvider fileParamDataCreator; @@ -45,73 +49,10 @@ filePrintRegister.setTemDir(templateFileDir); filePrintRegister.setTemplatePath(templateFileDir + fileName); filePrintRegister.setFileNameId(id); - List fileNames = new ArrayList<>(); - fileNames.add(fileName); - filePrintRegister.setBeDownloadedFileNames(fileNames); + filePrintRegister.setBeDownloadedFileNames(fileName); return filePrintRegister; } - public String getTemplateName(T templateIdOrName) { - String fileName = ""; - if (templateIdOrName instanceof Long) { - fileName = fileRegisterMapper.getSignFileSealById((Long) templateIdOrName, "system_template"); - } - if (templateIdOrName instanceof String) { - fileName = fileRegisterMapper.getFileNameByName((String) templateIdOrName, "system_template"); - } - return fileName; - } - - - /** - * 电子签名创建器 - */ - protected final List signNamesCreator(Map> approvalLogMap, FilePrintRegister filePrintRegister) { - List electronicImageList = new ArrayList<>(); - for (int i = 0; i < keyParamList.size(); i++) { - //是不是当前的人员,不是就skip - if (!approvalLogMap.containsKey(keyParamList.get(i))) { - continue; - } - final String customizedSignName = customizedSignNames.get(i); - List approvalLogList = approvalLogMap.get(keyParamList.get(i)); - if (CollectionUtils.isNotEmpty(approvalLogList)) { - approvalLogList.forEach( - approvalLog -> { - ElectronicImage electronicImage = defaultElectronicSignName(customizedSignName); - String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); - if (StringUtils.isEmpty(signFileName)) { - return; - } - //设置集合 - electronicImage.setElectronicSealImageUrl(filePrintRegister.getTemDir() + signFileName); - //放入待下载的文件集合 - filePrintRegister.getBeDownloadedFileNames().add(signFileName); - electronicImageList.add(electronicImage); - } - ); - } - } - return electronicImageList; - } - - - /** - * 电子签章获取 - * - * @param electronicSealId 证书报告文件数据 - * @param electronicImage 关键字 - * @return - */ - protected final ElectronicImage doPopulateElectronicSignSeal(Long electronicSealId, ElectronicImage electronicImage, FilePrintRegister filePrintRegister) { - String electronicSealName = fileRegisterMapper.getSignFileSealById(electronicSealId, "system_sign"); - //设置集合 - electronicImage.setElectronicSealImageUrl(filePrintRegister.getTemDir() + electronicSealName); - //放入待下载的文件集合 - filePrintRegister.getBeDownloadedFileNames().add(electronicSealName); - return electronicImage; - } - /** * 证书参数在模板中起替换作用 * 基本所包含的参数替换 @@ -149,4 +90,5 @@ return fileParamData; } + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificatePrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificatePrintFileData.java index 92d43dd..de4085c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificatePrintFileData.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificatePrintFileData.java @@ -55,12 +55,6 @@ return filePrintRegister; } - @Override - protected void customizedSignNamesParamCreator() { - keyParamList = Arrays.asList("发起人", "核验人", "审核人" ); - customizedSignNames = Arrays.asList("校准人", "核验人", "批准人" ); - } - /** diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); 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 a8e07f8..da16979 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -155,13 +155,22 @@ ORDER BY bcp.create_time DESC - SELECT FROM( SELECT * FROM business_certificate_print where is_del=0 - AND id=#{id} + + and id = #{request.id} + + + and sample_id = #{request.sampleId} + + + and order_id = #{request.orderId} + and print_status != 4 + ) bcp LEFT JOIN( SELECT id,customer_name,customer_phone,customer_address,customer_no,deliverer_id,deliverer,deliverer_tel,require_over_time,plan_deliver_time,customer_id diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index fab6275..d4f828a 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -141,6 +141,7 @@ #{id} + ORDER BY bcr.create_time desc @@ -201,7 +202,7 @@ - + ORDER BY bcr.create_time desc diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 0f19b4d..9a6976b 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -127,6 +127,9 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + AND blei.remark LIKE concat('%',#{request.remark},'%') + AND bo.order_code LIKE concat('%',#{request.orderNo},'%') diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java index 85cce7d..78ecba2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java @@ -30,30 +30,30 @@ * 表位置 */ @ApiModelProperty("表位置") - private Integer tableIndex; + private Integer tableIndex=-1; /** * 行位置 */ @ApiModelProperty("行位置") - private Integer rowIndex; + private Integer rowIndex=-1; /** * 列位置 */ @ApiModelProperty("列位置") - private Integer colIndex; + private Integer colIndex=-1; /** * 行合并数 */ @ApiModelProperty("行合并数") - private Integer rowSpan; + private Integer rowSpan=-1; /** * 列合并列数 */ @ApiModelProperty("列合并列数") - private Integer colSpan; + private Integer colSpan=-1; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java index 71dd76b..bd1c6b8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java @@ -1,8 +1,11 @@ package com.casic.missiles.dto.business.file; +import cn.hutool.core.collection.CollectionUtil; import com.casic.missiles.dto.business.certificate.ElectronicImage; import lombok.Data; +import org.apache.commons.lang3.StringUtils; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -57,4 +60,26 @@ * word模板类型 */ private Boolean templateWordType; + + public void setMergeColNames(List newMergeColNames) { + //健壮性校验 + if (CollectionUtil.isEmpty(newMergeColNames)) { + return; + } + if (CollectionUtil.isEmpty(mergeColNames)) { + mergeColNames = new ArrayList<>(); + } + mergeColNames.addAll(newMergeColNames); + } + + public void setBeDownloadedFileNames(String beDownloadedFileName) { + //健壮性校验 + if (StringUtils.isEmpty(beDownloadedFileName)) { + return; + } + if (CollectionUtil.isEmpty(beDownloadedFileNames)) { + beDownloadedFileNames = new ArrayList<>(); + } + beDownloadedFileNames.add(beDownloadedFileName); + } } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java index 199b748..af78122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java @@ -40,6 +40,9 @@ @ApiModelProperty(value = "是否加急(1是0否null全部)", dataType = "Integer") private String isUrgent; + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @DictCodeField(message = "样品属性不合法", cacheName = MeterDictCode.SAMPLE_BELONG) @ApiModelProperty(value = "样品属性(字典code)", dataType = "String") private String sampleBelong; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index 70813f5..ebc0bf5 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -107,6 +107,10 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @JSONField(serialize = false) private String measureStatus; 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 new file mode 100644 index 0000000..5f0a3fe --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -0,0 +1,23 @@ +package com.casic.missiles.dto.business.print; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author cz + * @date 2024/3/18 + */ +@Data +@ApiModel("作废请求参数") +public class InvalidCertificateRequest { + + @ApiModelProperty("证书打印页面主键ID") + private Long id; + @ApiModelProperty("样品id") + private String sampleId; + + @ApiModelProperty("委托书id") + private String orderId; + +} 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 4139168..67bbf22 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 @@ -92,7 +92,9 @@ @Override public CertificatePrintDetail certificatePrintDetail(Long id) { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + InvalidCertificateRequest invalidCertificateRequest=new InvalidCertificateRequest(); + invalidCertificateRequest.setId(id); + CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetail(invalidCertificateRequest); return certificatePrintDetail; } @@ -168,13 +170,17 @@ * 3、查询获取到最新的原始记录和 * 4、生成一条新的实验室信息,并在老的实验室信息备注 * - * @param id + * @param invalidCertificateRequest * @return */ @Transactional @Override - public ReturnDTO invalidPrint(Long id) throws Exception { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + public ReturnDTO invalidPrint(InvalidCertificateRequest invalidCertificateRequest) throws Exception { + CertificatePrintDetail certificatePrintDetail = getCertificatePrintDetail(invalidCertificateRequest); + if (ObjectUtils.isEmpty(certificatePrintDetail)) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getMessage()); + } + Long id = certificatePrintDetail.getId(); //修改为作废状态 this.certificatePrintStatus(id, "4"); //作废旧的证书报告,并重新生成新的证书报告 @@ -186,6 +192,18 @@ return ReturnUtil.success(); } + private CertificatePrintDetail getCertificatePrintDetail(InvalidCertificateRequest invalidCertificateRequest) { + if (!ObjectUtils.isEmpty(invalidCertificateRequest.getId())) { + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } else { + if (ObjectUtils.isEmpty(invalidCertificateRequest.getSampleId()) || ObjectUtils.isEmpty(invalidCertificateRequest.getOrderId())) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getMessage()); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } + } + private void againCreateLabInfo(Long sampleId, Long orderId, String oldCertificateCode) throws Exception { if (ObjectUtils.isEmpty(sampleId) || ObjectUtils.isEmpty(orderId)) { return; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 8033e90..b4eb651 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -370,7 +370,6 @@ resultPage = labExecutiveInfoMapper.selectListByUserIdAndStatus(page, labExecutiveListRequest, userId, MeasureStatusEnum.MEASURE_COMPLETE); //查询样品检定到的其他实验室或样品检测完成 enrichLabExecutiveRecords(resultPage); - break; } if (!CollectionUtils.isEmpty(resultPage.getRecords())) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java index f8c334a..f65fd40 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java @@ -25,7 +25,7 @@ ReturnDTO refuseAgainPrint(CertificateRefusePrintRequest request); - ReturnDTO invalidPrint(Long id)throws Exception; + ReturnDTO invalidPrint(InvalidCertificateRequest invalidCertificateRequest)throws Exception; ReturnDTO submitAgainPrint(BaseApprovalSubmitRequest request); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java index 370cf5a..3c4e372 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java @@ -1,7 +1,10 @@ package com.casic.missiles.service.listeners.register; import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.ImageConfig; +import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -21,15 +24,37 @@ * 自定义签名名字 */ protected List customizedSignNames; + @Resource + protected PrintFileRegisterMapper fileRegisterMapper; /** * 文件自定义名称参数构建器 */ - protected void customizedSignNamesParamCreator() { + protected List customizedSignNamesParamCreator() { + List approvalImageList = new ArrayList<>(); keyParamList = Arrays.asList("发起人", "审核人", "批准人"); - customizedSignNames = Arrays.asList("发起人", "核验人", "批准人"); + customizedSignNames = Arrays.asList("编制:", "审核:", "批准:"); + for (int i = 0; i < 3; i++) { + ImageConfig imageConfig = new ImageConfig(); + imageConfig.setFiledName(keyParamList.get(i)); + imageConfig.setDocName(customizedSignNames.get(i)); + } + return approvalImageList; } + + protected String getTemplateName(T templateIdOrName) { + String fileName = ""; + if (templateIdOrName instanceof Long) { + fileName = fileRegisterMapper.getSignFileSealById((Long) templateIdOrName, "system_template"); + } + if (templateIdOrName instanceof String) { + fileName = fileRegisterMapper.getFileNameByName((String) templateIdOrName, "system_template"); + } + return fileName; + } + + protected FileImageTemplateProvider() { this.keyParamList = new ArrayList<>(); customizedSignNames = new ArrayList<>(); @@ -52,22 +77,6 @@ } /** - * 默认电子签章的图片设置,允许重写 - */ - protected ElectronicImage defaultElectronicSignSeal(String keyWord) { - ElectronicImage electronicImage = ElectronicImage.builder() - .keyWordIndex(-1) - .keyWord(keyWord) - .vertical(-10f) - .horizontal(80f) - .stampHeight(100f) - .stampWidth(100f) - .diaphaneity(150f) - .build(); - return electronicImage; - } - - /** * 自动生成是根据宽度设定取空隙平均值 * 默认电子签章的图片设置,允许重写 * word长度大约为400*600 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java index c259241..fb843dd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java @@ -1,5 +1,6 @@ package com.casic.missiles.service.listeners.register.data; +import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.customer.CustomerSampleInfo; @@ -8,10 +9,12 @@ import com.casic.missiles.service.business.IBusinessSiteExecutiveInfoEquipmentRelationService; import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.customer.CustomerService; +import liquibase.pro.packaged.F; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.util.*; /** @@ -31,11 +34,14 @@ private BusinessOrder businessOrder; private Map fileParamData; + FileParamDataProvider builder() { fileParamData = new HashMap<>(); return this; } + + /** * 基本年月日信息 */ @@ -72,7 +78,7 @@ fileParamData.put("sampleNo", customerSampleInfo.getSampleNo()); fileParamData.put("sampleName", customerSampleInfo.getSampleName()); fileParamData.put("customerSampleNo", customerSampleInfo.getSampleNo()); - fileParamData.put("customerAddress", customerSampleInfo.getCustomerAddress().replace("null","")); + fileParamData.put("customerAddress", customerSampleInfo.getCustomerAddress().replace("null", "")); fileParamData.put("deliverer", customerSampleInfo.getDeliverer()); fileParamData.put("delivererTel", customerSampleInfo.getDelivererTel()); return this; @@ -89,6 +95,7 @@ fileParamData.put("customerNo", customerInfo.getCustomerNo()); return this; } + /** * 外场检定查询测量设备 */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileApprovalDataSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileApprovalDataSupport.java new file mode 100644 index 0000000..b6fbcf9 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileApprovalDataSupport.java @@ -0,0 +1,176 @@ +package com.casic.missiles.service.listeners.register.data; + +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.ImageConfig; +import com.casic.missiles.dto.business.file.FilePrintRegister; +import com.casic.missiles.dto.flowable.ApprovalLogResponse; +import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.service.flowable.ApprovalOperateService; +import com.casic.missiles.service.listeners.register.FileImageTemplateProvider; +import com.casic.missiles.utils.SpringContextUtil; +import com.deepoove.poi.data.PictureRenderData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; + +import javax.annotation.Resource; +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @author cz + * @date 2024-03-18 + */ +@Slf4j +public class PrintFileApprovalDataSupport extends FileImageTemplateProvider { + + @Autowired + protected ApprovalOperateService approvalOperateService; + @Resource + protected PrintFileRegisterMapper fileRegisterMapper; + + /** + * 初始化文件数据注册信息 + * 1、获取证书模板 + * 2、设置临时处理空间路径、文件名称、文件资源路径 + * 3、设置文件id,作为操作空间文件名称,防止对其他同时处理的证书形成影响 + */ + protected final FilePrintRegister initialization(String templateFileDir, + Long id, String fileName) { + FilePrintRegister filePrintRegister = new FilePrintRegister(); + filePrintRegister.setTemplateWordType(fileName.endsWith(".doc") ? true : false); + templateFileDir = templateFileDir + id + File.separator; + filePrintRegister.setFileName(fileName); + filePrintRegister.setTemDir(templateFileDir); + filePrintRegister.setTemplatePath(templateFileDir + fileName); + filePrintRegister.setFileNameId(id); + filePrintRegister.setBeDownloadedFileNames(fileName); + return filePrintRegister; + } + + public List createSignNames(Map> approvalLogMap, + FilePrintRegister filePrintRegister, List approvalImageList) { + { + if (CollectionUtils.isEmpty(approvalImageList)) { + return null; + } + List electronicImageList = new ArrayList<>(); + PrintFileRegisterMapper fileRegisterMapper = SpringContextUtil.getBean(PrintFileRegisterMapper.class); + int timeSeqCount = 1; + for (int i = 0; i < approvalImageList.size(); i++) { + //是不是当前的人员,不是就skip + if (!approvalLogMap.containsKey(approvalImageList.get(i).getFiledName())) { + //工作流节点跳过 + timeSeqCount++; + continue; + } + //这里新增处理多个签名的情况和处理放到定制表格内的情况 + final String customizedSignName = approvalImageList.get(i).getDocName(); + List approvalLogList = approvalLogMap.get(approvalImageList.get(i).getFiledName()); + if (CollectionUtils.isNotEmpty(approvalLogList)) { + if (StringUtils.isEmpty(approvalImageList.get(i).getDocName())) { + //多个签名的情况 + String signFileNames = ""; + for (ApprovalLogResponse approvalLog : approvalLogList) { + filePrintRegister.getParams().putAll(createApprovalParam(timeSeqCount, approvalLog)); + timeSeqCount++; + String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); + if (StringUtils.isEmpty(signFileName)) { + continue; + } + signFileNames += signFileName + ","; + log.debug("工作图片签名url为:{}", filePrintRegister.getTemDir() + signFileName); + } + if (StringUtils.isNotEmpty(signFileNames)) { + signFileNames = signFileNames.substring(0, signFileNames.length() - 1); + } + ElectronicImage electronicImage = defaultElectronicSignName(customizedSignName); + electronicImage.setSealImageUrlsDir(filePrintRegister.getTemDir()); + electronicImage.setElectronicSealImageUrls(signFileNames); + electronicImage.setImageConfig(approvalImageList.get(i)); + //放入待下载的文件集合 + filePrintRegister.getBeDownloadedFileNames().add(signFileNames); + electronicImageList.add(electronicImage); + if (StringUtils.isNotEmpty(signFileNames) && !signFileNames.contains(",") && approvalImageList.get(i).getDocName().matches("[a-zA-Z]+")) { + filePrintRegister.getParams().put(approvalImageList.get(i).getDocName(), new PictureRenderData(100, 35, filePrintRegister.getTemDir() + signFileNames)); + } + } else { + //多个工作流字段签名 + for (ApprovalLogResponse approvalLog : approvalLogList) { + ElectronicImage electronicImage = defaultElectronicSignName(customizedSignName); + filePrintRegister.getParams().putAll(createApprovalParam(timeSeqCount, approvalLog)); + timeSeqCount++; + String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); + if (StringUtils.isEmpty(signFileName)) { + continue; + } + log.debug("工作图片签名url为:{}", filePrintRegister.getTemDir() + signFileName); + //将工作流图片签名放置待下载的文件和图片信息集合 + electronicImage.setElectronicSealImageUrl(filePrintRegister.getTemDir() + signFileName); + electronicImage.setImageConfig(approvalImageList.get(i)); + //放入待下载的文件集合 + filePrintRegister.setBeDownloadedFileNames(signFileName); + electronicImageList.add(electronicImage); + if (StringUtils.isNotEmpty(signFileName) && !signFileName.contains(",") && approvalImageList.get(i).getDocName().matches("[a-zA-Z]+")) { + filePrintRegister.getParams().put(approvalImageList.get(i).getDocName(), new PictureRenderData(60, 20, filePrintRegister.getTemDir() + signFileName)); + } + } + } + } + } + return electronicImageList; + } + } + /** + * 根据节点序号,工作流日志,对工作流参数进行存储到内存,作为提前内存的参数 + * + * @param nodeSeq 节点数 + * @param approvalLog + * @return + */ + private static Map createApprovalParam(Integer nodeSeq, ApprovalLogResponse approvalLog) { + Map approvalParam = new HashMap<>(); + AbstractPermissionContext permissionContext = SpringContextUtil.getBean(AbstractPermissionContext.class); + User user = permissionContext.getUserService().getById(approvalLog.getAssigneeId()); + approvalParam.put("approvalUser" + nodeSeq, ObjectUtils.isNotEmpty(user) ? user.getName() : ""); + //设置时间 + Calendar calendar = Calendar.getInstance(); + //健壮性校验 + if (ObjectUtils.isNotEmpty(approvalLog.getFinishTime())) { + calendar.setTime(approvalLog.getFinishTime()); + approvalParam.put("year" + nodeSeq, calendar.get(Calendar.YEAR)); + approvalParam.put("month" + nodeSeq, calendar.get(Calendar.MONTH) + 1); + approvalParam.put("day" + nodeSeq, calendar.get(Calendar.DAY_OF_MONTH)); + approvalParam.put("approvalTime" + nodeSeq, new SimpleDateFormat("yyyy年MM月dd日").format(approvalLog.getFinishTime())); + } + //健壮性校验 + if (ObjectUtils.isNotEmpty(approvalLog.getComment())) { + //工作流新增理由 + approvalParam.put("comment" + nodeSeq, approvalLog.getComment().getComment()); + } + return approvalParam; + } + + + /** + * 电子签章获取 + * + * @param electronicSealId 证书报告文件数据 + * @param electronicImage 关键字 + * @return + */ + protected final ElectronicImage doPopulateElectronicSignSeal(Long electronicSealId, ElectronicImage electronicImage, FilePrintRegister filePrintRegister) { + String electronicSealName = fileRegisterMapper.getSignFileSealById(electronicSealId, "system_sign"); + //设置集合 + electronicImage.setElectronicSealImageUrl(filePrintRegister.getTemDir() + electronicSealName); + //放入待下载的文件集合 + filePrintRegister.getBeDownloadedFileNames().add(electronicSealName); + return electronicImage; + } + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileDataSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileDataSupport.java index 8a16e91..491d298 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileDataSupport.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileDataSupport.java @@ -1,17 +1,25 @@ package com.casic.missiles.service.listeners.register.data; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.ImageConfig; import com.casic.missiles.dto.business.file.FilePrintRegister; import com.casic.missiles.dto.flowable.ApprovalLogResponse; import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; +import com.casic.missiles.modular.system.model.User; import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.service.listeners.register.FileImageTemplateProvider; +import com.casic.missiles.utils.SpringContextUtil; +import com.deepoove.poi.data.PictureRenderData; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.io.File; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -20,13 +28,9 @@ * @author cz * @date 2023-03-10 */ +@Slf4j public class PrintFileDataSupport extends FileImageTemplateProvider { - @Autowired - protected ApprovalOperateService approvalOperateService; - @Resource - protected PrintFileRegisterMapper fileRegisterMapper; - @Resource private FileParamDataProvider fileParamDataCreator; @@ -45,73 +49,10 @@ filePrintRegister.setTemDir(templateFileDir); filePrintRegister.setTemplatePath(templateFileDir + fileName); filePrintRegister.setFileNameId(id); - List fileNames = new ArrayList<>(); - fileNames.add(fileName); - filePrintRegister.setBeDownloadedFileNames(fileNames); + filePrintRegister.setBeDownloadedFileNames(fileName); return filePrintRegister; } - public String getTemplateName(T templateIdOrName) { - String fileName = ""; - if (templateIdOrName instanceof Long) { - fileName = fileRegisterMapper.getSignFileSealById((Long) templateIdOrName, "system_template"); - } - if (templateIdOrName instanceof String) { - fileName = fileRegisterMapper.getFileNameByName((String) templateIdOrName, "system_template"); - } - return fileName; - } - - - /** - * 电子签名创建器 - */ - protected final List signNamesCreator(Map> approvalLogMap, FilePrintRegister filePrintRegister) { - List electronicImageList = new ArrayList<>(); - for (int i = 0; i < keyParamList.size(); i++) { - //是不是当前的人员,不是就skip - if (!approvalLogMap.containsKey(keyParamList.get(i))) { - continue; - } - final String customizedSignName = customizedSignNames.get(i); - List approvalLogList = approvalLogMap.get(keyParamList.get(i)); - if (CollectionUtils.isNotEmpty(approvalLogList)) { - approvalLogList.forEach( - approvalLog -> { - ElectronicImage electronicImage = defaultElectronicSignName(customizedSignName); - String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); - if (StringUtils.isEmpty(signFileName)) { - return; - } - //设置集合 - electronicImage.setElectronicSealImageUrl(filePrintRegister.getTemDir() + signFileName); - //放入待下载的文件集合 - filePrintRegister.getBeDownloadedFileNames().add(signFileName); - electronicImageList.add(electronicImage); - } - ); - } - } - return electronicImageList; - } - - - /** - * 电子签章获取 - * - * @param electronicSealId 证书报告文件数据 - * @param electronicImage 关键字 - * @return - */ - protected final ElectronicImage doPopulateElectronicSignSeal(Long electronicSealId, ElectronicImage electronicImage, FilePrintRegister filePrintRegister) { - String electronicSealName = fileRegisterMapper.getSignFileSealById(electronicSealId, "system_sign"); - //设置集合 - electronicImage.setElectronicSealImageUrl(filePrintRegister.getTemDir() + electronicSealName); - //放入待下载的文件集合 - filePrintRegister.getBeDownloadedFileNames().add(electronicSealName); - return electronicImage; - } - /** * 证书参数在模板中起替换作用 * 基本所包含的参数替换 @@ -149,4 +90,5 @@ return fileParamData; } + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificatePrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificatePrintFileData.java index 92d43dd..de4085c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificatePrintFileData.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificatePrintFileData.java @@ -55,12 +55,6 @@ return filePrintRegister; } - @Override - protected void customizedSignNamesParamCreator() { - keyParamList = Arrays.asList("发起人", "核验人", "审核人" ); - customizedSignNames = Arrays.asList("校准人", "核验人", "批准人" ); - } - /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificateReportApprovalData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificateReportApprovalData.java index 6a8bbb6..b2cbda8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificateReportApprovalData.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificateReportApprovalData.java @@ -1,38 +1,36 @@ package com.casic.missiles.service.listeners.register.data.certificate; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.ImageConfig; import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; import com.casic.missiles.dto.business.file.FilePrintRegister; import com.casic.missiles.dto.flowable.ApprovalLogResponse; import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.service.listeners.register.data.PrintFileApprovalDataSupport; import com.casic.missiles.service.listeners.register.data.PrintFileDataGeneric; import com.casic.missiles.service.listeners.register.data.PrintFileDataSupport; import com.casic.missiles.utils.SnowflakeUtil; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import java.text.SimpleDateFormat; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @Slf4j @Component(PrintFileDataBeanNameAliasEnum.CERTIFICATE_REPORT_APPROVAL) -public class CertificateReportApprovalData extends PrintFileDataSupport implements PrintFileDataGeneric { +public class CertificateReportApprovalData extends PrintFileApprovalDataSupport implements PrintFileDataGeneric { @Autowired private SnowflakeUtil snowflakeUtil; /** - * \ - * 1、识别是word excel填充 - * 2、进行打印证书对象的初始化 - * 3、获取定制化的签名 - * 4、获取定制化的参数 + * 1、进行打印证书对象的初始化 + * 2、获取定制化的签名 * * @param registerParameters 证书报告信息 * @param templateFileDir 本地进行打印报告组合的路径 @@ -41,6 +39,9 @@ @Override public FilePrintRegister CustomizedPrintFileRegister(RegisterCustomParameters registerParameters, String templateFileDir) { BusinessCertificateReport metaData = (BusinessCertificateReport) registerParameters.getCustomObject(); + if(StringUtils.isEmpty(metaData.getCertificateReportFile())){ + throw new RuntimeException("the certificateReportFile is Empty,Please upload the certificate ..."); + } if (ObjectUtils.isEmpty(metaData.getId())) { metaData.setId(snowflakeUtil.nextId()); } @@ -48,38 +49,15 @@ List> approvalLogList = approvalOperateService.approvalLog(metaData.getProcessId()); Map> ApprovalLogMap = approvalLogList.stream() .collect(Collectors.toMap(e -> e.get(0).getTaskName(), e -> e)); - //定制化签名开发预处理,定制化参数 - customizedSignNamesParamCreator(); + List approvalImageList = customizedSignNamesParamCreator(); //初始化,生成模板文件 - FilePrintRegister filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(metaData.getTemplateId())); + FilePrintRegister filePrintRegister = initialization(templateFileDir, metaData.getId(),metaData.getCertificateReportFile()); //定制化签名开发 - List electronicSignList = this.signNamesCreator(ApprovalLogMap, filePrintRegister); + List electronicSignList = this.createSignNames(ApprovalLogMap, filePrintRegister,approvalImageList); filePrintRegister.setElectronicImageList(electronicSignList); - //填充定制化的参数 - filePrintRegister.setParams(certificateFileParamCreator(metaData.getOrderId(), metaData.getSampleId())); - //定制化参数开发 - customParam(metaData, filePrintRegister.getParams()); return filePrintRegister; } - /** - * 处理定制化的日期 - * - * @param metaData - */ - private void customParam(BusinessCertificateReport metaData, Map params) { - try { - if (StringUtils.isNotEmpty(metaData.getIssuanceDate())) { - params.put("issuanceDate", new SimpleDateFormat("yyyy年MM月dd日").format(new SimpleDateFormat("yyyy-MM-dd").parse(metaData.getIssuanceDate()))); - } - if (StringUtils.isNotEmpty(metaData.getCalibrationTime())) { - params.put("calibrationTime", new SimpleDateFormat("yyyy年MM月dd日").format(new SimpleDateFormat("yyyy-MM-dd").parse(metaData.getCalibrationTime()))); - } - params.put("createUserName", metaData.getCreateUserName()); - } catch (Exception ex) { - log.error("日期格式转换异常,异常信息{}", ex); - } - } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java index 6775197..cac583c 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -8,6 +8,9 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.enums.business.FilePrintTypeEnum; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; @@ -114,7 +117,13 @@ BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customFileName(certificateReport.getCertificateReportName()+certificateReport.getCertificateReportCode()) + .customObject(certificateReport) + .prefixType(FilePrintTypeEnum.CALIBRATION_APPROVAL) + .pdf(true) + .build()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java index 168e6c6..7206676 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java @@ -120,17 +120,13 @@ } /** - * @param idDTO * @return */ @ApiOperation("证书打印-作废") @PostMapping("/invalid") - public ReturnDTO invalidPrint(@RequestBody @Valid IdDTO idDTO) throws Exception{ - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); + public ReturnDTO invalidPrint(@RequestBody @Valid InvalidCertificateRequest invalidCertificateRequest) throws Exception { //将证书状态置为作废状态 - return certificatePrintService.invalidPrint(idDTO.getId()); + return certificatePrintService.invalidPrint(invalidCertificateRequest); } @ApiOperation("证书打印审批-发起申请") diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 70a8091..757020e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -87,7 +87,9 @@ URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), - LABEL_ALREADY_BIND(2436, "标签已经绑定"); + LABEL_ALREADY_BIND(2436, "标签已经绑定"), + CERTIFICATE_PRINT_IS_EMPTY(2437, "证书打印查询为空,无法作废"), + CERTIFICATE_PARAM_IS_EMPTY(2437, "证书作废所传参数为空,无法作废"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index b2682ac..47c655c 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -2,7 +2,7 @@ public interface FilePrintTypeEnum { String CALIBRATION_CERTIFICATE = "证书报告"; - String CALIBRATION_CERTIFICATE_APPROVAL = "证书报告审批"; + String CALIBRATION_APPROVAL = "证书报告审批"; String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index ddb2a8e..54da2d3 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -9,7 +9,7 @@ CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { { put(CALIBRATION_CERTIFICATE, CERTIFICATE_REPORT); //证书报告 - put(CALIBRATION_CERTIFICATE_APPROVAL, CERTIFICATE_REPORT); //证书报告审批 + put(CALIBRATION_APPROVAL, CERTIFICATE_REPORT_APPROVAL); //证书报告审批 put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java index 57c71a0..d3a4741 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificatePrintMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.dto.business.print.CertificateLisSearchRequest; -import com.casic.missiles.dto.business.print.CertificateListRequest; -import com.casic.missiles.dto.business.print.CertificateListResponse; -import com.casic.missiles.dto.business.print.CertificatePrintDetail; +import com.casic.missiles.dto.business.print.*; import com.casic.missiles.model.business.BusinessCertificatePrint; import org.apache.ibatis.annotations.Param; @@ -26,7 +23,7 @@ Page searchForApprovalList(@Param("page") Page page, @Param("request") CertificateLisSearchRequest request); - CertificatePrintDetail selectPrintDetailById(@Param("id") Long id); + CertificatePrintDetail selectPrintDetail(@Param("request") InvalidCertificateRequest invalidCertificateRequest); List> getMeterStaffList(); 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 a8e07f8..da16979 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificatePrintMapper.xml @@ -155,13 +155,22 @@ ORDER BY bcp.create_time DESC - SELECT FROM( SELECT * FROM business_certificate_print where is_del=0 - AND id=#{id} + + and id = #{request.id} + + + and sample_id = #{request.sampleId} + + + and order_id = #{request.orderId} + and print_status != 4 + ) bcp LEFT JOIN( SELECT id,customer_name,customer_phone,customer_address,customer_no,deliverer_id,deliverer,deliverer_tel,require_over_time,plan_deliver_time,customer_id diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml index fab6275..d4f828a 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml @@ -141,6 +141,7 @@ #{id} + ORDER BY bcr.create_time desc @@ -201,7 +202,7 @@ - + ORDER BY bcr.create_time desc diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 0f19b4d..9a6976b 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -127,6 +127,9 @@ AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + AND blei.remark LIKE concat('%',#{request.remark},'%') + AND bo.order_code LIKE concat('%',#{request.orderNo},'%') diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java index 85cce7d..78ecba2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ImageConfig.java @@ -30,30 +30,30 @@ * 表位置 */ @ApiModelProperty("表位置") - private Integer tableIndex; + private Integer tableIndex=-1; /** * 行位置 */ @ApiModelProperty("行位置") - private Integer rowIndex; + private Integer rowIndex=-1; /** * 列位置 */ @ApiModelProperty("列位置") - private Integer colIndex; + private Integer colIndex=-1; /** * 行合并数 */ @ApiModelProperty("行合并数") - private Integer rowSpan; + private Integer rowSpan=-1; /** * 列合并列数 */ @ApiModelProperty("列合并列数") - private Integer colSpan; + private Integer colSpan=-1; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java index 71dd76b..bd1c6b8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/file/FilePrintRegister.java @@ -1,8 +1,11 @@ package com.casic.missiles.dto.business.file; +import cn.hutool.core.collection.CollectionUtil; import com.casic.missiles.dto.business.certificate.ElectronicImage; import lombok.Data; +import org.apache.commons.lang3.StringUtils; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -57,4 +60,26 @@ * word模板类型 */ private Boolean templateWordType; + + public void setMergeColNames(List newMergeColNames) { + //健壮性校验 + if (CollectionUtil.isEmpty(newMergeColNames)) { + return; + } + if (CollectionUtil.isEmpty(mergeColNames)) { + mergeColNames = new ArrayList<>(); + } + mergeColNames.addAll(newMergeColNames); + } + + public void setBeDownloadedFileNames(String beDownloadedFileName) { + //健壮性校验 + if (StringUtils.isEmpty(beDownloadedFileName)) { + return; + } + if (CollectionUtil.isEmpty(beDownloadedFileNames)) { + beDownloadedFileNames = new ArrayList<>(); + } + beDownloadedFileNames.add(beDownloadedFileName); + } } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java index 199b748..af78122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListRequest.java @@ -40,6 +40,9 @@ @ApiModelProperty(value = "是否加急(1是0否null全部)", dataType = "Integer") private String isUrgent; + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @DictCodeField(message = "样品属性不合法", cacheName = MeterDictCode.SAMPLE_BELONG) @ApiModelProperty(value = "样品属性(字典code)", dataType = "String") private String sampleBelong; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index 70813f5..ebc0bf5 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -107,6 +107,10 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; + @JSONField(serialize = false) private String measureStatus; 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 new file mode 100644 index 0000000..5f0a3fe --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/InvalidCertificateRequest.java @@ -0,0 +1,23 @@ +package com.casic.missiles.dto.business.print; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author cz + * @date 2024/3/18 + */ +@Data +@ApiModel("作废请求参数") +public class InvalidCertificateRequest { + + @ApiModelProperty("证书打印页面主键ID") + private Long id; + @ApiModelProperty("样品id") + private String sampleId; + + @ApiModelProperty("委托书id") + private String orderId; + +} 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 4139168..67bbf22 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 @@ -92,7 +92,9 @@ @Override public CertificatePrintDetail certificatePrintDetail(Long id) { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + InvalidCertificateRequest invalidCertificateRequest=new InvalidCertificateRequest(); + invalidCertificateRequest.setId(id); + CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetail(invalidCertificateRequest); return certificatePrintDetail; } @@ -168,13 +170,17 @@ * 3、查询获取到最新的原始记录和 * 4、生成一条新的实验室信息,并在老的实验室信息备注 * - * @param id + * @param invalidCertificateRequest * @return */ @Transactional @Override - public ReturnDTO invalidPrint(Long id) throws Exception { - CertificatePrintDetail certificatePrintDetail = this.baseMapper.selectPrintDetailById(id); + public ReturnDTO invalidPrint(InvalidCertificateRequest invalidCertificateRequest) throws Exception { + CertificatePrintDetail certificatePrintDetail = getCertificatePrintDetail(invalidCertificateRequest); + if (ObjectUtils.isEmpty(certificatePrintDetail)) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PRINT_IS_EMPTY.getMessage()); + } + Long id = certificatePrintDetail.getId(); //修改为作废状态 this.certificatePrintStatus(id, "4"); //作废旧的证书报告,并重新生成新的证书报告 @@ -186,6 +192,18 @@ return ReturnUtil.success(); } + private CertificatePrintDetail getCertificatePrintDetail(InvalidCertificateRequest invalidCertificateRequest) { + if (!ObjectUtils.isEmpty(invalidCertificateRequest.getId())) { + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } else { + if (ObjectUtils.isEmpty(invalidCertificateRequest.getSampleId()) || ObjectUtils.isEmpty(invalidCertificateRequest.getOrderId())) { + throw new BusinessException(BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getCode(), BusinessExceptionEnum.CERTIFICATE_PARAM_IS_EMPTY.getMessage()); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + return this.baseMapper.selectPrintDetail(invalidCertificateRequest); + } + } + private void againCreateLabInfo(Long sampleId, Long orderId, String oldCertificateCode) throws Exception { if (ObjectUtils.isEmpty(sampleId) || ObjectUtils.isEmpty(orderId)) { return; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index 8033e90..b4eb651 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -370,7 +370,6 @@ resultPage = labExecutiveInfoMapper.selectListByUserIdAndStatus(page, labExecutiveListRequest, userId, MeasureStatusEnum.MEASURE_COMPLETE); //查询样品检定到的其他实验室或样品检测完成 enrichLabExecutiveRecords(resultPage); - break; } if (!CollectionUtils.isEmpty(resultPage.getRecords())) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java index f8c334a..f65fd40 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java @@ -25,7 +25,7 @@ ReturnDTO refuseAgainPrint(CertificateRefusePrintRequest request); - ReturnDTO invalidPrint(Long id)throws Exception; + ReturnDTO invalidPrint(InvalidCertificateRequest invalidCertificateRequest)throws Exception; ReturnDTO submitAgainPrint(BaseApprovalSubmitRequest request); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java index 370cf5a..3c4e372 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FileImageTemplateProvider.java @@ -1,7 +1,10 @@ package com.casic.missiles.service.listeners.register; import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.ImageConfig; +import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -21,15 +24,37 @@ * 自定义签名名字 */ protected List customizedSignNames; + @Resource + protected PrintFileRegisterMapper fileRegisterMapper; /** * 文件自定义名称参数构建器 */ - protected void customizedSignNamesParamCreator() { + protected List customizedSignNamesParamCreator() { + List approvalImageList = new ArrayList<>(); keyParamList = Arrays.asList("发起人", "审核人", "批准人"); - customizedSignNames = Arrays.asList("发起人", "核验人", "批准人"); + customizedSignNames = Arrays.asList("编制:", "审核:", "批准:"); + for (int i = 0; i < 3; i++) { + ImageConfig imageConfig = new ImageConfig(); + imageConfig.setFiledName(keyParamList.get(i)); + imageConfig.setDocName(customizedSignNames.get(i)); + } + return approvalImageList; } + + protected String getTemplateName(T templateIdOrName) { + String fileName = ""; + if (templateIdOrName instanceof Long) { + fileName = fileRegisterMapper.getSignFileSealById((Long) templateIdOrName, "system_template"); + } + if (templateIdOrName instanceof String) { + fileName = fileRegisterMapper.getFileNameByName((String) templateIdOrName, "system_template"); + } + return fileName; + } + + protected FileImageTemplateProvider() { this.keyParamList = new ArrayList<>(); customizedSignNames = new ArrayList<>(); @@ -52,22 +77,6 @@ } /** - * 默认电子签章的图片设置,允许重写 - */ - protected ElectronicImage defaultElectronicSignSeal(String keyWord) { - ElectronicImage electronicImage = ElectronicImage.builder() - .keyWordIndex(-1) - .keyWord(keyWord) - .vertical(-10f) - .horizontal(80f) - .stampHeight(100f) - .stampWidth(100f) - .diaphaneity(150f) - .build(); - return electronicImage; - } - - /** * 自动生成是根据宽度设定取空隙平均值 * 默认电子签章的图片设置,允许重写 * word长度大约为400*600 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java index c259241..fb843dd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FileParamDataProvider.java @@ -1,5 +1,6 @@ package com.casic.missiles.service.listeners.register.data; +import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.customer.CustomerSampleInfo; @@ -8,10 +9,12 @@ import com.casic.missiles.service.business.IBusinessSiteExecutiveInfoEquipmentRelationService; import com.casic.missiles.service.customer.CustomerSampleService; import com.casic.missiles.service.customer.CustomerService; +import liquibase.pro.packaged.F; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.util.*; /** @@ -31,11 +34,14 @@ private BusinessOrder businessOrder; private Map fileParamData; + FileParamDataProvider builder() { fileParamData = new HashMap<>(); return this; } + + /** * 基本年月日信息 */ @@ -72,7 +78,7 @@ fileParamData.put("sampleNo", customerSampleInfo.getSampleNo()); fileParamData.put("sampleName", customerSampleInfo.getSampleName()); fileParamData.put("customerSampleNo", customerSampleInfo.getSampleNo()); - fileParamData.put("customerAddress", customerSampleInfo.getCustomerAddress().replace("null","")); + fileParamData.put("customerAddress", customerSampleInfo.getCustomerAddress().replace("null", "")); fileParamData.put("deliverer", customerSampleInfo.getDeliverer()); fileParamData.put("delivererTel", customerSampleInfo.getDelivererTel()); return this; @@ -89,6 +95,7 @@ fileParamData.put("customerNo", customerInfo.getCustomerNo()); return this; } + /** * 外场检定查询测量设备 */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileApprovalDataSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileApprovalDataSupport.java new file mode 100644 index 0000000..b6fbcf9 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileApprovalDataSupport.java @@ -0,0 +1,176 @@ +package com.casic.missiles.service.listeners.register.data; + +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.ImageConfig; +import com.casic.missiles.dto.business.file.FilePrintRegister; +import com.casic.missiles.dto.flowable.ApprovalLogResponse; +import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; +import com.casic.missiles.modular.system.model.User; +import com.casic.missiles.service.flowable.ApprovalOperateService; +import com.casic.missiles.service.listeners.register.FileImageTemplateProvider; +import com.casic.missiles.utils.SpringContextUtil; +import com.deepoove.poi.data.PictureRenderData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; + +import javax.annotation.Resource; +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @author cz + * @date 2024-03-18 + */ +@Slf4j +public class PrintFileApprovalDataSupport extends FileImageTemplateProvider { + + @Autowired + protected ApprovalOperateService approvalOperateService; + @Resource + protected PrintFileRegisterMapper fileRegisterMapper; + + /** + * 初始化文件数据注册信息 + * 1、获取证书模板 + * 2、设置临时处理空间路径、文件名称、文件资源路径 + * 3、设置文件id,作为操作空间文件名称,防止对其他同时处理的证书形成影响 + */ + protected final FilePrintRegister initialization(String templateFileDir, + Long id, String fileName) { + FilePrintRegister filePrintRegister = new FilePrintRegister(); + filePrintRegister.setTemplateWordType(fileName.endsWith(".doc") ? true : false); + templateFileDir = templateFileDir + id + File.separator; + filePrintRegister.setFileName(fileName); + filePrintRegister.setTemDir(templateFileDir); + filePrintRegister.setTemplatePath(templateFileDir + fileName); + filePrintRegister.setFileNameId(id); + filePrintRegister.setBeDownloadedFileNames(fileName); + return filePrintRegister; + } + + public List createSignNames(Map> approvalLogMap, + FilePrintRegister filePrintRegister, List approvalImageList) { + { + if (CollectionUtils.isEmpty(approvalImageList)) { + return null; + } + List electronicImageList = new ArrayList<>(); + PrintFileRegisterMapper fileRegisterMapper = SpringContextUtil.getBean(PrintFileRegisterMapper.class); + int timeSeqCount = 1; + for (int i = 0; i < approvalImageList.size(); i++) { + //是不是当前的人员,不是就skip + if (!approvalLogMap.containsKey(approvalImageList.get(i).getFiledName())) { + //工作流节点跳过 + timeSeqCount++; + continue; + } + //这里新增处理多个签名的情况和处理放到定制表格内的情况 + final String customizedSignName = approvalImageList.get(i).getDocName(); + List approvalLogList = approvalLogMap.get(approvalImageList.get(i).getFiledName()); + if (CollectionUtils.isNotEmpty(approvalLogList)) { + if (StringUtils.isEmpty(approvalImageList.get(i).getDocName())) { + //多个签名的情况 + String signFileNames = ""; + for (ApprovalLogResponse approvalLog : approvalLogList) { + filePrintRegister.getParams().putAll(createApprovalParam(timeSeqCount, approvalLog)); + timeSeqCount++; + String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); + if (StringUtils.isEmpty(signFileName)) { + continue; + } + signFileNames += signFileName + ","; + log.debug("工作图片签名url为:{}", filePrintRegister.getTemDir() + signFileName); + } + if (StringUtils.isNotEmpty(signFileNames)) { + signFileNames = signFileNames.substring(0, signFileNames.length() - 1); + } + ElectronicImage electronicImage = defaultElectronicSignName(customizedSignName); + electronicImage.setSealImageUrlsDir(filePrintRegister.getTemDir()); + electronicImage.setElectronicSealImageUrls(signFileNames); + electronicImage.setImageConfig(approvalImageList.get(i)); + //放入待下载的文件集合 + filePrintRegister.getBeDownloadedFileNames().add(signFileNames); + electronicImageList.add(electronicImage); + if (StringUtils.isNotEmpty(signFileNames) && !signFileNames.contains(",") && approvalImageList.get(i).getDocName().matches("[a-zA-Z]+")) { + filePrintRegister.getParams().put(approvalImageList.get(i).getDocName(), new PictureRenderData(100, 35, filePrintRegister.getTemDir() + signFileNames)); + } + } else { + //多个工作流字段签名 + for (ApprovalLogResponse approvalLog : approvalLogList) { + ElectronicImage electronicImage = defaultElectronicSignName(customizedSignName); + filePrintRegister.getParams().putAll(createApprovalParam(timeSeqCount, approvalLog)); + timeSeqCount++; + String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); + if (StringUtils.isEmpty(signFileName)) { + continue; + } + log.debug("工作图片签名url为:{}", filePrintRegister.getTemDir() + signFileName); + //将工作流图片签名放置待下载的文件和图片信息集合 + electronicImage.setElectronicSealImageUrl(filePrintRegister.getTemDir() + signFileName); + electronicImage.setImageConfig(approvalImageList.get(i)); + //放入待下载的文件集合 + filePrintRegister.setBeDownloadedFileNames(signFileName); + electronicImageList.add(electronicImage); + if (StringUtils.isNotEmpty(signFileName) && !signFileName.contains(",") && approvalImageList.get(i).getDocName().matches("[a-zA-Z]+")) { + filePrintRegister.getParams().put(approvalImageList.get(i).getDocName(), new PictureRenderData(60, 20, filePrintRegister.getTemDir() + signFileName)); + } + } + } + } + } + return electronicImageList; + } + } + /** + * 根据节点序号,工作流日志,对工作流参数进行存储到内存,作为提前内存的参数 + * + * @param nodeSeq 节点数 + * @param approvalLog + * @return + */ + private static Map createApprovalParam(Integer nodeSeq, ApprovalLogResponse approvalLog) { + Map approvalParam = new HashMap<>(); + AbstractPermissionContext permissionContext = SpringContextUtil.getBean(AbstractPermissionContext.class); + User user = permissionContext.getUserService().getById(approvalLog.getAssigneeId()); + approvalParam.put("approvalUser" + nodeSeq, ObjectUtils.isNotEmpty(user) ? user.getName() : ""); + //设置时间 + Calendar calendar = Calendar.getInstance(); + //健壮性校验 + if (ObjectUtils.isNotEmpty(approvalLog.getFinishTime())) { + calendar.setTime(approvalLog.getFinishTime()); + approvalParam.put("year" + nodeSeq, calendar.get(Calendar.YEAR)); + approvalParam.put("month" + nodeSeq, calendar.get(Calendar.MONTH) + 1); + approvalParam.put("day" + nodeSeq, calendar.get(Calendar.DAY_OF_MONTH)); + approvalParam.put("approvalTime" + nodeSeq, new SimpleDateFormat("yyyy年MM月dd日").format(approvalLog.getFinishTime())); + } + //健壮性校验 + if (ObjectUtils.isNotEmpty(approvalLog.getComment())) { + //工作流新增理由 + approvalParam.put("comment" + nodeSeq, approvalLog.getComment().getComment()); + } + return approvalParam; + } + + + /** + * 电子签章获取 + * + * @param electronicSealId 证书报告文件数据 + * @param electronicImage 关键字 + * @return + */ + protected final ElectronicImage doPopulateElectronicSignSeal(Long electronicSealId, ElectronicImage electronicImage, FilePrintRegister filePrintRegister) { + String electronicSealName = fileRegisterMapper.getSignFileSealById(electronicSealId, "system_sign"); + //设置集合 + electronicImage.setElectronicSealImageUrl(filePrintRegister.getTemDir() + electronicSealName); + //放入待下载的文件集合 + filePrintRegister.getBeDownloadedFileNames().add(electronicSealName); + return electronicImage; + } + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileDataSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileDataSupport.java index 8a16e91..491d298 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileDataSupport.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/PrintFileDataSupport.java @@ -1,17 +1,25 @@ package com.casic.missiles.service.listeners.register.data; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.ImageConfig; import com.casic.missiles.dto.business.file.FilePrintRegister; import com.casic.missiles.dto.flowable.ApprovalLogResponse; import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; +import com.casic.missiles.modular.system.model.User; import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.service.listeners.register.FileImageTemplateProvider; +import com.casic.missiles.utils.SpringContextUtil; +import com.deepoove.poi.data.PictureRenderData; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.io.File; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -20,13 +28,9 @@ * @author cz * @date 2023-03-10 */ +@Slf4j public class PrintFileDataSupport extends FileImageTemplateProvider { - @Autowired - protected ApprovalOperateService approvalOperateService; - @Resource - protected PrintFileRegisterMapper fileRegisterMapper; - @Resource private FileParamDataProvider fileParamDataCreator; @@ -45,73 +49,10 @@ filePrintRegister.setTemDir(templateFileDir); filePrintRegister.setTemplatePath(templateFileDir + fileName); filePrintRegister.setFileNameId(id); - List fileNames = new ArrayList<>(); - fileNames.add(fileName); - filePrintRegister.setBeDownloadedFileNames(fileNames); + filePrintRegister.setBeDownloadedFileNames(fileName); return filePrintRegister; } - public String getTemplateName(T templateIdOrName) { - String fileName = ""; - if (templateIdOrName instanceof Long) { - fileName = fileRegisterMapper.getSignFileSealById((Long) templateIdOrName, "system_template"); - } - if (templateIdOrName instanceof String) { - fileName = fileRegisterMapper.getFileNameByName((String) templateIdOrName, "system_template"); - } - return fileName; - } - - - /** - * 电子签名创建器 - */ - protected final List signNamesCreator(Map> approvalLogMap, FilePrintRegister filePrintRegister) { - List electronicImageList = new ArrayList<>(); - for (int i = 0; i < keyParamList.size(); i++) { - //是不是当前的人员,不是就skip - if (!approvalLogMap.containsKey(keyParamList.get(i))) { - continue; - } - final String customizedSignName = customizedSignNames.get(i); - List approvalLogList = approvalLogMap.get(keyParamList.get(i)); - if (CollectionUtils.isNotEmpty(approvalLogList)) { - approvalLogList.forEach( - approvalLog -> { - ElectronicImage electronicImage = defaultElectronicSignName(customizedSignName); - String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); - if (StringUtils.isEmpty(signFileName)) { - return; - } - //设置集合 - electronicImage.setElectronicSealImageUrl(filePrintRegister.getTemDir() + signFileName); - //放入待下载的文件集合 - filePrintRegister.getBeDownloadedFileNames().add(signFileName); - electronicImageList.add(electronicImage); - } - ); - } - } - return electronicImageList; - } - - - /** - * 电子签章获取 - * - * @param electronicSealId 证书报告文件数据 - * @param electronicImage 关键字 - * @return - */ - protected final ElectronicImage doPopulateElectronicSignSeal(Long electronicSealId, ElectronicImage electronicImage, FilePrintRegister filePrintRegister) { - String electronicSealName = fileRegisterMapper.getSignFileSealById(electronicSealId, "system_sign"); - //设置集合 - electronicImage.setElectronicSealImageUrl(filePrintRegister.getTemDir() + electronicSealName); - //放入待下载的文件集合 - filePrintRegister.getBeDownloadedFileNames().add(electronicSealName); - return electronicImage; - } - /** * 证书参数在模板中起替换作用 * 基本所包含的参数替换 @@ -149,4 +90,5 @@ return fileParamData; } + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificatePrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificatePrintFileData.java index 92d43dd..de4085c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificatePrintFileData.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificatePrintFileData.java @@ -55,12 +55,6 @@ return filePrintRegister; } - @Override - protected void customizedSignNamesParamCreator() { - keyParamList = Arrays.asList("发起人", "核验人", "审核人" ); - customizedSignNames = Arrays.asList("校准人", "核验人", "批准人" ); - } - /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificateReportApprovalData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificateReportApprovalData.java index 6a8bbb6..b2cbda8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificateReportApprovalData.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CertificateReportApprovalData.java @@ -1,38 +1,36 @@ package com.casic.missiles.service.listeners.register.data.certificate; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.ImageConfig; import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; import com.casic.missiles.dto.business.file.FilePrintRegister; import com.casic.missiles.dto.flowable.ApprovalLogResponse; import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.service.listeners.register.data.PrintFileApprovalDataSupport; import com.casic.missiles.service.listeners.register.data.PrintFileDataGeneric; import com.casic.missiles.service.listeners.register.data.PrintFileDataSupport; import com.casic.missiles.utils.SnowflakeUtil; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import java.text.SimpleDateFormat; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @Slf4j @Component(PrintFileDataBeanNameAliasEnum.CERTIFICATE_REPORT_APPROVAL) -public class CertificateReportApprovalData extends PrintFileDataSupport implements PrintFileDataGeneric { +public class CertificateReportApprovalData extends PrintFileApprovalDataSupport implements PrintFileDataGeneric { @Autowired private SnowflakeUtil snowflakeUtil; /** - * \ - * 1、识别是word excel填充 - * 2、进行打印证书对象的初始化 - * 3、获取定制化的签名 - * 4、获取定制化的参数 + * 1、进行打印证书对象的初始化 + * 2、获取定制化的签名 * * @param registerParameters 证书报告信息 * @param templateFileDir 本地进行打印报告组合的路径 @@ -41,6 +39,9 @@ @Override public FilePrintRegister CustomizedPrintFileRegister(RegisterCustomParameters registerParameters, String templateFileDir) { BusinessCertificateReport metaData = (BusinessCertificateReport) registerParameters.getCustomObject(); + if(StringUtils.isEmpty(metaData.getCertificateReportFile())){ + throw new RuntimeException("the certificateReportFile is Empty,Please upload the certificate ..."); + } if (ObjectUtils.isEmpty(metaData.getId())) { metaData.setId(snowflakeUtil.nextId()); } @@ -48,38 +49,15 @@ List> approvalLogList = approvalOperateService.approvalLog(metaData.getProcessId()); Map> ApprovalLogMap = approvalLogList.stream() .collect(Collectors.toMap(e -> e.get(0).getTaskName(), e -> e)); - //定制化签名开发预处理,定制化参数 - customizedSignNamesParamCreator(); + List approvalImageList = customizedSignNamesParamCreator(); //初始化,生成模板文件 - FilePrintRegister filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(metaData.getTemplateId())); + FilePrintRegister filePrintRegister = initialization(templateFileDir, metaData.getId(),metaData.getCertificateReportFile()); //定制化签名开发 - List electronicSignList = this.signNamesCreator(ApprovalLogMap, filePrintRegister); + List electronicSignList = this.createSignNames(ApprovalLogMap, filePrintRegister,approvalImageList); filePrintRegister.setElectronicImageList(electronicSignList); - //填充定制化的参数 - filePrintRegister.setParams(certificateFileParamCreator(metaData.getOrderId(), metaData.getSampleId())); - //定制化参数开发 - customParam(metaData, filePrintRegister.getParams()); return filePrintRegister; } - /** - * 处理定制化的日期 - * - * @param metaData - */ - private void customParam(BusinessCertificateReport metaData, Map params) { - try { - if (StringUtils.isNotEmpty(metaData.getIssuanceDate())) { - params.put("issuanceDate", new SimpleDateFormat("yyyy年MM月dd日").format(new SimpleDateFormat("yyyy-MM-dd").parse(metaData.getIssuanceDate()))); - } - if (StringUtils.isNotEmpty(metaData.getCalibrationTime())) { - params.put("calibrationTime", new SimpleDateFormat("yyyy年MM月dd日").format(new SimpleDateFormat("yyyy-MM-dd").parse(metaData.getCalibrationTime()))); - } - params.put("createUserName", metaData.getCreateUserName()); - } catch (Exception ex) { - log.error("日期格式转换异常,异常信息{}", ex); - } - } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/site/CalibrationFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/site/CalibrationFileData.java index 79805e3..31a3d37 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/site/CalibrationFileData.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/site/CalibrationFileData.java @@ -1,21 +1,15 @@ package com.casic.missiles.service.listeners.register.data.site; -import com.casic.missiles.dto.business.certificate.ElectronicImage; import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; import com.casic.missiles.dto.business.file.FilePrintRegister; -import com.casic.missiles.dto.flowable.ApprovalLogResponse; -import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.model.business.BusinessSiteExecutiveInfo; import com.casic.missiles.service.listeners.register.data.PrintFileDataGeneric; import com.casic.missiles.service.listeners.register.data.PrintFileDataSupport; -import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; -import org.springframework.util.ObjectUtils; import java.util.*; -import java.util.stream.Collectors; @Component("待定") public class CalibrationFileData extends PrintFileDataSupport implements PrintFileDataGeneric { @@ -28,19 +22,9 @@ BusinessSiteExecutiveInfo metaData = (BusinessSiteExecutiveInfo) registerParameters.getCustomObject(); //初始化,生成模板文件 FilePrintRegister filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(calibrationTemplateName)); - //查询工作流审批记录 - List> approvalLogList = approvalOperateService.approvalLog(metaData.getProcessId()); - Map> ApprovalLogMap = approvalLogList.stream() - .collect(Collectors.toMap(e -> e.get(0).getTaskName(), e -> e)); - //定制化签名开发预处理,定制化参数 - customizedSignNamesParamCreator(); - //定制化签名开发 - List electronicSignList = this.signNamesCreator(ApprovalLogMap, filePrintRegister); - filePrintRegister.setElectronicImageList(electronicSignList); //填充定制化的参数 filePrintRegister.setParams(siteFileParamCreator(metaData.getOrderId(), metaData.getId())); filePrintRegister.getParams().putAll(populateCalibration(metaData)); - resolverApprovalTime(filePrintRegister, ApprovalLogMap); return filePrintRegister; } @@ -54,33 +38,24 @@ return calibrationDataParams; } - /** - * 文件自定义名称参数构建器 - */ - @Override - protected void customizedSignNamesParamCreator() { - keyParamList = Arrays.asList("审核人", "批准人"); - customizedSignNames = Arrays.asList("技术负责人审核", "计量测试站主任批准"); - } - - private void resolverApprovalTime(FilePrintRegister filePrintRegister, Map> ApprovalLogMap) { - for (int i = 0; i < keyParamList.size(); i++) { - if (ApprovalLogMap.containsKey(keyParamList.get(i))) { - List approvalLogResponseList = ApprovalLogMap.get(keyParamList.get(i)); - if (CollectionUtils.isNotEmpty(approvalLogResponseList)) { - Optional optionalApprovalLogResponse = approvalLogResponseList.stream().findFirst(); - if (optionalApprovalLogResponse.isPresent()) { - Date nodeFinishTime = optionalApprovalLogResponse.get().getFinishTime(); - if(!ObjectUtils.isEmpty(nodeFinishTime)){ - Calendar calendar = Calendar.getInstance(); - calendar.setTime(nodeFinishTime); - filePrintRegister.getParams().put("y" + i, calendar.get(Calendar.YEAR)); - filePrintRegister.getParams().put("m" + i, calendar.get(Calendar.MONTH) + 1); - filePrintRegister.getParams().put("d" + i, calendar.get(Calendar.DAY_OF_MONTH)); - } - } - } - } - } - } +// private void resolverApprovalTime(FilePrintRegister filePrintRegister, Map> ApprovalLogMap) { +// for (int i = 0; i < keyParamList.size(); i++) { +// if (ApprovalLogMap.containsKey(keyParamList.get(i))) { +// List approvalLogResponseList = ApprovalLogMap.get(keyParamList.get(i)); +// if (CollectionUtils.isNotEmpty(approvalLogResponseList)) { +// Optional optionalApprovalLogResponse = approvalLogResponseList.stream().findFirst(); +// if (optionalApprovalLogResponse.isPresent()) { +// Date nodeFinishTime = optionalApprovalLogResponse.get().getFinishTime(); +// if (!ObjectUtils.isEmpty(nodeFinishTime)) { +// Calendar calendar = Calendar.getInstance(); +// calendar.setTime(nodeFinishTime); +// filePrintRegister.getParams().put("y" + i, calendar.get(Calendar.YEAR)); +// filePrintRegister.getParams().put("m" + i, calendar.get(Calendar.MONTH) + 1); +// filePrintRegister.getParams().put("d" + i, calendar.get(Calendar.DAY_OF_MONTH)); +// } +// } +// } +// } +// } +// } }