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 5fb246a..c74cd0c 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,13 +7,15 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; -import com.casic.missiles.dto.ReturnUtil; -import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; +import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; +import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.domain.constants.PermissionConstants; 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.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; import org.springframework.stereotype.Controller; @@ -21,11 +23,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; import java.util.Map; import static com.casic.missiles.core.util.HttpContext.getIp; @@ -86,4 +84,19 @@ return resultData; } + /** + * 测试所用类 + * + * @param id + */ + @GetMapping("/test") + @ResponseBody + public void test(Long id) { + BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); + BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); + String printFileName = printFileRegister.registerPrintFile(certificateReport); + 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 5fb246a..c74cd0c 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,13 +7,15 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; -import com.casic.missiles.dto.ReturnUtil; -import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; +import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; +import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.domain.constants.PermissionConstants; 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.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; import org.springframework.stereotype.Controller; @@ -21,11 +23,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; import java.util.Map; import static com.casic.missiles.core.util.HttpContext.getIp; @@ -86,4 +84,19 @@ return resultData; } + /** + * 测试所用类 + * + * @param id + */ + @GetMapping("/test") + @ResponseBody + public void test(Long id) { + BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); + BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); + String printFileName = printFileRegister.registerPrintFile(certificateReport); + log.info(printFileName); + } + } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index f51b9cd..daefb5c 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -136,17 +136,17 @@ cn.afterturn easypoi-base - 4.3.0 + 4.4.0 cn.afterturn easypoi-web - 4.3.0 + 4.4.0 cn.afterturn easypoi-annotation - 4.3.0 + 4.4.0 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 5fb246a..c74cd0c 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,13 +7,15 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; -import com.casic.missiles.dto.ReturnUtil; -import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; +import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; +import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.domain.constants.PermissionConstants; 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.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; import org.springframework.stereotype.Controller; @@ -21,11 +23,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; import java.util.Map; import static com.casic.missiles.core.util.HttpContext.getIp; @@ -86,4 +84,19 @@ return resultData; } + /** + * 测试所用类 + * + * @param id + */ + @GetMapping("/test") + @ResponseBody + public void test(Long id) { + BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); + BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); + String printFileName = printFileRegister.registerPrintFile(certificateReport); + log.info(printFileName); + } + } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index f51b9cd..daefb5c 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -136,17 +136,17 @@ cn.afterturn easypoi-base - 4.3.0 + 4.4.0 cn.afterturn easypoi-web - 4.3.0 + 4.4.0 cn.afterturn easypoi-annotation - 4.3.0 + 4.4.0 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 index 8250400..d48545b 100644 --- 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 @@ -2,6 +2,6 @@ public interface CertificateTypeEnum { - String CALIBRATION_CERTIFICATE = "1"; - String TEST_REPORT = "2"; + 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 5fb246a..c74cd0c 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,13 +7,15 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; -import com.casic.missiles.dto.ReturnUtil; -import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; +import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; +import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.domain.constants.PermissionConstants; 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.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; import org.springframework.stereotype.Controller; @@ -21,11 +23,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; import java.util.Map; import static com.casic.missiles.core.util.HttpContext.getIp; @@ -86,4 +84,19 @@ return resultData; } + /** + * 测试所用类 + * + * @param id + */ + @GetMapping("/test") + @ResponseBody + public void test(Long id) { + BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); + BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); + String printFileName = printFileRegister.registerPrintFile(certificateReport); + log.info(printFileName); + } + } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index f51b9cd..daefb5c 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -136,17 +136,17 @@ cn.afterturn easypoi-base - 4.3.0 + 4.4.0 cn.afterturn easypoi-web - 4.3.0 + 4.4.0 cn.afterturn easypoi-annotation - 4.3.0 + 4.4.0 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 index 8250400..d48545b 100644 --- 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 @@ -2,6 +2,6 @@ public interface CertificateTypeEnum { - String CALIBRATION_CERTIFICATE = "1"; - String TEST_REPORT = "2"; + String CALIBRATION_CERTIFICATE = "0"; + String TEST_REPORT = "1"; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java index 5a0949b..81821fd 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java @@ -25,9 +25,9 @@ */ private String fileName; /** - * 生成文件工作空间目录id + * 生成文件名 */ - private String fileNameId; + private Long fileNameId; /** * 模板参数 */ 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 5fb246a..c74cd0c 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,13 +7,15 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; -import com.casic.missiles.dto.ReturnUtil; -import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; +import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; +import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.domain.constants.PermissionConstants; 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.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; import org.springframework.stereotype.Controller; @@ -21,11 +23,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; import java.util.Map; import static com.casic.missiles.core.util.HttpContext.getIp; @@ -86,4 +84,19 @@ return resultData; } + /** + * 测试所用类 + * + * @param id + */ + @GetMapping("/test") + @ResponseBody + public void test(Long id) { + BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); + BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); + String printFileName = printFileRegister.registerPrintFile(certificateReport); + log.info(printFileName); + } + } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index f51b9cd..daefb5c 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -136,17 +136,17 @@ cn.afterturn easypoi-base - 4.3.0 + 4.4.0 cn.afterturn easypoi-web - 4.3.0 + 4.4.0 cn.afterturn easypoi-annotation - 4.3.0 + 4.4.0 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 index 8250400..d48545b 100644 --- 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 @@ -2,6 +2,6 @@ public interface CertificateTypeEnum { - String CALIBRATION_CERTIFICATE = "1"; - String TEST_REPORT = "2"; + String CALIBRATION_CERTIFICATE = "0"; + String TEST_REPORT = "1"; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java index 5a0949b..81821fd 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java @@ -25,9 +25,9 @@ */ private String fileName; /** - * 生成文件工作空间目录id + * 生成文件名 */ - private String fileNameId; + private Long fileNameId; /** * 模板参数 */ 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 e4595d4..f867bf1 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 @@ -65,9 +65,9 @@ Collectors.groupingBy(ElectronicImage::getKeyWord) ); // 初始化world,pdf名称参数 - String[] filePrintType = filePrintRegister.getTemplatePath().split("."); - String wordNewUrl = filePrintRegister.getFileName() + filePrintType[filePrintType.length - 1]; - String pdfNewUrl = filePrintRegister.getFileName() + "pdf"; + String[] filePrintType = filePrintRegister.getTemplatePath().split("\\."); + String wordNewUrl = filePrintRegister.getTemplatePath(); + String pdfNewUrl = filePrintType[0]+"."+ "pdf"; //3、根据关键字进行添加签章和签字 for (Map.Entry> entry : sameKeySealMaps.entrySet()) { List electronicSeals = entry.getValue(); @@ -75,7 +75,7 @@ } // 4、将新word转化为pdf文件 wordToPdf(wordNewUrl, pdfNewUrl); - return pdfNewUrl; + return pdfNewUrl; } /** @@ -90,15 +90,20 @@ Assert.notNull(templatePath, "模板路径不能为空"); Assert.notNull(temDir, "临时文件路径不能为空"); Assert.notNull(fileName, "导出文件名不能为空"); - Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); +// if (fileName.endsWith(".doc")) { +// HWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); +// } +// Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); if (!temDir.endsWith("/")) { - temDir = temDir + File.separator; + temDir = temDir; } File dir = new File(temDir); if (!dir.getParentFile().exists()) { // 新建文件夹 dir.getParentFile().mkdirs(); } +// operateWord(params,templatePath); + String tmpPath = ""; try { XWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); @@ -113,7 +118,6 @@ return tmpPath; } - /** * 将相同关键字的印章添加到同一个位置进行打印 * 1、根据关键词位置添加电子印章 @@ -123,7 +127,8 @@ * @param wordNewUrl 新word文件路径 * @param electronicSealList 电子印章信息 */ - private static void addSameKeyWordStamp(String wordOldUrl, String wordNewUrl, List electronicSealList) throws RuntimeException { + private static void addSameKeyWordStamp(String wordOldUrl, String + wordNewUrl, List electronicSealList) throws RuntimeException { // 加载文档 Document document = new Document(); document.loadFromFile(wordOldUrl); 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 5fb246a..c74cd0c 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,13 +7,15 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; -import com.casic.missiles.dto.ReturnUtil; -import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; +import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; +import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.domain.constants.PermissionConstants; 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.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; import org.springframework.stereotype.Controller; @@ -21,11 +23,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; import java.util.Map; import static com.casic.missiles.core.util.HttpContext.getIp; @@ -86,4 +84,19 @@ return resultData; } + /** + * 测试所用类 + * + * @param id + */ + @GetMapping("/test") + @ResponseBody + public void test(Long id) { + BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); + BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); + String printFileName = printFileRegister.registerPrintFile(certificateReport); + log.info(printFileName); + } + } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index f51b9cd..daefb5c 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -136,17 +136,17 @@ cn.afterturn easypoi-base - 4.3.0 + 4.4.0 cn.afterturn easypoi-web - 4.3.0 + 4.4.0 cn.afterturn easypoi-annotation - 4.3.0 + 4.4.0 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 index 8250400..d48545b 100644 --- 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 @@ -2,6 +2,6 @@ public interface CertificateTypeEnum { - String CALIBRATION_CERTIFICATE = "1"; - String TEST_REPORT = "2"; + String CALIBRATION_CERTIFICATE = "0"; + String TEST_REPORT = "1"; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java index 5a0949b..81821fd 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java @@ -25,9 +25,9 @@ */ private String fileName; /** - * 生成文件工作空间目录id + * 生成文件名 */ - private String fileNameId; + private Long fileNameId; /** * 模板参数 */ 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 e4595d4..f867bf1 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 @@ -65,9 +65,9 @@ Collectors.groupingBy(ElectronicImage::getKeyWord) ); // 初始化world,pdf名称参数 - String[] filePrintType = filePrintRegister.getTemplatePath().split("."); - String wordNewUrl = filePrintRegister.getFileName() + filePrintType[filePrintType.length - 1]; - String pdfNewUrl = filePrintRegister.getFileName() + "pdf"; + String[] filePrintType = filePrintRegister.getTemplatePath().split("\\."); + String wordNewUrl = filePrintRegister.getTemplatePath(); + String pdfNewUrl = filePrintType[0]+"."+ "pdf"; //3、根据关键字进行添加签章和签字 for (Map.Entry> entry : sameKeySealMaps.entrySet()) { List electronicSeals = entry.getValue(); @@ -75,7 +75,7 @@ } // 4、将新word转化为pdf文件 wordToPdf(wordNewUrl, pdfNewUrl); - return pdfNewUrl; + return pdfNewUrl; } /** @@ -90,15 +90,20 @@ Assert.notNull(templatePath, "模板路径不能为空"); Assert.notNull(temDir, "临时文件路径不能为空"); Assert.notNull(fileName, "导出文件名不能为空"); - Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); +// if (fileName.endsWith(".doc")) { +// HWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); +// } +// Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); if (!temDir.endsWith("/")) { - temDir = temDir + File.separator; + temDir = temDir; } File dir = new File(temDir); if (!dir.getParentFile().exists()) { // 新建文件夹 dir.getParentFile().mkdirs(); } +// operateWord(params,templatePath); + String tmpPath = ""; try { XWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); @@ -113,7 +118,6 @@ return tmpPath; } - /** * 将相同关键字的印章添加到同一个位置进行打印 * 1、根据关键词位置添加电子印章 @@ -123,7 +127,8 @@ * @param wordNewUrl 新word文件路径 * @param electronicSealList 电子印章信息 */ - private static void addSameKeyWordStamp(String wordOldUrl, String wordNewUrl, List electronicSealList) throws RuntimeException { + private static void addSameKeyWordStamp(String wordOldUrl, String + wordNewUrl, List electronicSealList) throws RuntimeException { // 加载文档 Document document = new Document(); document.loadFromFile(wordOldUrl); 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 432cdc3..cd43ce8 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 @@ -35,10 +35,12 @@ * 3、设置文件id,作为操作空间文件名称,防止对其他同时处理的证书形成影响 */ protected void initialization(FilePrintRegister filePrintRegister, String templateFileDir, BusinessCertificateReport certificateReport) { + templateFileDir = templateFileDir + certificateReport.getId()+"\\"; String fileName = fileRegisterMapper.getSignFileNameById(certificateReport.getTemplateId(), "system_template"); + filePrintRegister.setFileName(fileName); filePrintRegister.setTemDir(templateFileDir); - filePrintRegister.setFileName(templateFileDir + "\\" + fileName); - filePrintRegister.setFileNameId(String.valueOf(certificateReport.getId())); + filePrintRegister.setTemplatePath(templateFileDir + fileName); + filePrintRegister.setFileNameId(certificateReport.getId()); List fileNames = new ArrayList<>(); fileNames.add(fileName); filePrintRegister.setBeDownloadedFileNames(fileNames); 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 5fb246a..c74cd0c 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,13 +7,15 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; -import com.casic.missiles.dto.ReturnUtil; -import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; +import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; +import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.domain.constants.PermissionConstants; 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.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; import org.springframework.stereotype.Controller; @@ -21,11 +23,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; import java.util.Map; import static com.casic.missiles.core.util.HttpContext.getIp; @@ -86,4 +84,19 @@ return resultData; } + /** + * 测试所用类 + * + * @param id + */ + @GetMapping("/test") + @ResponseBody + public void test(Long id) { + BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); + BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); + String printFileName = printFileRegister.registerPrintFile(certificateReport); + log.info(printFileName); + } + } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index f51b9cd..daefb5c 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -136,17 +136,17 @@ cn.afterturn easypoi-base - 4.3.0 + 4.4.0 cn.afterturn easypoi-web - 4.3.0 + 4.4.0 cn.afterturn easypoi-annotation - 4.3.0 + 4.4.0 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 index 8250400..d48545b 100644 --- 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 @@ -2,6 +2,6 @@ public interface CertificateTypeEnum { - String CALIBRATION_CERTIFICATE = "1"; - String TEST_REPORT = "2"; + String CALIBRATION_CERTIFICATE = "0"; + String TEST_REPORT = "1"; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java index 5a0949b..81821fd 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java @@ -25,9 +25,9 @@ */ private String fileName; /** - * 生成文件工作空间目录id + * 生成文件名 */ - private String fileNameId; + private Long fileNameId; /** * 模板参数 */ 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 e4595d4..f867bf1 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 @@ -65,9 +65,9 @@ Collectors.groupingBy(ElectronicImage::getKeyWord) ); // 初始化world,pdf名称参数 - String[] filePrintType = filePrintRegister.getTemplatePath().split("."); - String wordNewUrl = filePrintRegister.getFileName() + filePrintType[filePrintType.length - 1]; - String pdfNewUrl = filePrintRegister.getFileName() + "pdf"; + String[] filePrintType = filePrintRegister.getTemplatePath().split("\\."); + String wordNewUrl = filePrintRegister.getTemplatePath(); + String pdfNewUrl = filePrintType[0]+"."+ "pdf"; //3、根据关键字进行添加签章和签字 for (Map.Entry> entry : sameKeySealMaps.entrySet()) { List electronicSeals = entry.getValue(); @@ -75,7 +75,7 @@ } // 4、将新word转化为pdf文件 wordToPdf(wordNewUrl, pdfNewUrl); - return pdfNewUrl; + return pdfNewUrl; } /** @@ -90,15 +90,20 @@ Assert.notNull(templatePath, "模板路径不能为空"); Assert.notNull(temDir, "临时文件路径不能为空"); Assert.notNull(fileName, "导出文件名不能为空"); - Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); +// if (fileName.endsWith(".doc")) { +// HWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); +// } +// Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); if (!temDir.endsWith("/")) { - temDir = temDir + File.separator; + temDir = temDir; } File dir = new File(temDir); if (!dir.getParentFile().exists()) { // 新建文件夹 dir.getParentFile().mkdirs(); } +// operateWord(params,templatePath); + String tmpPath = ""; try { XWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); @@ -113,7 +118,6 @@ return tmpPath; } - /** * 将相同关键字的印章添加到同一个位置进行打印 * 1、根据关键词位置添加电子印章 @@ -123,7 +127,8 @@ * @param wordNewUrl 新word文件路径 * @param electronicSealList 电子印章信息 */ - private static void addSameKeyWordStamp(String wordOldUrl, String wordNewUrl, List electronicSealList) throws RuntimeException { + private static void addSameKeyWordStamp(String wordOldUrl, String + wordNewUrl, List electronicSealList) throws RuntimeException { // 加载文档 Document document = new Document(); document.loadFromFile(wordOldUrl); 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 432cdc3..cd43ce8 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 @@ -35,10 +35,12 @@ * 3、设置文件id,作为操作空间文件名称,防止对其他同时处理的证书形成影响 */ protected void initialization(FilePrintRegister filePrintRegister, String templateFileDir, BusinessCertificateReport certificateReport) { + templateFileDir = templateFileDir + certificateReport.getId()+"\\"; String fileName = fileRegisterMapper.getSignFileNameById(certificateReport.getTemplateId(), "system_template"); + filePrintRegister.setFileName(fileName); filePrintRegister.setTemDir(templateFileDir); - filePrintRegister.setFileName(templateFileDir + "\\" + fileName); - filePrintRegister.setFileNameId(String.valueOf(certificateReport.getId())); + filePrintRegister.setTemplatePath(templateFileDir + fileName); + filePrintRegister.setFileNameId(certificateReport.getId()); List fileNames = new ArrayList<>(); fileNames.add(fileName); filePrintRegister.setBeDownloadedFileNames(fileNames); 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 93f50ae..c6710fe 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 @@ -1,7 +1,10 @@ package com.casic.missiles.service.listeners.processor.register; +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.utils.MinioUtil; import com.casic.missiles.utils.SpringContextUtil; @@ -17,6 +20,7 @@ import org.springframework.web.multipart.MultipartFile; import java.io.*; +import java.util.Objects; @Component @Slf4j @@ -41,27 +45,34 @@ * 6、返还打印产生的证书文件 */ public String registerPrintFile(BusinessCertificateReport certificateReport) { + String tempLocalFileDir = localFileDir; + Assert.isFalse(Objects.isNull(certificateReport), () -> { + throw new RuntimeException("the certificateReport is null,please check your params..."); + }); //获取对应证书的beanName String fileDataRegisterBeanName = AwareCertificateTypeEnum.CERTIFICATE_TYPE_BEAN_MAP .getCertificateTypeBeanMap().get(certificateReport.getCertificateReportType()); - if (StringUtils.isEmpty(fileDataRegisterBeanName)) { + 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, localFileDir); - localFileDir=localFileDir+"\\"+metaData.getFileNameId(); + FilePrintRegister metaData = fileDataGeneric.CustomizedPrintFileRegister(certificateReport, tempLocalFileDir); + //获取文件夹目录,没有则创建 + tempLocalFileDir = tempLocalFileDir + metaData.getFileNameId() + "\\"; + getLocalFileDir(tempLocalFileDir); //证书产生准备工作,将相应的文件下载到本地的工作空间,获取相应的模板的读取权限 - metaData.getBeDownloadedFileNames().forEach( - fileName -> downTemplateFile(fileName) - ); + for (String fileName : metaData.getBeDownloadedFileNames()) { + downTemplateFile(fileName, tempLocalFileDir); + } + ; //合并注册 String certificatePdfName = FilePrintRegisterUtils.filePrintGenerate(metaData); //上传到服务器 uploadCertificate(certificatePdfName); //删除无效的文件 - File invalidFile = new File(localFileDir); - log.debug("invalid print file start delete, the file directory is {}", localFileDir); + File invalidFile = new File(tempLocalFileDir); + log.debug("invalid print file start delete, the file directory is {}", tempLocalFileDir); //删除运行空间下的文件 deleteFile(invalidFile); return certificatePdfName; @@ -70,9 +81,20 @@ } /** - * 下载文件,获取文件的读写权限 + * 创建文件目录,为mini下载文件准备目录 */ - private void downTemplateFile(String fileName) { + private void getLocalFileDir(String tempLocalFileDir) { + File file = new File(tempLocalFileDir); //以. + if (file.exists()) { + deleteFile(file); + } + boolean dr = file.mkdirs(); //创建目录 + } + + /** + * 从mini文件服务器下载文件,获取文件的读写权限,用户证书报告的生成 + */ + private void downTemplateFile(String fileName, String templocalFileDir) { // Properties properties = new Properties(); // String bucketName = properties.getProperty("minio.bucketName"); // MinioClient minioClient = SpringContextUtil.getBean(MinioClient.class); @@ -84,7 +106,7 @@ IOUtils.copy(in, out); //封装返回值 byte[] bytes = out.toByteArray(); - FilePrintRegisterUtils.byteToFile(bytes, localFileDir, fileName); + FilePrintRegisterUtils.byteToFile(bytes, templocalFileDir, fileName); } catch (Exception e) { e.printStackTrace(); } finally { @@ -106,25 +128,34 @@ } /** - * 通过生成的证书报告url,将证书报告上传到远程的文件服务器 + * 通过生成的证书报告,将证书报告上传到远程mini的文件服务器 */ public void uploadCertificate(String certificatePrintUrl) { + //上传证书 + File file = new File(certificatePrintUrl); + //获取file对象的文件输入流 + FileInputStream input = null; try { - //上传证书 - File file = new File(localFileDir + certificatePrintUrl); - //获取file对象的文件输入流 - FileInputStream input = new FileInputStream(file); + input = new FileInputStream(file); MultipartFile multipartFile = new MockMultipartFile("file", file.getName(), "text/plain", IOUtils.toByteArray(input)); MultipartFile[] multipartFiles = new MultipartFile[1]; multipartFiles[0] = multipartFile; minioUtil.upload(multipartFiles); } catch (IOException ie) { log.error("Description Failed to upload the certificate to the server,the failed reason is {}...", ie); + } finally { + if (input != null) { + try { + input.close(); + } catch (IOException e) { + log.error("the upload Certificate input stream release is anomaly"); + } + } } } /** - * 对打印报告产生的空间进行清除 + * 对打印报告产生的空间进行清除,还原空间 */ private void deleteFile(File invalidFile) { //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -143,7 +174,9 @@ if (invalidFile.list().length == 0) { log.debug("invalid print file has already delete success!"); } + //删除子目录 + if (invalidFile != null && invalidFile.isDirectory()) { + invalidFile.delete(); + } } - - } 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 5fb246a..c74cd0c 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,13 +7,15 @@ import com.casic.missiles.core.model.auth.CasicCustomToken; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.core.util.RSAUtils; -import com.casic.missiles.dto.ReturnUtil; -import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.service.listeners.processor.register.PrintFileRegister; +import com.casic.missiles.mapper.business.BusinessCertificateReportMapper; +import com.casic.missiles.model.business.BusinessCertificateReport; import com.casic.missiles.model.response.SuccessResponseData; import com.casic.missiles.modular.domain.constants.PermissionConstants; 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.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.subject.Subject; import org.springframework.stereotype.Controller; @@ -21,11 +23,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import java.lang.reflect.Field; import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; import java.util.Map; import static com.casic.missiles.core.util.HttpContext.getIp; @@ -86,4 +84,19 @@ return resultData; } + /** + * 测试所用类 + * + * @param id + */ + @GetMapping("/test") + @ResponseBody + public void test(Long id) { + BusinessCertificateReportMapper certificateReportMapper = SpringContextUtil.getBean(BusinessCertificateReportMapper.class); + BusinessCertificateReport certificateReport = certificateReportMapper.selectById(id); + PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); + String printFileName = printFileRegister.registerPrintFile(certificateReport); + log.info(printFileName); + } + } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index f51b9cd..daefb5c 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -136,17 +136,17 @@ cn.afterturn easypoi-base - 4.3.0 + 4.4.0 cn.afterturn easypoi-web - 4.3.0 + 4.4.0 cn.afterturn easypoi-annotation - 4.3.0 + 4.4.0 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 index 8250400..d48545b 100644 --- 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 @@ -2,6 +2,6 @@ public interface CertificateTypeEnum { - String CALIBRATION_CERTIFICATE = "1"; - String TEST_REPORT = "2"; + String CALIBRATION_CERTIFICATE = "0"; + String TEST_REPORT = "1"; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java index 5a0949b..81821fd 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/certificate/FilePrintRegister.java @@ -25,9 +25,9 @@ */ private String fileName; /** - * 生成文件工作空间目录id + * 生成文件名 */ - private String fileNameId; + private Long fileNameId; /** * 模板参数 */ 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 e4595d4..f867bf1 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 @@ -65,9 +65,9 @@ Collectors.groupingBy(ElectronicImage::getKeyWord) ); // 初始化world,pdf名称参数 - String[] filePrintType = filePrintRegister.getTemplatePath().split("."); - String wordNewUrl = filePrintRegister.getFileName() + filePrintType[filePrintType.length - 1]; - String pdfNewUrl = filePrintRegister.getFileName() + "pdf"; + String[] filePrintType = filePrintRegister.getTemplatePath().split("\\."); + String wordNewUrl = filePrintRegister.getTemplatePath(); + String pdfNewUrl = filePrintType[0]+"."+ "pdf"; //3、根据关键字进行添加签章和签字 for (Map.Entry> entry : sameKeySealMaps.entrySet()) { List electronicSeals = entry.getValue(); @@ -75,7 +75,7 @@ } // 4、将新word转化为pdf文件 wordToPdf(wordNewUrl, pdfNewUrl); - return pdfNewUrl; + return pdfNewUrl; } /** @@ -90,15 +90,20 @@ Assert.notNull(templatePath, "模板路径不能为空"); Assert.notNull(temDir, "临时文件路径不能为空"); Assert.notNull(fileName, "导出文件名不能为空"); - Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); +// if (fileName.endsWith(".doc")) { +// HWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); +// } +// Assert.isTrue(fileName.endsWith(".docx"), "word导出请使用docx格式"); if (!temDir.endsWith("/")) { - temDir = temDir + File.separator; + temDir = temDir; } File dir = new File(temDir); if (!dir.getParentFile().exists()) { // 新建文件夹 dir.getParentFile().mkdirs(); } +// operateWord(params,templatePath); + String tmpPath = ""; try { XWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); @@ -113,7 +118,6 @@ return tmpPath; } - /** * 将相同关键字的印章添加到同一个位置进行打印 * 1、根据关键词位置添加电子印章 @@ -123,7 +127,8 @@ * @param wordNewUrl 新word文件路径 * @param electronicSealList 电子印章信息 */ - private static void addSameKeyWordStamp(String wordOldUrl, String wordNewUrl, List electronicSealList) throws RuntimeException { + private static void addSameKeyWordStamp(String wordOldUrl, String + wordNewUrl, List electronicSealList) throws RuntimeException { // 加载文档 Document document = new Document(); document.loadFromFile(wordOldUrl); 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 432cdc3..cd43ce8 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 @@ -35,10 +35,12 @@ * 3、设置文件id,作为操作空间文件名称,防止对其他同时处理的证书形成影响 */ protected void initialization(FilePrintRegister filePrintRegister, String templateFileDir, BusinessCertificateReport certificateReport) { + templateFileDir = templateFileDir + certificateReport.getId()+"\\"; String fileName = fileRegisterMapper.getSignFileNameById(certificateReport.getTemplateId(), "system_template"); + filePrintRegister.setFileName(fileName); filePrintRegister.setTemDir(templateFileDir); - filePrintRegister.setFileName(templateFileDir + "\\" + fileName); - filePrintRegister.setFileNameId(String.valueOf(certificateReport.getId())); + filePrintRegister.setTemplatePath(templateFileDir + fileName); + filePrintRegister.setFileNameId(certificateReport.getId()); List fileNames = new ArrayList<>(); fileNames.add(fileName); filePrintRegister.setBeDownloadedFileNames(fileNames); 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 93f50ae..c6710fe 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 @@ -1,7 +1,10 @@ package com.casic.missiles.service.listeners.processor.register; +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.utils.MinioUtil; import com.casic.missiles.utils.SpringContextUtil; @@ -17,6 +20,7 @@ import org.springframework.web.multipart.MultipartFile; import java.io.*; +import java.util.Objects; @Component @Slf4j @@ -41,27 +45,34 @@ * 6、返还打印产生的证书文件 */ public String registerPrintFile(BusinessCertificateReport certificateReport) { + String tempLocalFileDir = localFileDir; + Assert.isFalse(Objects.isNull(certificateReport), () -> { + throw new RuntimeException("the certificateReport is null,please check your params..."); + }); //获取对应证书的beanName String fileDataRegisterBeanName = AwareCertificateTypeEnum.CERTIFICATE_TYPE_BEAN_MAP .getCertificateTypeBeanMap().get(certificateReport.getCertificateReportType()); - if (StringUtils.isEmpty(fileDataRegisterBeanName)) { + 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, localFileDir); - localFileDir=localFileDir+"\\"+metaData.getFileNameId(); + FilePrintRegister metaData = fileDataGeneric.CustomizedPrintFileRegister(certificateReport, tempLocalFileDir); + //获取文件夹目录,没有则创建 + tempLocalFileDir = tempLocalFileDir + metaData.getFileNameId() + "\\"; + getLocalFileDir(tempLocalFileDir); //证书产生准备工作,将相应的文件下载到本地的工作空间,获取相应的模板的读取权限 - metaData.getBeDownloadedFileNames().forEach( - fileName -> downTemplateFile(fileName) - ); + for (String fileName : metaData.getBeDownloadedFileNames()) { + downTemplateFile(fileName, tempLocalFileDir); + } + ; //合并注册 String certificatePdfName = FilePrintRegisterUtils.filePrintGenerate(metaData); //上传到服务器 uploadCertificate(certificatePdfName); //删除无效的文件 - File invalidFile = new File(localFileDir); - log.debug("invalid print file start delete, the file directory is {}", localFileDir); + File invalidFile = new File(tempLocalFileDir); + log.debug("invalid print file start delete, the file directory is {}", tempLocalFileDir); //删除运行空间下的文件 deleteFile(invalidFile); return certificatePdfName; @@ -70,9 +81,20 @@ } /** - * 下载文件,获取文件的读写权限 + * 创建文件目录,为mini下载文件准备目录 */ - private void downTemplateFile(String fileName) { + private void getLocalFileDir(String tempLocalFileDir) { + File file = new File(tempLocalFileDir); //以. + if (file.exists()) { + deleteFile(file); + } + boolean dr = file.mkdirs(); //创建目录 + } + + /** + * 从mini文件服务器下载文件,获取文件的读写权限,用户证书报告的生成 + */ + private void downTemplateFile(String fileName, String templocalFileDir) { // Properties properties = new Properties(); // String bucketName = properties.getProperty("minio.bucketName"); // MinioClient minioClient = SpringContextUtil.getBean(MinioClient.class); @@ -84,7 +106,7 @@ IOUtils.copy(in, out); //封装返回值 byte[] bytes = out.toByteArray(); - FilePrintRegisterUtils.byteToFile(bytes, localFileDir, fileName); + FilePrintRegisterUtils.byteToFile(bytes, templocalFileDir, fileName); } catch (Exception e) { e.printStackTrace(); } finally { @@ -106,25 +128,34 @@ } /** - * 通过生成的证书报告url,将证书报告上传到远程的文件服务器 + * 通过生成的证书报告,将证书报告上传到远程mini的文件服务器 */ public void uploadCertificate(String certificatePrintUrl) { + //上传证书 + File file = new File(certificatePrintUrl); + //获取file对象的文件输入流 + FileInputStream input = null; try { - //上传证书 - File file = new File(localFileDir + certificatePrintUrl); - //获取file对象的文件输入流 - FileInputStream input = new FileInputStream(file); + input = new FileInputStream(file); MultipartFile multipartFile = new MockMultipartFile("file", file.getName(), "text/plain", IOUtils.toByteArray(input)); MultipartFile[] multipartFiles = new MultipartFile[1]; multipartFiles[0] = multipartFile; minioUtil.upload(multipartFiles); } catch (IOException ie) { log.error("Description Failed to upload the certificate to the server,the failed reason is {}...", ie); + } finally { + if (input != null) { + try { + input.close(); + } catch (IOException e) { + log.error("the upload Certificate input stream release is anomaly"); + } + } } } /** - * 对打印报告产生的空间进行清除 + * 对打印报告产生的空间进行清除,还原空间 */ private void deleteFile(File invalidFile) { //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 @@ -143,7 +174,9 @@ if (invalidFile.list().length == 0) { log.debug("invalid print file has already delete success!"); } + //删除子目录 + if (invalidFile != null && invalidFile.isDirectory()) { + invalidFile.delete(); + } } - - } 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 index b0ef556..eb95a6a 100644 --- 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 @@ -49,7 +49,8 @@ private List getCustomizedSignName(BusinessCertificateReport certificateReport) { List customizedSignNames = new ArrayList<>(); List fileNames = new ArrayList<>(); - String signName = fileRegisterMapper.getSignFileNameById(certificateReport.getSignId(), ""); + String signName = fileRegisterMapper.getSignFileNameById(certificateReport.getSignId(), "system_sign"); + fileNames.add(signName); return customizedSignNames; }