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 9da141b..2b02962 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 @@ -15,19 +15,19 @@ String RELATE_ID_FIELD = "relateIdField"; /** - * 查询审批流程的字段 - */ - String APPROVAL_FIELD = "approvalField"; - - /** - */ - String BIND_KEY_LIST = "bindKeyList"; - - - /** * 用于图片字典和名字 */ String FILED_NAME = "filedName"; + + /** + * 签名图片的id + */ + String SIGN_ID="signId"; + + /** + * 签名图片的id + */ + String KEYWORDS="keyWords"; /** * 文档标注的值 */ 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 9da141b..2b02962 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 @@ -15,19 +15,19 @@ String RELATE_ID_FIELD = "relateIdField"; /** - * 查询审批流程的字段 - */ - String APPROVAL_FIELD = "approvalField"; - - /** - */ - String BIND_KEY_LIST = "bindKeyList"; - - - /** * 用于图片字典和名字 */ String FILED_NAME = "filedName"; + + /** + * 签名图片的id + */ + String SIGN_ID="signId"; + + /** + * 签名图片的id + */ + String KEYWORDS="keyWords"; /** * 文档标注的值 */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java index f7a3684..b38a902 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java @@ -2,7 +2,6 @@ import com.casic.missiles.dto.certificate.CropPicture; import javax.imageio.ImageIO; -import javax.imageio.ImageReader; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; 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 9da141b..2b02962 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 @@ -15,19 +15,19 @@ String RELATE_ID_FIELD = "relateIdField"; /** - * 查询审批流程的字段 - */ - String APPROVAL_FIELD = "approvalField"; - - /** - */ - String BIND_KEY_LIST = "bindKeyList"; - - - /** * 用于图片字典和名字 */ String FILED_NAME = "filedName"; + + /** + * 签名图片的id + */ + String SIGN_ID="signId"; + + /** + * 签名图片的id + */ + String KEYWORDS="keyWords"; /** * 文档标注的值 */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java index f7a3684..b38a902 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java @@ -2,7 +2,6 @@ import com.casic.missiles.dto.certificate.CropPicture; import javax.imageio.ImageIO; -import javax.imageio.ImageReader; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/ElectronicSignSeal.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/ElectronicSignSeal.java index 6cadead..cb30b11 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/ElectronicSignSeal.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/ElectronicSignSeal.java @@ -1,12 +1,11 @@ package com.casic.missiles.service.listeners.register.data; -import cn.hutool.core.lang.Assert; -import com.alibaba.fastjson.JSONObject; +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.casic.missiles.dto.certificate.ElectronicImage; import com.casic.missiles.dto.certificate.FilePrintRegister; import com.casic.missiles.dto.flowable.ApprovalLogResponse; -import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.system.FilePrintEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.file.PrintFileRegisterMapper; @@ -48,7 +47,8 @@ } /** - * 没有关键字的认可章列表构建 + * 处理和业务内容没有直接关系的印章信息 + * 分为绝对位置信息的印章、相对关键字信息的印章 * * @param sings * @param filePrintRegister @@ -56,15 +56,14 @@ public static void electronicNoKeySignSeals(String sings, FilePrintRegister filePrintRegister) { List electronicImageSeals = new ArrayList<>(); if (StringUtils.isNotEmpty(sings)) { - String[] signIds = sings.split(","); - List electronicImages = autoCreteAbsoluteSignSealByNumber(signIds.length); - for (int i = 0; i < signIds.length; i++) { - electronicImageSeals.add(doPopulateElectronicSignSeal(Long.valueOf(signIds[i]), electronicImages.get(i), filePrintRegister)); - } + List signJsonList = JSONArray.parseArray(sings, Map.class); + electronicImageSeals.addAll(keywordImageSignSeal(signJsonList, filePrintRegister)); + electronicImageSeals.addAll(absoluteSignSeal(signJsonList, filePrintRegister)); } filePrintRegister.setElectronicImageList(electronicImageSeals); } + /** * 电子签章获取 * @@ -196,4 +195,54 @@ return electronicImageList; } + + /** + * 处理相对位置的印章 + * + * @param signJsonList + * @param filePrintRegister + * @return + */ + private static List keywordImageSignSeal(List signJsonList, FilePrintRegister filePrintRegister) { + List noKeyWordsList = signJsonList.stream() + .filter(e -> StringUtils.isNotEmpty((String) e.get(KEYWORDS))) + .collect(Collectors.toList()); + List electronicImageSeals = new ArrayList<>(); + if (CollectionUtil.isEmpty(noKeyWordsList)) { + return electronicImageSeals; + } + int count = 0; + for (Map signMap : noKeyWordsList) { + ElectronicImage electronicImage = defaultElectronicImage((String) signMap.get(KEYWORDS)); + electronicImageSeals.add(doPopulateElectronicSignSeal((Long) signMap.get("signId"), + electronicImage, filePrintRegister)); + } + return electronicImageSeals; + } + + /** + * 处理绝对位置的印章 + * + * @param signJsonList + * @param filePrintRegister + * @return + */ + private static List absoluteSignSeal(List signJsonList, FilePrintRegister filePrintRegister) { + List noKeyWordsList = signJsonList.stream() + .filter(e -> StringUtils.isEmpty((String) e.get(KEYWORDS))) + .collect(Collectors.toList()); + List electronicImageSeals = new ArrayList<>(); + if (CollectionUtil.isEmpty(noKeyWordsList)) { + return electronicImageSeals; + } + //划分为绝对位置的印章和相对关键字的印章 + List electronicImages = autoCreteAbsoluteSignSealByNumber(noKeyWordsList.size()); + int count = 0; + for (Map signMap : noKeyWordsList) { + electronicImageSeals.add(doPopulateElectronicSignSeal((Long) signMap.get("signId"), + electronicImages.get(count++), filePrintRegister)); + } + return electronicImageSeals; + } + } 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 9da141b..2b02962 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 @@ -15,19 +15,19 @@ String RELATE_ID_FIELD = "relateIdField"; /** - * 查询审批流程的字段 - */ - String APPROVAL_FIELD = "approvalField"; - - /** - */ - String BIND_KEY_LIST = "bindKeyList"; - - - /** * 用于图片字典和名字 */ String FILED_NAME = "filedName"; + + /** + * 签名图片的id + */ + String SIGN_ID="signId"; + + /** + * 签名图片的id + */ + String KEYWORDS="keyWords"; /** * 文档标注的值 */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java index f7a3684..b38a902 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java @@ -2,7 +2,6 @@ import com.casic.missiles.dto.certificate.CropPicture; import javax.imageio.ImageIO; -import javax.imageio.ImageReader; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/ElectronicSignSeal.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/ElectronicSignSeal.java index 6cadead..cb30b11 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/ElectronicSignSeal.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/ElectronicSignSeal.java @@ -1,12 +1,11 @@ package com.casic.missiles.service.listeners.register.data; -import cn.hutool.core.lang.Assert; -import com.alibaba.fastjson.JSONObject; +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.casic.missiles.dto.certificate.ElectronicImage; import com.casic.missiles.dto.certificate.FilePrintRegister; import com.casic.missiles.dto.flowable.ApprovalLogResponse; -import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.system.FilePrintEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.file.PrintFileRegisterMapper; @@ -48,7 +47,8 @@ } /** - * 没有关键字的认可章列表构建 + * 处理和业务内容没有直接关系的印章信息 + * 分为绝对位置信息的印章、相对关键字信息的印章 * * @param sings * @param filePrintRegister @@ -56,15 +56,14 @@ public static void electronicNoKeySignSeals(String sings, FilePrintRegister filePrintRegister) { List electronicImageSeals = new ArrayList<>(); if (StringUtils.isNotEmpty(sings)) { - String[] signIds = sings.split(","); - List electronicImages = autoCreteAbsoluteSignSealByNumber(signIds.length); - for (int i = 0; i < signIds.length; i++) { - electronicImageSeals.add(doPopulateElectronicSignSeal(Long.valueOf(signIds[i]), electronicImages.get(i), filePrintRegister)); - } + List signJsonList = JSONArray.parseArray(sings, Map.class); + electronicImageSeals.addAll(keywordImageSignSeal(signJsonList, filePrintRegister)); + electronicImageSeals.addAll(absoluteSignSeal(signJsonList, filePrintRegister)); } filePrintRegister.setElectronicImageList(electronicImageSeals); } + /** * 电子签章获取 * @@ -196,4 +195,54 @@ return electronicImageList; } + + /** + * 处理相对位置的印章 + * + * @param signJsonList + * @param filePrintRegister + * @return + */ + private static List keywordImageSignSeal(List signJsonList, FilePrintRegister filePrintRegister) { + List noKeyWordsList = signJsonList.stream() + .filter(e -> StringUtils.isNotEmpty((String) e.get(KEYWORDS))) + .collect(Collectors.toList()); + List electronicImageSeals = new ArrayList<>(); + if (CollectionUtil.isEmpty(noKeyWordsList)) { + return electronicImageSeals; + } + int count = 0; + for (Map signMap : noKeyWordsList) { + ElectronicImage electronicImage = defaultElectronicImage((String) signMap.get(KEYWORDS)); + electronicImageSeals.add(doPopulateElectronicSignSeal((Long) signMap.get("signId"), + electronicImage, filePrintRegister)); + } + return electronicImageSeals; + } + + /** + * 处理绝对位置的印章 + * + * @param signJsonList + * @param filePrintRegister + * @return + */ + private static List absoluteSignSeal(List signJsonList, FilePrintRegister filePrintRegister) { + List noKeyWordsList = signJsonList.stream() + .filter(e -> StringUtils.isEmpty((String) e.get(KEYWORDS))) + .collect(Collectors.toList()); + List electronicImageSeals = new ArrayList<>(); + if (CollectionUtil.isEmpty(noKeyWordsList)) { + return electronicImageSeals; + } + //划分为绝对位置的印章和相对关键字的印章 + List electronicImages = autoCreteAbsoluteSignSealByNumber(noKeyWordsList.size()); + int count = 0; + for (Map signMap : noKeyWordsList) { + electronicImageSeals.add(doPopulateElectronicSignSeal((Long) signMap.get("signId"), + electronicImages.get(count++), filePrintRegister)); + } + return electronicImageSeals; + } + } 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 9cb25e9..4839a72 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 @@ -3,8 +3,6 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; @@ -59,6 +57,7 @@ filePrintRegister.setTemDir(templateFileDir); filePrintRegister.setTemplatePath(templateFileDir + templateName); filePrintRegister.setFileNameId(id); + //添加模板到待下载列表 List fileNames = new ArrayList<>(); fileNames.add(templateName); @@ -192,7 +191,6 @@ } else { filePrintRegister.setParams(customParam); } - } /** @@ -214,20 +212,7 @@ List fieldTableDTOList = buildFieldTableDTOList(moduleFieldConfig.getRelationJson(), tableNameMap); //健壮性校验 if (CollectionUtils.isNotEmpty(fieldTableDTOList)) { - List> relateBizMapList = null; - //当前集合的长度为1,且设置的in查询为true,可以执行外键 - if (fieldTableDTOList.size() == 1 && fieldTableDTOList.get(0).getSqlIn()) { - List relateIdList = new ArrayList<>(); - String[] typeStr = fieldTableDTOList.get(0).getForeignKeyValue().split(","); - for (int i = 0; i < typeStr.length; i++) { - relateIdList.add(Long.valueOf(typeStr[i])); - } - //执行关联表“in”查询 - relateBizMapList = moduleFieldMapper.inRelateBizList(moduleFieldConfig.getTableName(), fieldTableDTOList.get(0).getForeignKeyField(), relateIdList); - } else { - //执行关联表“=”号查询 - relateBizMapList = moduleFieldMapper.equalRelateBizList(moduleFieldConfig.getTableName(), fieldTableDTOList); - } + List> relateBizMapList = getRelateTableField(fieldTableDTOList, moduleFieldConfig); //判断是否是用于doc填充 if (ObjectUtils.isNotEmpty(moduleFieldConfig.getDocUse()) && (1 == moduleFieldConfig.getDocUse())) { int count = 1; @@ -245,7 +230,6 @@ for (Map metaDataMap : relateBizMapList) { buildModuleElement(metaDataMap, moduleFieldConfig, filePrintRegister); } - //判断当前模块信息在单元格中的执行情况 if (StringUtils.isEmpty(moduleFieldConfig.getObjectString())) { //不作为当前一个单元格执行 @@ -260,6 +244,31 @@ } /** + * 获取关联表业务信息 + * + * @param fieldTableDTOList + * @param moduleFieldConfig + * @return + */ + private List> getRelateTableField(List fieldTableDTOList, ModuleFieldConfig moduleFieldConfig) { + List> relateBizMapList = null; + //当前集合的长度为1,且设置的in查询为true,可以执行外键 + if (fieldTableDTOList.size() == 1 && fieldTableDTOList.get(0).getSqlIn()) { + List relateIdList = new ArrayList<>(); + String[] typeStr = fieldTableDTOList.get(0).getForeignKeyValue().split(","); + for (int i = 0; i < typeStr.length; i++) { + relateIdList.add(Long.valueOf(typeStr[i])); + } + //执行关联表“in”查询 + relateBizMapList = moduleFieldMapper.inRelateBizList(moduleFieldConfig.getTableName(), fieldTableDTOList.get(0).getForeignKeyField(), relateIdList); + } else { + //执行关联表“=”号查询 + relateBizMapList = moduleFieldMapper.equalRelateBizList(moduleFieldConfig.getTableName(), fieldTableDTOList); + } + return relateBizMapList; + } + + /** * 构建关联模块的查询参数 * * @param relationJson @@ -413,7 +422,7 @@ if (StringUtils.isNotEmpty(moduleFieldConfig.getImageJson())) { //获取审批流程的bean List imageConfig = JSON.parseObject(moduleFieldConfig.getImageJson(), List.class); - //判断是否有工作流字段(approvalField,工作流map取出 + //遍历判断是否有工作流字段(approvalField),工作流map取出 ElectronicSignSeal.approvalImage(metaDataMap, moduleFieldConfig.getFlowField(), imageConfig, filePrintRegister); //执行构建关键字图片集合,默认为不会在列表中构建图片 ElectronicSignSeal.bindPictureKey(filePrintRegister, imageConfig, metaDataMap); 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 9da141b..2b02962 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 @@ -15,19 +15,19 @@ String RELATE_ID_FIELD = "relateIdField"; /** - * 查询审批流程的字段 - */ - String APPROVAL_FIELD = "approvalField"; - - /** - */ - String BIND_KEY_LIST = "bindKeyList"; - - - /** * 用于图片字典和名字 */ String FILED_NAME = "filedName"; + + /** + * 签名图片的id + */ + String SIGN_ID="signId"; + + /** + * 签名图片的id + */ + String KEYWORDS="keyWords"; /** * 文档标注的值 */ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java index f7a3684..b38a902 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java @@ -2,7 +2,6 @@ import com.casic.missiles.dto.certificate.CropPicture; import javax.imageio.ImageIO; -import javax.imageio.ImageReader; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/ElectronicSignSeal.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/ElectronicSignSeal.java index 6cadead..cb30b11 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/ElectronicSignSeal.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/ElectronicSignSeal.java @@ -1,12 +1,11 @@ package com.casic.missiles.service.listeners.register.data; -import cn.hutool.core.lang.Assert; -import com.alibaba.fastjson.JSONObject; +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.casic.missiles.dto.certificate.ElectronicImage; import com.casic.missiles.dto.certificate.FilePrintRegister; import com.casic.missiles.dto.flowable.ApprovalLogResponse; -import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.system.FilePrintEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.file.PrintFileRegisterMapper; @@ -48,7 +47,8 @@ } /** - * 没有关键字的认可章列表构建 + * 处理和业务内容没有直接关系的印章信息 + * 分为绝对位置信息的印章、相对关键字信息的印章 * * @param sings * @param filePrintRegister @@ -56,15 +56,14 @@ public static void electronicNoKeySignSeals(String sings, FilePrintRegister filePrintRegister) { List electronicImageSeals = new ArrayList<>(); if (StringUtils.isNotEmpty(sings)) { - String[] signIds = sings.split(","); - List electronicImages = autoCreteAbsoluteSignSealByNumber(signIds.length); - for (int i = 0; i < signIds.length; i++) { - electronicImageSeals.add(doPopulateElectronicSignSeal(Long.valueOf(signIds[i]), electronicImages.get(i), filePrintRegister)); - } + List signJsonList = JSONArray.parseArray(sings, Map.class); + electronicImageSeals.addAll(keywordImageSignSeal(signJsonList, filePrintRegister)); + electronicImageSeals.addAll(absoluteSignSeal(signJsonList, filePrintRegister)); } filePrintRegister.setElectronicImageList(electronicImageSeals); } + /** * 电子签章获取 * @@ -196,4 +195,54 @@ return electronicImageList; } + + /** + * 处理相对位置的印章 + * + * @param signJsonList + * @param filePrintRegister + * @return + */ + private static List keywordImageSignSeal(List signJsonList, FilePrintRegister filePrintRegister) { + List noKeyWordsList = signJsonList.stream() + .filter(e -> StringUtils.isNotEmpty((String) e.get(KEYWORDS))) + .collect(Collectors.toList()); + List electronicImageSeals = new ArrayList<>(); + if (CollectionUtil.isEmpty(noKeyWordsList)) { + return electronicImageSeals; + } + int count = 0; + for (Map signMap : noKeyWordsList) { + ElectronicImage electronicImage = defaultElectronicImage((String) signMap.get(KEYWORDS)); + electronicImageSeals.add(doPopulateElectronicSignSeal((Long) signMap.get("signId"), + electronicImage, filePrintRegister)); + } + return electronicImageSeals; + } + + /** + * 处理绝对位置的印章 + * + * @param signJsonList + * @param filePrintRegister + * @return + */ + private static List absoluteSignSeal(List signJsonList, FilePrintRegister filePrintRegister) { + List noKeyWordsList = signJsonList.stream() + .filter(e -> StringUtils.isEmpty((String) e.get(KEYWORDS))) + .collect(Collectors.toList()); + List electronicImageSeals = new ArrayList<>(); + if (CollectionUtil.isEmpty(noKeyWordsList)) { + return electronicImageSeals; + } + //划分为绝对位置的印章和相对关键字的印章 + List electronicImages = autoCreteAbsoluteSignSealByNumber(noKeyWordsList.size()); + int count = 0; + for (Map signMap : noKeyWordsList) { + electronicImageSeals.add(doPopulateElectronicSignSeal((Long) signMap.get("signId"), + electronicImages.get(count++), filePrintRegister)); + } + return electronicImageSeals; + } + } 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 9cb25e9..4839a72 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 @@ -3,8 +3,6 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; @@ -59,6 +57,7 @@ filePrintRegister.setTemDir(templateFileDir); filePrintRegister.setTemplatePath(templateFileDir + templateName); filePrintRegister.setFileNameId(id); + //添加模板到待下载列表 List fileNames = new ArrayList<>(); fileNames.add(templateName); @@ -192,7 +191,6 @@ } else { filePrintRegister.setParams(customParam); } - } /** @@ -214,20 +212,7 @@ List fieldTableDTOList = buildFieldTableDTOList(moduleFieldConfig.getRelationJson(), tableNameMap); //健壮性校验 if (CollectionUtils.isNotEmpty(fieldTableDTOList)) { - List> relateBizMapList = null; - //当前集合的长度为1,且设置的in查询为true,可以执行外键 - if (fieldTableDTOList.size() == 1 && fieldTableDTOList.get(0).getSqlIn()) { - List relateIdList = new ArrayList<>(); - String[] typeStr = fieldTableDTOList.get(0).getForeignKeyValue().split(","); - for (int i = 0; i < typeStr.length; i++) { - relateIdList.add(Long.valueOf(typeStr[i])); - } - //执行关联表“in”查询 - relateBizMapList = moduleFieldMapper.inRelateBizList(moduleFieldConfig.getTableName(), fieldTableDTOList.get(0).getForeignKeyField(), relateIdList); - } else { - //执行关联表“=”号查询 - relateBizMapList = moduleFieldMapper.equalRelateBizList(moduleFieldConfig.getTableName(), fieldTableDTOList); - } + List> relateBizMapList = getRelateTableField(fieldTableDTOList, moduleFieldConfig); //判断是否是用于doc填充 if (ObjectUtils.isNotEmpty(moduleFieldConfig.getDocUse()) && (1 == moduleFieldConfig.getDocUse())) { int count = 1; @@ -245,7 +230,6 @@ for (Map metaDataMap : relateBizMapList) { buildModuleElement(metaDataMap, moduleFieldConfig, filePrintRegister); } - //判断当前模块信息在单元格中的执行情况 if (StringUtils.isEmpty(moduleFieldConfig.getObjectString())) { //不作为当前一个单元格执行 @@ -260,6 +244,31 @@ } /** + * 获取关联表业务信息 + * + * @param fieldTableDTOList + * @param moduleFieldConfig + * @return + */ + private List> getRelateTableField(List fieldTableDTOList, ModuleFieldConfig moduleFieldConfig) { + List> relateBizMapList = null; + //当前集合的长度为1,且设置的in查询为true,可以执行外键 + if (fieldTableDTOList.size() == 1 && fieldTableDTOList.get(0).getSqlIn()) { + List relateIdList = new ArrayList<>(); + String[] typeStr = fieldTableDTOList.get(0).getForeignKeyValue().split(","); + for (int i = 0; i < typeStr.length; i++) { + relateIdList.add(Long.valueOf(typeStr[i])); + } + //执行关联表“in”查询 + relateBizMapList = moduleFieldMapper.inRelateBizList(moduleFieldConfig.getTableName(), fieldTableDTOList.get(0).getForeignKeyField(), relateIdList); + } else { + //执行关联表“=”号查询 + relateBizMapList = moduleFieldMapper.equalRelateBizList(moduleFieldConfig.getTableName(), fieldTableDTOList); + } + return relateBizMapList; + } + + /** * 构建关联模块的查询参数 * * @param relationJson @@ -413,7 +422,7 @@ if (StringUtils.isNotEmpty(moduleFieldConfig.getImageJson())) { //获取审批流程的bean List imageConfig = JSON.parseObject(moduleFieldConfig.getImageJson(), List.class); - //判断是否有工作流字段(approvalField,工作流map取出 + //遍历判断是否有工作流字段(approvalField),工作流map取出 ElectronicSignSeal.approvalImage(metaDataMap, moduleFieldConfig.getFlowField(), imageConfig, filePrintRegister); //执行构建关键字图片集合,默认为不会在列表中构建图片 ElectronicSignSeal.bindPictureKey(filePrintRegister, imageConfig, metaDataMap); 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 59f5f96..72125d6 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 @@ -1,6 +1,5 @@ package com.casic.missiles.service.listeners.register.data; -import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; @@ -14,7 +13,6 @@ import org.springframework.stereotype.Component; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Map;