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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); 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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: 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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 2cd8fba..ac65bf4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -39,7 +39,8 @@ CERTIFICATE_REPORT("certificateReport", "certificateReport", "证书报告"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), - OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"); + OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; 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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 2cd8fba..ac65bf4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -39,7 +39,8 @@ CERTIFICATE_REPORT("certificateReport", "certificateReport", "证书报告"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), - OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"); + OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java deleted file mode 100644 index d48545b..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.enums.business; - -public interface CertificateTypeEnum { - - String CALIBRATION_CERTIFICATE = "0"; - String TEST_REPORT = "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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 2cd8fba..ac65bf4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -39,7 +39,8 @@ CERTIFICATE_REPORT("certificateReport", "certificateReport", "证书报告"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), - OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"); + OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java deleted file mode 100644 index d48545b..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.enums.business; - -public interface CertificateTypeEnum { - - String CALIBRATION_CERTIFICATE = "0"; - String TEST_REPORT = "1"; -} 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 new file mode 100644 index 0000000..f421fb4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -0,0 +1,12 @@ +package com.casic.missiles.enums.business; + +public interface FilePrintTypeEnum { + + String CALIBRATION_CERTIFICATE = "样品内部检校证书"; + String TEST_REPORT = "样品外包证书"; + +// 自有设备内部检校证书 +// 自有设备外包证书 +// 自有设备溯源证书 + +} 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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 2cd8fba..ac65bf4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -39,7 +39,8 @@ CERTIFICATE_REPORT("certificateReport", "certificateReport", "证书报告"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), - OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"); + OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java deleted file mode 100644 index d48545b..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.enums.business; - -public interface CertificateTypeEnum { - - String CALIBRATION_CERTIFICATE = "0"; - String TEST_REPORT = "1"; -} 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 new file mode 100644 index 0000000..f421fb4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -0,0 +1,12 @@ +package com.casic.missiles.enums.business; + +public interface FilePrintTypeEnum { + + String CALIBRATION_CERTIFICATE = "样品内部检校证书"; + String TEST_REPORT = "样品外包证书"; + +// 自有设备内部检校证书 +// 自有设备外包证书 +// 自有设备溯源证书 + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java deleted file mode 100644 index 6779003..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.missiles.enums.notifyevent; - -import com.casic.missiles.enums.business.CertificateTypeEnum; - -import java.util.HashMap; - -public enum AwareCertificateTypeEnum implements PrintFileDataRegisterBeanEnum, CertificateTypeEnum { - - CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { - { - put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 - put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 - } - }); - - public HashMap certificateTypeBeanMap; - - AwareCertificateTypeEnum(HashMap certificateTypeBeanMap) { - this.certificateTypeBeanMap = certificateTypeBeanMap; - } - - public HashMap getCertificateTypeBeanMap() { - return certificateTypeBeanMap; - } -} 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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 2cd8fba..ac65bf4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -39,7 +39,8 @@ CERTIFICATE_REPORT("certificateReport", "certificateReport", "证书报告"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), - OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"); + OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java deleted file mode 100644 index d48545b..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.enums.business; - -public interface CertificateTypeEnum { - - String CALIBRATION_CERTIFICATE = "0"; - String TEST_REPORT = "1"; -} 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 new file mode 100644 index 0000000..f421fb4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -0,0 +1,12 @@ +package com.casic.missiles.enums.business; + +public interface FilePrintTypeEnum { + + String CALIBRATION_CERTIFICATE = "样品内部检校证书"; + String TEST_REPORT = "样品外包证书"; + +// 自有设备内部检校证书 +// 自有设备外包证书 +// 自有设备溯源证书 + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java deleted file mode 100644 index 6779003..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.missiles.enums.notifyevent; - -import com.casic.missiles.enums.business.CertificateTypeEnum; - -import java.util.HashMap; - -public enum AwareCertificateTypeEnum implements PrintFileDataRegisterBeanEnum, CertificateTypeEnum { - - CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { - { - put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 - put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 - } - }); - - public HashMap certificateTypeBeanMap; - - AwareCertificateTypeEnum(HashMap certificateTypeBeanMap) { - this.certificateTypeBeanMap = certificateTypeBeanMap; - } - - public HashMap getCertificateTypeBeanMap() { - return certificateTypeBeanMap; - } -} 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 new file mode 100644 index 0000000..da9a7be --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -0,0 +1,25 @@ +package com.casic.missiles.enums.notifyevent; + +import com.casic.missiles.enums.business.FilePrintTypeEnum; + +import java.util.HashMap; + +public enum AwareFilePrintTypeEnum implements PrintFileDataRegisterBeanEnum, FilePrintTypeEnum { + + CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { + { + put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 + put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 + } + }); + + public HashMap certificateTypeBeanMap; + + AwareFilePrintTypeEnum(HashMap certificateTypeBeanMap) { + this.certificateTypeBeanMap = certificateTypeBeanMap; + } + + public HashMap getCertificateTypeBeanMap() { + return certificateTypeBeanMap; + } +} 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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 2cd8fba..ac65bf4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -39,7 +39,8 @@ CERTIFICATE_REPORT("certificateReport", "certificateReport", "证书报告"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), - OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"); + OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java deleted file mode 100644 index d48545b..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.enums.business; - -public interface CertificateTypeEnum { - - String CALIBRATION_CERTIFICATE = "0"; - String TEST_REPORT = "1"; -} 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 new file mode 100644 index 0000000..f421fb4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -0,0 +1,12 @@ +package com.casic.missiles.enums.business; + +public interface FilePrintTypeEnum { + + String CALIBRATION_CERTIFICATE = "样品内部检校证书"; + String TEST_REPORT = "样品外包证书"; + +// 自有设备内部检校证书 +// 自有设备外包证书 +// 自有设备溯源证书 + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java deleted file mode 100644 index 6779003..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.missiles.enums.notifyevent; - -import com.casic.missiles.enums.business.CertificateTypeEnum; - -import java.util.HashMap; - -public enum AwareCertificateTypeEnum implements PrintFileDataRegisterBeanEnum, CertificateTypeEnum { - - CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { - { - put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 - put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 - } - }); - - public HashMap certificateTypeBeanMap; - - AwareCertificateTypeEnum(HashMap certificateTypeBeanMap) { - this.certificateTypeBeanMap = certificateTypeBeanMap; - } - - public HashMap getCertificateTypeBeanMap() { - return certificateTypeBeanMap; - } -} 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 new file mode 100644 index 0000000..da9a7be --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -0,0 +1,25 @@ +package com.casic.missiles.enums.notifyevent; + +import com.casic.missiles.enums.business.FilePrintTypeEnum; + +import java.util.HashMap; + +public enum AwareFilePrintTypeEnum implements PrintFileDataRegisterBeanEnum, FilePrintTypeEnum { + + CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { + { + put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 + put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 + } + }); + + public HashMap certificateTypeBeanMap; + + AwareFilePrintTypeEnum(HashMap certificateTypeBeanMap) { + this.certificateTypeBeanMap = certificateTypeBeanMap; + } + + public HashMap getCertificateTypeBeanMap() { + return certificateTypeBeanMap; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java index 47fc55e..278951a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java @@ -8,19 +8,24 @@ @Data public class ElectronicImage { - { + /** + * 默认电子签章值 + */ { //关键字索引 (-1) - final Integer keyWordIndex = -1; + keyWordIndex = -1; + /** + * 该电子签章位置是关键字的相对位置 + */ // 电子印章水平位置 - final float horizontal = 300f; + horizontal = 300f; // 电子印章垂直位置 - final float vertical = -55f; + vertical = -55f; // 电子印章宽度 - final float stampWidth = 120; + stampWidth = 120f; // 电子印章高度 - final float stampHeight = 120; + stampHeight = 120f; //照片透明度设置 - final int alpha = 150; + diaphaneity = 150f; } @@ -32,10 +37,10 @@ /** * 透明度 */ - private Integer diaphaneity; + private Float diaphaneity; /** - * 透明度 + * 图片叠加标志 */ private Boolean mereFlag; @@ -44,17 +49,10 @@ */ private Float horizontal; /** - * 关键字 - */ - private String keyWord; - /** - * 关键字索引 - */ - private Integer keyWordIndex; - /** * 电子印章垂直位置 (当前推荐455f) */ private Float vertical; + /** * 电子印章宽度(推荐120) */ @@ -65,14 +63,24 @@ */ private Float stampHeight; - /** - * 书签名,通过名称寻找书签文本所在位置 - */ - private String bookmarkName; /** - * 替换的文本新内容 + * 关键字 */ + private String keyWord; + /** + * 关键字索引 + */ + private Integer keyWordIndex; + + // /** +// * 书签名,通过名称寻找书签文本所在位置 +// */ + private String bookmarkName; + // +// /** +// * 替换的文本新内容 +// */ private String newBookmarkText; } 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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 2cd8fba..ac65bf4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -39,7 +39,8 @@ CERTIFICATE_REPORT("certificateReport", "certificateReport", "证书报告"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), - OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"); + OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java deleted file mode 100644 index d48545b..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.enums.business; - -public interface CertificateTypeEnum { - - String CALIBRATION_CERTIFICATE = "0"; - String TEST_REPORT = "1"; -} 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 new file mode 100644 index 0000000..f421fb4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -0,0 +1,12 @@ +package com.casic.missiles.enums.business; + +public interface FilePrintTypeEnum { + + String CALIBRATION_CERTIFICATE = "样品内部检校证书"; + String TEST_REPORT = "样品外包证书"; + +// 自有设备内部检校证书 +// 自有设备外包证书 +// 自有设备溯源证书 + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java deleted file mode 100644 index 6779003..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.missiles.enums.notifyevent; - -import com.casic.missiles.enums.business.CertificateTypeEnum; - -import java.util.HashMap; - -public enum AwareCertificateTypeEnum implements PrintFileDataRegisterBeanEnum, CertificateTypeEnum { - - CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { - { - put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 - put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 - } - }); - - public HashMap certificateTypeBeanMap; - - AwareCertificateTypeEnum(HashMap certificateTypeBeanMap) { - this.certificateTypeBeanMap = certificateTypeBeanMap; - } - - public HashMap getCertificateTypeBeanMap() { - return certificateTypeBeanMap; - } -} 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 new file mode 100644 index 0000000..da9a7be --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -0,0 +1,25 @@ +package com.casic.missiles.enums.notifyevent; + +import com.casic.missiles.enums.business.FilePrintTypeEnum; + +import java.util.HashMap; + +public enum AwareFilePrintTypeEnum implements PrintFileDataRegisterBeanEnum, FilePrintTypeEnum { + + CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { + { + put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 + put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 + } + }); + + public HashMap certificateTypeBeanMap; + + AwareFilePrintTypeEnum(HashMap certificateTypeBeanMap) { + this.certificateTypeBeanMap = certificateTypeBeanMap; + } + + public HashMap getCertificateTypeBeanMap() { + return certificateTypeBeanMap; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java index 47fc55e..278951a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java @@ -8,19 +8,24 @@ @Data public class ElectronicImage { - { + /** + * 默认电子签章值 + */ { //关键字索引 (-1) - final Integer keyWordIndex = -1; + keyWordIndex = -1; + /** + * 该电子签章位置是关键字的相对位置 + */ // 电子印章水平位置 - final float horizontal = 300f; + horizontal = 300f; // 电子印章垂直位置 - final float vertical = -55f; + vertical = -55f; // 电子印章宽度 - final float stampWidth = 120; + stampWidth = 120f; // 电子印章高度 - final float stampHeight = 120; + stampHeight = 120f; //照片透明度设置 - final int alpha = 150; + diaphaneity = 150f; } @@ -32,10 +37,10 @@ /** * 透明度 */ - private Integer diaphaneity; + private Float diaphaneity; /** - * 透明度 + * 图片叠加标志 */ private Boolean mereFlag; @@ -44,17 +49,10 @@ */ private Float horizontal; /** - * 关键字 - */ - private String keyWord; - /** - * 关键字索引 - */ - private Integer keyWordIndex; - /** * 电子印章垂直位置 (当前推荐455f) */ private Float vertical; + /** * 电子印章宽度(推荐120) */ @@ -65,14 +63,24 @@ */ private Float stampHeight; - /** - * 书签名,通过名称寻找书签文本所在位置 - */ - private String bookmarkName; /** - * 替换的文本新内容 + * 关键字 */ + private String keyWord; + /** + * 关键字索引 + */ + private Integer keyWordIndex; + + // /** +// * 书签名,通过名称寻找书签文本所在位置 +// */ + private String bookmarkName; + // +// /** +// * 替换的文本新内容 +// */ private String newBookmarkText; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index 060c998..a8a331c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -48,6 +48,7 @@ */ @TableField("certificate_report_type") @ApiModelProperty(value = "证书报告类型", dataType = "String") + @DictCodeField(message = "证书报告类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateReportType; /** @@ -85,7 +86,6 @@ @ApiModelProperty(value = "检校专业", dataType = "String") @DictCodeField(message = "检校专业不合法", cacheName = MeterDictCode.CALIBRATION_MAJOR) private String calibrationMajor; - /** * 出具日期 */ @@ -171,15 +171,6 @@ @DictCodeField(message = "审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) private String approvalStatus; - - /** - * 审批状态(字典code) - */ - @TableField("approval_status") - @ApiModelProperty(value = "打印审批状态", dataType = "String") - @DictCodeField(message = "打印审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) - private String printApprovalStatus; - @TableField("remark") @ApiModelProperty(value = "备注", dataType = "String") private String remark; 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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 2cd8fba..ac65bf4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -39,7 +39,8 @@ CERTIFICATE_REPORT("certificateReport", "certificateReport", "证书报告"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), - OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"); + OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java deleted file mode 100644 index d48545b..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.enums.business; - -public interface CertificateTypeEnum { - - String CALIBRATION_CERTIFICATE = "0"; - String TEST_REPORT = "1"; -} 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 new file mode 100644 index 0000000..f421fb4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -0,0 +1,12 @@ +package com.casic.missiles.enums.business; + +public interface FilePrintTypeEnum { + + String CALIBRATION_CERTIFICATE = "样品内部检校证书"; + String TEST_REPORT = "样品外包证书"; + +// 自有设备内部检校证书 +// 自有设备外包证书 +// 自有设备溯源证书 + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java deleted file mode 100644 index 6779003..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.missiles.enums.notifyevent; - -import com.casic.missiles.enums.business.CertificateTypeEnum; - -import java.util.HashMap; - -public enum AwareCertificateTypeEnum implements PrintFileDataRegisterBeanEnum, CertificateTypeEnum { - - CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { - { - put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 - put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 - } - }); - - public HashMap certificateTypeBeanMap; - - AwareCertificateTypeEnum(HashMap certificateTypeBeanMap) { - this.certificateTypeBeanMap = certificateTypeBeanMap; - } - - public HashMap getCertificateTypeBeanMap() { - return certificateTypeBeanMap; - } -} 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 new file mode 100644 index 0000000..da9a7be --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -0,0 +1,25 @@ +package com.casic.missiles.enums.notifyevent; + +import com.casic.missiles.enums.business.FilePrintTypeEnum; + +import java.util.HashMap; + +public enum AwareFilePrintTypeEnum implements PrintFileDataRegisterBeanEnum, FilePrintTypeEnum { + + CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { + { + put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 + put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 + } + }); + + public HashMap certificateTypeBeanMap; + + AwareFilePrintTypeEnum(HashMap certificateTypeBeanMap) { + this.certificateTypeBeanMap = certificateTypeBeanMap; + } + + public HashMap getCertificateTypeBeanMap() { + return certificateTypeBeanMap; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java index 47fc55e..278951a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java @@ -8,19 +8,24 @@ @Data public class ElectronicImage { - { + /** + * 默认电子签章值 + */ { //关键字索引 (-1) - final Integer keyWordIndex = -1; + keyWordIndex = -1; + /** + * 该电子签章位置是关键字的相对位置 + */ // 电子印章水平位置 - final float horizontal = 300f; + horizontal = 300f; // 电子印章垂直位置 - final float vertical = -55f; + vertical = -55f; // 电子印章宽度 - final float stampWidth = 120; + stampWidth = 120f; // 电子印章高度 - final float stampHeight = 120; + stampHeight = 120f; //照片透明度设置 - final int alpha = 150; + diaphaneity = 150f; } @@ -32,10 +37,10 @@ /** * 透明度 */ - private Integer diaphaneity; + private Float diaphaneity; /** - * 透明度 + * 图片叠加标志 */ private Boolean mereFlag; @@ -44,17 +49,10 @@ */ private Float horizontal; /** - * 关键字 - */ - private String keyWord; - /** - * 关键字索引 - */ - private Integer keyWordIndex; - /** * 电子印章垂直位置 (当前推荐455f) */ private Float vertical; + /** * 电子印章宽度(推荐120) */ @@ -65,14 +63,24 @@ */ private Float stampHeight; - /** - * 书签名,通过名称寻找书签文本所在位置 - */ - private String bookmarkName; /** - * 替换的文本新内容 + * 关键字 */ + private String keyWord; + /** + * 关键字索引 + */ + private Integer keyWordIndex; + + // /** +// * 书签名,通过名称寻找书签文本所在位置 +// */ + private String bookmarkName; + // +// /** +// * 替换的文本新内容 +// */ private String newBookmarkText; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index 060c998..a8a331c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -48,6 +48,7 @@ */ @TableField("certificate_report_type") @ApiModelProperty(value = "证书报告类型", dataType = "String") + @DictCodeField(message = "证书报告类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateReportType; /** @@ -85,7 +86,6 @@ @ApiModelProperty(value = "检校专业", dataType = "String") @DictCodeField(message = "检校专业不合法", cacheName = MeterDictCode.CALIBRATION_MAJOR) private String calibrationMajor; - /** * 出具日期 */ @@ -171,15 +171,6 @@ @DictCodeField(message = "审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) private String approvalStatus; - - /** - * 审批状态(字典code) - */ - @TableField("approval_status") - @ApiModelProperty(value = "打印审批状态", dataType = "String") - @DictCodeField(message = "打印审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) - private String printApprovalStatus; - @TableField("remark") @ApiModelProperty(value = "备注", dataType = "String") private String remark; 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 e378c28..1ef7e71 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 @@ -85,9 +85,9 @@ page.setSize(Integer.MAX_VALUE); request.setCreateUserId(user.getId()); Page certificateListResponsePage = handleApprovalStatus(page, request); - iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.ADVICE_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.CERTIFICATE_PRINT_EXPORT.getSheetName()); } catch (Exception e) { - log.error("客户投诉导出出现异常,异常信息为{}", e); + log.error("证书打印导出出现异常,异常信息为{}", e); } } 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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 2cd8fba..ac65bf4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -39,7 +39,8 @@ CERTIFICATE_REPORT("certificateReport", "certificateReport", "证书报告"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), - OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"); + OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java deleted file mode 100644 index d48545b..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.enums.business; - -public interface CertificateTypeEnum { - - String CALIBRATION_CERTIFICATE = "0"; - String TEST_REPORT = "1"; -} 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 new file mode 100644 index 0000000..f421fb4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -0,0 +1,12 @@ +package com.casic.missiles.enums.business; + +public interface FilePrintTypeEnum { + + String CALIBRATION_CERTIFICATE = "样品内部检校证书"; + String TEST_REPORT = "样品外包证书"; + +// 自有设备内部检校证书 +// 自有设备外包证书 +// 自有设备溯源证书 + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java deleted file mode 100644 index 6779003..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.missiles.enums.notifyevent; - -import com.casic.missiles.enums.business.CertificateTypeEnum; - -import java.util.HashMap; - -public enum AwareCertificateTypeEnum implements PrintFileDataRegisterBeanEnum, CertificateTypeEnum { - - CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { - { - put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 - put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 - } - }); - - public HashMap certificateTypeBeanMap; - - AwareCertificateTypeEnum(HashMap certificateTypeBeanMap) { - this.certificateTypeBeanMap = certificateTypeBeanMap; - } - - public HashMap getCertificateTypeBeanMap() { - return certificateTypeBeanMap; - } -} 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 new file mode 100644 index 0000000..da9a7be --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -0,0 +1,25 @@ +package com.casic.missiles.enums.notifyevent; + +import com.casic.missiles.enums.business.FilePrintTypeEnum; + +import java.util.HashMap; + +public enum AwareFilePrintTypeEnum implements PrintFileDataRegisterBeanEnum, FilePrintTypeEnum { + + CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { + { + put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 + put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 + } + }); + + public HashMap certificateTypeBeanMap; + + AwareFilePrintTypeEnum(HashMap certificateTypeBeanMap) { + this.certificateTypeBeanMap = certificateTypeBeanMap; + } + + public HashMap getCertificateTypeBeanMap() { + return certificateTypeBeanMap; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java index 47fc55e..278951a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java @@ -8,19 +8,24 @@ @Data public class ElectronicImage { - { + /** + * 默认电子签章值 + */ { //关键字索引 (-1) - final Integer keyWordIndex = -1; + keyWordIndex = -1; + /** + * 该电子签章位置是关键字的相对位置 + */ // 电子印章水平位置 - final float horizontal = 300f; + horizontal = 300f; // 电子印章垂直位置 - final float vertical = -55f; + vertical = -55f; // 电子印章宽度 - final float stampWidth = 120; + stampWidth = 120f; // 电子印章高度 - final float stampHeight = 120; + stampHeight = 120f; //照片透明度设置 - final int alpha = 150; + diaphaneity = 150f; } @@ -32,10 +37,10 @@ /** * 透明度 */ - private Integer diaphaneity; + private Float diaphaneity; /** - * 透明度 + * 图片叠加标志 */ private Boolean mereFlag; @@ -44,17 +49,10 @@ */ private Float horizontal; /** - * 关键字 - */ - private String keyWord; - /** - * 关键字索引 - */ - private Integer keyWordIndex; - /** * 电子印章垂直位置 (当前推荐455f) */ private Float vertical; + /** * 电子印章宽度(推荐120) */ @@ -65,14 +63,24 @@ */ private Float stampHeight; - /** - * 书签名,通过名称寻找书签文本所在位置 - */ - private String bookmarkName; /** - * 替换的文本新内容 + * 关键字 */ + private String keyWord; + /** + * 关键字索引 + */ + private Integer keyWordIndex; + + // /** +// * 书签名,通过名称寻找书签文本所在位置 +// */ + private String bookmarkName; + // +// /** +// * 替换的文本新内容 +// */ private String newBookmarkText; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index 060c998..a8a331c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -48,6 +48,7 @@ */ @TableField("certificate_report_type") @ApiModelProperty(value = "证书报告类型", dataType = "String") + @DictCodeField(message = "证书报告类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateReportType; /** @@ -85,7 +86,6 @@ @ApiModelProperty(value = "检校专业", dataType = "String") @DictCodeField(message = "检校专业不合法", cacheName = MeterDictCode.CALIBRATION_MAJOR) private String calibrationMajor; - /** * 出具日期 */ @@ -171,15 +171,6 @@ @DictCodeField(message = "审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) private String approvalStatus; - - /** - * 审批状态(字典code) - */ - @TableField("approval_status") - @ApiModelProperty(value = "打印审批状态", dataType = "String") - @DictCodeField(message = "打印审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) - private String printApprovalStatus; - @TableField("remark") @ApiModelProperty(value = "备注", dataType = "String") private String remark; 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 e378c28..1ef7e71 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 @@ -85,9 +85,9 @@ page.setSize(Integer.MAX_VALUE); request.setCreateUserId(user.getId()); Page certificateListResponsePage = handleApprovalStatus(page, request); - iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.ADVICE_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.CERTIFICATE_PRINT_EXPORT.getSheetName()); } catch (Exception e) { - log.error("客户投诉导出出现异常,异常信息为{}", e); + log.error("证书打印导出出现异常,异常信息为{}", e); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 24c1c75..5264fab 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -151,6 +151,7 @@ for (CustomerSampleInfo sampleInfo : businessOrder.getCustomerSampleInfoList()) { sampleInfo.setDeliverer(businessOrder.getDeliverer()); sampleInfo.setCustomerNo(businessOrder.getCustomerNo()); + sampleInfo.setMeasureType(INSIDE_MEASURE); sampleInfo.setDelivererTel(businessOrder.getDelivererTel()); if ("0".equals(sampleInfo.getIsExistSample())) { ReturnDTO returnDTO = customerSampleService.addSample(sampleInfo); 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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 2cd8fba..ac65bf4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -39,7 +39,8 @@ CERTIFICATE_REPORT("certificateReport", "certificateReport", "证书报告"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), - OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"); + OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java deleted file mode 100644 index d48545b..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.enums.business; - -public interface CertificateTypeEnum { - - String CALIBRATION_CERTIFICATE = "0"; - String TEST_REPORT = "1"; -} 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 new file mode 100644 index 0000000..f421fb4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -0,0 +1,12 @@ +package com.casic.missiles.enums.business; + +public interface FilePrintTypeEnum { + + String CALIBRATION_CERTIFICATE = "样品内部检校证书"; + String TEST_REPORT = "样品外包证书"; + +// 自有设备内部检校证书 +// 自有设备外包证书 +// 自有设备溯源证书 + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java deleted file mode 100644 index 6779003..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.missiles.enums.notifyevent; - -import com.casic.missiles.enums.business.CertificateTypeEnum; - -import java.util.HashMap; - -public enum AwareCertificateTypeEnum implements PrintFileDataRegisterBeanEnum, CertificateTypeEnum { - - CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { - { - put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 - put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 - } - }); - - public HashMap certificateTypeBeanMap; - - AwareCertificateTypeEnum(HashMap certificateTypeBeanMap) { - this.certificateTypeBeanMap = certificateTypeBeanMap; - } - - public HashMap getCertificateTypeBeanMap() { - return certificateTypeBeanMap; - } -} 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 new file mode 100644 index 0000000..da9a7be --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -0,0 +1,25 @@ +package com.casic.missiles.enums.notifyevent; + +import com.casic.missiles.enums.business.FilePrintTypeEnum; + +import java.util.HashMap; + +public enum AwareFilePrintTypeEnum implements PrintFileDataRegisterBeanEnum, FilePrintTypeEnum { + + CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { + { + put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 + put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 + } + }); + + public HashMap certificateTypeBeanMap; + + AwareFilePrintTypeEnum(HashMap certificateTypeBeanMap) { + this.certificateTypeBeanMap = certificateTypeBeanMap; + } + + public HashMap getCertificateTypeBeanMap() { + return certificateTypeBeanMap; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java index 47fc55e..278951a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java @@ -8,19 +8,24 @@ @Data public class ElectronicImage { - { + /** + * 默认电子签章值 + */ { //关键字索引 (-1) - final Integer keyWordIndex = -1; + keyWordIndex = -1; + /** + * 该电子签章位置是关键字的相对位置 + */ // 电子印章水平位置 - final float horizontal = 300f; + horizontal = 300f; // 电子印章垂直位置 - final float vertical = -55f; + vertical = -55f; // 电子印章宽度 - final float stampWidth = 120; + stampWidth = 120f; // 电子印章高度 - final float stampHeight = 120; + stampHeight = 120f; //照片透明度设置 - final int alpha = 150; + diaphaneity = 150f; } @@ -32,10 +37,10 @@ /** * 透明度 */ - private Integer diaphaneity; + private Float diaphaneity; /** - * 透明度 + * 图片叠加标志 */ private Boolean mereFlag; @@ -44,17 +49,10 @@ */ private Float horizontal; /** - * 关键字 - */ - private String keyWord; - /** - * 关键字索引 - */ - private Integer keyWordIndex; - /** * 电子印章垂直位置 (当前推荐455f) */ private Float vertical; + /** * 电子印章宽度(推荐120) */ @@ -65,14 +63,24 @@ */ private Float stampHeight; - /** - * 书签名,通过名称寻找书签文本所在位置 - */ - private String bookmarkName; /** - * 替换的文本新内容 + * 关键字 */ + private String keyWord; + /** + * 关键字索引 + */ + private Integer keyWordIndex; + + // /** +// * 书签名,通过名称寻找书签文本所在位置 +// */ + private String bookmarkName; + // +// /** +// * 替换的文本新内容 +// */ private String newBookmarkText; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index 060c998..a8a331c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -48,6 +48,7 @@ */ @TableField("certificate_report_type") @ApiModelProperty(value = "证书报告类型", dataType = "String") + @DictCodeField(message = "证书报告类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateReportType; /** @@ -85,7 +86,6 @@ @ApiModelProperty(value = "检校专业", dataType = "String") @DictCodeField(message = "检校专业不合法", cacheName = MeterDictCode.CALIBRATION_MAJOR) private String calibrationMajor; - /** * 出具日期 */ @@ -171,15 +171,6 @@ @DictCodeField(message = "审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) private String approvalStatus; - - /** - * 审批状态(字典code) - */ - @TableField("approval_status") - @ApiModelProperty(value = "打印审批状态", dataType = "String") - @DictCodeField(message = "打印审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) - private String printApprovalStatus; - @TableField("remark") @ApiModelProperty(value = "备注", dataType = "String") private String remark; 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 e378c28..1ef7e71 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 @@ -85,9 +85,9 @@ page.setSize(Integer.MAX_VALUE); request.setCreateUserId(user.getId()); Page certificateListResponsePage = handleApprovalStatus(page, request); - iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.ADVICE_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.CERTIFICATE_PRINT_EXPORT.getSheetName()); } catch (Exception e) { - log.error("客户投诉导出出现异常,异常信息为{}", e); + log.error("证书打印导出出现异常,异常信息为{}", e); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 24c1c75..5264fab 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -151,6 +151,7 @@ for (CustomerSampleInfo sampleInfo : businessOrder.getCustomerSampleInfoList()) { sampleInfo.setDeliverer(businessOrder.getDeliverer()); sampleInfo.setCustomerNo(businessOrder.getCustomerNo()); + sampleInfo.setMeasureType(INSIDE_MEASURE); sampleInfo.setDelivererTel(businessOrder.getDelivererTel()); if ("0".equals(sampleInfo.getIsExistSample())) { ReturnDTO returnDTO = customerSampleService.addSample(sampleInfo); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index 589851f..e7ed7fe 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -86,7 +86,7 @@ Long orderId = dispatchVO.getOrderId(); Long sampleId = dispatchVO.getSampleId(); String sampleStatus = dispatchVO.getSampleStatus(); - //先过滤超期状态下的外检外包 + //先过滤超期状态下的外包 if (!StringUtils.isEmpty(request.getSampleStatus()) && BE_OVERDUE.equals(request.getSampleStatus()) && notSelfMeasure(dispatchVO)) { 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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 2cd8fba..ac65bf4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -39,7 +39,8 @@ CERTIFICATE_REPORT("certificateReport", "certificateReport", "证书报告"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), - OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"); + OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java deleted file mode 100644 index d48545b..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.enums.business; - -public interface CertificateTypeEnum { - - String CALIBRATION_CERTIFICATE = "0"; - String TEST_REPORT = "1"; -} 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 new file mode 100644 index 0000000..f421fb4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -0,0 +1,12 @@ +package com.casic.missiles.enums.business; + +public interface FilePrintTypeEnum { + + String CALIBRATION_CERTIFICATE = "样品内部检校证书"; + String TEST_REPORT = "样品外包证书"; + +// 自有设备内部检校证书 +// 自有设备外包证书 +// 自有设备溯源证书 + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java deleted file mode 100644 index 6779003..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.missiles.enums.notifyevent; - -import com.casic.missiles.enums.business.CertificateTypeEnum; - -import java.util.HashMap; - -public enum AwareCertificateTypeEnum implements PrintFileDataRegisterBeanEnum, CertificateTypeEnum { - - CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { - { - put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 - put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 - } - }); - - public HashMap certificateTypeBeanMap; - - AwareCertificateTypeEnum(HashMap certificateTypeBeanMap) { - this.certificateTypeBeanMap = certificateTypeBeanMap; - } - - public HashMap getCertificateTypeBeanMap() { - return certificateTypeBeanMap; - } -} 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 new file mode 100644 index 0000000..da9a7be --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -0,0 +1,25 @@ +package com.casic.missiles.enums.notifyevent; + +import com.casic.missiles.enums.business.FilePrintTypeEnum; + +import java.util.HashMap; + +public enum AwareFilePrintTypeEnum implements PrintFileDataRegisterBeanEnum, FilePrintTypeEnum { + + CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { + { + put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 + put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 + } + }); + + public HashMap certificateTypeBeanMap; + + AwareFilePrintTypeEnum(HashMap certificateTypeBeanMap) { + this.certificateTypeBeanMap = certificateTypeBeanMap; + } + + public HashMap getCertificateTypeBeanMap() { + return certificateTypeBeanMap; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java index 47fc55e..278951a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java @@ -8,19 +8,24 @@ @Data public class ElectronicImage { - { + /** + * 默认电子签章值 + */ { //关键字索引 (-1) - final Integer keyWordIndex = -1; + keyWordIndex = -1; + /** + * 该电子签章位置是关键字的相对位置 + */ // 电子印章水平位置 - final float horizontal = 300f; + horizontal = 300f; // 电子印章垂直位置 - final float vertical = -55f; + vertical = -55f; // 电子印章宽度 - final float stampWidth = 120; + stampWidth = 120f; // 电子印章高度 - final float stampHeight = 120; + stampHeight = 120f; //照片透明度设置 - final int alpha = 150; + diaphaneity = 150f; } @@ -32,10 +37,10 @@ /** * 透明度 */ - private Integer diaphaneity; + private Float diaphaneity; /** - * 透明度 + * 图片叠加标志 */ private Boolean mereFlag; @@ -44,17 +49,10 @@ */ private Float horizontal; /** - * 关键字 - */ - private String keyWord; - /** - * 关键字索引 - */ - private Integer keyWordIndex; - /** * 电子印章垂直位置 (当前推荐455f) */ private Float vertical; + /** * 电子印章宽度(推荐120) */ @@ -65,14 +63,24 @@ */ private Float stampHeight; - /** - * 书签名,通过名称寻找书签文本所在位置 - */ - private String bookmarkName; /** - * 替换的文本新内容 + * 关键字 */ + private String keyWord; + /** + * 关键字索引 + */ + private Integer keyWordIndex; + + // /** +// * 书签名,通过名称寻找书签文本所在位置 +// */ + private String bookmarkName; + // +// /** +// * 替换的文本新内容 +// */ private String newBookmarkText; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index 060c998..a8a331c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -48,6 +48,7 @@ */ @TableField("certificate_report_type") @ApiModelProperty(value = "证书报告类型", dataType = "String") + @DictCodeField(message = "证书报告类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateReportType; /** @@ -85,7 +86,6 @@ @ApiModelProperty(value = "检校专业", dataType = "String") @DictCodeField(message = "检校专业不合法", cacheName = MeterDictCode.CALIBRATION_MAJOR) private String calibrationMajor; - /** * 出具日期 */ @@ -171,15 +171,6 @@ @DictCodeField(message = "审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) private String approvalStatus; - - /** - * 审批状态(字典code) - */ - @TableField("approval_status") - @ApiModelProperty(value = "打印审批状态", dataType = "String") - @DictCodeField(message = "打印审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) - private String printApprovalStatus; - @TableField("remark") @ApiModelProperty(value = "备注", dataType = "String") private String remark; 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 e378c28..1ef7e71 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 @@ -85,9 +85,9 @@ page.setSize(Integer.MAX_VALUE); request.setCreateUserId(user.getId()); Page certificateListResponsePage = handleApprovalStatus(page, request); - iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.ADVICE_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.CERTIFICATE_PRINT_EXPORT.getSheetName()); } catch (Exception e) { - log.error("客户投诉导出出现异常,异常信息为{}", e); + log.error("证书打印导出出现异常,异常信息为{}", e); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 24c1c75..5264fab 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -151,6 +151,7 @@ for (CustomerSampleInfo sampleInfo : businessOrder.getCustomerSampleInfoList()) { sampleInfo.setDeliverer(businessOrder.getDeliverer()); sampleInfo.setCustomerNo(businessOrder.getCustomerNo()); + sampleInfo.setMeasureType(INSIDE_MEASURE); sampleInfo.setDelivererTel(businessOrder.getDelivererTel()); if ("0".equals(sampleInfo.getIsExistSample())) { ReturnDTO returnDTO = customerSampleService.addSample(sampleInfo); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index 589851f..e7ed7fe 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -86,7 +86,7 @@ Long orderId = dispatchVO.getOrderId(); Long sampleId = dispatchVO.getSampleId(); String sampleStatus = dispatchVO.getSampleStatus(); - //先过滤超期状态下的外检外包 + //先过滤超期状态下的外包 if (!StringUtils.isEmpty(request.getSampleStatus()) && BE_OVERDUE.equals(request.getSampleStatus()) && notSelfMeasure(dispatchVO)) { return; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java index 7e30713..bb611b9 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java @@ -32,14 +32,6 @@ //关键字索引 (-1) private final static Integer keyWordIndex = -1; - // 电子印章水平位置 - private final static float horizontal = 300f; - // 电子印章垂直位置 - private final static float vertical = -55f; - // 电子印章宽度 - private final static float stampWidth = 120; - // 电子印章高度 - private final static float stampHeight = 120; //照片透明度设置 private final static int alpha = 150; @@ -51,28 +43,39 @@ //1、按照模板填充数据,并导出word String wordOldUrl = exportWord(filePrintRegister.getTemplatePath(), filePrintRegister.getTemDir(), filePrintRegister.getFileName(), filePrintRegister.getParams()); //设置透明属性 1、获取照片 2、签章背景透明设置 3、设置照片路径和照片类型进行图片保存 - for (ElectronicImage electronicSeal : filePrintRegister.getElectronicImageList()) { - BufferedImage bi = readImage(electronicSeal.getElectronicSealImageUrl()); - BufferedImage electronSealImage = convertLayout(bi, electronicSeal.getDiaphaneity()); - String stampImgUrl = electronicSeal.getElectronicSealImageUrl(); - String imagePath = stampImgUrl.substring(0, stampImgUrl.length() - 4) + "1.png"; - String[] imageCutOffContents = stampImgUrl.split("."); - electronicSeal.setElectronicSealImageUrl(imagePath); - saveFile(electronSealImage, imageCutOffContents[imageCutOffContents.length - 1], imagePath); - } +// for (ElectronicImage electronicSeal : filePrintRegister.getElectronicImageList()) { +// BufferedImage bi = readImage(electronicSeal.getElectronicSealImageUrl()); +// BufferedImage electronSealImage = convertLayout(bi, electronicSeal.getDiaphaneity()); +// String stampImgUrl = electronicSeal.getElectronicSealImageUrl(); +// String imagePath = stampImgUrl.substring(0, stampImgUrl.length() - 4) + "1.png"; +// String[] imageCutOffContents = stampImgUrl.split("."); +// electronicSeal.setElectronicSealImageUrl(imagePath); +// saveFile(electronSealImage, imageCutOffContents[imageCutOffContents.length - 1], imagePath); +// } //按关键字进行分组 - Map> sameKeySealMaps = filePrintRegister.getElectronicImageList().stream().collect( + Map> sameKeyWordSealMaps = filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage->StringUtils.isNotEmpty(electronicImage.getKeyWord())) + .collect( Collectors.groupingBy(ElectronicImage::getKeyWord) ); // 初始化world,pdf名称参数 String[] filePrintType = filePrintRegister.getTemplatePath().split("\\."); String wordNewUrl = filePrintRegister.getTemplatePath(); - String pdfNewUrl = filePrintType[0]+"."+ "pdf"; + String pdfNewUrl = filePrintType[0] + "." + "pdf"; //3、根据关键字进行添加签章和签字 - for (Map.Entry> entry : sameKeySealMaps.entrySet()) { + for (Map.Entry> entry : sameKeyWordSealMaps.entrySet()) { List electronicSeals = entry.getValue(); addSameKeyWordStamp(wordOldUrl, wordNewUrl, electronicSeals); } + + //获取没有关键字的图片,即绝对路径的图片 + List absolutePathImageList= filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage->StringUtils.isEmpty(electronicImage.getKeyWord())) + .collect(Collectors.toList()); + //根据设置的绝对路径进行图片的填充 + for(ElectronicImage absolutePathImage:absolutePathImageList){ + addAbsolutePathStamp(wordOldUrl, wordNewUrl,absolutePathImage); + } // 4、将新word转化为pdf文件 wordToPdf(wordNewUrl, pdfNewUrl); return pdfNewUrl; @@ -91,19 +94,15 @@ Assert.notNull(temDir, "临时文件路径不能为空"); Assert.notNull(fileName, "导出文件名不能为空"); if (fileName.endsWith(".doc")) { -// HWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); + docToDocx(templatePath, templatePath + "x"); + templatePath += "x"; } -// Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); - if (!temDir.endsWith("/")) { - temDir = temDir; - } + Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); File dir = new File(temDir); if (!dir.getParentFile().exists()) { // 新建文件夹 dir.getParentFile().mkdirs(); } -// operateWord(params,templatePath); - String tmpPath = ""; try { XWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); @@ -146,12 +145,12 @@ docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); //指定电子章位置 //水平位置 - docPicture.setHorizontalPosition(horizontal); + docPicture.setHorizontalPosition(electronicSeal.getHorizontal()); //垂直位置 - docPicture.setVerticalPosition(vertical); + docPicture.setVerticalPosition(electronicSeal.getStampHeight()); //设置电子章大小 - docPicture.setWidth(stampWidth); - docPicture.setHeight(stampHeight); + docPicture.setWidth(electronicSeal.getStampWidth()); + docPicture.setHeight(electronicSeal.getDiaphaneity()); } //保存添加电子章的Word文档 document.saveToFile(wordNewUrl); @@ -165,7 +164,7 @@ * @param bookmarkName 书签名 * @param newBookmarkText 新文本内容 */ - private void replaceBookmarkContent(Document document, String bookmarkName, String newBookmarkText) { + private static void replaceBookmarkContent(Document document, String bookmarkName, String newBookmarkText) { //定位到指定书签位置 BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(document); bookmarksNavigator.moveToBookmark(bookmarkName); @@ -194,7 +193,7 @@ * @param alpha * @return */ - public static BufferedImage convertLayout(BufferedImage imgsrc, int alpha) { + public static BufferedImage convertLayout(BufferedImage imgsrc, float alpha) { try { //创建一个包含透明度的图片,半透明效果必须要存储为png合适才行,存储为jpg,底色为黑色 BufferedImage back = new BufferedImage(imgsrc.getWidth(), imgsrc.getHeight(), BufferedImage.TYPE_INT_ARGB); @@ -242,17 +241,8 @@ * * @param wordOldUrl word文件路径 * @param wordNewUrl 新word文件路径 - * @param stampImgUrl 电子印章图片路径 - * @param horizontal 电子印章水平位置 (当前文件推荐260f) - * @param vertical 电子印章垂直位置 (当前推荐455f) - * @param stampWidth 电子印章宽度(推荐120) - * @param stampHeight 电子印章高度(推荐120) - * @param bookmarkName 书签名,通过名称寻找书签文本所在位置 - * @param newBookmarkText 替换的文本新内容 */ - public void addStamp(String wordOldUrl, String wordNewUrl, String stampImgUrl, - Float horizontal, Float vertical, Float stampWidth, - Float stampHeight, String bookmarkName, String newBookmarkText) { + private static void addAbsolutePathStamp(String wordOldUrl, String wordNewUrl, ElectronicImage absolutePathImage) { // 加载文档 Document document = new Document(); document.loadFromFile(wordOldUrl); @@ -264,31 +254,29 @@ Paragraph paragraph = section.getParagraphs().get(0); // 判断是否需要替换书签位置文本内容 - if (StringUtils.isNotEmpty(bookmarkName)) { - replaceBookmarkContent(document, bookmarkName, newBookmarkText); + if (StringUtils.isNotEmpty(absolutePathImage.getBookmarkName())) { + replaceBookmarkContent(document, absolutePathImage.getBookmarkName(), absolutePathImage.getNewBookmarkText()); } // 添加电子印章 - DocPicture docPicture = paragraph.appendPicture(stampImgUrl); + DocPicture docPicture = paragraph.appendPicture(absolutePathImage.getElectronicSealImageUrl()); // 指定电子章位置 // 水平位置 - docPicture.setHorizontalPosition(horizontal); + docPicture.setHorizontalPosition(absolutePathImage.getHorizontal()); // 垂直位置 - docPicture.setVerticalPosition(vertical); + docPicture.setVerticalPosition(absolutePathImage.getVertical()); // 设置电子章大小 - docPicture.setWidth(stampWidth); - docPicture.setHeight(stampHeight); + docPicture.setWidth(absolutePathImage.getStampWidth()); + docPicture.setHeight(absolutePathImage.getHorizontal()); // 设置图片位于文字顶层 docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); - // 保存添加电子章的Word文档 document.saveToFile(wordNewUrl); document.dispose(); // log.info("文档添加电子印章结束,新WORD文档地址:{}",wordNewUrl); - } @@ -384,10 +372,11 @@ /** * doc 转 docx - * @param sourceFilePath 源文件路径 - * @param destFilePath 转换成docx文件路径 + * + * @param sourceFilePath 源文件路径 + * @param destFilePath 转换成docx文件路径 */ - public static void docToDocx(String sourceFilePath,String destFilePath){ + public static void docToDocx(String sourceFilePath, String destFilePath) { Document document = new Document(); document.loadFromFile(sourceFilePath); document.saveToFile(destFilePath); 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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 2cd8fba..ac65bf4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -39,7 +39,8 @@ CERTIFICATE_REPORT("certificateReport", "certificateReport", "证书报告"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), - OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"); + OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java deleted file mode 100644 index d48545b..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.enums.business; - -public interface CertificateTypeEnum { - - String CALIBRATION_CERTIFICATE = "0"; - String TEST_REPORT = "1"; -} 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 new file mode 100644 index 0000000..f421fb4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -0,0 +1,12 @@ +package com.casic.missiles.enums.business; + +public interface FilePrintTypeEnum { + + String CALIBRATION_CERTIFICATE = "样品内部检校证书"; + String TEST_REPORT = "样品外包证书"; + +// 自有设备内部检校证书 +// 自有设备外包证书 +// 自有设备溯源证书 + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java deleted file mode 100644 index 6779003..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.missiles.enums.notifyevent; - -import com.casic.missiles.enums.business.CertificateTypeEnum; - -import java.util.HashMap; - -public enum AwareCertificateTypeEnum implements PrintFileDataRegisterBeanEnum, CertificateTypeEnum { - - CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { - { - put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 - put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 - } - }); - - public HashMap certificateTypeBeanMap; - - AwareCertificateTypeEnum(HashMap certificateTypeBeanMap) { - this.certificateTypeBeanMap = certificateTypeBeanMap; - } - - public HashMap getCertificateTypeBeanMap() { - return certificateTypeBeanMap; - } -} 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 new file mode 100644 index 0000000..da9a7be --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -0,0 +1,25 @@ +package com.casic.missiles.enums.notifyevent; + +import com.casic.missiles.enums.business.FilePrintTypeEnum; + +import java.util.HashMap; + +public enum AwareFilePrintTypeEnum implements PrintFileDataRegisterBeanEnum, FilePrintTypeEnum { + + CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { + { + put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 + put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 + } + }); + + public HashMap certificateTypeBeanMap; + + AwareFilePrintTypeEnum(HashMap certificateTypeBeanMap) { + this.certificateTypeBeanMap = certificateTypeBeanMap; + } + + public HashMap getCertificateTypeBeanMap() { + return certificateTypeBeanMap; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java index 47fc55e..278951a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java @@ -8,19 +8,24 @@ @Data public class ElectronicImage { - { + /** + * 默认电子签章值 + */ { //关键字索引 (-1) - final Integer keyWordIndex = -1; + keyWordIndex = -1; + /** + * 该电子签章位置是关键字的相对位置 + */ // 电子印章水平位置 - final float horizontal = 300f; + horizontal = 300f; // 电子印章垂直位置 - final float vertical = -55f; + vertical = -55f; // 电子印章宽度 - final float stampWidth = 120; + stampWidth = 120f; // 电子印章高度 - final float stampHeight = 120; + stampHeight = 120f; //照片透明度设置 - final int alpha = 150; + diaphaneity = 150f; } @@ -32,10 +37,10 @@ /** * 透明度 */ - private Integer diaphaneity; + private Float diaphaneity; /** - * 透明度 + * 图片叠加标志 */ private Boolean mereFlag; @@ -44,17 +49,10 @@ */ private Float horizontal; /** - * 关键字 - */ - private String keyWord; - /** - * 关键字索引 - */ - private Integer keyWordIndex; - /** * 电子印章垂直位置 (当前推荐455f) */ private Float vertical; + /** * 电子印章宽度(推荐120) */ @@ -65,14 +63,24 @@ */ private Float stampHeight; - /** - * 书签名,通过名称寻找书签文本所在位置 - */ - private String bookmarkName; /** - * 替换的文本新内容 + * 关键字 */ + private String keyWord; + /** + * 关键字索引 + */ + private Integer keyWordIndex; + + // /** +// * 书签名,通过名称寻找书签文本所在位置 +// */ + private String bookmarkName; + // +// /** +// * 替换的文本新内容 +// */ private String newBookmarkText; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index 060c998..a8a331c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -48,6 +48,7 @@ */ @TableField("certificate_report_type") @ApiModelProperty(value = "证书报告类型", dataType = "String") + @DictCodeField(message = "证书报告类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateReportType; /** @@ -85,7 +86,6 @@ @ApiModelProperty(value = "检校专业", dataType = "String") @DictCodeField(message = "检校专业不合法", cacheName = MeterDictCode.CALIBRATION_MAJOR) private String calibrationMajor; - /** * 出具日期 */ @@ -171,15 +171,6 @@ @DictCodeField(message = "审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) private String approvalStatus; - - /** - * 审批状态(字典code) - */ - @TableField("approval_status") - @ApiModelProperty(value = "打印审批状态", dataType = "String") - @DictCodeField(message = "打印审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) - private String printApprovalStatus; - @TableField("remark") @ApiModelProperty(value = "备注", dataType = "String") private String remark; 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 e378c28..1ef7e71 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 @@ -85,9 +85,9 @@ page.setSize(Integer.MAX_VALUE); request.setCreateUserId(user.getId()); Page certificateListResponsePage = handleApprovalStatus(page, request); - iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.ADVICE_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.CERTIFICATE_PRINT_EXPORT.getSheetName()); } catch (Exception e) { - log.error("客户投诉导出出现异常,异常信息为{}", e); + log.error("证书打印导出出现异常,异常信息为{}", e); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 24c1c75..5264fab 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -151,6 +151,7 @@ for (CustomerSampleInfo sampleInfo : businessOrder.getCustomerSampleInfoList()) { sampleInfo.setDeliverer(businessOrder.getDeliverer()); sampleInfo.setCustomerNo(businessOrder.getCustomerNo()); + sampleInfo.setMeasureType(INSIDE_MEASURE); sampleInfo.setDelivererTel(businessOrder.getDelivererTel()); if ("0".equals(sampleInfo.getIsExistSample())) { ReturnDTO returnDTO = customerSampleService.addSample(sampleInfo); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index 589851f..e7ed7fe 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -86,7 +86,7 @@ Long orderId = dispatchVO.getOrderId(); Long sampleId = dispatchVO.getSampleId(); String sampleStatus = dispatchVO.getSampleStatus(); - //先过滤超期状态下的外检外包 + //先过滤超期状态下的外包 if (!StringUtils.isEmpty(request.getSampleStatus()) && BE_OVERDUE.equals(request.getSampleStatus()) && notSelfMeasure(dispatchVO)) { return; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java index 7e30713..bb611b9 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java @@ -32,14 +32,6 @@ //关键字索引 (-1) private final static Integer keyWordIndex = -1; - // 电子印章水平位置 - private final static float horizontal = 300f; - // 电子印章垂直位置 - private final static float vertical = -55f; - // 电子印章宽度 - private final static float stampWidth = 120; - // 电子印章高度 - private final static float stampHeight = 120; //照片透明度设置 private final static int alpha = 150; @@ -51,28 +43,39 @@ //1、按照模板填充数据,并导出word String wordOldUrl = exportWord(filePrintRegister.getTemplatePath(), filePrintRegister.getTemDir(), filePrintRegister.getFileName(), filePrintRegister.getParams()); //设置透明属性 1、获取照片 2、签章背景透明设置 3、设置照片路径和照片类型进行图片保存 - for (ElectronicImage electronicSeal : filePrintRegister.getElectronicImageList()) { - BufferedImage bi = readImage(electronicSeal.getElectronicSealImageUrl()); - BufferedImage electronSealImage = convertLayout(bi, electronicSeal.getDiaphaneity()); - String stampImgUrl = electronicSeal.getElectronicSealImageUrl(); - String imagePath = stampImgUrl.substring(0, stampImgUrl.length() - 4) + "1.png"; - String[] imageCutOffContents = stampImgUrl.split("."); - electronicSeal.setElectronicSealImageUrl(imagePath); - saveFile(electronSealImage, imageCutOffContents[imageCutOffContents.length - 1], imagePath); - } +// for (ElectronicImage electronicSeal : filePrintRegister.getElectronicImageList()) { +// BufferedImage bi = readImage(electronicSeal.getElectronicSealImageUrl()); +// BufferedImage electronSealImage = convertLayout(bi, electronicSeal.getDiaphaneity()); +// String stampImgUrl = electronicSeal.getElectronicSealImageUrl(); +// String imagePath = stampImgUrl.substring(0, stampImgUrl.length() - 4) + "1.png"; +// String[] imageCutOffContents = stampImgUrl.split("."); +// electronicSeal.setElectronicSealImageUrl(imagePath); +// saveFile(electronSealImage, imageCutOffContents[imageCutOffContents.length - 1], imagePath); +// } //按关键字进行分组 - Map> sameKeySealMaps = filePrintRegister.getElectronicImageList().stream().collect( + Map> sameKeyWordSealMaps = filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage->StringUtils.isNotEmpty(electronicImage.getKeyWord())) + .collect( Collectors.groupingBy(ElectronicImage::getKeyWord) ); // 初始化world,pdf名称参数 String[] filePrintType = filePrintRegister.getTemplatePath().split("\\."); String wordNewUrl = filePrintRegister.getTemplatePath(); - String pdfNewUrl = filePrintType[0]+"."+ "pdf"; + String pdfNewUrl = filePrintType[0] + "." + "pdf"; //3、根据关键字进行添加签章和签字 - for (Map.Entry> entry : sameKeySealMaps.entrySet()) { + for (Map.Entry> entry : sameKeyWordSealMaps.entrySet()) { List electronicSeals = entry.getValue(); addSameKeyWordStamp(wordOldUrl, wordNewUrl, electronicSeals); } + + //获取没有关键字的图片,即绝对路径的图片 + List absolutePathImageList= filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage->StringUtils.isEmpty(electronicImage.getKeyWord())) + .collect(Collectors.toList()); + //根据设置的绝对路径进行图片的填充 + for(ElectronicImage absolutePathImage:absolutePathImageList){ + addAbsolutePathStamp(wordOldUrl, wordNewUrl,absolutePathImage); + } // 4、将新word转化为pdf文件 wordToPdf(wordNewUrl, pdfNewUrl); return pdfNewUrl; @@ -91,19 +94,15 @@ Assert.notNull(temDir, "临时文件路径不能为空"); Assert.notNull(fileName, "导出文件名不能为空"); if (fileName.endsWith(".doc")) { -// HWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); + docToDocx(templatePath, templatePath + "x"); + templatePath += "x"; } -// Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); - if (!temDir.endsWith("/")) { - temDir = temDir; - } + Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); File dir = new File(temDir); if (!dir.getParentFile().exists()) { // 新建文件夹 dir.getParentFile().mkdirs(); } -// operateWord(params,templatePath); - String tmpPath = ""; try { XWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); @@ -146,12 +145,12 @@ docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); //指定电子章位置 //水平位置 - docPicture.setHorizontalPosition(horizontal); + docPicture.setHorizontalPosition(electronicSeal.getHorizontal()); //垂直位置 - docPicture.setVerticalPosition(vertical); + docPicture.setVerticalPosition(electronicSeal.getStampHeight()); //设置电子章大小 - docPicture.setWidth(stampWidth); - docPicture.setHeight(stampHeight); + docPicture.setWidth(electronicSeal.getStampWidth()); + docPicture.setHeight(electronicSeal.getDiaphaneity()); } //保存添加电子章的Word文档 document.saveToFile(wordNewUrl); @@ -165,7 +164,7 @@ * @param bookmarkName 书签名 * @param newBookmarkText 新文本内容 */ - private void replaceBookmarkContent(Document document, String bookmarkName, String newBookmarkText) { + private static void replaceBookmarkContent(Document document, String bookmarkName, String newBookmarkText) { //定位到指定书签位置 BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(document); bookmarksNavigator.moveToBookmark(bookmarkName); @@ -194,7 +193,7 @@ * @param alpha * @return */ - public static BufferedImage convertLayout(BufferedImage imgsrc, int alpha) { + public static BufferedImage convertLayout(BufferedImage imgsrc, float alpha) { try { //创建一个包含透明度的图片,半透明效果必须要存储为png合适才行,存储为jpg,底色为黑色 BufferedImage back = new BufferedImage(imgsrc.getWidth(), imgsrc.getHeight(), BufferedImage.TYPE_INT_ARGB); @@ -242,17 +241,8 @@ * * @param wordOldUrl word文件路径 * @param wordNewUrl 新word文件路径 - * @param stampImgUrl 电子印章图片路径 - * @param horizontal 电子印章水平位置 (当前文件推荐260f) - * @param vertical 电子印章垂直位置 (当前推荐455f) - * @param stampWidth 电子印章宽度(推荐120) - * @param stampHeight 电子印章高度(推荐120) - * @param bookmarkName 书签名,通过名称寻找书签文本所在位置 - * @param newBookmarkText 替换的文本新内容 */ - public void addStamp(String wordOldUrl, String wordNewUrl, String stampImgUrl, - Float horizontal, Float vertical, Float stampWidth, - Float stampHeight, String bookmarkName, String newBookmarkText) { + private static void addAbsolutePathStamp(String wordOldUrl, String wordNewUrl, ElectronicImage absolutePathImage) { // 加载文档 Document document = new Document(); document.loadFromFile(wordOldUrl); @@ -264,31 +254,29 @@ Paragraph paragraph = section.getParagraphs().get(0); // 判断是否需要替换书签位置文本内容 - if (StringUtils.isNotEmpty(bookmarkName)) { - replaceBookmarkContent(document, bookmarkName, newBookmarkText); + if (StringUtils.isNotEmpty(absolutePathImage.getBookmarkName())) { + replaceBookmarkContent(document, absolutePathImage.getBookmarkName(), absolutePathImage.getNewBookmarkText()); } // 添加电子印章 - DocPicture docPicture = paragraph.appendPicture(stampImgUrl); + DocPicture docPicture = paragraph.appendPicture(absolutePathImage.getElectronicSealImageUrl()); // 指定电子章位置 // 水平位置 - docPicture.setHorizontalPosition(horizontal); + docPicture.setHorizontalPosition(absolutePathImage.getHorizontal()); // 垂直位置 - docPicture.setVerticalPosition(vertical); + docPicture.setVerticalPosition(absolutePathImage.getVertical()); // 设置电子章大小 - docPicture.setWidth(stampWidth); - docPicture.setHeight(stampHeight); + docPicture.setWidth(absolutePathImage.getStampWidth()); + docPicture.setHeight(absolutePathImage.getHorizontal()); // 设置图片位于文字顶层 docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); - // 保存添加电子章的Word文档 document.saveToFile(wordNewUrl); document.dispose(); // log.info("文档添加电子印章结束,新WORD文档地址:{}",wordNewUrl); - } @@ -384,10 +372,11 @@ /** * doc 转 docx - * @param sourceFilePath 源文件路径 - * @param destFilePath 转换成docx文件路径 + * + * @param sourceFilePath 源文件路径 + * @param destFilePath 转换成docx文件路径 */ - public static void docToDocx(String sourceFilePath,String destFilePath){ + public static void docToDocx(String sourceFilePath, String destFilePath) { Document document = new Document(); document.loadFromFile(sourceFilePath); document.saveToFile(destFilePath); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java index c84fe0b..ff4713f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java @@ -1,10 +1,6 @@ package com.casic.missiles.service.listeners.processor.register; import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.model.business.BusinessCertificateReport; - -import java.util.ArrayList; -import java.util.List; public interface PrintFileDataGeneric { @@ -13,7 +9,7 @@ * * 2、组装参数param外的参数 * * 3、填充注册表信息参数 */ - FilePrintRegister CustomizedPrintFileRegister(BusinessCertificateReport metaData, String templateFileDir); + FilePrintRegister CustomizedPrintFileRegister(Object object, String templateFileDir); 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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 2cd8fba..ac65bf4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -39,7 +39,8 @@ CERTIFICATE_REPORT("certificateReport", "certificateReport", "证书报告"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), - OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"); + OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java deleted file mode 100644 index d48545b..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.enums.business; - -public interface CertificateTypeEnum { - - String CALIBRATION_CERTIFICATE = "0"; - String TEST_REPORT = "1"; -} 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 new file mode 100644 index 0000000..f421fb4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -0,0 +1,12 @@ +package com.casic.missiles.enums.business; + +public interface FilePrintTypeEnum { + + String CALIBRATION_CERTIFICATE = "样品内部检校证书"; + String TEST_REPORT = "样品外包证书"; + +// 自有设备内部检校证书 +// 自有设备外包证书 +// 自有设备溯源证书 + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java deleted file mode 100644 index 6779003..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.missiles.enums.notifyevent; - -import com.casic.missiles.enums.business.CertificateTypeEnum; - -import java.util.HashMap; - -public enum AwareCertificateTypeEnum implements PrintFileDataRegisterBeanEnum, CertificateTypeEnum { - - CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { - { - put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 - put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 - } - }); - - public HashMap certificateTypeBeanMap; - - AwareCertificateTypeEnum(HashMap certificateTypeBeanMap) { - this.certificateTypeBeanMap = certificateTypeBeanMap; - } - - public HashMap getCertificateTypeBeanMap() { - return certificateTypeBeanMap; - } -} 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 new file mode 100644 index 0000000..da9a7be --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -0,0 +1,25 @@ +package com.casic.missiles.enums.notifyevent; + +import com.casic.missiles.enums.business.FilePrintTypeEnum; + +import java.util.HashMap; + +public enum AwareFilePrintTypeEnum implements PrintFileDataRegisterBeanEnum, FilePrintTypeEnum { + + CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { + { + put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 + put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 + } + }); + + public HashMap certificateTypeBeanMap; + + AwareFilePrintTypeEnum(HashMap certificateTypeBeanMap) { + this.certificateTypeBeanMap = certificateTypeBeanMap; + } + + public HashMap getCertificateTypeBeanMap() { + return certificateTypeBeanMap; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java index 47fc55e..278951a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java @@ -8,19 +8,24 @@ @Data public class ElectronicImage { - { + /** + * 默认电子签章值 + */ { //关键字索引 (-1) - final Integer keyWordIndex = -1; + keyWordIndex = -1; + /** + * 该电子签章位置是关键字的相对位置 + */ // 电子印章水平位置 - final float horizontal = 300f; + horizontal = 300f; // 电子印章垂直位置 - final float vertical = -55f; + vertical = -55f; // 电子印章宽度 - final float stampWidth = 120; + stampWidth = 120f; // 电子印章高度 - final float stampHeight = 120; + stampHeight = 120f; //照片透明度设置 - final int alpha = 150; + diaphaneity = 150f; } @@ -32,10 +37,10 @@ /** * 透明度 */ - private Integer diaphaneity; + private Float diaphaneity; /** - * 透明度 + * 图片叠加标志 */ private Boolean mereFlag; @@ -44,17 +49,10 @@ */ private Float horizontal; /** - * 关键字 - */ - private String keyWord; - /** - * 关键字索引 - */ - private Integer keyWordIndex; - /** * 电子印章垂直位置 (当前推荐455f) */ private Float vertical; + /** * 电子印章宽度(推荐120) */ @@ -65,14 +63,24 @@ */ private Float stampHeight; - /** - * 书签名,通过名称寻找书签文本所在位置 - */ - private String bookmarkName; /** - * 替换的文本新内容 + * 关键字 */ + private String keyWord; + /** + * 关键字索引 + */ + private Integer keyWordIndex; + + // /** +// * 书签名,通过名称寻找书签文本所在位置 +// */ + private String bookmarkName; + // +// /** +// * 替换的文本新内容 +// */ private String newBookmarkText; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index 060c998..a8a331c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -48,6 +48,7 @@ */ @TableField("certificate_report_type") @ApiModelProperty(value = "证书报告类型", dataType = "String") + @DictCodeField(message = "证书报告类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateReportType; /** @@ -85,7 +86,6 @@ @ApiModelProperty(value = "检校专业", dataType = "String") @DictCodeField(message = "检校专业不合法", cacheName = MeterDictCode.CALIBRATION_MAJOR) private String calibrationMajor; - /** * 出具日期 */ @@ -171,15 +171,6 @@ @DictCodeField(message = "审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) private String approvalStatus; - - /** - * 审批状态(字典code) - */ - @TableField("approval_status") - @ApiModelProperty(value = "打印审批状态", dataType = "String") - @DictCodeField(message = "打印审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) - private String printApprovalStatus; - @TableField("remark") @ApiModelProperty(value = "备注", dataType = "String") private String remark; 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 e378c28..1ef7e71 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 @@ -85,9 +85,9 @@ page.setSize(Integer.MAX_VALUE); request.setCreateUserId(user.getId()); Page certificateListResponsePage = handleApprovalStatus(page, request); - iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.ADVICE_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.CERTIFICATE_PRINT_EXPORT.getSheetName()); } catch (Exception e) { - log.error("客户投诉导出出现异常,异常信息为{}", e); + log.error("证书打印导出出现异常,异常信息为{}", e); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 24c1c75..5264fab 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -151,6 +151,7 @@ for (CustomerSampleInfo sampleInfo : businessOrder.getCustomerSampleInfoList()) { sampleInfo.setDeliverer(businessOrder.getDeliverer()); sampleInfo.setCustomerNo(businessOrder.getCustomerNo()); + sampleInfo.setMeasureType(INSIDE_MEASURE); sampleInfo.setDelivererTel(businessOrder.getDelivererTel()); if ("0".equals(sampleInfo.getIsExistSample())) { ReturnDTO returnDTO = customerSampleService.addSample(sampleInfo); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index 589851f..e7ed7fe 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -86,7 +86,7 @@ Long orderId = dispatchVO.getOrderId(); Long sampleId = dispatchVO.getSampleId(); String sampleStatus = dispatchVO.getSampleStatus(); - //先过滤超期状态下的外检外包 + //先过滤超期状态下的外包 if (!StringUtils.isEmpty(request.getSampleStatus()) && BE_OVERDUE.equals(request.getSampleStatus()) && notSelfMeasure(dispatchVO)) { return; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java index 7e30713..bb611b9 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java @@ -32,14 +32,6 @@ //关键字索引 (-1) private final static Integer keyWordIndex = -1; - // 电子印章水平位置 - private final static float horizontal = 300f; - // 电子印章垂直位置 - private final static float vertical = -55f; - // 电子印章宽度 - private final static float stampWidth = 120; - // 电子印章高度 - private final static float stampHeight = 120; //照片透明度设置 private final static int alpha = 150; @@ -51,28 +43,39 @@ //1、按照模板填充数据,并导出word String wordOldUrl = exportWord(filePrintRegister.getTemplatePath(), filePrintRegister.getTemDir(), filePrintRegister.getFileName(), filePrintRegister.getParams()); //设置透明属性 1、获取照片 2、签章背景透明设置 3、设置照片路径和照片类型进行图片保存 - for (ElectronicImage electronicSeal : filePrintRegister.getElectronicImageList()) { - BufferedImage bi = readImage(electronicSeal.getElectronicSealImageUrl()); - BufferedImage electronSealImage = convertLayout(bi, electronicSeal.getDiaphaneity()); - String stampImgUrl = electronicSeal.getElectronicSealImageUrl(); - String imagePath = stampImgUrl.substring(0, stampImgUrl.length() - 4) + "1.png"; - String[] imageCutOffContents = stampImgUrl.split("."); - electronicSeal.setElectronicSealImageUrl(imagePath); - saveFile(electronSealImage, imageCutOffContents[imageCutOffContents.length - 1], imagePath); - } +// for (ElectronicImage electronicSeal : filePrintRegister.getElectronicImageList()) { +// BufferedImage bi = readImage(electronicSeal.getElectronicSealImageUrl()); +// BufferedImage electronSealImage = convertLayout(bi, electronicSeal.getDiaphaneity()); +// String stampImgUrl = electronicSeal.getElectronicSealImageUrl(); +// String imagePath = stampImgUrl.substring(0, stampImgUrl.length() - 4) + "1.png"; +// String[] imageCutOffContents = stampImgUrl.split("."); +// electronicSeal.setElectronicSealImageUrl(imagePath); +// saveFile(electronSealImage, imageCutOffContents[imageCutOffContents.length - 1], imagePath); +// } //按关键字进行分组 - Map> sameKeySealMaps = filePrintRegister.getElectronicImageList().stream().collect( + Map> sameKeyWordSealMaps = filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage->StringUtils.isNotEmpty(electronicImage.getKeyWord())) + .collect( Collectors.groupingBy(ElectronicImage::getKeyWord) ); // 初始化world,pdf名称参数 String[] filePrintType = filePrintRegister.getTemplatePath().split("\\."); String wordNewUrl = filePrintRegister.getTemplatePath(); - String pdfNewUrl = filePrintType[0]+"."+ "pdf"; + String pdfNewUrl = filePrintType[0] + "." + "pdf"; //3、根据关键字进行添加签章和签字 - for (Map.Entry> entry : sameKeySealMaps.entrySet()) { + for (Map.Entry> entry : sameKeyWordSealMaps.entrySet()) { List electronicSeals = entry.getValue(); addSameKeyWordStamp(wordOldUrl, wordNewUrl, electronicSeals); } + + //获取没有关键字的图片,即绝对路径的图片 + List absolutePathImageList= filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage->StringUtils.isEmpty(electronicImage.getKeyWord())) + .collect(Collectors.toList()); + //根据设置的绝对路径进行图片的填充 + for(ElectronicImage absolutePathImage:absolutePathImageList){ + addAbsolutePathStamp(wordOldUrl, wordNewUrl,absolutePathImage); + } // 4、将新word转化为pdf文件 wordToPdf(wordNewUrl, pdfNewUrl); return pdfNewUrl; @@ -91,19 +94,15 @@ Assert.notNull(temDir, "临时文件路径不能为空"); Assert.notNull(fileName, "导出文件名不能为空"); if (fileName.endsWith(".doc")) { -// HWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); + docToDocx(templatePath, templatePath + "x"); + templatePath += "x"; } -// Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); - if (!temDir.endsWith("/")) { - temDir = temDir; - } + Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); File dir = new File(temDir); if (!dir.getParentFile().exists()) { // 新建文件夹 dir.getParentFile().mkdirs(); } -// operateWord(params,templatePath); - String tmpPath = ""; try { XWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); @@ -146,12 +145,12 @@ docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); //指定电子章位置 //水平位置 - docPicture.setHorizontalPosition(horizontal); + docPicture.setHorizontalPosition(electronicSeal.getHorizontal()); //垂直位置 - docPicture.setVerticalPosition(vertical); + docPicture.setVerticalPosition(electronicSeal.getStampHeight()); //设置电子章大小 - docPicture.setWidth(stampWidth); - docPicture.setHeight(stampHeight); + docPicture.setWidth(electronicSeal.getStampWidth()); + docPicture.setHeight(electronicSeal.getDiaphaneity()); } //保存添加电子章的Word文档 document.saveToFile(wordNewUrl); @@ -165,7 +164,7 @@ * @param bookmarkName 书签名 * @param newBookmarkText 新文本内容 */ - private void replaceBookmarkContent(Document document, String bookmarkName, String newBookmarkText) { + private static void replaceBookmarkContent(Document document, String bookmarkName, String newBookmarkText) { //定位到指定书签位置 BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(document); bookmarksNavigator.moveToBookmark(bookmarkName); @@ -194,7 +193,7 @@ * @param alpha * @return */ - public static BufferedImage convertLayout(BufferedImage imgsrc, int alpha) { + public static BufferedImage convertLayout(BufferedImage imgsrc, float alpha) { try { //创建一个包含透明度的图片,半透明效果必须要存储为png合适才行,存储为jpg,底色为黑色 BufferedImage back = new BufferedImage(imgsrc.getWidth(), imgsrc.getHeight(), BufferedImage.TYPE_INT_ARGB); @@ -242,17 +241,8 @@ * * @param wordOldUrl word文件路径 * @param wordNewUrl 新word文件路径 - * @param stampImgUrl 电子印章图片路径 - * @param horizontal 电子印章水平位置 (当前文件推荐260f) - * @param vertical 电子印章垂直位置 (当前推荐455f) - * @param stampWidth 电子印章宽度(推荐120) - * @param stampHeight 电子印章高度(推荐120) - * @param bookmarkName 书签名,通过名称寻找书签文本所在位置 - * @param newBookmarkText 替换的文本新内容 */ - public void addStamp(String wordOldUrl, String wordNewUrl, String stampImgUrl, - Float horizontal, Float vertical, Float stampWidth, - Float stampHeight, String bookmarkName, String newBookmarkText) { + private static void addAbsolutePathStamp(String wordOldUrl, String wordNewUrl, ElectronicImage absolutePathImage) { // 加载文档 Document document = new Document(); document.loadFromFile(wordOldUrl); @@ -264,31 +254,29 @@ Paragraph paragraph = section.getParagraphs().get(0); // 判断是否需要替换书签位置文本内容 - if (StringUtils.isNotEmpty(bookmarkName)) { - replaceBookmarkContent(document, bookmarkName, newBookmarkText); + if (StringUtils.isNotEmpty(absolutePathImage.getBookmarkName())) { + replaceBookmarkContent(document, absolutePathImage.getBookmarkName(), absolutePathImage.getNewBookmarkText()); } // 添加电子印章 - DocPicture docPicture = paragraph.appendPicture(stampImgUrl); + DocPicture docPicture = paragraph.appendPicture(absolutePathImage.getElectronicSealImageUrl()); // 指定电子章位置 // 水平位置 - docPicture.setHorizontalPosition(horizontal); + docPicture.setHorizontalPosition(absolutePathImage.getHorizontal()); // 垂直位置 - docPicture.setVerticalPosition(vertical); + docPicture.setVerticalPosition(absolutePathImage.getVertical()); // 设置电子章大小 - docPicture.setWidth(stampWidth); - docPicture.setHeight(stampHeight); + docPicture.setWidth(absolutePathImage.getStampWidth()); + docPicture.setHeight(absolutePathImage.getHorizontal()); // 设置图片位于文字顶层 docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); - // 保存添加电子章的Word文档 document.saveToFile(wordNewUrl); document.dispose(); // log.info("文档添加电子印章结束,新WORD文档地址:{}",wordNewUrl); - } @@ -384,10 +372,11 @@ /** * doc 转 docx - * @param sourceFilePath 源文件路径 - * @param destFilePath 转换成docx文件路径 + * + * @param sourceFilePath 源文件路径 + * @param destFilePath 转换成docx文件路径 */ - public static void docToDocx(String sourceFilePath,String destFilePath){ + public static void docToDocx(String sourceFilePath, String destFilePath) { Document document = new Document(); document.loadFromFile(sourceFilePath); document.saveToFile(destFilePath); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java index c84fe0b..ff4713f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java @@ -1,10 +1,6 @@ package com.casic.missiles.service.listeners.processor.register; import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.model.business.BusinessCertificateReport; - -import java.util.ArrayList; -import java.util.List; public interface PrintFileDataGeneric { @@ -13,7 +9,7 @@ * * 2、组装参数param外的参数 * * 3、填充注册表信息参数 */ - FilePrintRegister CustomizedPrintFileRegister(BusinessCertificateReport metaData, String templateFileDir); + FilePrintRegister CustomizedPrintFileRegister(Object object, String templateFileDir); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java index cd43ce8..bde219c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java @@ -5,37 +5,51 @@ import com.casic.missiles.dto.flowable.ApprovalLogResponse; import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.service.business.IBusinessOrderService; +import com.casic.missiles.service.customer.CustomerSampleService; +import com.casic.missiles.service.flowable.ApprovalOperateService; 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.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; public class PrintFileDataSupport { + @Autowired + protected ApprovalOperateService approvalOperateService; + @Autowired + protected IBusinessOrderService businessOrderService; + @Autowired + protected CustomerSampleService customerSampleService; + /** + * 电子签名获取的流程 keyParamList,customizedSignNames具有映射功能 + */ protected List keyParamList; + /** + * 自定义签名名字 + */ protected List customizedSignNames; - protected List> appendNameList; protected PrintFileDataSupport() { this.keyParamList = new ArrayList<>(); customizedSignNames = new ArrayList<>(); - appendNameList = new ArrayList<>(); } @Resource protected PrintFileRegisterMapper fileRegisterMapper; /** + * 初始化文件数据注册信息 * 1、获取证书模板 - * 2、设置临时处理空间路径、文件名称、 + * 2、设置临时处理空间路径、文件名称、文件资源路径 * 3、设置文件id,作为操作空间文件名称,防止对其他同时处理的证书形成影响 */ protected void initialization(FilePrintRegister filePrintRegister, String templateFileDir, BusinessCertificateReport certificateReport) { - templateFileDir = templateFileDir + certificateReport.getId()+"\\"; + templateFileDir = templateFileDir + certificateReport.getId() + "\\"; String fileName = fileRegisterMapper.getSignFileNameById(certificateReport.getTemplateId(), "system_template"); filePrintRegister.setFileName(fileName); filePrintRegister.setTemDir(templateFileDir); @@ -46,7 +60,22 @@ filePrintRegister.setBeDownloadedFileNames(fileNames); } - protected List electronicSignNamesCreator(Map> approvalLogMap) { + /** + * 文件自定义名称参数构建器 + */ + protected void customizedSignNamesParamCreator() { + keyParamList.add("发起人"); + keyParamList.add("审批中"); + keyParamList.add("审批完成"); + customizedSignNames.add("发起人"); + customizedSignNames.add("核验人"); + customizedSignNames.add("批准人"); + } + + /** + * 电子签名构建器 + */ + protected List customizedSignNamesCreator(Map> approvalLogMap, FilePrintRegister filePrintRegister) { List electronicImageList = new ArrayList<>(); for (int i = 0; i < keyParamList.size(); i++) { if (approvalLogMap.containsKey(keyParamList.get(i))) { @@ -57,9 +86,10 @@ if (CollectionUtils.isNotEmpty(approvalLogList)) { approvalLogList.forEach( approvalLog -> { - ElectronicImage electronicImage = new ElectronicImage(); + ElectronicImage electronicImage = defaultElectronicSignName(); String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); electronicImage.setElectronicSealImageUrl(signFileName); + filePrintRegister.getBeDownloadedFileNames().add(signFileName); electronicImage.setKeyWord(customizedSignName); electronicImageList.add(electronicImage); } @@ -69,27 +99,55 @@ return electronicImageList; } - protected List electronicSignSealsCreator(BusinessCertificateReport metaData) { - List electronicImageList = new ArrayList<>(); + /** + * 默认电子签名的图片设置,允许重写 + */ + protected ElectronicImage defaultElectronicSignName() { ElectronicImage electronicImage = new ElectronicImage(); - Long electronicSealId = metaData.getSignId(); + electronicImage.setHorizontal(200f); + return electronicImage; + } + + /** + * 默认电子签章的图片设置,允许重写 + */ + protected ElectronicImage defaultElectronicSignSeal() { + ElectronicImage electronicImage = new ElectronicImage(); + return electronicImage; + } + + /** + * 电子签章获取 + * + * @param electronicSealId 证书报告文件数据 + * @param keyWord 关键字 + * @return + */ + protected ElectronicImage doCreateElectronicSignSeal(Long electronicSealId, String keyWord) { + ElectronicImage electronicImage = defaultElectronicSignSeal(); String electronicSealName = fileRegisterMapper.getSignFileNameById(electronicSealId, "system_sign"); electronicImage.setElectronicSealImageUrl(electronicSealName); -// electronicImage.setKeyWord(customizedSignName); - electronicImageList.add(electronicImage); - if (StringUtils.isNotEmpty(metaData.getApprovalSignId())) { - String[] approvalSignIds = metaData.getApprovalSignId().split(","); -// for (String approvalSignId : approvalSignIds) { -// String electronicSealName = fileRegisterMapper.getSignFileNameById(electronicSealId, "system_sign"); -// } - } - return electronicImageList; + electronicImage.setKeyWord(keyWord); + return electronicImage; + } + + protected Map certificateFilePopulateParamCreator(BusinessCertificateReport metaData) { + Calendar now = Calendar.getInstance(); + BusinessOrder businessOrder = businessOrderService.orderDetail(metaData.getOrderId()); + CustomerSampleInfo customerSampleInfo = customerSampleService.sampleDetail(metaData.getSampleId()); + Map params = new HashMap<>(); + params.put("customerName", businessOrder.getCustomerName()); + params.put("customerAddress", businessOrder.getCustomerAddress()); + params.put("sampleNo", customerSampleInfo.getSampleNo()); + params.put("sampleName", customerSampleInfo.getSampleName()); + params.put("manufacturingNo", customerSampleInfo.getManufacturingNo()); + params.put("y", now.get(Calendar.YEAR)); + params.put("m", (now.get(Calendar.MONTH) + 1)); + params.put("d", now.get(Calendar.DAY_OF_MONTH)); + return params; } - protected void populateElectronicFiles(ElectronicImage 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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 2cd8fba..ac65bf4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -39,7 +39,8 @@ CERTIFICATE_REPORT("certificateReport", "certificateReport", "证书报告"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), - OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"); + OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java deleted file mode 100644 index d48545b..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.enums.business; - -public interface CertificateTypeEnum { - - String CALIBRATION_CERTIFICATE = "0"; - String TEST_REPORT = "1"; -} 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 new file mode 100644 index 0000000..f421fb4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -0,0 +1,12 @@ +package com.casic.missiles.enums.business; + +public interface FilePrintTypeEnum { + + String CALIBRATION_CERTIFICATE = "样品内部检校证书"; + String TEST_REPORT = "样品外包证书"; + +// 自有设备内部检校证书 +// 自有设备外包证书 +// 自有设备溯源证书 + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java deleted file mode 100644 index 6779003..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.missiles.enums.notifyevent; - -import com.casic.missiles.enums.business.CertificateTypeEnum; - -import java.util.HashMap; - -public enum AwareCertificateTypeEnum implements PrintFileDataRegisterBeanEnum, CertificateTypeEnum { - - CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { - { - put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 - put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 - } - }); - - public HashMap certificateTypeBeanMap; - - AwareCertificateTypeEnum(HashMap certificateTypeBeanMap) { - this.certificateTypeBeanMap = certificateTypeBeanMap; - } - - public HashMap getCertificateTypeBeanMap() { - return certificateTypeBeanMap; - } -} 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 new file mode 100644 index 0000000..da9a7be --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -0,0 +1,25 @@ +package com.casic.missiles.enums.notifyevent; + +import com.casic.missiles.enums.business.FilePrintTypeEnum; + +import java.util.HashMap; + +public enum AwareFilePrintTypeEnum implements PrintFileDataRegisterBeanEnum, FilePrintTypeEnum { + + CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { + { + put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 + put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 + } + }); + + public HashMap certificateTypeBeanMap; + + AwareFilePrintTypeEnum(HashMap certificateTypeBeanMap) { + this.certificateTypeBeanMap = certificateTypeBeanMap; + } + + public HashMap getCertificateTypeBeanMap() { + return certificateTypeBeanMap; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java index 47fc55e..278951a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java @@ -8,19 +8,24 @@ @Data public class ElectronicImage { - { + /** + * 默认电子签章值 + */ { //关键字索引 (-1) - final Integer keyWordIndex = -1; + keyWordIndex = -1; + /** + * 该电子签章位置是关键字的相对位置 + */ // 电子印章水平位置 - final float horizontal = 300f; + horizontal = 300f; // 电子印章垂直位置 - final float vertical = -55f; + vertical = -55f; // 电子印章宽度 - final float stampWidth = 120; + stampWidth = 120f; // 电子印章高度 - final float stampHeight = 120; + stampHeight = 120f; //照片透明度设置 - final int alpha = 150; + diaphaneity = 150f; } @@ -32,10 +37,10 @@ /** * 透明度 */ - private Integer diaphaneity; + private Float diaphaneity; /** - * 透明度 + * 图片叠加标志 */ private Boolean mereFlag; @@ -44,17 +49,10 @@ */ private Float horizontal; /** - * 关键字 - */ - private String keyWord; - /** - * 关键字索引 - */ - private Integer keyWordIndex; - /** * 电子印章垂直位置 (当前推荐455f) */ private Float vertical; + /** * 电子印章宽度(推荐120) */ @@ -65,14 +63,24 @@ */ private Float stampHeight; - /** - * 书签名,通过名称寻找书签文本所在位置 - */ - private String bookmarkName; /** - * 替换的文本新内容 + * 关键字 */ + private String keyWord; + /** + * 关键字索引 + */ + private Integer keyWordIndex; + + // /** +// * 书签名,通过名称寻找书签文本所在位置 +// */ + private String bookmarkName; + // +// /** +// * 替换的文本新内容 +// */ private String newBookmarkText; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index 060c998..a8a331c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -48,6 +48,7 @@ */ @TableField("certificate_report_type") @ApiModelProperty(value = "证书报告类型", dataType = "String") + @DictCodeField(message = "证书报告类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateReportType; /** @@ -85,7 +86,6 @@ @ApiModelProperty(value = "检校专业", dataType = "String") @DictCodeField(message = "检校专业不合法", cacheName = MeterDictCode.CALIBRATION_MAJOR) private String calibrationMajor; - /** * 出具日期 */ @@ -171,15 +171,6 @@ @DictCodeField(message = "审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) private String approvalStatus; - - /** - * 审批状态(字典code) - */ - @TableField("approval_status") - @ApiModelProperty(value = "打印审批状态", dataType = "String") - @DictCodeField(message = "打印审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) - private String printApprovalStatus; - @TableField("remark") @ApiModelProperty(value = "备注", dataType = "String") private String remark; 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 e378c28..1ef7e71 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 @@ -85,9 +85,9 @@ page.setSize(Integer.MAX_VALUE); request.setCreateUserId(user.getId()); Page certificateListResponsePage = handleApprovalStatus(page, request); - iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.ADVICE_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.CERTIFICATE_PRINT_EXPORT.getSheetName()); } catch (Exception e) { - log.error("客户投诉导出出现异常,异常信息为{}", e); + log.error("证书打印导出出现异常,异常信息为{}", e); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 24c1c75..5264fab 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -151,6 +151,7 @@ for (CustomerSampleInfo sampleInfo : businessOrder.getCustomerSampleInfoList()) { sampleInfo.setDeliverer(businessOrder.getDeliverer()); sampleInfo.setCustomerNo(businessOrder.getCustomerNo()); + sampleInfo.setMeasureType(INSIDE_MEASURE); sampleInfo.setDelivererTel(businessOrder.getDelivererTel()); if ("0".equals(sampleInfo.getIsExistSample())) { ReturnDTO returnDTO = customerSampleService.addSample(sampleInfo); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index 589851f..e7ed7fe 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -86,7 +86,7 @@ Long orderId = dispatchVO.getOrderId(); Long sampleId = dispatchVO.getSampleId(); String sampleStatus = dispatchVO.getSampleStatus(); - //先过滤超期状态下的外检外包 + //先过滤超期状态下的外包 if (!StringUtils.isEmpty(request.getSampleStatus()) && BE_OVERDUE.equals(request.getSampleStatus()) && notSelfMeasure(dispatchVO)) { return; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java index 7e30713..bb611b9 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java @@ -32,14 +32,6 @@ //关键字索引 (-1) private final static Integer keyWordIndex = -1; - // 电子印章水平位置 - private final static float horizontal = 300f; - // 电子印章垂直位置 - private final static float vertical = -55f; - // 电子印章宽度 - private final static float stampWidth = 120; - // 电子印章高度 - private final static float stampHeight = 120; //照片透明度设置 private final static int alpha = 150; @@ -51,28 +43,39 @@ //1、按照模板填充数据,并导出word String wordOldUrl = exportWord(filePrintRegister.getTemplatePath(), filePrintRegister.getTemDir(), filePrintRegister.getFileName(), filePrintRegister.getParams()); //设置透明属性 1、获取照片 2、签章背景透明设置 3、设置照片路径和照片类型进行图片保存 - for (ElectronicImage electronicSeal : filePrintRegister.getElectronicImageList()) { - BufferedImage bi = readImage(electronicSeal.getElectronicSealImageUrl()); - BufferedImage electronSealImage = convertLayout(bi, electronicSeal.getDiaphaneity()); - String stampImgUrl = electronicSeal.getElectronicSealImageUrl(); - String imagePath = stampImgUrl.substring(0, stampImgUrl.length() - 4) + "1.png"; - String[] imageCutOffContents = stampImgUrl.split("."); - electronicSeal.setElectronicSealImageUrl(imagePath); - saveFile(electronSealImage, imageCutOffContents[imageCutOffContents.length - 1], imagePath); - } +// for (ElectronicImage electronicSeal : filePrintRegister.getElectronicImageList()) { +// BufferedImage bi = readImage(electronicSeal.getElectronicSealImageUrl()); +// BufferedImage electronSealImage = convertLayout(bi, electronicSeal.getDiaphaneity()); +// String stampImgUrl = electronicSeal.getElectronicSealImageUrl(); +// String imagePath = stampImgUrl.substring(0, stampImgUrl.length() - 4) + "1.png"; +// String[] imageCutOffContents = stampImgUrl.split("."); +// electronicSeal.setElectronicSealImageUrl(imagePath); +// saveFile(electronSealImage, imageCutOffContents[imageCutOffContents.length - 1], imagePath); +// } //按关键字进行分组 - Map> sameKeySealMaps = filePrintRegister.getElectronicImageList().stream().collect( + Map> sameKeyWordSealMaps = filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage->StringUtils.isNotEmpty(electronicImage.getKeyWord())) + .collect( Collectors.groupingBy(ElectronicImage::getKeyWord) ); // 初始化world,pdf名称参数 String[] filePrintType = filePrintRegister.getTemplatePath().split("\\."); String wordNewUrl = filePrintRegister.getTemplatePath(); - String pdfNewUrl = filePrintType[0]+"."+ "pdf"; + String pdfNewUrl = filePrintType[0] + "." + "pdf"; //3、根据关键字进行添加签章和签字 - for (Map.Entry> entry : sameKeySealMaps.entrySet()) { + for (Map.Entry> entry : sameKeyWordSealMaps.entrySet()) { List electronicSeals = entry.getValue(); addSameKeyWordStamp(wordOldUrl, wordNewUrl, electronicSeals); } + + //获取没有关键字的图片,即绝对路径的图片 + List absolutePathImageList= filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage->StringUtils.isEmpty(electronicImage.getKeyWord())) + .collect(Collectors.toList()); + //根据设置的绝对路径进行图片的填充 + for(ElectronicImage absolutePathImage:absolutePathImageList){ + addAbsolutePathStamp(wordOldUrl, wordNewUrl,absolutePathImage); + } // 4、将新word转化为pdf文件 wordToPdf(wordNewUrl, pdfNewUrl); return pdfNewUrl; @@ -91,19 +94,15 @@ Assert.notNull(temDir, "临时文件路径不能为空"); Assert.notNull(fileName, "导出文件名不能为空"); if (fileName.endsWith(".doc")) { -// HWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); + docToDocx(templatePath, templatePath + "x"); + templatePath += "x"; } -// Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); - if (!temDir.endsWith("/")) { - temDir = temDir; - } + Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); File dir = new File(temDir); if (!dir.getParentFile().exists()) { // 新建文件夹 dir.getParentFile().mkdirs(); } -// operateWord(params,templatePath); - String tmpPath = ""; try { XWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); @@ -146,12 +145,12 @@ docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); //指定电子章位置 //水平位置 - docPicture.setHorizontalPosition(horizontal); + docPicture.setHorizontalPosition(electronicSeal.getHorizontal()); //垂直位置 - docPicture.setVerticalPosition(vertical); + docPicture.setVerticalPosition(electronicSeal.getStampHeight()); //设置电子章大小 - docPicture.setWidth(stampWidth); - docPicture.setHeight(stampHeight); + docPicture.setWidth(electronicSeal.getStampWidth()); + docPicture.setHeight(electronicSeal.getDiaphaneity()); } //保存添加电子章的Word文档 document.saveToFile(wordNewUrl); @@ -165,7 +164,7 @@ * @param bookmarkName 书签名 * @param newBookmarkText 新文本内容 */ - private void replaceBookmarkContent(Document document, String bookmarkName, String newBookmarkText) { + private static void replaceBookmarkContent(Document document, String bookmarkName, String newBookmarkText) { //定位到指定书签位置 BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(document); bookmarksNavigator.moveToBookmark(bookmarkName); @@ -194,7 +193,7 @@ * @param alpha * @return */ - public static BufferedImage convertLayout(BufferedImage imgsrc, int alpha) { + public static BufferedImage convertLayout(BufferedImage imgsrc, float alpha) { try { //创建一个包含透明度的图片,半透明效果必须要存储为png合适才行,存储为jpg,底色为黑色 BufferedImage back = new BufferedImage(imgsrc.getWidth(), imgsrc.getHeight(), BufferedImage.TYPE_INT_ARGB); @@ -242,17 +241,8 @@ * * @param wordOldUrl word文件路径 * @param wordNewUrl 新word文件路径 - * @param stampImgUrl 电子印章图片路径 - * @param horizontal 电子印章水平位置 (当前文件推荐260f) - * @param vertical 电子印章垂直位置 (当前推荐455f) - * @param stampWidth 电子印章宽度(推荐120) - * @param stampHeight 电子印章高度(推荐120) - * @param bookmarkName 书签名,通过名称寻找书签文本所在位置 - * @param newBookmarkText 替换的文本新内容 */ - public void addStamp(String wordOldUrl, String wordNewUrl, String stampImgUrl, - Float horizontal, Float vertical, Float stampWidth, - Float stampHeight, String bookmarkName, String newBookmarkText) { + private static void addAbsolutePathStamp(String wordOldUrl, String wordNewUrl, ElectronicImage absolutePathImage) { // 加载文档 Document document = new Document(); document.loadFromFile(wordOldUrl); @@ -264,31 +254,29 @@ Paragraph paragraph = section.getParagraphs().get(0); // 判断是否需要替换书签位置文本内容 - if (StringUtils.isNotEmpty(bookmarkName)) { - replaceBookmarkContent(document, bookmarkName, newBookmarkText); + if (StringUtils.isNotEmpty(absolutePathImage.getBookmarkName())) { + replaceBookmarkContent(document, absolutePathImage.getBookmarkName(), absolutePathImage.getNewBookmarkText()); } // 添加电子印章 - DocPicture docPicture = paragraph.appendPicture(stampImgUrl); + DocPicture docPicture = paragraph.appendPicture(absolutePathImage.getElectronicSealImageUrl()); // 指定电子章位置 // 水平位置 - docPicture.setHorizontalPosition(horizontal); + docPicture.setHorizontalPosition(absolutePathImage.getHorizontal()); // 垂直位置 - docPicture.setVerticalPosition(vertical); + docPicture.setVerticalPosition(absolutePathImage.getVertical()); // 设置电子章大小 - docPicture.setWidth(stampWidth); - docPicture.setHeight(stampHeight); + docPicture.setWidth(absolutePathImage.getStampWidth()); + docPicture.setHeight(absolutePathImage.getHorizontal()); // 设置图片位于文字顶层 docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); - // 保存添加电子章的Word文档 document.saveToFile(wordNewUrl); document.dispose(); // log.info("文档添加电子印章结束,新WORD文档地址:{}",wordNewUrl); - } @@ -384,10 +372,11 @@ /** * doc 转 docx - * @param sourceFilePath 源文件路径 - * @param destFilePath 转换成docx文件路径 + * + * @param sourceFilePath 源文件路径 + * @param destFilePath 转换成docx文件路径 */ - public static void docToDocx(String sourceFilePath,String destFilePath){ + public static void docToDocx(String sourceFilePath, String destFilePath) { Document document = new Document(); document.loadFromFile(sourceFilePath); document.saveToFile(destFilePath); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java index c84fe0b..ff4713f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java @@ -1,10 +1,6 @@ package com.casic.missiles.service.listeners.processor.register; import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.model.business.BusinessCertificateReport; - -import java.util.ArrayList; -import java.util.List; public interface PrintFileDataGeneric { @@ -13,7 +9,7 @@ * * 2、组装参数param外的参数 * * 3、填充注册表信息参数 */ - FilePrintRegister CustomizedPrintFileRegister(BusinessCertificateReport metaData, String templateFileDir); + FilePrintRegister CustomizedPrintFileRegister(Object object, String templateFileDir); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java index cd43ce8..bde219c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java @@ -5,37 +5,51 @@ import com.casic.missiles.dto.flowable.ApprovalLogResponse; import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.service.business.IBusinessOrderService; +import com.casic.missiles.service.customer.CustomerSampleService; +import com.casic.missiles.service.flowable.ApprovalOperateService; 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.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; public class PrintFileDataSupport { + @Autowired + protected ApprovalOperateService approvalOperateService; + @Autowired + protected IBusinessOrderService businessOrderService; + @Autowired + protected CustomerSampleService customerSampleService; + /** + * 电子签名获取的流程 keyParamList,customizedSignNames具有映射功能 + */ protected List keyParamList; + /** + * 自定义签名名字 + */ protected List customizedSignNames; - protected List> appendNameList; protected PrintFileDataSupport() { this.keyParamList = new ArrayList<>(); customizedSignNames = new ArrayList<>(); - appendNameList = new ArrayList<>(); } @Resource protected PrintFileRegisterMapper fileRegisterMapper; /** + * 初始化文件数据注册信息 * 1、获取证书模板 - * 2、设置临时处理空间路径、文件名称、 + * 2、设置临时处理空间路径、文件名称、文件资源路径 * 3、设置文件id,作为操作空间文件名称,防止对其他同时处理的证书形成影响 */ protected void initialization(FilePrintRegister filePrintRegister, String templateFileDir, BusinessCertificateReport certificateReport) { - templateFileDir = templateFileDir + certificateReport.getId()+"\\"; + templateFileDir = templateFileDir + certificateReport.getId() + "\\"; String fileName = fileRegisterMapper.getSignFileNameById(certificateReport.getTemplateId(), "system_template"); filePrintRegister.setFileName(fileName); filePrintRegister.setTemDir(templateFileDir); @@ -46,7 +60,22 @@ filePrintRegister.setBeDownloadedFileNames(fileNames); } - protected List electronicSignNamesCreator(Map> approvalLogMap) { + /** + * 文件自定义名称参数构建器 + */ + protected void customizedSignNamesParamCreator() { + keyParamList.add("发起人"); + keyParamList.add("审批中"); + keyParamList.add("审批完成"); + customizedSignNames.add("发起人"); + customizedSignNames.add("核验人"); + customizedSignNames.add("批准人"); + } + + /** + * 电子签名构建器 + */ + protected List customizedSignNamesCreator(Map> approvalLogMap, FilePrintRegister filePrintRegister) { List electronicImageList = new ArrayList<>(); for (int i = 0; i < keyParamList.size(); i++) { if (approvalLogMap.containsKey(keyParamList.get(i))) { @@ -57,9 +86,10 @@ if (CollectionUtils.isNotEmpty(approvalLogList)) { approvalLogList.forEach( approvalLog -> { - ElectronicImage electronicImage = new ElectronicImage(); + ElectronicImage electronicImage = defaultElectronicSignName(); String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); electronicImage.setElectronicSealImageUrl(signFileName); + filePrintRegister.getBeDownloadedFileNames().add(signFileName); electronicImage.setKeyWord(customizedSignName); electronicImageList.add(electronicImage); } @@ -69,27 +99,55 @@ return electronicImageList; } - protected List electronicSignSealsCreator(BusinessCertificateReport metaData) { - List electronicImageList = new ArrayList<>(); + /** + * 默认电子签名的图片设置,允许重写 + */ + protected ElectronicImage defaultElectronicSignName() { ElectronicImage electronicImage = new ElectronicImage(); - Long electronicSealId = metaData.getSignId(); + electronicImage.setHorizontal(200f); + return electronicImage; + } + + /** + * 默认电子签章的图片设置,允许重写 + */ + protected ElectronicImage defaultElectronicSignSeal() { + ElectronicImage electronicImage = new ElectronicImage(); + return electronicImage; + } + + /** + * 电子签章获取 + * + * @param electronicSealId 证书报告文件数据 + * @param keyWord 关键字 + * @return + */ + protected ElectronicImage doCreateElectronicSignSeal(Long electronicSealId, String keyWord) { + ElectronicImage electronicImage = defaultElectronicSignSeal(); String electronicSealName = fileRegisterMapper.getSignFileNameById(electronicSealId, "system_sign"); electronicImage.setElectronicSealImageUrl(electronicSealName); -// electronicImage.setKeyWord(customizedSignName); - electronicImageList.add(electronicImage); - if (StringUtils.isNotEmpty(metaData.getApprovalSignId())) { - String[] approvalSignIds = metaData.getApprovalSignId().split(","); -// for (String approvalSignId : approvalSignIds) { -// String electronicSealName = fileRegisterMapper.getSignFileNameById(electronicSealId, "system_sign"); -// } - } - return electronicImageList; + electronicImage.setKeyWord(keyWord); + return electronicImage; + } + + protected Map certificateFilePopulateParamCreator(BusinessCertificateReport metaData) { + Calendar now = Calendar.getInstance(); + BusinessOrder businessOrder = businessOrderService.orderDetail(metaData.getOrderId()); + CustomerSampleInfo customerSampleInfo = customerSampleService.sampleDetail(metaData.getSampleId()); + Map params = new HashMap<>(); + params.put("customerName", businessOrder.getCustomerName()); + params.put("customerAddress", businessOrder.getCustomerAddress()); + params.put("sampleNo", customerSampleInfo.getSampleNo()); + params.put("sampleName", customerSampleInfo.getSampleName()); + params.put("manufacturingNo", customerSampleInfo.getManufacturingNo()); + params.put("y", now.get(Calendar.YEAR)); + params.put("m", (now.get(Calendar.MONTH) + 1)); + params.put("d", now.get(Calendar.DAY_OF_MONTH)); + return params; } - protected void populateElectronicFiles(ElectronicImage electronicImage) { - } - } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java index c6710fe..b60febd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java @@ -2,10 +2,7 @@ import cn.hutool.core.lang.Assert; import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.enums.BusinessExceptionEnum; -import com.casic.missiles.enums.notifyevent.AwareCertificateTypeEnum; -import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.enums.notifyevent.AwareFilePrintTypeEnum; import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.SpringContextUtil; import io.minio.GetObjectArgs; @@ -24,7 +21,7 @@ @Component @Slf4j -public class PrintFileRegister { +public class PrintFileRegister{ @Autowired private MinioClient minioClient; @@ -41,23 +38,23 @@ * 2、进行远程文件的下载工作,支持文件的读写权限操作 * 3、进行文件的填充合并等操作,即通过模板进行打印证书的信息注册 * 4、将注册产生的打印证书信息上传到服务器 - * 5、删除因为打印产生的文件信息 + * 5、递归删除因为打印产生的文件信息 * 6、返还打印产生的证书文件 */ - public String registerPrintFile(BusinessCertificateReport certificateReport) { + public String registerPrintFile(Object printFileRegister,String prefixType) { String tempLocalFileDir = localFileDir; - Assert.isFalse(Objects.isNull(certificateReport), () -> { + Assert.isFalse(Objects.isNull(printFileRegister), () -> { throw new RuntimeException("the certificateReport is null,please check your params..."); }); //获取对应证书的beanName - String fileDataRegisterBeanName = AwareCertificateTypeEnum.CERTIFICATE_TYPE_BEAN_MAP - .getCertificateTypeBeanMap().get(certificateReport.getCertificateReportType()); + String fileDataRegisterBeanName = AwareFilePrintTypeEnum.CERTIFICATE_TYPE_BEAN_MAP + .getCertificateTypeBeanMap().get(prefixType); Assert.isFalse(StringUtils.isEmpty(fileDataRegisterBeanName), () -> { throw new RuntimeException("the bean mapped by this certificate type has no mapping relationship..."); }); PrintFileDataGeneric fileDataGeneric = SpringContextUtil.getBean(fileDataRegisterBeanName); if (fileDataGeneric != null) { - FilePrintRegister metaData = fileDataGeneric.CustomizedPrintFileRegister(certificateReport, tempLocalFileDir); + FilePrintRegister metaData = fileDataGeneric.CustomizedPrintFileRegister(printFileRegister, tempLocalFileDir); //获取文件夹目录,没有则创建 tempLocalFileDir = tempLocalFileDir + metaData.getFileNameId() + "\\"; getLocalFileDir(tempLocalFileDir); 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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 2cd8fba..ac65bf4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -39,7 +39,8 @@ CERTIFICATE_REPORT("certificateReport", "certificateReport", "证书报告"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), - OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"); + OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java deleted file mode 100644 index d48545b..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.enums.business; - -public interface CertificateTypeEnum { - - String CALIBRATION_CERTIFICATE = "0"; - String TEST_REPORT = "1"; -} 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 new file mode 100644 index 0000000..f421fb4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -0,0 +1,12 @@ +package com.casic.missiles.enums.business; + +public interface FilePrintTypeEnum { + + String CALIBRATION_CERTIFICATE = "样品内部检校证书"; + String TEST_REPORT = "样品外包证书"; + +// 自有设备内部检校证书 +// 自有设备外包证书 +// 自有设备溯源证书 + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java deleted file mode 100644 index 6779003..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.missiles.enums.notifyevent; - -import com.casic.missiles.enums.business.CertificateTypeEnum; - -import java.util.HashMap; - -public enum AwareCertificateTypeEnum implements PrintFileDataRegisterBeanEnum, CertificateTypeEnum { - - CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { - { - put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 - put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 - } - }); - - public HashMap certificateTypeBeanMap; - - AwareCertificateTypeEnum(HashMap certificateTypeBeanMap) { - this.certificateTypeBeanMap = certificateTypeBeanMap; - } - - public HashMap getCertificateTypeBeanMap() { - return certificateTypeBeanMap; - } -} 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 new file mode 100644 index 0000000..da9a7be --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -0,0 +1,25 @@ +package com.casic.missiles.enums.notifyevent; + +import com.casic.missiles.enums.business.FilePrintTypeEnum; + +import java.util.HashMap; + +public enum AwareFilePrintTypeEnum implements PrintFileDataRegisterBeanEnum, FilePrintTypeEnum { + + CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { + { + put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 + put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 + } + }); + + public HashMap certificateTypeBeanMap; + + AwareFilePrintTypeEnum(HashMap certificateTypeBeanMap) { + this.certificateTypeBeanMap = certificateTypeBeanMap; + } + + public HashMap getCertificateTypeBeanMap() { + return certificateTypeBeanMap; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java index 47fc55e..278951a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java @@ -8,19 +8,24 @@ @Data public class ElectronicImage { - { + /** + * 默认电子签章值 + */ { //关键字索引 (-1) - final Integer keyWordIndex = -1; + keyWordIndex = -1; + /** + * 该电子签章位置是关键字的相对位置 + */ // 电子印章水平位置 - final float horizontal = 300f; + horizontal = 300f; // 电子印章垂直位置 - final float vertical = -55f; + vertical = -55f; // 电子印章宽度 - final float stampWidth = 120; + stampWidth = 120f; // 电子印章高度 - final float stampHeight = 120; + stampHeight = 120f; //照片透明度设置 - final int alpha = 150; + diaphaneity = 150f; } @@ -32,10 +37,10 @@ /** * 透明度 */ - private Integer diaphaneity; + private Float diaphaneity; /** - * 透明度 + * 图片叠加标志 */ private Boolean mereFlag; @@ -44,17 +49,10 @@ */ private Float horizontal; /** - * 关键字 - */ - private String keyWord; - /** - * 关键字索引 - */ - private Integer keyWordIndex; - /** * 电子印章垂直位置 (当前推荐455f) */ private Float vertical; + /** * 电子印章宽度(推荐120) */ @@ -65,14 +63,24 @@ */ private Float stampHeight; - /** - * 书签名,通过名称寻找书签文本所在位置 - */ - private String bookmarkName; /** - * 替换的文本新内容 + * 关键字 */ + private String keyWord; + /** + * 关键字索引 + */ + private Integer keyWordIndex; + + // /** +// * 书签名,通过名称寻找书签文本所在位置 +// */ + private String bookmarkName; + // +// /** +// * 替换的文本新内容 +// */ private String newBookmarkText; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index 060c998..a8a331c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -48,6 +48,7 @@ */ @TableField("certificate_report_type") @ApiModelProperty(value = "证书报告类型", dataType = "String") + @DictCodeField(message = "证书报告类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateReportType; /** @@ -85,7 +86,6 @@ @ApiModelProperty(value = "检校专业", dataType = "String") @DictCodeField(message = "检校专业不合法", cacheName = MeterDictCode.CALIBRATION_MAJOR) private String calibrationMajor; - /** * 出具日期 */ @@ -171,15 +171,6 @@ @DictCodeField(message = "审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) private String approvalStatus; - - /** - * 审批状态(字典code) - */ - @TableField("approval_status") - @ApiModelProperty(value = "打印审批状态", dataType = "String") - @DictCodeField(message = "打印审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) - private String printApprovalStatus; - @TableField("remark") @ApiModelProperty(value = "备注", dataType = "String") private String remark; 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 e378c28..1ef7e71 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 @@ -85,9 +85,9 @@ page.setSize(Integer.MAX_VALUE); request.setCreateUserId(user.getId()); Page certificateListResponsePage = handleApprovalStatus(page, request); - iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.ADVICE_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.CERTIFICATE_PRINT_EXPORT.getSheetName()); } catch (Exception e) { - log.error("客户投诉导出出现异常,异常信息为{}", e); + log.error("证书打印导出出现异常,异常信息为{}", e); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 24c1c75..5264fab 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -151,6 +151,7 @@ for (CustomerSampleInfo sampleInfo : businessOrder.getCustomerSampleInfoList()) { sampleInfo.setDeliverer(businessOrder.getDeliverer()); sampleInfo.setCustomerNo(businessOrder.getCustomerNo()); + sampleInfo.setMeasureType(INSIDE_MEASURE); sampleInfo.setDelivererTel(businessOrder.getDelivererTel()); if ("0".equals(sampleInfo.getIsExistSample())) { ReturnDTO returnDTO = customerSampleService.addSample(sampleInfo); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index 589851f..e7ed7fe 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -86,7 +86,7 @@ Long orderId = dispatchVO.getOrderId(); Long sampleId = dispatchVO.getSampleId(); String sampleStatus = dispatchVO.getSampleStatus(); - //先过滤超期状态下的外检外包 + //先过滤超期状态下的外包 if (!StringUtils.isEmpty(request.getSampleStatus()) && BE_OVERDUE.equals(request.getSampleStatus()) && notSelfMeasure(dispatchVO)) { return; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java index 7e30713..bb611b9 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java @@ -32,14 +32,6 @@ //关键字索引 (-1) private final static Integer keyWordIndex = -1; - // 电子印章水平位置 - private final static float horizontal = 300f; - // 电子印章垂直位置 - private final static float vertical = -55f; - // 电子印章宽度 - private final static float stampWidth = 120; - // 电子印章高度 - private final static float stampHeight = 120; //照片透明度设置 private final static int alpha = 150; @@ -51,28 +43,39 @@ //1、按照模板填充数据,并导出word String wordOldUrl = exportWord(filePrintRegister.getTemplatePath(), filePrintRegister.getTemDir(), filePrintRegister.getFileName(), filePrintRegister.getParams()); //设置透明属性 1、获取照片 2、签章背景透明设置 3、设置照片路径和照片类型进行图片保存 - for (ElectronicImage electronicSeal : filePrintRegister.getElectronicImageList()) { - BufferedImage bi = readImage(electronicSeal.getElectronicSealImageUrl()); - BufferedImage electronSealImage = convertLayout(bi, electronicSeal.getDiaphaneity()); - String stampImgUrl = electronicSeal.getElectronicSealImageUrl(); - String imagePath = stampImgUrl.substring(0, stampImgUrl.length() - 4) + "1.png"; - String[] imageCutOffContents = stampImgUrl.split("."); - electronicSeal.setElectronicSealImageUrl(imagePath); - saveFile(electronSealImage, imageCutOffContents[imageCutOffContents.length - 1], imagePath); - } +// for (ElectronicImage electronicSeal : filePrintRegister.getElectronicImageList()) { +// BufferedImage bi = readImage(electronicSeal.getElectronicSealImageUrl()); +// BufferedImage electronSealImage = convertLayout(bi, electronicSeal.getDiaphaneity()); +// String stampImgUrl = electronicSeal.getElectronicSealImageUrl(); +// String imagePath = stampImgUrl.substring(0, stampImgUrl.length() - 4) + "1.png"; +// String[] imageCutOffContents = stampImgUrl.split("."); +// electronicSeal.setElectronicSealImageUrl(imagePath); +// saveFile(electronSealImage, imageCutOffContents[imageCutOffContents.length - 1], imagePath); +// } //按关键字进行分组 - Map> sameKeySealMaps = filePrintRegister.getElectronicImageList().stream().collect( + Map> sameKeyWordSealMaps = filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage->StringUtils.isNotEmpty(electronicImage.getKeyWord())) + .collect( Collectors.groupingBy(ElectronicImage::getKeyWord) ); // 初始化world,pdf名称参数 String[] filePrintType = filePrintRegister.getTemplatePath().split("\\."); String wordNewUrl = filePrintRegister.getTemplatePath(); - String pdfNewUrl = filePrintType[0]+"."+ "pdf"; + String pdfNewUrl = filePrintType[0] + "." + "pdf"; //3、根据关键字进行添加签章和签字 - for (Map.Entry> entry : sameKeySealMaps.entrySet()) { + for (Map.Entry> entry : sameKeyWordSealMaps.entrySet()) { List electronicSeals = entry.getValue(); addSameKeyWordStamp(wordOldUrl, wordNewUrl, electronicSeals); } + + //获取没有关键字的图片,即绝对路径的图片 + List absolutePathImageList= filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage->StringUtils.isEmpty(electronicImage.getKeyWord())) + .collect(Collectors.toList()); + //根据设置的绝对路径进行图片的填充 + for(ElectronicImage absolutePathImage:absolutePathImageList){ + addAbsolutePathStamp(wordOldUrl, wordNewUrl,absolutePathImage); + } // 4、将新word转化为pdf文件 wordToPdf(wordNewUrl, pdfNewUrl); return pdfNewUrl; @@ -91,19 +94,15 @@ Assert.notNull(temDir, "临时文件路径不能为空"); Assert.notNull(fileName, "导出文件名不能为空"); if (fileName.endsWith(".doc")) { -// HWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); + docToDocx(templatePath, templatePath + "x"); + templatePath += "x"; } -// Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); - if (!temDir.endsWith("/")) { - temDir = temDir; - } + Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); File dir = new File(temDir); if (!dir.getParentFile().exists()) { // 新建文件夹 dir.getParentFile().mkdirs(); } -// operateWord(params,templatePath); - String tmpPath = ""; try { XWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); @@ -146,12 +145,12 @@ docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); //指定电子章位置 //水平位置 - docPicture.setHorizontalPosition(horizontal); + docPicture.setHorizontalPosition(electronicSeal.getHorizontal()); //垂直位置 - docPicture.setVerticalPosition(vertical); + docPicture.setVerticalPosition(electronicSeal.getStampHeight()); //设置电子章大小 - docPicture.setWidth(stampWidth); - docPicture.setHeight(stampHeight); + docPicture.setWidth(electronicSeal.getStampWidth()); + docPicture.setHeight(electronicSeal.getDiaphaneity()); } //保存添加电子章的Word文档 document.saveToFile(wordNewUrl); @@ -165,7 +164,7 @@ * @param bookmarkName 书签名 * @param newBookmarkText 新文本内容 */ - private void replaceBookmarkContent(Document document, String bookmarkName, String newBookmarkText) { + private static void replaceBookmarkContent(Document document, String bookmarkName, String newBookmarkText) { //定位到指定书签位置 BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(document); bookmarksNavigator.moveToBookmark(bookmarkName); @@ -194,7 +193,7 @@ * @param alpha * @return */ - public static BufferedImage convertLayout(BufferedImage imgsrc, int alpha) { + public static BufferedImage convertLayout(BufferedImage imgsrc, float alpha) { try { //创建一个包含透明度的图片,半透明效果必须要存储为png合适才行,存储为jpg,底色为黑色 BufferedImage back = new BufferedImage(imgsrc.getWidth(), imgsrc.getHeight(), BufferedImage.TYPE_INT_ARGB); @@ -242,17 +241,8 @@ * * @param wordOldUrl word文件路径 * @param wordNewUrl 新word文件路径 - * @param stampImgUrl 电子印章图片路径 - * @param horizontal 电子印章水平位置 (当前文件推荐260f) - * @param vertical 电子印章垂直位置 (当前推荐455f) - * @param stampWidth 电子印章宽度(推荐120) - * @param stampHeight 电子印章高度(推荐120) - * @param bookmarkName 书签名,通过名称寻找书签文本所在位置 - * @param newBookmarkText 替换的文本新内容 */ - public void addStamp(String wordOldUrl, String wordNewUrl, String stampImgUrl, - Float horizontal, Float vertical, Float stampWidth, - Float stampHeight, String bookmarkName, String newBookmarkText) { + private static void addAbsolutePathStamp(String wordOldUrl, String wordNewUrl, ElectronicImage absolutePathImage) { // 加载文档 Document document = new Document(); document.loadFromFile(wordOldUrl); @@ -264,31 +254,29 @@ Paragraph paragraph = section.getParagraphs().get(0); // 判断是否需要替换书签位置文本内容 - if (StringUtils.isNotEmpty(bookmarkName)) { - replaceBookmarkContent(document, bookmarkName, newBookmarkText); + if (StringUtils.isNotEmpty(absolutePathImage.getBookmarkName())) { + replaceBookmarkContent(document, absolutePathImage.getBookmarkName(), absolutePathImage.getNewBookmarkText()); } // 添加电子印章 - DocPicture docPicture = paragraph.appendPicture(stampImgUrl); + DocPicture docPicture = paragraph.appendPicture(absolutePathImage.getElectronicSealImageUrl()); // 指定电子章位置 // 水平位置 - docPicture.setHorizontalPosition(horizontal); + docPicture.setHorizontalPosition(absolutePathImage.getHorizontal()); // 垂直位置 - docPicture.setVerticalPosition(vertical); + docPicture.setVerticalPosition(absolutePathImage.getVertical()); // 设置电子章大小 - docPicture.setWidth(stampWidth); - docPicture.setHeight(stampHeight); + docPicture.setWidth(absolutePathImage.getStampWidth()); + docPicture.setHeight(absolutePathImage.getHorizontal()); // 设置图片位于文字顶层 docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); - // 保存添加电子章的Word文档 document.saveToFile(wordNewUrl); document.dispose(); // log.info("文档添加电子印章结束,新WORD文档地址:{}",wordNewUrl); - } @@ -384,10 +372,11 @@ /** * doc 转 docx - * @param sourceFilePath 源文件路径 - * @param destFilePath 转换成docx文件路径 + * + * @param sourceFilePath 源文件路径 + * @param destFilePath 转换成docx文件路径 */ - public static void docToDocx(String sourceFilePath,String destFilePath){ + public static void docToDocx(String sourceFilePath, String destFilePath) { Document document = new Document(); document.loadFromFile(sourceFilePath); document.saveToFile(destFilePath); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java index c84fe0b..ff4713f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java @@ -1,10 +1,6 @@ package com.casic.missiles.service.listeners.processor.register; import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.model.business.BusinessCertificateReport; - -import java.util.ArrayList; -import java.util.List; public interface PrintFileDataGeneric { @@ -13,7 +9,7 @@ * * 2、组装参数param外的参数 * * 3、填充注册表信息参数 */ - FilePrintRegister CustomizedPrintFileRegister(BusinessCertificateReport metaData, String templateFileDir); + FilePrintRegister CustomizedPrintFileRegister(Object object, String templateFileDir); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java index cd43ce8..bde219c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java @@ -5,37 +5,51 @@ import com.casic.missiles.dto.flowable.ApprovalLogResponse; import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.service.business.IBusinessOrderService; +import com.casic.missiles.service.customer.CustomerSampleService; +import com.casic.missiles.service.flowable.ApprovalOperateService; 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.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; public class PrintFileDataSupport { + @Autowired + protected ApprovalOperateService approvalOperateService; + @Autowired + protected IBusinessOrderService businessOrderService; + @Autowired + protected CustomerSampleService customerSampleService; + /** + * 电子签名获取的流程 keyParamList,customizedSignNames具有映射功能 + */ protected List keyParamList; + /** + * 自定义签名名字 + */ protected List customizedSignNames; - protected List> appendNameList; protected PrintFileDataSupport() { this.keyParamList = new ArrayList<>(); customizedSignNames = new ArrayList<>(); - appendNameList = new ArrayList<>(); } @Resource protected PrintFileRegisterMapper fileRegisterMapper; /** + * 初始化文件数据注册信息 * 1、获取证书模板 - * 2、设置临时处理空间路径、文件名称、 + * 2、设置临时处理空间路径、文件名称、文件资源路径 * 3、设置文件id,作为操作空间文件名称,防止对其他同时处理的证书形成影响 */ protected void initialization(FilePrintRegister filePrintRegister, String templateFileDir, BusinessCertificateReport certificateReport) { - templateFileDir = templateFileDir + certificateReport.getId()+"\\"; + templateFileDir = templateFileDir + certificateReport.getId() + "\\"; String fileName = fileRegisterMapper.getSignFileNameById(certificateReport.getTemplateId(), "system_template"); filePrintRegister.setFileName(fileName); filePrintRegister.setTemDir(templateFileDir); @@ -46,7 +60,22 @@ filePrintRegister.setBeDownloadedFileNames(fileNames); } - protected List electronicSignNamesCreator(Map> approvalLogMap) { + /** + * 文件自定义名称参数构建器 + */ + protected void customizedSignNamesParamCreator() { + keyParamList.add("发起人"); + keyParamList.add("审批中"); + keyParamList.add("审批完成"); + customizedSignNames.add("发起人"); + customizedSignNames.add("核验人"); + customizedSignNames.add("批准人"); + } + + /** + * 电子签名构建器 + */ + protected List customizedSignNamesCreator(Map> approvalLogMap, FilePrintRegister filePrintRegister) { List electronicImageList = new ArrayList<>(); for (int i = 0; i < keyParamList.size(); i++) { if (approvalLogMap.containsKey(keyParamList.get(i))) { @@ -57,9 +86,10 @@ if (CollectionUtils.isNotEmpty(approvalLogList)) { approvalLogList.forEach( approvalLog -> { - ElectronicImage electronicImage = new ElectronicImage(); + ElectronicImage electronicImage = defaultElectronicSignName(); String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); electronicImage.setElectronicSealImageUrl(signFileName); + filePrintRegister.getBeDownloadedFileNames().add(signFileName); electronicImage.setKeyWord(customizedSignName); electronicImageList.add(electronicImage); } @@ -69,27 +99,55 @@ return electronicImageList; } - protected List electronicSignSealsCreator(BusinessCertificateReport metaData) { - List electronicImageList = new ArrayList<>(); + /** + * 默认电子签名的图片设置,允许重写 + */ + protected ElectronicImage defaultElectronicSignName() { ElectronicImage electronicImage = new ElectronicImage(); - Long electronicSealId = metaData.getSignId(); + electronicImage.setHorizontal(200f); + return electronicImage; + } + + /** + * 默认电子签章的图片设置,允许重写 + */ + protected ElectronicImage defaultElectronicSignSeal() { + ElectronicImage electronicImage = new ElectronicImage(); + return electronicImage; + } + + /** + * 电子签章获取 + * + * @param electronicSealId 证书报告文件数据 + * @param keyWord 关键字 + * @return + */ + protected ElectronicImage doCreateElectronicSignSeal(Long electronicSealId, String keyWord) { + ElectronicImage electronicImage = defaultElectronicSignSeal(); String electronicSealName = fileRegisterMapper.getSignFileNameById(electronicSealId, "system_sign"); electronicImage.setElectronicSealImageUrl(electronicSealName); -// electronicImage.setKeyWord(customizedSignName); - electronicImageList.add(electronicImage); - if (StringUtils.isNotEmpty(metaData.getApprovalSignId())) { - String[] approvalSignIds = metaData.getApprovalSignId().split(","); -// for (String approvalSignId : approvalSignIds) { -// String electronicSealName = fileRegisterMapper.getSignFileNameById(electronicSealId, "system_sign"); -// } - } - return electronicImageList; + electronicImage.setKeyWord(keyWord); + return electronicImage; + } + + protected Map certificateFilePopulateParamCreator(BusinessCertificateReport metaData) { + Calendar now = Calendar.getInstance(); + BusinessOrder businessOrder = businessOrderService.orderDetail(metaData.getOrderId()); + CustomerSampleInfo customerSampleInfo = customerSampleService.sampleDetail(metaData.getSampleId()); + Map params = new HashMap<>(); + params.put("customerName", businessOrder.getCustomerName()); + params.put("customerAddress", businessOrder.getCustomerAddress()); + params.put("sampleNo", customerSampleInfo.getSampleNo()); + params.put("sampleName", customerSampleInfo.getSampleName()); + params.put("manufacturingNo", customerSampleInfo.getManufacturingNo()); + params.put("y", now.get(Calendar.YEAR)); + params.put("m", (now.get(Calendar.MONTH) + 1)); + params.put("d", now.get(Calendar.DAY_OF_MONTH)); + return params; } - protected void populateElectronicFiles(ElectronicImage electronicImage) { - } - } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java index c6710fe..b60febd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java @@ -2,10 +2,7 @@ import cn.hutool.core.lang.Assert; import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.enums.BusinessExceptionEnum; -import com.casic.missiles.enums.notifyevent.AwareCertificateTypeEnum; -import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.enums.notifyevent.AwareFilePrintTypeEnum; import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.SpringContextUtil; import io.minio.GetObjectArgs; @@ -24,7 +21,7 @@ @Component @Slf4j -public class PrintFileRegister { +public class PrintFileRegister{ @Autowired private MinioClient minioClient; @@ -41,23 +38,23 @@ * 2、进行远程文件的下载工作,支持文件的读写权限操作 * 3、进行文件的填充合并等操作,即通过模板进行打印证书的信息注册 * 4、将注册产生的打印证书信息上传到服务器 - * 5、删除因为打印产生的文件信息 + * 5、递归删除因为打印产生的文件信息 * 6、返还打印产生的证书文件 */ - public String registerPrintFile(BusinessCertificateReport certificateReport) { + public String registerPrintFile(Object printFileRegister,String prefixType) { String tempLocalFileDir = localFileDir; - Assert.isFalse(Objects.isNull(certificateReport), () -> { + Assert.isFalse(Objects.isNull(printFileRegister), () -> { throw new RuntimeException("the certificateReport is null,please check your params..."); }); //获取对应证书的beanName - String fileDataRegisterBeanName = AwareCertificateTypeEnum.CERTIFICATE_TYPE_BEAN_MAP - .getCertificateTypeBeanMap().get(certificateReport.getCertificateReportType()); + String fileDataRegisterBeanName = AwareFilePrintTypeEnum.CERTIFICATE_TYPE_BEAN_MAP + .getCertificateTypeBeanMap().get(prefixType); Assert.isFalse(StringUtils.isEmpty(fileDataRegisterBeanName), () -> { throw new RuntimeException("the bean mapped by this certificate type has no mapping relationship..."); }); PrintFileDataGeneric fileDataGeneric = SpringContextUtil.getBean(fileDataRegisterBeanName); if (fileDataGeneric != null) { - FilePrintRegister metaData = fileDataGeneric.CustomizedPrintFileRegister(certificateReport, tempLocalFileDir); + FilePrintRegister metaData = fileDataGeneric.CustomizedPrintFileRegister(printFileRegister, tempLocalFileDir); //获取文件夹目录,没有则创建 tempLocalFileDir = tempLocalFileDir + metaData.getFileNameId() + "\\"; getLocalFileDir(tempLocalFileDir); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/CalibrationPrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/CalibrationPrintFileData.java deleted file mode 100644 index eb95a6a..0000000 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/CalibrationPrintFileData.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.casic.missiles.service.listeners.processor.register.data; - -import com.casic.missiles.dto.business.certificate.ElectronicImage; -import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.enums.notifyevent.PrintFileDataRegisterBeanEnum; -import com.casic.missiles.service.listeners.processor.register.PrintFileDataGeneric; -import com.casic.missiles.service.listeners.processor.register.PrintFileDataSupport; -import com.casic.missiles.model.business.BusinessCertificateReport; -import com.casic.missiles.model.business.BusinessOrder; -import com.casic.missiles.model.customer.CustomerSampleInfo; -import com.casic.missiles.service.business.IBusinessOrderService; -import com.casic.missiles.service.customer.CustomerSampleService; -import lombok.AllArgsConstructor; -import org.springframework.stereotype.Component; - -import java.util.*; - -/** - * 校准证书参数生成 - */ -@Component(PrintFileDataRegisterBeanEnum.CALIBRATION_CERTIFICATE_BEAN) -@AllArgsConstructor -public class CalibrationPrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { - - private final IBusinessOrderService businessOrderService; - private final CustomerSampleService customerSampleService; - - /** - * 1、进行打印证书对象的初始化 - * 2、获取定制化的签名 - * 3、获取定制化的参数 - * - * @param metaData 证书报告信息 - * @param templateFileDir 本地进行打印报告组合的路径 - * @return - */ - @Override - public FilePrintRegister CustomizedPrintFileRegister(BusinessCertificateReport metaData, String templateFileDir) { - FilePrintRegister filePrintRegister = new FilePrintRegister(); - initialization(filePrintRegister, templateFileDir, metaData); - filePrintRegister.setElectronicImageList(this.getCustomizedSignName(metaData)); - doPopulatePrintFileRegister(filePrintRegister, metaData); - return filePrintRegister; - } - - /** - * 每一种证书可能存在一个或者多个定制化的签名、签章 - */ - private List getCustomizedSignName(BusinessCertificateReport certificateReport) { - List customizedSignNames = new ArrayList<>(); - List fileNames = new ArrayList<>(); - String signName = fileRegisterMapper.getSignFileNameById(certificateReport.getSignId(), "system_sign"); - fileNames.add(signName); - return customizedSignNames; - } - - /** - * 定制化的证书参数 - */ - private void doPopulatePrintFileRegister(FilePrintRegister filePrintRegister, BusinessCertificateReport metaData) { - Calendar now = Calendar.getInstance(); - BusinessOrder businessOrder =businessOrderService.orderDetail(metaData.getOrderId()); - CustomerSampleInfo customerSampleInfo=customerSampleService.sampleDetail(metaData.getSampleId()); - Map params = new HashMap<>(); - params.put("customerName",businessOrder.getCustomerName()); - params.put("customerAddress",businessOrder.getCustomerAddress()); - params.put("sampleNo",customerSampleInfo.getSampleNo()); - params.put("sampleName",customerSampleInfo.getSampleName()); - params.put("manufacturingNo",customerSampleInfo.getManufacturingNo()); - params.put("y", now.get(Calendar.YEAR)); - params.put("m", (now.get(Calendar.MONTH) + 1)); - params.put("d", now.get(Calendar.DAY_OF_MONTH)); - filePrintRegister.setParams(params); - } - - -} 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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 2cd8fba..ac65bf4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -39,7 +39,8 @@ CERTIFICATE_REPORT("certificateReport", "certificateReport", "证书报告"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), - OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"); + OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java deleted file mode 100644 index d48545b..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.enums.business; - -public interface CertificateTypeEnum { - - String CALIBRATION_CERTIFICATE = "0"; - String TEST_REPORT = "1"; -} 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 new file mode 100644 index 0000000..f421fb4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -0,0 +1,12 @@ +package com.casic.missiles.enums.business; + +public interface FilePrintTypeEnum { + + String CALIBRATION_CERTIFICATE = "样品内部检校证书"; + String TEST_REPORT = "样品外包证书"; + +// 自有设备内部检校证书 +// 自有设备外包证书 +// 自有设备溯源证书 + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java deleted file mode 100644 index 6779003..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.missiles.enums.notifyevent; - -import com.casic.missiles.enums.business.CertificateTypeEnum; - -import java.util.HashMap; - -public enum AwareCertificateTypeEnum implements PrintFileDataRegisterBeanEnum, CertificateTypeEnum { - - CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { - { - put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 - put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 - } - }); - - public HashMap certificateTypeBeanMap; - - AwareCertificateTypeEnum(HashMap certificateTypeBeanMap) { - this.certificateTypeBeanMap = certificateTypeBeanMap; - } - - public HashMap getCertificateTypeBeanMap() { - return certificateTypeBeanMap; - } -} 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 new file mode 100644 index 0000000..da9a7be --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -0,0 +1,25 @@ +package com.casic.missiles.enums.notifyevent; + +import com.casic.missiles.enums.business.FilePrintTypeEnum; + +import java.util.HashMap; + +public enum AwareFilePrintTypeEnum implements PrintFileDataRegisterBeanEnum, FilePrintTypeEnum { + + CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { + { + put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 + put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 + } + }); + + public HashMap certificateTypeBeanMap; + + AwareFilePrintTypeEnum(HashMap certificateTypeBeanMap) { + this.certificateTypeBeanMap = certificateTypeBeanMap; + } + + public HashMap getCertificateTypeBeanMap() { + return certificateTypeBeanMap; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java index 47fc55e..278951a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java @@ -8,19 +8,24 @@ @Data public class ElectronicImage { - { + /** + * 默认电子签章值 + */ { //关键字索引 (-1) - final Integer keyWordIndex = -1; + keyWordIndex = -1; + /** + * 该电子签章位置是关键字的相对位置 + */ // 电子印章水平位置 - final float horizontal = 300f; + horizontal = 300f; // 电子印章垂直位置 - final float vertical = -55f; + vertical = -55f; // 电子印章宽度 - final float stampWidth = 120; + stampWidth = 120f; // 电子印章高度 - final float stampHeight = 120; + stampHeight = 120f; //照片透明度设置 - final int alpha = 150; + diaphaneity = 150f; } @@ -32,10 +37,10 @@ /** * 透明度 */ - private Integer diaphaneity; + private Float diaphaneity; /** - * 透明度 + * 图片叠加标志 */ private Boolean mereFlag; @@ -44,17 +49,10 @@ */ private Float horizontal; /** - * 关键字 - */ - private String keyWord; - /** - * 关键字索引 - */ - private Integer keyWordIndex; - /** * 电子印章垂直位置 (当前推荐455f) */ private Float vertical; + /** * 电子印章宽度(推荐120) */ @@ -65,14 +63,24 @@ */ private Float stampHeight; - /** - * 书签名,通过名称寻找书签文本所在位置 - */ - private String bookmarkName; /** - * 替换的文本新内容 + * 关键字 */ + private String keyWord; + /** + * 关键字索引 + */ + private Integer keyWordIndex; + + // /** +// * 书签名,通过名称寻找书签文本所在位置 +// */ + private String bookmarkName; + // +// /** +// * 替换的文本新内容 +// */ private String newBookmarkText; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index 060c998..a8a331c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -48,6 +48,7 @@ */ @TableField("certificate_report_type") @ApiModelProperty(value = "证书报告类型", dataType = "String") + @DictCodeField(message = "证书报告类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateReportType; /** @@ -85,7 +86,6 @@ @ApiModelProperty(value = "检校专业", dataType = "String") @DictCodeField(message = "检校专业不合法", cacheName = MeterDictCode.CALIBRATION_MAJOR) private String calibrationMajor; - /** * 出具日期 */ @@ -171,15 +171,6 @@ @DictCodeField(message = "审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) private String approvalStatus; - - /** - * 审批状态(字典code) - */ - @TableField("approval_status") - @ApiModelProperty(value = "打印审批状态", dataType = "String") - @DictCodeField(message = "打印审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) - private String printApprovalStatus; - @TableField("remark") @ApiModelProperty(value = "备注", dataType = "String") private String remark; 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 e378c28..1ef7e71 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 @@ -85,9 +85,9 @@ page.setSize(Integer.MAX_VALUE); request.setCreateUserId(user.getId()); Page certificateListResponsePage = handleApprovalStatus(page, request); - iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.ADVICE_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.CERTIFICATE_PRINT_EXPORT.getSheetName()); } catch (Exception e) { - log.error("客户投诉导出出现异常,异常信息为{}", e); + log.error("证书打印导出出现异常,异常信息为{}", e); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 24c1c75..5264fab 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -151,6 +151,7 @@ for (CustomerSampleInfo sampleInfo : businessOrder.getCustomerSampleInfoList()) { sampleInfo.setDeliverer(businessOrder.getDeliverer()); sampleInfo.setCustomerNo(businessOrder.getCustomerNo()); + sampleInfo.setMeasureType(INSIDE_MEASURE); sampleInfo.setDelivererTel(businessOrder.getDelivererTel()); if ("0".equals(sampleInfo.getIsExistSample())) { ReturnDTO returnDTO = customerSampleService.addSample(sampleInfo); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index 589851f..e7ed7fe 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -86,7 +86,7 @@ Long orderId = dispatchVO.getOrderId(); Long sampleId = dispatchVO.getSampleId(); String sampleStatus = dispatchVO.getSampleStatus(); - //先过滤超期状态下的外检外包 + //先过滤超期状态下的外包 if (!StringUtils.isEmpty(request.getSampleStatus()) && BE_OVERDUE.equals(request.getSampleStatus()) && notSelfMeasure(dispatchVO)) { return; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java index 7e30713..bb611b9 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java @@ -32,14 +32,6 @@ //关键字索引 (-1) private final static Integer keyWordIndex = -1; - // 电子印章水平位置 - private final static float horizontal = 300f; - // 电子印章垂直位置 - private final static float vertical = -55f; - // 电子印章宽度 - private final static float stampWidth = 120; - // 电子印章高度 - private final static float stampHeight = 120; //照片透明度设置 private final static int alpha = 150; @@ -51,28 +43,39 @@ //1、按照模板填充数据,并导出word String wordOldUrl = exportWord(filePrintRegister.getTemplatePath(), filePrintRegister.getTemDir(), filePrintRegister.getFileName(), filePrintRegister.getParams()); //设置透明属性 1、获取照片 2、签章背景透明设置 3、设置照片路径和照片类型进行图片保存 - for (ElectronicImage electronicSeal : filePrintRegister.getElectronicImageList()) { - BufferedImage bi = readImage(electronicSeal.getElectronicSealImageUrl()); - BufferedImage electronSealImage = convertLayout(bi, electronicSeal.getDiaphaneity()); - String stampImgUrl = electronicSeal.getElectronicSealImageUrl(); - String imagePath = stampImgUrl.substring(0, stampImgUrl.length() - 4) + "1.png"; - String[] imageCutOffContents = stampImgUrl.split("."); - electronicSeal.setElectronicSealImageUrl(imagePath); - saveFile(electronSealImage, imageCutOffContents[imageCutOffContents.length - 1], imagePath); - } +// for (ElectronicImage electronicSeal : filePrintRegister.getElectronicImageList()) { +// BufferedImage bi = readImage(electronicSeal.getElectronicSealImageUrl()); +// BufferedImage electronSealImage = convertLayout(bi, electronicSeal.getDiaphaneity()); +// String stampImgUrl = electronicSeal.getElectronicSealImageUrl(); +// String imagePath = stampImgUrl.substring(0, stampImgUrl.length() - 4) + "1.png"; +// String[] imageCutOffContents = stampImgUrl.split("."); +// electronicSeal.setElectronicSealImageUrl(imagePath); +// saveFile(electronSealImage, imageCutOffContents[imageCutOffContents.length - 1], imagePath); +// } //按关键字进行分组 - Map> sameKeySealMaps = filePrintRegister.getElectronicImageList().stream().collect( + Map> sameKeyWordSealMaps = filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage->StringUtils.isNotEmpty(electronicImage.getKeyWord())) + .collect( Collectors.groupingBy(ElectronicImage::getKeyWord) ); // 初始化world,pdf名称参数 String[] filePrintType = filePrintRegister.getTemplatePath().split("\\."); String wordNewUrl = filePrintRegister.getTemplatePath(); - String pdfNewUrl = filePrintType[0]+"."+ "pdf"; + String pdfNewUrl = filePrintType[0] + "." + "pdf"; //3、根据关键字进行添加签章和签字 - for (Map.Entry> entry : sameKeySealMaps.entrySet()) { + for (Map.Entry> entry : sameKeyWordSealMaps.entrySet()) { List electronicSeals = entry.getValue(); addSameKeyWordStamp(wordOldUrl, wordNewUrl, electronicSeals); } + + //获取没有关键字的图片,即绝对路径的图片 + List absolutePathImageList= filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage->StringUtils.isEmpty(electronicImage.getKeyWord())) + .collect(Collectors.toList()); + //根据设置的绝对路径进行图片的填充 + for(ElectronicImage absolutePathImage:absolutePathImageList){ + addAbsolutePathStamp(wordOldUrl, wordNewUrl,absolutePathImage); + } // 4、将新word转化为pdf文件 wordToPdf(wordNewUrl, pdfNewUrl); return pdfNewUrl; @@ -91,19 +94,15 @@ Assert.notNull(temDir, "临时文件路径不能为空"); Assert.notNull(fileName, "导出文件名不能为空"); if (fileName.endsWith(".doc")) { -// HWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); + docToDocx(templatePath, templatePath + "x"); + templatePath += "x"; } -// Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); - if (!temDir.endsWith("/")) { - temDir = temDir; - } + Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); File dir = new File(temDir); if (!dir.getParentFile().exists()) { // 新建文件夹 dir.getParentFile().mkdirs(); } -// operateWord(params,templatePath); - String tmpPath = ""; try { XWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); @@ -146,12 +145,12 @@ docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); //指定电子章位置 //水平位置 - docPicture.setHorizontalPosition(horizontal); + docPicture.setHorizontalPosition(electronicSeal.getHorizontal()); //垂直位置 - docPicture.setVerticalPosition(vertical); + docPicture.setVerticalPosition(electronicSeal.getStampHeight()); //设置电子章大小 - docPicture.setWidth(stampWidth); - docPicture.setHeight(stampHeight); + docPicture.setWidth(electronicSeal.getStampWidth()); + docPicture.setHeight(electronicSeal.getDiaphaneity()); } //保存添加电子章的Word文档 document.saveToFile(wordNewUrl); @@ -165,7 +164,7 @@ * @param bookmarkName 书签名 * @param newBookmarkText 新文本内容 */ - private void replaceBookmarkContent(Document document, String bookmarkName, String newBookmarkText) { + private static void replaceBookmarkContent(Document document, String bookmarkName, String newBookmarkText) { //定位到指定书签位置 BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(document); bookmarksNavigator.moveToBookmark(bookmarkName); @@ -194,7 +193,7 @@ * @param alpha * @return */ - public static BufferedImage convertLayout(BufferedImage imgsrc, int alpha) { + public static BufferedImage convertLayout(BufferedImage imgsrc, float alpha) { try { //创建一个包含透明度的图片,半透明效果必须要存储为png合适才行,存储为jpg,底色为黑色 BufferedImage back = new BufferedImage(imgsrc.getWidth(), imgsrc.getHeight(), BufferedImage.TYPE_INT_ARGB); @@ -242,17 +241,8 @@ * * @param wordOldUrl word文件路径 * @param wordNewUrl 新word文件路径 - * @param stampImgUrl 电子印章图片路径 - * @param horizontal 电子印章水平位置 (当前文件推荐260f) - * @param vertical 电子印章垂直位置 (当前推荐455f) - * @param stampWidth 电子印章宽度(推荐120) - * @param stampHeight 电子印章高度(推荐120) - * @param bookmarkName 书签名,通过名称寻找书签文本所在位置 - * @param newBookmarkText 替换的文本新内容 */ - public void addStamp(String wordOldUrl, String wordNewUrl, String stampImgUrl, - Float horizontal, Float vertical, Float stampWidth, - Float stampHeight, String bookmarkName, String newBookmarkText) { + private static void addAbsolutePathStamp(String wordOldUrl, String wordNewUrl, ElectronicImage absolutePathImage) { // 加载文档 Document document = new Document(); document.loadFromFile(wordOldUrl); @@ -264,31 +254,29 @@ Paragraph paragraph = section.getParagraphs().get(0); // 判断是否需要替换书签位置文本内容 - if (StringUtils.isNotEmpty(bookmarkName)) { - replaceBookmarkContent(document, bookmarkName, newBookmarkText); + if (StringUtils.isNotEmpty(absolutePathImage.getBookmarkName())) { + replaceBookmarkContent(document, absolutePathImage.getBookmarkName(), absolutePathImage.getNewBookmarkText()); } // 添加电子印章 - DocPicture docPicture = paragraph.appendPicture(stampImgUrl); + DocPicture docPicture = paragraph.appendPicture(absolutePathImage.getElectronicSealImageUrl()); // 指定电子章位置 // 水平位置 - docPicture.setHorizontalPosition(horizontal); + docPicture.setHorizontalPosition(absolutePathImage.getHorizontal()); // 垂直位置 - docPicture.setVerticalPosition(vertical); + docPicture.setVerticalPosition(absolutePathImage.getVertical()); // 设置电子章大小 - docPicture.setWidth(stampWidth); - docPicture.setHeight(stampHeight); + docPicture.setWidth(absolutePathImage.getStampWidth()); + docPicture.setHeight(absolutePathImage.getHorizontal()); // 设置图片位于文字顶层 docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); - // 保存添加电子章的Word文档 document.saveToFile(wordNewUrl); document.dispose(); // log.info("文档添加电子印章结束,新WORD文档地址:{}",wordNewUrl); - } @@ -384,10 +372,11 @@ /** * doc 转 docx - * @param sourceFilePath 源文件路径 - * @param destFilePath 转换成docx文件路径 + * + * @param sourceFilePath 源文件路径 + * @param destFilePath 转换成docx文件路径 */ - public static void docToDocx(String sourceFilePath,String destFilePath){ + public static void docToDocx(String sourceFilePath, String destFilePath) { Document document = new Document(); document.loadFromFile(sourceFilePath); document.saveToFile(destFilePath); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java index c84fe0b..ff4713f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java @@ -1,10 +1,6 @@ package com.casic.missiles.service.listeners.processor.register; import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.model.business.BusinessCertificateReport; - -import java.util.ArrayList; -import java.util.List; public interface PrintFileDataGeneric { @@ -13,7 +9,7 @@ * * 2、组装参数param外的参数 * * 3、填充注册表信息参数 */ - FilePrintRegister CustomizedPrintFileRegister(BusinessCertificateReport metaData, String templateFileDir); + FilePrintRegister CustomizedPrintFileRegister(Object object, String templateFileDir); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java index cd43ce8..bde219c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java @@ -5,37 +5,51 @@ import com.casic.missiles.dto.flowable.ApprovalLogResponse; import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.service.business.IBusinessOrderService; +import com.casic.missiles.service.customer.CustomerSampleService; +import com.casic.missiles.service.flowable.ApprovalOperateService; 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.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; public class PrintFileDataSupport { + @Autowired + protected ApprovalOperateService approvalOperateService; + @Autowired + protected IBusinessOrderService businessOrderService; + @Autowired + protected CustomerSampleService customerSampleService; + /** + * 电子签名获取的流程 keyParamList,customizedSignNames具有映射功能 + */ protected List keyParamList; + /** + * 自定义签名名字 + */ protected List customizedSignNames; - protected List> appendNameList; protected PrintFileDataSupport() { this.keyParamList = new ArrayList<>(); customizedSignNames = new ArrayList<>(); - appendNameList = new ArrayList<>(); } @Resource protected PrintFileRegisterMapper fileRegisterMapper; /** + * 初始化文件数据注册信息 * 1、获取证书模板 - * 2、设置临时处理空间路径、文件名称、 + * 2、设置临时处理空间路径、文件名称、文件资源路径 * 3、设置文件id,作为操作空间文件名称,防止对其他同时处理的证书形成影响 */ protected void initialization(FilePrintRegister filePrintRegister, String templateFileDir, BusinessCertificateReport certificateReport) { - templateFileDir = templateFileDir + certificateReport.getId()+"\\"; + templateFileDir = templateFileDir + certificateReport.getId() + "\\"; String fileName = fileRegisterMapper.getSignFileNameById(certificateReport.getTemplateId(), "system_template"); filePrintRegister.setFileName(fileName); filePrintRegister.setTemDir(templateFileDir); @@ -46,7 +60,22 @@ filePrintRegister.setBeDownloadedFileNames(fileNames); } - protected List electronicSignNamesCreator(Map> approvalLogMap) { + /** + * 文件自定义名称参数构建器 + */ + protected void customizedSignNamesParamCreator() { + keyParamList.add("发起人"); + keyParamList.add("审批中"); + keyParamList.add("审批完成"); + customizedSignNames.add("发起人"); + customizedSignNames.add("核验人"); + customizedSignNames.add("批准人"); + } + + /** + * 电子签名构建器 + */ + protected List customizedSignNamesCreator(Map> approvalLogMap, FilePrintRegister filePrintRegister) { List electronicImageList = new ArrayList<>(); for (int i = 0; i < keyParamList.size(); i++) { if (approvalLogMap.containsKey(keyParamList.get(i))) { @@ -57,9 +86,10 @@ if (CollectionUtils.isNotEmpty(approvalLogList)) { approvalLogList.forEach( approvalLog -> { - ElectronicImage electronicImage = new ElectronicImage(); + ElectronicImage electronicImage = defaultElectronicSignName(); String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); electronicImage.setElectronicSealImageUrl(signFileName); + filePrintRegister.getBeDownloadedFileNames().add(signFileName); electronicImage.setKeyWord(customizedSignName); electronicImageList.add(electronicImage); } @@ -69,27 +99,55 @@ return electronicImageList; } - protected List electronicSignSealsCreator(BusinessCertificateReport metaData) { - List electronicImageList = new ArrayList<>(); + /** + * 默认电子签名的图片设置,允许重写 + */ + protected ElectronicImage defaultElectronicSignName() { ElectronicImage electronicImage = new ElectronicImage(); - Long electronicSealId = metaData.getSignId(); + electronicImage.setHorizontal(200f); + return electronicImage; + } + + /** + * 默认电子签章的图片设置,允许重写 + */ + protected ElectronicImage defaultElectronicSignSeal() { + ElectronicImage electronicImage = new ElectronicImage(); + return electronicImage; + } + + /** + * 电子签章获取 + * + * @param electronicSealId 证书报告文件数据 + * @param keyWord 关键字 + * @return + */ + protected ElectronicImage doCreateElectronicSignSeal(Long electronicSealId, String keyWord) { + ElectronicImage electronicImage = defaultElectronicSignSeal(); String electronicSealName = fileRegisterMapper.getSignFileNameById(electronicSealId, "system_sign"); electronicImage.setElectronicSealImageUrl(electronicSealName); -// electronicImage.setKeyWord(customizedSignName); - electronicImageList.add(electronicImage); - if (StringUtils.isNotEmpty(metaData.getApprovalSignId())) { - String[] approvalSignIds = metaData.getApprovalSignId().split(","); -// for (String approvalSignId : approvalSignIds) { -// String electronicSealName = fileRegisterMapper.getSignFileNameById(electronicSealId, "system_sign"); -// } - } - return electronicImageList; + electronicImage.setKeyWord(keyWord); + return electronicImage; + } + + protected Map certificateFilePopulateParamCreator(BusinessCertificateReport metaData) { + Calendar now = Calendar.getInstance(); + BusinessOrder businessOrder = businessOrderService.orderDetail(metaData.getOrderId()); + CustomerSampleInfo customerSampleInfo = customerSampleService.sampleDetail(metaData.getSampleId()); + Map params = new HashMap<>(); + params.put("customerName", businessOrder.getCustomerName()); + params.put("customerAddress", businessOrder.getCustomerAddress()); + params.put("sampleNo", customerSampleInfo.getSampleNo()); + params.put("sampleName", customerSampleInfo.getSampleName()); + params.put("manufacturingNo", customerSampleInfo.getManufacturingNo()); + params.put("y", now.get(Calendar.YEAR)); + params.put("m", (now.get(Calendar.MONTH) + 1)); + params.put("d", now.get(Calendar.DAY_OF_MONTH)); + return params; } - protected void populateElectronicFiles(ElectronicImage electronicImage) { - } - } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java index c6710fe..b60febd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java @@ -2,10 +2,7 @@ import cn.hutool.core.lang.Assert; import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.enums.BusinessExceptionEnum; -import com.casic.missiles.enums.notifyevent.AwareCertificateTypeEnum; -import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.enums.notifyevent.AwareFilePrintTypeEnum; import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.SpringContextUtil; import io.minio.GetObjectArgs; @@ -24,7 +21,7 @@ @Component @Slf4j -public class PrintFileRegister { +public class PrintFileRegister{ @Autowired private MinioClient minioClient; @@ -41,23 +38,23 @@ * 2、进行远程文件的下载工作,支持文件的读写权限操作 * 3、进行文件的填充合并等操作,即通过模板进行打印证书的信息注册 * 4、将注册产生的打印证书信息上传到服务器 - * 5、删除因为打印产生的文件信息 + * 5、递归删除因为打印产生的文件信息 * 6、返还打印产生的证书文件 */ - public String registerPrintFile(BusinessCertificateReport certificateReport) { + public String registerPrintFile(Object printFileRegister,String prefixType) { String tempLocalFileDir = localFileDir; - Assert.isFalse(Objects.isNull(certificateReport), () -> { + Assert.isFalse(Objects.isNull(printFileRegister), () -> { throw new RuntimeException("the certificateReport is null,please check your params..."); }); //获取对应证书的beanName - String fileDataRegisterBeanName = AwareCertificateTypeEnum.CERTIFICATE_TYPE_BEAN_MAP - .getCertificateTypeBeanMap().get(certificateReport.getCertificateReportType()); + String fileDataRegisterBeanName = AwareFilePrintTypeEnum.CERTIFICATE_TYPE_BEAN_MAP + .getCertificateTypeBeanMap().get(prefixType); Assert.isFalse(StringUtils.isEmpty(fileDataRegisterBeanName), () -> { throw new RuntimeException("the bean mapped by this certificate type has no mapping relationship..."); }); PrintFileDataGeneric fileDataGeneric = SpringContextUtil.getBean(fileDataRegisterBeanName); if (fileDataGeneric != null) { - FilePrintRegister metaData = fileDataGeneric.CustomizedPrintFileRegister(certificateReport, tempLocalFileDir); + FilePrintRegister metaData = fileDataGeneric.CustomizedPrintFileRegister(printFileRegister, tempLocalFileDir); //获取文件夹目录,没有则创建 tempLocalFileDir = tempLocalFileDir + metaData.getFileNameId() + "\\"; getLocalFileDir(tempLocalFileDir); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/CalibrationPrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/CalibrationPrintFileData.java deleted file mode 100644 index eb95a6a..0000000 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/CalibrationPrintFileData.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.casic.missiles.service.listeners.processor.register.data; - -import com.casic.missiles.dto.business.certificate.ElectronicImage; -import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.enums.notifyevent.PrintFileDataRegisterBeanEnum; -import com.casic.missiles.service.listeners.processor.register.PrintFileDataGeneric; -import com.casic.missiles.service.listeners.processor.register.PrintFileDataSupport; -import com.casic.missiles.model.business.BusinessCertificateReport; -import com.casic.missiles.model.business.BusinessOrder; -import com.casic.missiles.model.customer.CustomerSampleInfo; -import com.casic.missiles.service.business.IBusinessOrderService; -import com.casic.missiles.service.customer.CustomerSampleService; -import lombok.AllArgsConstructor; -import org.springframework.stereotype.Component; - -import java.util.*; - -/** - * 校准证书参数生成 - */ -@Component(PrintFileDataRegisterBeanEnum.CALIBRATION_CERTIFICATE_BEAN) -@AllArgsConstructor -public class CalibrationPrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { - - private final IBusinessOrderService businessOrderService; - private final CustomerSampleService customerSampleService; - - /** - * 1、进行打印证书对象的初始化 - * 2、获取定制化的签名 - * 3、获取定制化的参数 - * - * @param metaData 证书报告信息 - * @param templateFileDir 本地进行打印报告组合的路径 - * @return - */ - @Override - public FilePrintRegister CustomizedPrintFileRegister(BusinessCertificateReport metaData, String templateFileDir) { - FilePrintRegister filePrintRegister = new FilePrintRegister(); - initialization(filePrintRegister, templateFileDir, metaData); - filePrintRegister.setElectronicImageList(this.getCustomizedSignName(metaData)); - doPopulatePrintFileRegister(filePrintRegister, metaData); - return filePrintRegister; - } - - /** - * 每一种证书可能存在一个或者多个定制化的签名、签章 - */ - private List getCustomizedSignName(BusinessCertificateReport certificateReport) { - List customizedSignNames = new ArrayList<>(); - List fileNames = new ArrayList<>(); - String signName = fileRegisterMapper.getSignFileNameById(certificateReport.getSignId(), "system_sign"); - fileNames.add(signName); - return customizedSignNames; - } - - /** - * 定制化的证书参数 - */ - private void doPopulatePrintFileRegister(FilePrintRegister filePrintRegister, BusinessCertificateReport metaData) { - Calendar now = Calendar.getInstance(); - BusinessOrder businessOrder =businessOrderService.orderDetail(metaData.getOrderId()); - CustomerSampleInfo customerSampleInfo=customerSampleService.sampleDetail(metaData.getSampleId()); - Map params = new HashMap<>(); - params.put("customerName",businessOrder.getCustomerName()); - params.put("customerAddress",businessOrder.getCustomerAddress()); - params.put("sampleNo",customerSampleInfo.getSampleNo()); - params.put("sampleName",customerSampleInfo.getSampleName()); - params.put("manufacturingNo",customerSampleInfo.getManufacturingNo()); - params.put("y", now.get(Calendar.YEAR)); - params.put("m", (now.get(Calendar.MONTH) + 1)); - params.put("d", now.get(Calendar.DAY_OF_MONTH)); - filePrintRegister.setParams(params); - } - - -} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/TestReportPrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/TestReportPrintFileData.java deleted file mode 100644 index 018c2c2..0000000 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/TestReportPrintFileData.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.missiles.service.listeners.processor.register.data; - -import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.dto.flowable.ApprovalLogResponse; -import com.casic.missiles.enums.notifyevent.PrintFileDataRegisterBeanEnum; -import com.casic.missiles.service.listeners.processor.register.PrintFileDataGeneric; -import com.casic.missiles.service.listeners.processor.register.PrintFileDataSupport; -import com.casic.missiles.model.business.BusinessCertificateReport; -import com.casic.missiles.service.flowable.ApprovalOperateService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - - -/** - * 测试报告参数生成 - */ -@Component(PrintFileDataRegisterBeanEnum.TEST_REPORT_BEAN) -public class TestReportPrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { - - @Autowired - private ApprovalOperateService approvalOperateService; - /** - * 1、进行打印证书对象的初始化 - * 2、获取定制化的签名 - * 3、获取定制化的参数 - * - * @param metaData 证书报告信息 - * @param templateFileDir 本地进行打印报告组合的路径 - * @return - */ - @Override - public FilePrintRegister CustomizedPrintFileRegister(BusinessCertificateReport metaData, String templateFileDir) { - FilePrintRegister filePrintRegister = new FilePrintRegister(); - initialization(filePrintRegister, templateFileDir, metaData); - List> approvalLogList=approvalOperateService.approvalLog(metaData.getProcessId()); - Map> ApprovalLogMap =approvalLogList.stream() - .collect(Collectors.toMap(e->e.get(0).getApprovalStatus(),e->e)); - getSignNamesCreatorParam(); - filePrintRegister.setElectronicImageList( - this.electronicSignNamesCreator(ApprovalLogMap)); - doPopulatePrintFileRegister(filePrintRegister, metaData); - return filePrintRegister; - } - - - private void getSignNamesCreatorParam(){ - keyParamList.add("发起人"); - keyParamList.add("审批中"); - keyParamList.add("审批完成"); - customizedSignNames.add("发起人"); - customizedSignNames.add("核验人"); - customizedSignNames.add("批准人"); - } - /** - * 定制化的证书参数 - */ - private void doPopulatePrintFileRegister(FilePrintRegister filePrintRegister, BusinessCertificateReport metaData) { - Map params = new HashMap<>(); -// params.put() - filePrintRegister.setParams(params); - } - -} 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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 2cd8fba..ac65bf4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -39,7 +39,8 @@ CERTIFICATE_REPORT("certificateReport", "certificateReport", "证书报告"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), - OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"); + OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java deleted file mode 100644 index d48545b..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.enums.business; - -public interface CertificateTypeEnum { - - String CALIBRATION_CERTIFICATE = "0"; - String TEST_REPORT = "1"; -} 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 new file mode 100644 index 0000000..f421fb4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -0,0 +1,12 @@ +package com.casic.missiles.enums.business; + +public interface FilePrintTypeEnum { + + String CALIBRATION_CERTIFICATE = "样品内部检校证书"; + String TEST_REPORT = "样品外包证书"; + +// 自有设备内部检校证书 +// 自有设备外包证书 +// 自有设备溯源证书 + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java deleted file mode 100644 index 6779003..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.missiles.enums.notifyevent; - -import com.casic.missiles.enums.business.CertificateTypeEnum; - -import java.util.HashMap; - -public enum AwareCertificateTypeEnum implements PrintFileDataRegisterBeanEnum, CertificateTypeEnum { - - CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { - { - put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 - put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 - } - }); - - public HashMap certificateTypeBeanMap; - - AwareCertificateTypeEnum(HashMap certificateTypeBeanMap) { - this.certificateTypeBeanMap = certificateTypeBeanMap; - } - - public HashMap getCertificateTypeBeanMap() { - return certificateTypeBeanMap; - } -} 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 new file mode 100644 index 0000000..da9a7be --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -0,0 +1,25 @@ +package com.casic.missiles.enums.notifyevent; + +import com.casic.missiles.enums.business.FilePrintTypeEnum; + +import java.util.HashMap; + +public enum AwareFilePrintTypeEnum implements PrintFileDataRegisterBeanEnum, FilePrintTypeEnum { + + CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { + { + put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 + put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 + } + }); + + public HashMap certificateTypeBeanMap; + + AwareFilePrintTypeEnum(HashMap certificateTypeBeanMap) { + this.certificateTypeBeanMap = certificateTypeBeanMap; + } + + public HashMap getCertificateTypeBeanMap() { + return certificateTypeBeanMap; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java index 47fc55e..278951a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java @@ -8,19 +8,24 @@ @Data public class ElectronicImage { - { + /** + * 默认电子签章值 + */ { //关键字索引 (-1) - final Integer keyWordIndex = -1; + keyWordIndex = -1; + /** + * 该电子签章位置是关键字的相对位置 + */ // 电子印章水平位置 - final float horizontal = 300f; + horizontal = 300f; // 电子印章垂直位置 - final float vertical = -55f; + vertical = -55f; // 电子印章宽度 - final float stampWidth = 120; + stampWidth = 120f; // 电子印章高度 - final float stampHeight = 120; + stampHeight = 120f; //照片透明度设置 - final int alpha = 150; + diaphaneity = 150f; } @@ -32,10 +37,10 @@ /** * 透明度 */ - private Integer diaphaneity; + private Float diaphaneity; /** - * 透明度 + * 图片叠加标志 */ private Boolean mereFlag; @@ -44,17 +49,10 @@ */ private Float horizontal; /** - * 关键字 - */ - private String keyWord; - /** - * 关键字索引 - */ - private Integer keyWordIndex; - /** * 电子印章垂直位置 (当前推荐455f) */ private Float vertical; + /** * 电子印章宽度(推荐120) */ @@ -65,14 +63,24 @@ */ private Float stampHeight; - /** - * 书签名,通过名称寻找书签文本所在位置 - */ - private String bookmarkName; /** - * 替换的文本新内容 + * 关键字 */ + private String keyWord; + /** + * 关键字索引 + */ + private Integer keyWordIndex; + + // /** +// * 书签名,通过名称寻找书签文本所在位置 +// */ + private String bookmarkName; + // +// /** +// * 替换的文本新内容 +// */ private String newBookmarkText; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index 060c998..a8a331c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -48,6 +48,7 @@ */ @TableField("certificate_report_type") @ApiModelProperty(value = "证书报告类型", dataType = "String") + @DictCodeField(message = "证书报告类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateReportType; /** @@ -85,7 +86,6 @@ @ApiModelProperty(value = "检校专业", dataType = "String") @DictCodeField(message = "检校专业不合法", cacheName = MeterDictCode.CALIBRATION_MAJOR) private String calibrationMajor; - /** * 出具日期 */ @@ -171,15 +171,6 @@ @DictCodeField(message = "审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) private String approvalStatus; - - /** - * 审批状态(字典code) - */ - @TableField("approval_status") - @ApiModelProperty(value = "打印审批状态", dataType = "String") - @DictCodeField(message = "打印审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) - private String printApprovalStatus; - @TableField("remark") @ApiModelProperty(value = "备注", dataType = "String") private String remark; 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 e378c28..1ef7e71 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 @@ -85,9 +85,9 @@ page.setSize(Integer.MAX_VALUE); request.setCreateUserId(user.getId()); Page certificateListResponsePage = handleApprovalStatus(page, request); - iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.ADVICE_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.CERTIFICATE_PRINT_EXPORT.getSheetName()); } catch (Exception e) { - log.error("客户投诉导出出现异常,异常信息为{}", e); + log.error("证书打印导出出现异常,异常信息为{}", e); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 24c1c75..5264fab 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -151,6 +151,7 @@ for (CustomerSampleInfo sampleInfo : businessOrder.getCustomerSampleInfoList()) { sampleInfo.setDeliverer(businessOrder.getDeliverer()); sampleInfo.setCustomerNo(businessOrder.getCustomerNo()); + sampleInfo.setMeasureType(INSIDE_MEASURE); sampleInfo.setDelivererTel(businessOrder.getDelivererTel()); if ("0".equals(sampleInfo.getIsExistSample())) { ReturnDTO returnDTO = customerSampleService.addSample(sampleInfo); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index 589851f..e7ed7fe 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -86,7 +86,7 @@ Long orderId = dispatchVO.getOrderId(); Long sampleId = dispatchVO.getSampleId(); String sampleStatus = dispatchVO.getSampleStatus(); - //先过滤超期状态下的外检外包 + //先过滤超期状态下的外包 if (!StringUtils.isEmpty(request.getSampleStatus()) && BE_OVERDUE.equals(request.getSampleStatus()) && notSelfMeasure(dispatchVO)) { return; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java index 7e30713..bb611b9 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java @@ -32,14 +32,6 @@ //关键字索引 (-1) private final static Integer keyWordIndex = -1; - // 电子印章水平位置 - private final static float horizontal = 300f; - // 电子印章垂直位置 - private final static float vertical = -55f; - // 电子印章宽度 - private final static float stampWidth = 120; - // 电子印章高度 - private final static float stampHeight = 120; //照片透明度设置 private final static int alpha = 150; @@ -51,28 +43,39 @@ //1、按照模板填充数据,并导出word String wordOldUrl = exportWord(filePrintRegister.getTemplatePath(), filePrintRegister.getTemDir(), filePrintRegister.getFileName(), filePrintRegister.getParams()); //设置透明属性 1、获取照片 2、签章背景透明设置 3、设置照片路径和照片类型进行图片保存 - for (ElectronicImage electronicSeal : filePrintRegister.getElectronicImageList()) { - BufferedImage bi = readImage(electronicSeal.getElectronicSealImageUrl()); - BufferedImage electronSealImage = convertLayout(bi, electronicSeal.getDiaphaneity()); - String stampImgUrl = electronicSeal.getElectronicSealImageUrl(); - String imagePath = stampImgUrl.substring(0, stampImgUrl.length() - 4) + "1.png"; - String[] imageCutOffContents = stampImgUrl.split("."); - electronicSeal.setElectronicSealImageUrl(imagePath); - saveFile(electronSealImage, imageCutOffContents[imageCutOffContents.length - 1], imagePath); - } +// for (ElectronicImage electronicSeal : filePrintRegister.getElectronicImageList()) { +// BufferedImage bi = readImage(electronicSeal.getElectronicSealImageUrl()); +// BufferedImage electronSealImage = convertLayout(bi, electronicSeal.getDiaphaneity()); +// String stampImgUrl = electronicSeal.getElectronicSealImageUrl(); +// String imagePath = stampImgUrl.substring(0, stampImgUrl.length() - 4) + "1.png"; +// String[] imageCutOffContents = stampImgUrl.split("."); +// electronicSeal.setElectronicSealImageUrl(imagePath); +// saveFile(electronSealImage, imageCutOffContents[imageCutOffContents.length - 1], imagePath); +// } //按关键字进行分组 - Map> sameKeySealMaps = filePrintRegister.getElectronicImageList().stream().collect( + Map> sameKeyWordSealMaps = filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage->StringUtils.isNotEmpty(electronicImage.getKeyWord())) + .collect( Collectors.groupingBy(ElectronicImage::getKeyWord) ); // 初始化world,pdf名称参数 String[] filePrintType = filePrintRegister.getTemplatePath().split("\\."); String wordNewUrl = filePrintRegister.getTemplatePath(); - String pdfNewUrl = filePrintType[0]+"."+ "pdf"; + String pdfNewUrl = filePrintType[0] + "." + "pdf"; //3、根据关键字进行添加签章和签字 - for (Map.Entry> entry : sameKeySealMaps.entrySet()) { + for (Map.Entry> entry : sameKeyWordSealMaps.entrySet()) { List electronicSeals = entry.getValue(); addSameKeyWordStamp(wordOldUrl, wordNewUrl, electronicSeals); } + + //获取没有关键字的图片,即绝对路径的图片 + List absolutePathImageList= filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage->StringUtils.isEmpty(electronicImage.getKeyWord())) + .collect(Collectors.toList()); + //根据设置的绝对路径进行图片的填充 + for(ElectronicImage absolutePathImage:absolutePathImageList){ + addAbsolutePathStamp(wordOldUrl, wordNewUrl,absolutePathImage); + } // 4、将新word转化为pdf文件 wordToPdf(wordNewUrl, pdfNewUrl); return pdfNewUrl; @@ -91,19 +94,15 @@ Assert.notNull(temDir, "临时文件路径不能为空"); Assert.notNull(fileName, "导出文件名不能为空"); if (fileName.endsWith(".doc")) { -// HWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); + docToDocx(templatePath, templatePath + "x"); + templatePath += "x"; } -// Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); - if (!temDir.endsWith("/")) { - temDir = temDir; - } + Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); File dir = new File(temDir); if (!dir.getParentFile().exists()) { // 新建文件夹 dir.getParentFile().mkdirs(); } -// operateWord(params,templatePath); - String tmpPath = ""; try { XWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); @@ -146,12 +145,12 @@ docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); //指定电子章位置 //水平位置 - docPicture.setHorizontalPosition(horizontal); + docPicture.setHorizontalPosition(electronicSeal.getHorizontal()); //垂直位置 - docPicture.setVerticalPosition(vertical); + docPicture.setVerticalPosition(electronicSeal.getStampHeight()); //设置电子章大小 - docPicture.setWidth(stampWidth); - docPicture.setHeight(stampHeight); + docPicture.setWidth(electronicSeal.getStampWidth()); + docPicture.setHeight(electronicSeal.getDiaphaneity()); } //保存添加电子章的Word文档 document.saveToFile(wordNewUrl); @@ -165,7 +164,7 @@ * @param bookmarkName 书签名 * @param newBookmarkText 新文本内容 */ - private void replaceBookmarkContent(Document document, String bookmarkName, String newBookmarkText) { + private static void replaceBookmarkContent(Document document, String bookmarkName, String newBookmarkText) { //定位到指定书签位置 BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(document); bookmarksNavigator.moveToBookmark(bookmarkName); @@ -194,7 +193,7 @@ * @param alpha * @return */ - public static BufferedImage convertLayout(BufferedImage imgsrc, int alpha) { + public static BufferedImage convertLayout(BufferedImage imgsrc, float alpha) { try { //创建一个包含透明度的图片,半透明效果必须要存储为png合适才行,存储为jpg,底色为黑色 BufferedImage back = new BufferedImage(imgsrc.getWidth(), imgsrc.getHeight(), BufferedImage.TYPE_INT_ARGB); @@ -242,17 +241,8 @@ * * @param wordOldUrl word文件路径 * @param wordNewUrl 新word文件路径 - * @param stampImgUrl 电子印章图片路径 - * @param horizontal 电子印章水平位置 (当前文件推荐260f) - * @param vertical 电子印章垂直位置 (当前推荐455f) - * @param stampWidth 电子印章宽度(推荐120) - * @param stampHeight 电子印章高度(推荐120) - * @param bookmarkName 书签名,通过名称寻找书签文本所在位置 - * @param newBookmarkText 替换的文本新内容 */ - public void addStamp(String wordOldUrl, String wordNewUrl, String stampImgUrl, - Float horizontal, Float vertical, Float stampWidth, - Float stampHeight, String bookmarkName, String newBookmarkText) { + private static void addAbsolutePathStamp(String wordOldUrl, String wordNewUrl, ElectronicImage absolutePathImage) { // 加载文档 Document document = new Document(); document.loadFromFile(wordOldUrl); @@ -264,31 +254,29 @@ Paragraph paragraph = section.getParagraphs().get(0); // 判断是否需要替换书签位置文本内容 - if (StringUtils.isNotEmpty(bookmarkName)) { - replaceBookmarkContent(document, bookmarkName, newBookmarkText); + if (StringUtils.isNotEmpty(absolutePathImage.getBookmarkName())) { + replaceBookmarkContent(document, absolutePathImage.getBookmarkName(), absolutePathImage.getNewBookmarkText()); } // 添加电子印章 - DocPicture docPicture = paragraph.appendPicture(stampImgUrl); + DocPicture docPicture = paragraph.appendPicture(absolutePathImage.getElectronicSealImageUrl()); // 指定电子章位置 // 水平位置 - docPicture.setHorizontalPosition(horizontal); + docPicture.setHorizontalPosition(absolutePathImage.getHorizontal()); // 垂直位置 - docPicture.setVerticalPosition(vertical); + docPicture.setVerticalPosition(absolutePathImage.getVertical()); // 设置电子章大小 - docPicture.setWidth(stampWidth); - docPicture.setHeight(stampHeight); + docPicture.setWidth(absolutePathImage.getStampWidth()); + docPicture.setHeight(absolutePathImage.getHorizontal()); // 设置图片位于文字顶层 docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); - // 保存添加电子章的Word文档 document.saveToFile(wordNewUrl); document.dispose(); // log.info("文档添加电子印章结束,新WORD文档地址:{}",wordNewUrl); - } @@ -384,10 +372,11 @@ /** * doc 转 docx - * @param sourceFilePath 源文件路径 - * @param destFilePath 转换成docx文件路径 + * + * @param sourceFilePath 源文件路径 + * @param destFilePath 转换成docx文件路径 */ - public static void docToDocx(String sourceFilePath,String destFilePath){ + public static void docToDocx(String sourceFilePath, String destFilePath) { Document document = new Document(); document.loadFromFile(sourceFilePath); document.saveToFile(destFilePath); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java index c84fe0b..ff4713f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java @@ -1,10 +1,6 @@ package com.casic.missiles.service.listeners.processor.register; import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.model.business.BusinessCertificateReport; - -import java.util.ArrayList; -import java.util.List; public interface PrintFileDataGeneric { @@ -13,7 +9,7 @@ * * 2、组装参数param外的参数 * * 3、填充注册表信息参数 */ - FilePrintRegister CustomizedPrintFileRegister(BusinessCertificateReport metaData, String templateFileDir); + FilePrintRegister CustomizedPrintFileRegister(Object object, String templateFileDir); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java index cd43ce8..bde219c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java @@ -5,37 +5,51 @@ import com.casic.missiles.dto.flowable.ApprovalLogResponse; import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.service.business.IBusinessOrderService; +import com.casic.missiles.service.customer.CustomerSampleService; +import com.casic.missiles.service.flowable.ApprovalOperateService; 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.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; public class PrintFileDataSupport { + @Autowired + protected ApprovalOperateService approvalOperateService; + @Autowired + protected IBusinessOrderService businessOrderService; + @Autowired + protected CustomerSampleService customerSampleService; + /** + * 电子签名获取的流程 keyParamList,customizedSignNames具有映射功能 + */ protected List keyParamList; + /** + * 自定义签名名字 + */ protected List customizedSignNames; - protected List> appendNameList; protected PrintFileDataSupport() { this.keyParamList = new ArrayList<>(); customizedSignNames = new ArrayList<>(); - appendNameList = new ArrayList<>(); } @Resource protected PrintFileRegisterMapper fileRegisterMapper; /** + * 初始化文件数据注册信息 * 1、获取证书模板 - * 2、设置临时处理空间路径、文件名称、 + * 2、设置临时处理空间路径、文件名称、文件资源路径 * 3、设置文件id,作为操作空间文件名称,防止对其他同时处理的证书形成影响 */ protected void initialization(FilePrintRegister filePrintRegister, String templateFileDir, BusinessCertificateReport certificateReport) { - templateFileDir = templateFileDir + certificateReport.getId()+"\\"; + templateFileDir = templateFileDir + certificateReport.getId() + "\\"; String fileName = fileRegisterMapper.getSignFileNameById(certificateReport.getTemplateId(), "system_template"); filePrintRegister.setFileName(fileName); filePrintRegister.setTemDir(templateFileDir); @@ -46,7 +60,22 @@ filePrintRegister.setBeDownloadedFileNames(fileNames); } - protected List electronicSignNamesCreator(Map> approvalLogMap) { + /** + * 文件自定义名称参数构建器 + */ + protected void customizedSignNamesParamCreator() { + keyParamList.add("发起人"); + keyParamList.add("审批中"); + keyParamList.add("审批完成"); + customizedSignNames.add("发起人"); + customizedSignNames.add("核验人"); + customizedSignNames.add("批准人"); + } + + /** + * 电子签名构建器 + */ + protected List customizedSignNamesCreator(Map> approvalLogMap, FilePrintRegister filePrintRegister) { List electronicImageList = new ArrayList<>(); for (int i = 0; i < keyParamList.size(); i++) { if (approvalLogMap.containsKey(keyParamList.get(i))) { @@ -57,9 +86,10 @@ if (CollectionUtils.isNotEmpty(approvalLogList)) { approvalLogList.forEach( approvalLog -> { - ElectronicImage electronicImage = new ElectronicImage(); + ElectronicImage electronicImage = defaultElectronicSignName(); String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); electronicImage.setElectronicSealImageUrl(signFileName); + filePrintRegister.getBeDownloadedFileNames().add(signFileName); electronicImage.setKeyWord(customizedSignName); electronicImageList.add(electronicImage); } @@ -69,27 +99,55 @@ return electronicImageList; } - protected List electronicSignSealsCreator(BusinessCertificateReport metaData) { - List electronicImageList = new ArrayList<>(); + /** + * 默认电子签名的图片设置,允许重写 + */ + protected ElectronicImage defaultElectronicSignName() { ElectronicImage electronicImage = new ElectronicImage(); - Long electronicSealId = metaData.getSignId(); + electronicImage.setHorizontal(200f); + return electronicImage; + } + + /** + * 默认电子签章的图片设置,允许重写 + */ + protected ElectronicImage defaultElectronicSignSeal() { + ElectronicImage electronicImage = new ElectronicImage(); + return electronicImage; + } + + /** + * 电子签章获取 + * + * @param electronicSealId 证书报告文件数据 + * @param keyWord 关键字 + * @return + */ + protected ElectronicImage doCreateElectronicSignSeal(Long electronicSealId, String keyWord) { + ElectronicImage electronicImage = defaultElectronicSignSeal(); String electronicSealName = fileRegisterMapper.getSignFileNameById(electronicSealId, "system_sign"); electronicImage.setElectronicSealImageUrl(electronicSealName); -// electronicImage.setKeyWord(customizedSignName); - electronicImageList.add(electronicImage); - if (StringUtils.isNotEmpty(metaData.getApprovalSignId())) { - String[] approvalSignIds = metaData.getApprovalSignId().split(","); -// for (String approvalSignId : approvalSignIds) { -// String electronicSealName = fileRegisterMapper.getSignFileNameById(electronicSealId, "system_sign"); -// } - } - return electronicImageList; + electronicImage.setKeyWord(keyWord); + return electronicImage; + } + + protected Map certificateFilePopulateParamCreator(BusinessCertificateReport metaData) { + Calendar now = Calendar.getInstance(); + BusinessOrder businessOrder = businessOrderService.orderDetail(metaData.getOrderId()); + CustomerSampleInfo customerSampleInfo = customerSampleService.sampleDetail(metaData.getSampleId()); + Map params = new HashMap<>(); + params.put("customerName", businessOrder.getCustomerName()); + params.put("customerAddress", businessOrder.getCustomerAddress()); + params.put("sampleNo", customerSampleInfo.getSampleNo()); + params.put("sampleName", customerSampleInfo.getSampleName()); + params.put("manufacturingNo", customerSampleInfo.getManufacturingNo()); + params.put("y", now.get(Calendar.YEAR)); + params.put("m", (now.get(Calendar.MONTH) + 1)); + params.put("d", now.get(Calendar.DAY_OF_MONTH)); + return params; } - protected void populateElectronicFiles(ElectronicImage electronicImage) { - } - } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java index c6710fe..b60febd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java @@ -2,10 +2,7 @@ import cn.hutool.core.lang.Assert; import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.enums.BusinessExceptionEnum; -import com.casic.missiles.enums.notifyevent.AwareCertificateTypeEnum; -import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.enums.notifyevent.AwareFilePrintTypeEnum; import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.SpringContextUtil; import io.minio.GetObjectArgs; @@ -24,7 +21,7 @@ @Component @Slf4j -public class PrintFileRegister { +public class PrintFileRegister{ @Autowired private MinioClient minioClient; @@ -41,23 +38,23 @@ * 2、进行远程文件的下载工作,支持文件的读写权限操作 * 3、进行文件的填充合并等操作,即通过模板进行打印证书的信息注册 * 4、将注册产生的打印证书信息上传到服务器 - * 5、删除因为打印产生的文件信息 + * 5、递归删除因为打印产生的文件信息 * 6、返还打印产生的证书文件 */ - public String registerPrintFile(BusinessCertificateReport certificateReport) { + public String registerPrintFile(Object printFileRegister,String prefixType) { String tempLocalFileDir = localFileDir; - Assert.isFalse(Objects.isNull(certificateReport), () -> { + Assert.isFalse(Objects.isNull(printFileRegister), () -> { throw new RuntimeException("the certificateReport is null,please check your params..."); }); //获取对应证书的beanName - String fileDataRegisterBeanName = AwareCertificateTypeEnum.CERTIFICATE_TYPE_BEAN_MAP - .getCertificateTypeBeanMap().get(certificateReport.getCertificateReportType()); + String fileDataRegisterBeanName = AwareFilePrintTypeEnum.CERTIFICATE_TYPE_BEAN_MAP + .getCertificateTypeBeanMap().get(prefixType); Assert.isFalse(StringUtils.isEmpty(fileDataRegisterBeanName), () -> { throw new RuntimeException("the bean mapped by this certificate type has no mapping relationship..."); }); PrintFileDataGeneric fileDataGeneric = SpringContextUtil.getBean(fileDataRegisterBeanName); if (fileDataGeneric != null) { - FilePrintRegister metaData = fileDataGeneric.CustomizedPrintFileRegister(certificateReport, tempLocalFileDir); + FilePrintRegister metaData = fileDataGeneric.CustomizedPrintFileRegister(printFileRegister, tempLocalFileDir); //获取文件夹目录,没有则创建 tempLocalFileDir = tempLocalFileDir + metaData.getFileNameId() + "\\"; getLocalFileDir(tempLocalFileDir); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/CalibrationPrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/CalibrationPrintFileData.java deleted file mode 100644 index eb95a6a..0000000 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/CalibrationPrintFileData.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.casic.missiles.service.listeners.processor.register.data; - -import com.casic.missiles.dto.business.certificate.ElectronicImage; -import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.enums.notifyevent.PrintFileDataRegisterBeanEnum; -import com.casic.missiles.service.listeners.processor.register.PrintFileDataGeneric; -import com.casic.missiles.service.listeners.processor.register.PrintFileDataSupport; -import com.casic.missiles.model.business.BusinessCertificateReport; -import com.casic.missiles.model.business.BusinessOrder; -import com.casic.missiles.model.customer.CustomerSampleInfo; -import com.casic.missiles.service.business.IBusinessOrderService; -import com.casic.missiles.service.customer.CustomerSampleService; -import lombok.AllArgsConstructor; -import org.springframework.stereotype.Component; - -import java.util.*; - -/** - * 校准证书参数生成 - */ -@Component(PrintFileDataRegisterBeanEnum.CALIBRATION_CERTIFICATE_BEAN) -@AllArgsConstructor -public class CalibrationPrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { - - private final IBusinessOrderService businessOrderService; - private final CustomerSampleService customerSampleService; - - /** - * 1、进行打印证书对象的初始化 - * 2、获取定制化的签名 - * 3、获取定制化的参数 - * - * @param metaData 证书报告信息 - * @param templateFileDir 本地进行打印报告组合的路径 - * @return - */ - @Override - public FilePrintRegister CustomizedPrintFileRegister(BusinessCertificateReport metaData, String templateFileDir) { - FilePrintRegister filePrintRegister = new FilePrintRegister(); - initialization(filePrintRegister, templateFileDir, metaData); - filePrintRegister.setElectronicImageList(this.getCustomizedSignName(metaData)); - doPopulatePrintFileRegister(filePrintRegister, metaData); - return filePrintRegister; - } - - /** - * 每一种证书可能存在一个或者多个定制化的签名、签章 - */ - private List getCustomizedSignName(BusinessCertificateReport certificateReport) { - List customizedSignNames = new ArrayList<>(); - List fileNames = new ArrayList<>(); - String signName = fileRegisterMapper.getSignFileNameById(certificateReport.getSignId(), "system_sign"); - fileNames.add(signName); - return customizedSignNames; - } - - /** - * 定制化的证书参数 - */ - private void doPopulatePrintFileRegister(FilePrintRegister filePrintRegister, BusinessCertificateReport metaData) { - Calendar now = Calendar.getInstance(); - BusinessOrder businessOrder =businessOrderService.orderDetail(metaData.getOrderId()); - CustomerSampleInfo customerSampleInfo=customerSampleService.sampleDetail(metaData.getSampleId()); - Map params = new HashMap<>(); - params.put("customerName",businessOrder.getCustomerName()); - params.put("customerAddress",businessOrder.getCustomerAddress()); - params.put("sampleNo",customerSampleInfo.getSampleNo()); - params.put("sampleName",customerSampleInfo.getSampleName()); - params.put("manufacturingNo",customerSampleInfo.getManufacturingNo()); - params.put("y", now.get(Calendar.YEAR)); - params.put("m", (now.get(Calendar.MONTH) + 1)); - params.put("d", now.get(Calendar.DAY_OF_MONTH)); - filePrintRegister.setParams(params); - } - - -} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/TestReportPrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/TestReportPrintFileData.java deleted file mode 100644 index 018c2c2..0000000 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/TestReportPrintFileData.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.missiles.service.listeners.processor.register.data; - -import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.dto.flowable.ApprovalLogResponse; -import com.casic.missiles.enums.notifyevent.PrintFileDataRegisterBeanEnum; -import com.casic.missiles.service.listeners.processor.register.PrintFileDataGeneric; -import com.casic.missiles.service.listeners.processor.register.PrintFileDataSupport; -import com.casic.missiles.model.business.BusinessCertificateReport; -import com.casic.missiles.service.flowable.ApprovalOperateService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - - -/** - * 测试报告参数生成 - */ -@Component(PrintFileDataRegisterBeanEnum.TEST_REPORT_BEAN) -public class TestReportPrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { - - @Autowired - private ApprovalOperateService approvalOperateService; - /** - * 1、进行打印证书对象的初始化 - * 2、获取定制化的签名 - * 3、获取定制化的参数 - * - * @param metaData 证书报告信息 - * @param templateFileDir 本地进行打印报告组合的路径 - * @return - */ - @Override - public FilePrintRegister CustomizedPrintFileRegister(BusinessCertificateReport metaData, String templateFileDir) { - FilePrintRegister filePrintRegister = new FilePrintRegister(); - initialization(filePrintRegister, templateFileDir, metaData); - List> approvalLogList=approvalOperateService.approvalLog(metaData.getProcessId()); - Map> ApprovalLogMap =approvalLogList.stream() - .collect(Collectors.toMap(e->e.get(0).getApprovalStatus(),e->e)); - getSignNamesCreatorParam(); - filePrintRegister.setElectronicImageList( - this.electronicSignNamesCreator(ApprovalLogMap)); - doPopulatePrintFileRegister(filePrintRegister, metaData); - return filePrintRegister; - } - - - private void getSignNamesCreatorParam(){ - keyParamList.add("发起人"); - keyParamList.add("审批中"); - keyParamList.add("审批完成"); - customizedSignNames.add("发起人"); - customizedSignNames.add("核验人"); - customizedSignNames.add("批准人"); - } - /** - * 定制化的证书参数 - */ - private void doPopulatePrintFileRegister(FilePrintRegister filePrintRegister, BusinessCertificateReport metaData) { - Map params = new HashMap<>(); -// params.put() - filePrintRegister.setParams(params); - } - -} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/certificate/CalibrationPrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/certificate/CalibrationPrintFileData.java new file mode 100644 index 0000000..b0639ad --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/certificate/CalibrationPrintFileData.java @@ -0,0 +1,71 @@ +package com.casic.missiles.service.listeners.processor.register.data.certificate; + +import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.FilePrintRegister; +import com.casic.missiles.dto.flowable.ApprovalLogResponse; +import com.casic.missiles.enums.notifyevent.PrintFileDataRegisterBeanEnum; +import com.casic.missiles.service.listeners.processor.register.PrintFileDataGeneric; +import com.casic.missiles.service.listeners.processor.register.PrintFileDataSupport; +import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.service.business.IBusinessOrderService; +import com.casic.missiles.service.customer.CustomerSampleService; +import lombok.AllArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.stereotype.Component; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * 校准证书参数生成 + */ +@Component(PrintFileDataRegisterBeanEnum.CALIBRATION_CERTIFICATE_BEAN) +public class CalibrationPrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { + + /** + * 1、进行打印证书对象的初始化 + * 2、获取定制化的签名 + * 3、获取定制化的参数 + * + * @param object 证书报告信息 + * @param templateFileDir 本地进行打印报告组合的路径 + * @return + */ + @Override + public FilePrintRegister CustomizedPrintFileRegister(Object object, String templateFileDir) { + BusinessCertificateReport metaData = (BusinessCertificateReport) object; + FilePrintRegister filePrintRegister = new FilePrintRegister(); + initialization(filePrintRegister, templateFileDir, metaData); + List> approvalLogList = approvalOperateService.approvalLog(metaData.getProcessId()); + Map> ApprovalLogMap = approvalLogList.stream() + .collect(Collectors.toMap(e -> e.get(0).getApprovalStatus(), e -> e)); + customizedSignNamesParamCreator(); + List electronicSignList = this.customizedSignNamesCreator(ApprovalLogMap, filePrintRegister); + electronicSignList.addAll(customizedElectronicSignSeals(metaData)); + filePrintRegister.setElectronicImageList(electronicSignList); + filePrintRegister.setParams(certificateFilePopulateParamCreator(metaData)); + return filePrintRegister; + } + + /** + * 定制化电子签章文件 + * + * @param metaData + * @return + */ + private List customizedElectronicSignSeals(BusinessCertificateReport metaData) { + List electronicImageSeals = new ArrayList<>(); + electronicImageSeals.add(doCreateElectronicSignSeal(metaData.getSignId(), "发证单位")); + if (StringUtils.isNotEmpty(metaData.getApprovalSignId())) { + String[] approvalSignIds = metaData.getApprovalSignId().split(","); + for (String approvalSignId : approvalSignIds) { + electronicImageSeals.add(doCreateElectronicSignSeal(Long.valueOf(approvalSignId), "")); + } + } + return electronicImageSeals; + } + +} 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 c74cd0c..22ef399 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 @@ -7,6 +7,7 @@ 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.model.customer.CustomerAdviceInfo; import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; import com.casic.missiles.model.business.BusinessCertificateReport; @@ -15,6 +16,7 @@ import com.casic.missiles.modular.interfaces.log.LogManager; import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory; import com.casic.missiles.modular.system.dto.LoginSuccessDTO; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; @@ -91,11 +93,12 @@ */ @GetMapping("/test") @ResponseBody - public void test(Long id) { + public void test(Long id)throws Exception { BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + DictCodeUtils.convertDictCodeToName(certificateReport); PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = printFileRegister.registerPrintFile(certificateReport); + String printFileName = printFileRegister.registerPrintFile(certificateReport,certificateReport.getCertificateReportTypeName()); log.info(printFileName); } diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index 1939b15..abf5fb0 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -114,7 +114,7 @@ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ file: - dir:D:\cz\203\file + dir: D:\cz\203\file #代码生成器配置 code: generate: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 2cd8fba..ac65bf4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -39,7 +39,8 @@ CERTIFICATE_REPORT("certificateReport", "certificateReport", "证书报告"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), - OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"); + OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java deleted file mode 100644 index d48545b..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/CertificateTypeEnum.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.missiles.enums.business; - -public interface CertificateTypeEnum { - - String CALIBRATION_CERTIFICATE = "0"; - String TEST_REPORT = "1"; -} 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 new file mode 100644 index 0000000..f421fb4 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -0,0 +1,12 @@ +package com.casic.missiles.enums.business; + +public interface FilePrintTypeEnum { + + String CALIBRATION_CERTIFICATE = "样品内部检校证书"; + String TEST_REPORT = "样品外包证书"; + +// 自有设备内部检校证书 +// 自有设备外包证书 +// 自有设备溯源证书 + +} diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java deleted file mode 100644 index 6779003..0000000 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareCertificateTypeEnum.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.missiles.enums.notifyevent; - -import com.casic.missiles.enums.business.CertificateTypeEnum; - -import java.util.HashMap; - -public enum AwareCertificateTypeEnum implements PrintFileDataRegisterBeanEnum, CertificateTypeEnum { - - CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { - { - put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 - put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 - } - }); - - public HashMap certificateTypeBeanMap; - - AwareCertificateTypeEnum(HashMap certificateTypeBeanMap) { - this.certificateTypeBeanMap = certificateTypeBeanMap; - } - - public HashMap getCertificateTypeBeanMap() { - return certificateTypeBeanMap; - } -} 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 new file mode 100644 index 0000000..da9a7be --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -0,0 +1,25 @@ +package com.casic.missiles.enums.notifyevent; + +import com.casic.missiles.enums.business.FilePrintTypeEnum; + +import java.util.HashMap; + +public enum AwareFilePrintTypeEnum implements PrintFileDataRegisterBeanEnum, FilePrintTypeEnum { + + CERTIFICATE_TYPE_BEAN_MAP(new HashMap() { + { + put(CALIBRATION_CERTIFICATE, CALIBRATION_CERTIFICATE_BEAN); //校准证书 + put(TEST_REPORT, TEST_REPORT_BEAN); //测试报告 + } + }); + + public HashMap certificateTypeBeanMap; + + AwareFilePrintTypeEnum(HashMap certificateTypeBeanMap) { + this.certificateTypeBeanMap = certificateTypeBeanMap; + } + + public HashMap getCertificateTypeBeanMap() { + return certificateTypeBeanMap; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java index 47fc55e..278951a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/ElectronicImage.java @@ -8,19 +8,24 @@ @Data public class ElectronicImage { - { + /** + * 默认电子签章值 + */ { //关键字索引 (-1) - final Integer keyWordIndex = -1; + keyWordIndex = -1; + /** + * 该电子签章位置是关键字的相对位置 + */ // 电子印章水平位置 - final float horizontal = 300f; + horizontal = 300f; // 电子印章垂直位置 - final float vertical = -55f; + vertical = -55f; // 电子印章宽度 - final float stampWidth = 120; + stampWidth = 120f; // 电子印章高度 - final float stampHeight = 120; + stampHeight = 120f; //照片透明度设置 - final int alpha = 150; + diaphaneity = 150f; } @@ -32,10 +37,10 @@ /** * 透明度 */ - private Integer diaphaneity; + private Float diaphaneity; /** - * 透明度 + * 图片叠加标志 */ private Boolean mereFlag; @@ -44,17 +49,10 @@ */ private Float horizontal; /** - * 关键字 - */ - private String keyWord; - /** - * 关键字索引 - */ - private Integer keyWordIndex; - /** * 电子印章垂直位置 (当前推荐455f) */ private Float vertical; + /** * 电子印章宽度(推荐120) */ @@ -65,14 +63,24 @@ */ private Float stampHeight; - /** - * 书签名,通过名称寻找书签文本所在位置 - */ - private String bookmarkName; /** - * 替换的文本新内容 + * 关键字 */ + private String keyWord; + /** + * 关键字索引 + */ + private Integer keyWordIndex; + + // /** +// * 书签名,通过名称寻找书签文本所在位置 +// */ + private String bookmarkName; + // +// /** +// * 替换的文本新内容 +// */ private String newBookmarkText; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java index 060c998..a8a331c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessCertificateReport.java @@ -48,6 +48,7 @@ */ @TableField("certificate_report_type") @ApiModelProperty(value = "证书报告类型", dataType = "String") + @DictCodeField(message = "证书报告类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateReportType; /** @@ -85,7 +86,6 @@ @ApiModelProperty(value = "检校专业", dataType = "String") @DictCodeField(message = "检校专业不合法", cacheName = MeterDictCode.CALIBRATION_MAJOR) private String calibrationMajor; - /** * 出具日期 */ @@ -171,15 +171,6 @@ @DictCodeField(message = "审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) private String approvalStatus; - - /** - * 审批状态(字典code) - */ - @TableField("approval_status") - @ApiModelProperty(value = "打印审批状态", dataType = "String") - @DictCodeField(message = "打印审批状态不合法", cacheName = MeterDictCode.APPROVAL_STATUS) - private String printApprovalStatus; - @TableField("remark") @ApiModelProperty(value = "备注", dataType = "String") private String remark; 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 e378c28..1ef7e71 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 @@ -85,9 +85,9 @@ page.setSize(Integer.MAX_VALUE); request.setCreateUserId(user.getId()); Page certificateListResponsePage = handleApprovalStatus(page, request); - iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.ADVICE_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, CertificateListResponse.class, certificateListResponsePage.getRecords(), ExportEnum.CERTIFICATE_PRINT_EXPORT.getSheetName()); } catch (Exception e) { - log.error("客户投诉导出出现异常,异常信息为{}", e); + log.error("证书打印导出出现异常,异常信息为{}", e); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 24c1c75..5264fab 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -151,6 +151,7 @@ for (CustomerSampleInfo sampleInfo : businessOrder.getCustomerSampleInfoList()) { sampleInfo.setDeliverer(businessOrder.getDeliverer()); sampleInfo.setCustomerNo(businessOrder.getCustomerNo()); + sampleInfo.setMeasureType(INSIDE_MEASURE); sampleInfo.setDelivererTel(businessOrder.getDelivererTel()); if ("0".equals(sampleInfo.getIsExistSample())) { ReturnDTO returnDTO = customerSampleService.addSample(sampleInfo); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index 589851f..e7ed7fe 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -86,7 +86,7 @@ Long orderId = dispatchVO.getOrderId(); Long sampleId = dispatchVO.getSampleId(); String sampleStatus = dispatchVO.getSampleStatus(); - //先过滤超期状态下的外检外包 + //先过滤超期状态下的外包 if (!StringUtils.isEmpty(request.getSampleStatus()) && BE_OVERDUE.equals(request.getSampleStatus()) && notSelfMeasure(dispatchVO)) { return; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java index 7e30713..bb611b9 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/FilePrintRegisterUtils.java @@ -32,14 +32,6 @@ //关键字索引 (-1) private final static Integer keyWordIndex = -1; - // 电子印章水平位置 - private final static float horizontal = 300f; - // 电子印章垂直位置 - private final static float vertical = -55f; - // 电子印章宽度 - private final static float stampWidth = 120; - // 电子印章高度 - private final static float stampHeight = 120; //照片透明度设置 private final static int alpha = 150; @@ -51,28 +43,39 @@ //1、按照模板填充数据,并导出word String wordOldUrl = exportWord(filePrintRegister.getTemplatePath(), filePrintRegister.getTemDir(), filePrintRegister.getFileName(), filePrintRegister.getParams()); //设置透明属性 1、获取照片 2、签章背景透明设置 3、设置照片路径和照片类型进行图片保存 - for (ElectronicImage electronicSeal : filePrintRegister.getElectronicImageList()) { - BufferedImage bi = readImage(electronicSeal.getElectronicSealImageUrl()); - BufferedImage electronSealImage = convertLayout(bi, electronicSeal.getDiaphaneity()); - String stampImgUrl = electronicSeal.getElectronicSealImageUrl(); - String imagePath = stampImgUrl.substring(0, stampImgUrl.length() - 4) + "1.png"; - String[] imageCutOffContents = stampImgUrl.split("."); - electronicSeal.setElectronicSealImageUrl(imagePath); - saveFile(electronSealImage, imageCutOffContents[imageCutOffContents.length - 1], imagePath); - } +// for (ElectronicImage electronicSeal : filePrintRegister.getElectronicImageList()) { +// BufferedImage bi = readImage(electronicSeal.getElectronicSealImageUrl()); +// BufferedImage electronSealImage = convertLayout(bi, electronicSeal.getDiaphaneity()); +// String stampImgUrl = electronicSeal.getElectronicSealImageUrl(); +// String imagePath = stampImgUrl.substring(0, stampImgUrl.length() - 4) + "1.png"; +// String[] imageCutOffContents = stampImgUrl.split("."); +// electronicSeal.setElectronicSealImageUrl(imagePath); +// saveFile(electronSealImage, imageCutOffContents[imageCutOffContents.length - 1], imagePath); +// } //按关键字进行分组 - Map> sameKeySealMaps = filePrintRegister.getElectronicImageList().stream().collect( + Map> sameKeyWordSealMaps = filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage->StringUtils.isNotEmpty(electronicImage.getKeyWord())) + .collect( Collectors.groupingBy(ElectronicImage::getKeyWord) ); // 初始化world,pdf名称参数 String[] filePrintType = filePrintRegister.getTemplatePath().split("\\."); String wordNewUrl = filePrintRegister.getTemplatePath(); - String pdfNewUrl = filePrintType[0]+"."+ "pdf"; + String pdfNewUrl = filePrintType[0] + "." + "pdf"; //3、根据关键字进行添加签章和签字 - for (Map.Entry> entry : sameKeySealMaps.entrySet()) { + for (Map.Entry> entry : sameKeyWordSealMaps.entrySet()) { List electronicSeals = entry.getValue(); addSameKeyWordStamp(wordOldUrl, wordNewUrl, electronicSeals); } + + //获取没有关键字的图片,即绝对路径的图片 + List absolutePathImageList= filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage->StringUtils.isEmpty(electronicImage.getKeyWord())) + .collect(Collectors.toList()); + //根据设置的绝对路径进行图片的填充 + for(ElectronicImage absolutePathImage:absolutePathImageList){ + addAbsolutePathStamp(wordOldUrl, wordNewUrl,absolutePathImage); + } // 4、将新word转化为pdf文件 wordToPdf(wordNewUrl, pdfNewUrl); return pdfNewUrl; @@ -91,19 +94,15 @@ Assert.notNull(temDir, "临时文件路径不能为空"); Assert.notNull(fileName, "导出文件名不能为空"); if (fileName.endsWith(".doc")) { -// HWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); + docToDocx(templatePath, templatePath + "x"); + templatePath += "x"; } -// Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); - if (!temDir.endsWith("/")) { - temDir = temDir; - } + Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); File dir = new File(temDir); if (!dir.getParentFile().exists()) { // 新建文件夹 dir.getParentFile().mkdirs(); } -// operateWord(params,templatePath); - String tmpPath = ""; try { XWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); @@ -146,12 +145,12 @@ docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); //指定电子章位置 //水平位置 - docPicture.setHorizontalPosition(horizontal); + docPicture.setHorizontalPosition(electronicSeal.getHorizontal()); //垂直位置 - docPicture.setVerticalPosition(vertical); + docPicture.setVerticalPosition(electronicSeal.getStampHeight()); //设置电子章大小 - docPicture.setWidth(stampWidth); - docPicture.setHeight(stampHeight); + docPicture.setWidth(electronicSeal.getStampWidth()); + docPicture.setHeight(electronicSeal.getDiaphaneity()); } //保存添加电子章的Word文档 document.saveToFile(wordNewUrl); @@ -165,7 +164,7 @@ * @param bookmarkName 书签名 * @param newBookmarkText 新文本内容 */ - private void replaceBookmarkContent(Document document, String bookmarkName, String newBookmarkText) { + private static void replaceBookmarkContent(Document document, String bookmarkName, String newBookmarkText) { //定位到指定书签位置 BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(document); bookmarksNavigator.moveToBookmark(bookmarkName); @@ -194,7 +193,7 @@ * @param alpha * @return */ - public static BufferedImage convertLayout(BufferedImage imgsrc, int alpha) { + public static BufferedImage convertLayout(BufferedImage imgsrc, float alpha) { try { //创建一个包含透明度的图片,半透明效果必须要存储为png合适才行,存储为jpg,底色为黑色 BufferedImage back = new BufferedImage(imgsrc.getWidth(), imgsrc.getHeight(), BufferedImage.TYPE_INT_ARGB); @@ -242,17 +241,8 @@ * * @param wordOldUrl word文件路径 * @param wordNewUrl 新word文件路径 - * @param stampImgUrl 电子印章图片路径 - * @param horizontal 电子印章水平位置 (当前文件推荐260f) - * @param vertical 电子印章垂直位置 (当前推荐455f) - * @param stampWidth 电子印章宽度(推荐120) - * @param stampHeight 电子印章高度(推荐120) - * @param bookmarkName 书签名,通过名称寻找书签文本所在位置 - * @param newBookmarkText 替换的文本新内容 */ - public void addStamp(String wordOldUrl, String wordNewUrl, String stampImgUrl, - Float horizontal, Float vertical, Float stampWidth, - Float stampHeight, String bookmarkName, String newBookmarkText) { + private static void addAbsolutePathStamp(String wordOldUrl, String wordNewUrl, ElectronicImage absolutePathImage) { // 加载文档 Document document = new Document(); document.loadFromFile(wordOldUrl); @@ -264,31 +254,29 @@ Paragraph paragraph = section.getParagraphs().get(0); // 判断是否需要替换书签位置文本内容 - if (StringUtils.isNotEmpty(bookmarkName)) { - replaceBookmarkContent(document, bookmarkName, newBookmarkText); + if (StringUtils.isNotEmpty(absolutePathImage.getBookmarkName())) { + replaceBookmarkContent(document, absolutePathImage.getBookmarkName(), absolutePathImage.getNewBookmarkText()); } // 添加电子印章 - DocPicture docPicture = paragraph.appendPicture(stampImgUrl); + DocPicture docPicture = paragraph.appendPicture(absolutePathImage.getElectronicSealImageUrl()); // 指定电子章位置 // 水平位置 - docPicture.setHorizontalPosition(horizontal); + docPicture.setHorizontalPosition(absolutePathImage.getHorizontal()); // 垂直位置 - docPicture.setVerticalPosition(vertical); + docPicture.setVerticalPosition(absolutePathImage.getVertical()); // 设置电子章大小 - docPicture.setWidth(stampWidth); - docPicture.setHeight(stampHeight); + docPicture.setWidth(absolutePathImage.getStampWidth()); + docPicture.setHeight(absolutePathImage.getHorizontal()); // 设置图片位于文字顶层 docPicture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text); - // 保存添加电子章的Word文档 document.saveToFile(wordNewUrl); document.dispose(); // log.info("文档添加电子印章结束,新WORD文档地址:{}",wordNewUrl); - } @@ -384,10 +372,11 @@ /** * doc 转 docx - * @param sourceFilePath 源文件路径 - * @param destFilePath 转换成docx文件路径 + * + * @param sourceFilePath 源文件路径 + * @param destFilePath 转换成docx文件路径 */ - public static void docToDocx(String sourceFilePath,String destFilePath){ + public static void docToDocx(String sourceFilePath, String destFilePath) { Document document = new Document(); document.loadFromFile(sourceFilePath); document.saveToFile(destFilePath); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java index c84fe0b..ff4713f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataGeneric.java @@ -1,10 +1,6 @@ package com.casic.missiles.service.listeners.processor.register; import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.model.business.BusinessCertificateReport; - -import java.util.ArrayList; -import java.util.List; public interface PrintFileDataGeneric { @@ -13,7 +9,7 @@ * * 2、组装参数param外的参数 * * 3、填充注册表信息参数 */ - FilePrintRegister CustomizedPrintFileRegister(BusinessCertificateReport metaData, String templateFileDir); + FilePrintRegister CustomizedPrintFileRegister(Object object, String templateFileDir); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java index cd43ce8..bde219c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileDataSupport.java @@ -5,37 +5,51 @@ import com.casic.missiles.dto.flowable.ApprovalLogResponse; import com.casic.missiles.mapper.sys.PrintFileRegisterMapper; import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.service.business.IBusinessOrderService; +import com.casic.missiles.service.customer.CustomerSampleService; +import com.casic.missiles.service.flowable.ApprovalOperateService; 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.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; public class PrintFileDataSupport { + @Autowired + protected ApprovalOperateService approvalOperateService; + @Autowired + protected IBusinessOrderService businessOrderService; + @Autowired + protected CustomerSampleService customerSampleService; + /** + * 电子签名获取的流程 keyParamList,customizedSignNames具有映射功能 + */ protected List keyParamList; + /** + * 自定义签名名字 + */ protected List customizedSignNames; - protected List> appendNameList; protected PrintFileDataSupport() { this.keyParamList = new ArrayList<>(); customizedSignNames = new ArrayList<>(); - appendNameList = new ArrayList<>(); } @Resource protected PrintFileRegisterMapper fileRegisterMapper; /** + * 初始化文件数据注册信息 * 1、获取证书模板 - * 2、设置临时处理空间路径、文件名称、 + * 2、设置临时处理空间路径、文件名称、文件资源路径 * 3、设置文件id,作为操作空间文件名称,防止对其他同时处理的证书形成影响 */ protected void initialization(FilePrintRegister filePrintRegister, String templateFileDir, BusinessCertificateReport certificateReport) { - templateFileDir = templateFileDir + certificateReport.getId()+"\\"; + templateFileDir = templateFileDir + certificateReport.getId() + "\\"; String fileName = fileRegisterMapper.getSignFileNameById(certificateReport.getTemplateId(), "system_template"); filePrintRegister.setFileName(fileName); filePrintRegister.setTemDir(templateFileDir); @@ -46,7 +60,22 @@ filePrintRegister.setBeDownloadedFileNames(fileNames); } - protected List electronicSignNamesCreator(Map> approvalLogMap) { + /** + * 文件自定义名称参数构建器 + */ + protected void customizedSignNamesParamCreator() { + keyParamList.add("发起人"); + keyParamList.add("审批中"); + keyParamList.add("审批完成"); + customizedSignNames.add("发起人"); + customizedSignNames.add("核验人"); + customizedSignNames.add("批准人"); + } + + /** + * 电子签名构建器 + */ + protected List customizedSignNamesCreator(Map> approvalLogMap, FilePrintRegister filePrintRegister) { List electronicImageList = new ArrayList<>(); for (int i = 0; i < keyParamList.size(); i++) { if (approvalLogMap.containsKey(keyParamList.get(i))) { @@ -57,9 +86,10 @@ if (CollectionUtils.isNotEmpty(approvalLogList)) { approvalLogList.forEach( approvalLog -> { - ElectronicImage electronicImage = new ElectronicImage(); + ElectronicImage electronicImage = defaultElectronicSignName(); String signFileName = fileRegisterMapper.getSignFileNameById(approvalLog.getAssigneeId()); electronicImage.setElectronicSealImageUrl(signFileName); + filePrintRegister.getBeDownloadedFileNames().add(signFileName); electronicImage.setKeyWord(customizedSignName); electronicImageList.add(electronicImage); } @@ -69,27 +99,55 @@ return electronicImageList; } - protected List electronicSignSealsCreator(BusinessCertificateReport metaData) { - List electronicImageList = new ArrayList<>(); + /** + * 默认电子签名的图片设置,允许重写 + */ + protected ElectronicImage defaultElectronicSignName() { ElectronicImage electronicImage = new ElectronicImage(); - Long electronicSealId = metaData.getSignId(); + electronicImage.setHorizontal(200f); + return electronicImage; + } + + /** + * 默认电子签章的图片设置,允许重写 + */ + protected ElectronicImage defaultElectronicSignSeal() { + ElectronicImage electronicImage = new ElectronicImage(); + return electronicImage; + } + + /** + * 电子签章获取 + * + * @param electronicSealId 证书报告文件数据 + * @param keyWord 关键字 + * @return + */ + protected ElectronicImage doCreateElectronicSignSeal(Long electronicSealId, String keyWord) { + ElectronicImage electronicImage = defaultElectronicSignSeal(); String electronicSealName = fileRegisterMapper.getSignFileNameById(electronicSealId, "system_sign"); electronicImage.setElectronicSealImageUrl(electronicSealName); -// electronicImage.setKeyWord(customizedSignName); - electronicImageList.add(electronicImage); - if (StringUtils.isNotEmpty(metaData.getApprovalSignId())) { - String[] approvalSignIds = metaData.getApprovalSignId().split(","); -// for (String approvalSignId : approvalSignIds) { -// String electronicSealName = fileRegisterMapper.getSignFileNameById(electronicSealId, "system_sign"); -// } - } - return electronicImageList; + electronicImage.setKeyWord(keyWord); + return electronicImage; + } + + protected Map certificateFilePopulateParamCreator(BusinessCertificateReport metaData) { + Calendar now = Calendar.getInstance(); + BusinessOrder businessOrder = businessOrderService.orderDetail(metaData.getOrderId()); + CustomerSampleInfo customerSampleInfo = customerSampleService.sampleDetail(metaData.getSampleId()); + Map params = new HashMap<>(); + params.put("customerName", businessOrder.getCustomerName()); + params.put("customerAddress", businessOrder.getCustomerAddress()); + params.put("sampleNo", customerSampleInfo.getSampleNo()); + params.put("sampleName", customerSampleInfo.getSampleName()); + params.put("manufacturingNo", customerSampleInfo.getManufacturingNo()); + params.put("y", now.get(Calendar.YEAR)); + params.put("m", (now.get(Calendar.MONTH) + 1)); + params.put("d", now.get(Calendar.DAY_OF_MONTH)); + return params; } - protected void populateElectronicFiles(ElectronicImage electronicImage) { - } - } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java index c6710fe..b60febd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/PrintFileRegister.java @@ -2,10 +2,7 @@ import cn.hutool.core.lang.Assert; import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.enums.BusinessExceptionEnum; -import com.casic.missiles.enums.notifyevent.AwareCertificateTypeEnum; -import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.enums.notifyevent.AwareFilePrintTypeEnum; import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.SpringContextUtil; import io.minio.GetObjectArgs; @@ -24,7 +21,7 @@ @Component @Slf4j -public class PrintFileRegister { +public class PrintFileRegister{ @Autowired private MinioClient minioClient; @@ -41,23 +38,23 @@ * 2、进行远程文件的下载工作,支持文件的读写权限操作 * 3、进行文件的填充合并等操作,即通过模板进行打印证书的信息注册 * 4、将注册产生的打印证书信息上传到服务器 - * 5、删除因为打印产生的文件信息 + * 5、递归删除因为打印产生的文件信息 * 6、返还打印产生的证书文件 */ - public String registerPrintFile(BusinessCertificateReport certificateReport) { + public String registerPrintFile(Object printFileRegister,String prefixType) { String tempLocalFileDir = localFileDir; - Assert.isFalse(Objects.isNull(certificateReport), () -> { + Assert.isFalse(Objects.isNull(printFileRegister), () -> { throw new RuntimeException("the certificateReport is null,please check your params..."); }); //获取对应证书的beanName - String fileDataRegisterBeanName = AwareCertificateTypeEnum.CERTIFICATE_TYPE_BEAN_MAP - .getCertificateTypeBeanMap().get(certificateReport.getCertificateReportType()); + String fileDataRegisterBeanName = AwareFilePrintTypeEnum.CERTIFICATE_TYPE_BEAN_MAP + .getCertificateTypeBeanMap().get(prefixType); Assert.isFalse(StringUtils.isEmpty(fileDataRegisterBeanName), () -> { throw new RuntimeException("the bean mapped by this certificate type has no mapping relationship..."); }); PrintFileDataGeneric fileDataGeneric = SpringContextUtil.getBean(fileDataRegisterBeanName); if (fileDataGeneric != null) { - FilePrintRegister metaData = fileDataGeneric.CustomizedPrintFileRegister(certificateReport, tempLocalFileDir); + FilePrintRegister metaData = fileDataGeneric.CustomizedPrintFileRegister(printFileRegister, tempLocalFileDir); //获取文件夹目录,没有则创建 tempLocalFileDir = tempLocalFileDir + metaData.getFileNameId() + "\\"; getLocalFileDir(tempLocalFileDir); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/CalibrationPrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/CalibrationPrintFileData.java deleted file mode 100644 index eb95a6a..0000000 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/CalibrationPrintFileData.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.casic.missiles.service.listeners.processor.register.data; - -import com.casic.missiles.dto.business.certificate.ElectronicImage; -import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.enums.notifyevent.PrintFileDataRegisterBeanEnum; -import com.casic.missiles.service.listeners.processor.register.PrintFileDataGeneric; -import com.casic.missiles.service.listeners.processor.register.PrintFileDataSupport; -import com.casic.missiles.model.business.BusinessCertificateReport; -import com.casic.missiles.model.business.BusinessOrder; -import com.casic.missiles.model.customer.CustomerSampleInfo; -import com.casic.missiles.service.business.IBusinessOrderService; -import com.casic.missiles.service.customer.CustomerSampleService; -import lombok.AllArgsConstructor; -import org.springframework.stereotype.Component; - -import java.util.*; - -/** - * 校准证书参数生成 - */ -@Component(PrintFileDataRegisterBeanEnum.CALIBRATION_CERTIFICATE_BEAN) -@AllArgsConstructor -public class CalibrationPrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { - - private final IBusinessOrderService businessOrderService; - private final CustomerSampleService customerSampleService; - - /** - * 1、进行打印证书对象的初始化 - * 2、获取定制化的签名 - * 3、获取定制化的参数 - * - * @param metaData 证书报告信息 - * @param templateFileDir 本地进行打印报告组合的路径 - * @return - */ - @Override - public FilePrintRegister CustomizedPrintFileRegister(BusinessCertificateReport metaData, String templateFileDir) { - FilePrintRegister filePrintRegister = new FilePrintRegister(); - initialization(filePrintRegister, templateFileDir, metaData); - filePrintRegister.setElectronicImageList(this.getCustomizedSignName(metaData)); - doPopulatePrintFileRegister(filePrintRegister, metaData); - return filePrintRegister; - } - - /** - * 每一种证书可能存在一个或者多个定制化的签名、签章 - */ - private List getCustomizedSignName(BusinessCertificateReport certificateReport) { - List customizedSignNames = new ArrayList<>(); - List fileNames = new ArrayList<>(); - String signName = fileRegisterMapper.getSignFileNameById(certificateReport.getSignId(), "system_sign"); - fileNames.add(signName); - return customizedSignNames; - } - - /** - * 定制化的证书参数 - */ - private void doPopulatePrintFileRegister(FilePrintRegister filePrintRegister, BusinessCertificateReport metaData) { - Calendar now = Calendar.getInstance(); - BusinessOrder businessOrder =businessOrderService.orderDetail(metaData.getOrderId()); - CustomerSampleInfo customerSampleInfo=customerSampleService.sampleDetail(metaData.getSampleId()); - Map params = new HashMap<>(); - params.put("customerName",businessOrder.getCustomerName()); - params.put("customerAddress",businessOrder.getCustomerAddress()); - params.put("sampleNo",customerSampleInfo.getSampleNo()); - params.put("sampleName",customerSampleInfo.getSampleName()); - params.put("manufacturingNo",customerSampleInfo.getManufacturingNo()); - params.put("y", now.get(Calendar.YEAR)); - params.put("m", (now.get(Calendar.MONTH) + 1)); - params.put("d", now.get(Calendar.DAY_OF_MONTH)); - filePrintRegister.setParams(params); - } - - -} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/TestReportPrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/TestReportPrintFileData.java deleted file mode 100644 index 018c2c2..0000000 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/TestReportPrintFileData.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.missiles.service.listeners.processor.register.data; - -import com.casic.missiles.dto.business.certificate.FilePrintRegister; -import com.casic.missiles.dto.flowable.ApprovalLogResponse; -import com.casic.missiles.enums.notifyevent.PrintFileDataRegisterBeanEnum; -import com.casic.missiles.service.listeners.processor.register.PrintFileDataGeneric; -import com.casic.missiles.service.listeners.processor.register.PrintFileDataSupport; -import com.casic.missiles.model.business.BusinessCertificateReport; -import com.casic.missiles.service.flowable.ApprovalOperateService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - - -/** - * 测试报告参数生成 - */ -@Component(PrintFileDataRegisterBeanEnum.TEST_REPORT_BEAN) -public class TestReportPrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { - - @Autowired - private ApprovalOperateService approvalOperateService; - /** - * 1、进行打印证书对象的初始化 - * 2、获取定制化的签名 - * 3、获取定制化的参数 - * - * @param metaData 证书报告信息 - * @param templateFileDir 本地进行打印报告组合的路径 - * @return - */ - @Override - public FilePrintRegister CustomizedPrintFileRegister(BusinessCertificateReport metaData, String templateFileDir) { - FilePrintRegister filePrintRegister = new FilePrintRegister(); - initialization(filePrintRegister, templateFileDir, metaData); - List> approvalLogList=approvalOperateService.approvalLog(metaData.getProcessId()); - Map> ApprovalLogMap =approvalLogList.stream() - .collect(Collectors.toMap(e->e.get(0).getApprovalStatus(),e->e)); - getSignNamesCreatorParam(); - filePrintRegister.setElectronicImageList( - this.electronicSignNamesCreator(ApprovalLogMap)); - doPopulatePrintFileRegister(filePrintRegister, metaData); - return filePrintRegister; - } - - - private void getSignNamesCreatorParam(){ - keyParamList.add("发起人"); - keyParamList.add("审批中"); - keyParamList.add("审批完成"); - customizedSignNames.add("发起人"); - customizedSignNames.add("核验人"); - customizedSignNames.add("批准人"); - } - /** - * 定制化的证书参数 - */ - private void doPopulatePrintFileRegister(FilePrintRegister filePrintRegister, BusinessCertificateReport metaData) { - Map params = new HashMap<>(); -// params.put() - filePrintRegister.setParams(params); - } - -} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/certificate/CalibrationPrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/certificate/CalibrationPrintFileData.java new file mode 100644 index 0000000..b0639ad --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/certificate/CalibrationPrintFileData.java @@ -0,0 +1,71 @@ +package com.casic.missiles.service.listeners.processor.register.data.certificate; + +import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.FilePrintRegister; +import com.casic.missiles.dto.flowable.ApprovalLogResponse; +import com.casic.missiles.enums.notifyevent.PrintFileDataRegisterBeanEnum; +import com.casic.missiles.service.listeners.processor.register.PrintFileDataGeneric; +import com.casic.missiles.service.listeners.processor.register.PrintFileDataSupport; +import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.service.business.IBusinessOrderService; +import com.casic.missiles.service.customer.CustomerSampleService; +import lombok.AllArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.stereotype.Component; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * 校准证书参数生成 + */ +@Component(PrintFileDataRegisterBeanEnum.CALIBRATION_CERTIFICATE_BEAN) +public class CalibrationPrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { + + /** + * 1、进行打印证书对象的初始化 + * 2、获取定制化的签名 + * 3、获取定制化的参数 + * + * @param object 证书报告信息 + * @param templateFileDir 本地进行打印报告组合的路径 + * @return + */ + @Override + public FilePrintRegister CustomizedPrintFileRegister(Object object, String templateFileDir) { + BusinessCertificateReport metaData = (BusinessCertificateReport) object; + FilePrintRegister filePrintRegister = new FilePrintRegister(); + initialization(filePrintRegister, templateFileDir, metaData); + List> approvalLogList = approvalOperateService.approvalLog(metaData.getProcessId()); + Map> ApprovalLogMap = approvalLogList.stream() + .collect(Collectors.toMap(e -> e.get(0).getApprovalStatus(), e -> e)); + customizedSignNamesParamCreator(); + List electronicSignList = this.customizedSignNamesCreator(ApprovalLogMap, filePrintRegister); + electronicSignList.addAll(customizedElectronicSignSeals(metaData)); + filePrintRegister.setElectronicImageList(electronicSignList); + filePrintRegister.setParams(certificateFilePopulateParamCreator(metaData)); + return filePrintRegister; + } + + /** + * 定制化电子签章文件 + * + * @param metaData + * @return + */ + private List customizedElectronicSignSeals(BusinessCertificateReport metaData) { + List electronicImageSeals = new ArrayList<>(); + electronicImageSeals.add(doCreateElectronicSignSeal(metaData.getSignId(), "发证单位")); + if (StringUtils.isNotEmpty(metaData.getApprovalSignId())) { + String[] approvalSignIds = metaData.getApprovalSignId().split(","); + for (String approvalSignId : approvalSignIds) { + electronicImageSeals.add(doCreateElectronicSignSeal(Long.valueOf(approvalSignId), "")); + } + } + return electronicImageSeals; + } + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/certificate/TestReportPrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/certificate/TestReportPrintFileData.java new file mode 100644 index 0000000..a168d46 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/register/data/certificate/TestReportPrintFileData.java @@ -0,0 +1,68 @@ +package com.casic.missiles.service.listeners.processor.register.data.certificate; + +import com.casic.missiles.dto.business.certificate.ElectronicImage; +import com.casic.missiles.dto.business.certificate.FilePrintRegister; +import com.casic.missiles.dto.flowable.ApprovalLogResponse; +import com.casic.missiles.enums.notifyevent.PrintFileDataRegisterBeanEnum; +import com.casic.missiles.service.listeners.processor.register.PrintFileDataGeneric; +import com.casic.missiles.service.listeners.processor.register.PrintFileDataSupport; +import com.casic.missiles.model.business.BusinessCertificateReport; +import com.casic.missiles.service.flowable.ApprovalOperateService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + + +/** + * 测试报告参数生成 + */ +@Component(PrintFileDataRegisterBeanEnum.TEST_REPORT_BEAN) +public class TestReportPrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { + + /** + * 1、进行打印证书对象的初始化 + * 2、获取定制化的签名 + * 3、获取定制化的参数 + * 4、获取电子签名的文件列表 + * 5、获取电子签章的文件列表 + * 6、证书报告其他参数填充的列表(可重写) + * + * @param object 证书报告信息 + * @param templateFileDir 本地进行打印报告组合的路径 + * @return + */ + @Override + public FilePrintRegister CustomizedPrintFileRegister(Object object, String templateFileDir) { + BusinessCertificateReport metaData=(BusinessCertificateReport) object; + FilePrintRegister filePrintRegister = new FilePrintRegister(); + initialization(filePrintRegister, templateFileDir, metaData); + List> approvalLogList = approvalOperateService.approvalLog(metaData.getProcessId()); + Map> ApprovalLogMap = approvalLogList.stream() + .collect(Collectors.toMap(e -> e.get(0).getApprovalStatus(), e -> e)); + customizedSignNamesParamCreator(); + List electronicSignList = this.customizedSignNamesCreator(ApprovalLogMap, filePrintRegister); + electronicSignList.addAll(customizedElectronicSignSeals(metaData)); + filePrintRegister.setElectronicImageList(electronicSignList); + filePrintRegister.setParams(certificateFilePopulateParamCreator(metaData)); + return filePrintRegister; + } + + private List customizedElectronicSignSeals(BusinessCertificateReport metaData) { + List electronicImageSeals = new ArrayList<>(); + electronicImageSeals.add(doCreateElectronicSignSeal(metaData.getSignId(), "发证单位")); + if (StringUtils.isNotEmpty(metaData.getApprovalSignId())) { + String[] approvalSignIds = metaData.getApprovalSignId().split(","); + for (String approvalSignId : approvalSignIds) { + electronicImageSeals.add(doCreateElectronicSignSeal(metaData.getSignId(), approvalSignId)); + } + } + return electronicImageSeals; + } + +}