diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/FilePrintEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/FilePrintEnum.java index 0d9528a..9da141b 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/FilePrintEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/FilePrintEnum.java @@ -20,7 +20,6 @@ String APPROVAL_FIELD = "approvalField"; /** - * 查询审批流程的字段 */ String BIND_KEY_LIST = "bindKeyList"; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/FilePrintEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/FilePrintEnum.java index 0d9528a..9da141b 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/FilePrintEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/FilePrintEnum.java @@ -20,7 +20,6 @@ String APPROVAL_FIELD = "approvalField"; /** - * 查询审批流程的字段 */ String BIND_KEY_LIST = "bindKeyList"; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java index 88c3826..58ef8c3 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java @@ -19,6 +19,7 @@ import java.io.*; import java.util.List; +import java.util.Map; /** * 这个方面上面必须再封装一层,保证打印的速度更快 @@ -50,12 +51,14 @@ * 5、递归删除因为打印产生的文件信息 * 6、返还打印产生的证书文件 */ - public String registerPrintFile(Long moduleIdValue, String moduleName, String moduleType, Boolean isPdf) { + public String registerPrintFile(String moduleName, String moduleType, + Long moduleIdValue, Map customParam, + Boolean isPdf) { String tempLocalFileDir = localFileDir; - Assert.isFalse(StringUtils.isEmpty(moduleName) || StringUtils.isEmpty(moduleType) , () -> { + Assert.isFalse(StringUtils.isEmpty(moduleName) || StringUtils.isEmpty(moduleType), () -> { throw new RuntimeException("the certificateReport is null,please check your params..."); }); - FilePrintRegister metaData = genericFilePrintProcessor.printFileRegister(moduleName, moduleType, moduleIdValue, tempLocalFileDir); + FilePrintRegister metaData = genericFilePrintProcessor.printFileRegister(moduleName, moduleType, customParam, moduleIdValue, tempLocalFileDir); //获取文件夹目录,没有则创建 tempLocalFileDir = tempLocalFileDir + metaData.getFileNameId() + File.separator; createLocalFileDir(tempLocalFileDir); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/FilePrintEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/FilePrintEnum.java index 0d9528a..9da141b 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/FilePrintEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/FilePrintEnum.java @@ -20,7 +20,6 @@ String APPROVAL_FIELD = "approvalField"; /** - * 查询审批流程的字段 */ String BIND_KEY_LIST = "bindKeyList"; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java index 88c3826..58ef8c3 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java @@ -19,6 +19,7 @@ import java.io.*; import java.util.List; +import java.util.Map; /** * 这个方面上面必须再封装一层,保证打印的速度更快 @@ -50,12 +51,14 @@ * 5、递归删除因为打印产生的文件信息 * 6、返还打印产生的证书文件 */ - public String registerPrintFile(Long moduleIdValue, String moduleName, String moduleType, Boolean isPdf) { + public String registerPrintFile(String moduleName, String moduleType, + Long moduleIdValue, Map customParam, + Boolean isPdf) { String tempLocalFileDir = localFileDir; - Assert.isFalse(StringUtils.isEmpty(moduleName) || StringUtils.isEmpty(moduleType) , () -> { + Assert.isFalse(StringUtils.isEmpty(moduleName) || StringUtils.isEmpty(moduleType), () -> { throw new RuntimeException("the certificateReport is null,please check your params..."); }); - FilePrintRegister metaData = genericFilePrintProcessor.printFileRegister(moduleName, moduleType, moduleIdValue, tempLocalFileDir); + FilePrintRegister metaData = genericFilePrintProcessor.printFileRegister(moduleName, moduleType, customParam, moduleIdValue, tempLocalFileDir); //获取文件夹目录,没有则创建 tempLocalFileDir = tempLocalFileDir + metaData.getFileNameId() + File.separator; createLocalFileDir(tempLocalFileDir); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FilePrintSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FilePrintSupport.java index d67468d..22f724f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FilePrintSupport.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FilePrintSupport.java @@ -144,6 +144,31 @@ } + //空的,留作扩展使用 + protected void moduleCustomizedProcessing(FilePrintRegister filePrintRegister, + Map customParam, + ModuleTemplatePrintConfig moduleTemplatePrintConfig) { + //以下分别执行当前表及关联表的参数信息(字典内容),图片信息,审批信息(图片) + Long moduleFieldId = moduleTemplatePrintConfig.getModuleFieldId(); + if (ObjectUtils.isNotEmpty(moduleFieldId)) { + //获取当前模块配置 + ModuleFieldConfig moduleFieldConfig = moduleFieldMapper.selectById(moduleFieldId); + //构建图片元素 + buildDocImageElement(customParam, filePrintRegister, moduleFieldConfig.getImageJson()); + } + //通过模块ids集合,进行关联模块参数的获取 + String relateModuleIds = moduleTemplatePrintConfig.getRelateModuleFieldIds(); + if (StringUtils.isNotEmpty(relateModuleIds)) { + List moduleFieldConfigs = getRelateModuleFieldConfig(relateModuleIds); + //构建图片元素 + for (ModuleFieldConfig moduleFieldConfig : moduleFieldConfigs) { + buildDocImageElement(customParam, filePrintRegister, moduleFieldConfig.getImageJson()); + } + } + //处理map中的自带的图片参数 + filePrintRegister.getParams().putAll(customParam); + } + /** * 相当于消费存在一定的顺序 * @@ -342,14 +367,27 @@ convertDictCode((String) dictCodeMap.get(CODE), (String) dictCodeMap.get(FILED_NAME), metaDataMap); } } - //图片信息-审批图片信息,其他字段配置信息 - String imageJson = moduleFieldConfig.getImageJson(); + /** + * 构建图片json元素 + */ + buildDocImageElement(metaDataMap, filePrintRegister, moduleFieldConfig.getImageJson()); + } + + + /** + * 构建文件图片元素 + * + * @param metaDataMap + * @param filePrintRegister + * @param imageJson + */ + private void buildDocImageElement(Map metaDataMap, FilePrintRegister filePrintRegister, String imageJson) { if (StringUtils.isNotEmpty(imageJson)) { //获取审批流程的bean ApprovalOperateService approvalOperateService = SpringContextUtil.getBean(ApprovalOperateService.class); JSONObject imageMap = JSON.parseObject(imageJson); Map> approvalLogMap = null; - //判断是否有工作流字段(approvalField 字段存放是poccessId),工作流map取出 + //判断是否有工作流字段(approvalField,工作流map取出 if (StringUtils.isEmpty(imageMap.get(APPROVAL_FIELD).toString()) && ObjectUtils.isNotEmpty(metaDataMap.get(imageMap.get(APPROVAL_FIELD).toString()))) { //健壮性校验,没有绑定的list结合去掉 Assert.isFalse(metaDataMap.containsKey(imageMap.get(APPROVAL_FIELD).toString()), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/FilePrintEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/FilePrintEnum.java index 0d9528a..9da141b 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/FilePrintEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/FilePrintEnum.java @@ -20,7 +20,6 @@ String APPROVAL_FIELD = "approvalField"; /** - * 查询审批流程的字段 */ String BIND_KEY_LIST = "bindKeyList"; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java index 88c3826..58ef8c3 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java @@ -19,6 +19,7 @@ import java.io.*; import java.util.List; +import java.util.Map; /** * 这个方面上面必须再封装一层,保证打印的速度更快 @@ -50,12 +51,14 @@ * 5、递归删除因为打印产生的文件信息 * 6、返还打印产生的证书文件 */ - public String registerPrintFile(Long moduleIdValue, String moduleName, String moduleType, Boolean isPdf) { + public String registerPrintFile(String moduleName, String moduleType, + Long moduleIdValue, Map customParam, + Boolean isPdf) { String tempLocalFileDir = localFileDir; - Assert.isFalse(StringUtils.isEmpty(moduleName) || StringUtils.isEmpty(moduleType) , () -> { + Assert.isFalse(StringUtils.isEmpty(moduleName) || StringUtils.isEmpty(moduleType), () -> { throw new RuntimeException("the certificateReport is null,please check your params..."); }); - FilePrintRegister metaData = genericFilePrintProcessor.printFileRegister(moduleName, moduleType, moduleIdValue, tempLocalFileDir); + FilePrintRegister metaData = genericFilePrintProcessor.printFileRegister(moduleName, moduleType, customParam, moduleIdValue, tempLocalFileDir); //获取文件夹目录,没有则创建 tempLocalFileDir = tempLocalFileDir + metaData.getFileNameId() + File.separator; createLocalFileDir(tempLocalFileDir); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FilePrintSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FilePrintSupport.java index d67468d..22f724f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FilePrintSupport.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/FilePrintSupport.java @@ -144,6 +144,31 @@ } + //空的,留作扩展使用 + protected void moduleCustomizedProcessing(FilePrintRegister filePrintRegister, + Map customParam, + ModuleTemplatePrintConfig moduleTemplatePrintConfig) { + //以下分别执行当前表及关联表的参数信息(字典内容),图片信息,审批信息(图片) + Long moduleFieldId = moduleTemplatePrintConfig.getModuleFieldId(); + if (ObjectUtils.isNotEmpty(moduleFieldId)) { + //获取当前模块配置 + ModuleFieldConfig moduleFieldConfig = moduleFieldMapper.selectById(moduleFieldId); + //构建图片元素 + buildDocImageElement(customParam, filePrintRegister, moduleFieldConfig.getImageJson()); + } + //通过模块ids集合,进行关联模块参数的获取 + String relateModuleIds = moduleTemplatePrintConfig.getRelateModuleFieldIds(); + if (StringUtils.isNotEmpty(relateModuleIds)) { + List moduleFieldConfigs = getRelateModuleFieldConfig(relateModuleIds); + //构建图片元素 + for (ModuleFieldConfig moduleFieldConfig : moduleFieldConfigs) { + buildDocImageElement(customParam, filePrintRegister, moduleFieldConfig.getImageJson()); + } + } + //处理map中的自带的图片参数 + filePrintRegister.getParams().putAll(customParam); + } + /** * 相当于消费存在一定的顺序 * @@ -342,14 +367,27 @@ convertDictCode((String) dictCodeMap.get(CODE), (String) dictCodeMap.get(FILED_NAME), metaDataMap); } } - //图片信息-审批图片信息,其他字段配置信息 - String imageJson = moduleFieldConfig.getImageJson(); + /** + * 构建图片json元素 + */ + buildDocImageElement(metaDataMap, filePrintRegister, moduleFieldConfig.getImageJson()); + } + + + /** + * 构建文件图片元素 + * + * @param metaDataMap + * @param filePrintRegister + * @param imageJson + */ + private void buildDocImageElement(Map metaDataMap, FilePrintRegister filePrintRegister, String imageJson) { if (StringUtils.isNotEmpty(imageJson)) { //获取审批流程的bean ApprovalOperateService approvalOperateService = SpringContextUtil.getBean(ApprovalOperateService.class); JSONObject imageMap = JSON.parseObject(imageJson); Map> approvalLogMap = null; - //判断是否有工作流字段(approvalField 字段存放是poccessId),工作流map取出 + //判断是否有工作流字段(approvalField,工作流map取出 if (StringUtils.isEmpty(imageMap.get(APPROVAL_FIELD).toString()) && ObjectUtils.isNotEmpty(metaDataMap.get(imageMap.get(APPROVAL_FIELD).toString()))) { //健壮性校验,没有绑定的list结合去掉 Assert.isFalse(metaDataMap.containsKey(imageMap.get(APPROVAL_FIELD).toString()), diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/GenericFilePrintProcessor.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/GenericFilePrintProcessor.java index 73420ef..4921aad 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/GenericFilePrintProcessor.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/GenericFilePrintProcessor.java @@ -29,7 +29,7 @@ * @param moduleIdValue 当前模块信息的id值 * @return */ - public FilePrintRegister printFileRegister(String moduleName, String moduleType, Long moduleIdValue, String templateFileDir) { + public FilePrintRegister printFileRegister(String moduleName, String moduleType, Map customParam, Long moduleIdValue, String templateFileDir) { //获取当前模板配置信息 ModuleTemplatePrintConfig moduleTemplatePrintConfig = getModuleTemplatePrintConfig(moduleName, moduleType); //判断是否有模板,没有直接抛出异常,健壮性校验 @@ -38,6 +38,11 @@ }); //根据打印模板配置,初始化文件打印注册信息 FilePrintRegister filePrintRegister = initialization(templateFileDir, moduleIdValue, moduleTemplatePrintConfig); + if (ObjectUtils.isNotEmpty(customParam)) { + //定制化的参数处理 + moduleCustomizedProcessing(filePrintRegister, customParam, moduleTemplatePrintConfig); + return filePrintRegister; + } //以下分别执行当前表及关联表的参数信息(字典内容),图片信息,审批信息(图片) Long moduleFieldId = moduleTemplatePrintConfig.getModuleFieldId(); //查询当前模块主表的信息 @@ -57,16 +62,9 @@ } } } - //自定义处理参数处理 - moduleCustomizedProcessing(filePrintRegister); return filePrintRegister; } - //空的,留作扩展使用 - private void moduleCustomizedProcessing(FilePrintRegister filePrintRegister) { - - } - /** * 预消费阶段,在当前顺序遍历中,查询条件充足的靠前,需要前置条件的表格挂起靠后执行 *