瀏覽代碼

调整表单电签配置同步

liuyc 2 年之前
父節點
當前提交
1e44c41bf1

+ 0 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeMapper.java

@@ -89,5 +89,4 @@ public interface WbsTreeMapper extends EasyBaseMapper<WbsTree> {
 
     int isThereAField(@Param("initTableName") String initTableName, @Param("keyId") String keyId);
 
-    List<TextdictInfo> selectTextDictInfoByTabId(Long pKeyId);
 }

+ 0 - 5
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeMapper.xml

@@ -472,9 +472,4 @@
         select COUNT(*) from information_schema.columns WHERE table_name = #{initTableName} and column_name = #{keyId}
     </select>
 
-    <select id="selectTextDictInfoByTabId" resultType="org.springblade.manager.entity.TextdictInfo">
-        select * from m_textdict_info where tab_id = #{pKeyId} and is_deleted = 0
-    </select>
-
-
 </mapper>

+ 3 - 60
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -131,7 +131,8 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
             List<String> diffRent1 = DiffListUtil.getDiffRent(collect, collect1);
 
             if (collect.size() == collect1.size()) {
-                throw new ServiceException("未检测到当前引用的私有wbs树下有新增的元素表信息");
+                return true;
+
             }
             if (collect.size() > collect1.size()) {
                 //初始化
@@ -139,7 +140,6 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                 wbsTreePrivateList.forEach(wbsTreePrivate -> {
                     diffRent1.forEach(id -> {
                         if (Long.parseLong(id) == (wbsTreePrivate.getId())) {
-                            //WbsTreeContract wbsTreeContract = getWbsTreeContract(wbsTreePrivate, pawDTO);
                             WbsTreeContract wbsTreeContract = BeanUtil.copyProperties(wbsTreePrivate, WbsTreeContract.class);
                             if (wbsTreeContract != null) {
                                 wbsTreeContract.setPKeyId(SnowFlakeUtil.getId());
@@ -149,14 +149,11 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                                 if (wbsTreePrivate.getType() == 2) {
                                     wbsTreeContract.setIsTypePrivatePid(wbsTreePrivate.getPKeyId());
                                 }
-                                //导入划分匹配字段
-                                //wbsTreeContract.setImportMatchingInfo(wbsTreePrivate.getFullName());
                             }
                             wbsTreeContracts.add(wbsTreeContract);
                         }
                     });
                 });
-
                 this.saveBatch(wbsTreeContracts, 10000);
             }
         } else {
@@ -168,7 +165,6 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                 if (contractRelationJLYZList.size() > 0) {
                     throw new ServiceException("当前施工合同段wbs树被监理或业主合同段引用中,删除失败!");
                 }
-
                 List<Long> ids1 = delIds.stream().map(Long::parseLong).collect(Collectors.toList());
 
                 //获取当前节点、表
@@ -189,7 +185,6 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                     throw new ServiceException(StringUtil.format("节点下的 {} 中存在填报数据,删除失败!", names));
                 }
                 baseMapper.deleteBatch(ids1, pawDTO.getWbsId(), pawDTO.getProjectId(), pawDTO.getContractId());
-
             }
 
             //新增
@@ -216,7 +211,6 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                 //初始化
                 wbsTreePrivatesList.forEach(wbsTreePrivate -> {
                     //节点、表
-                    //WbsTreeContract wbsTreeContract = getWbsTreeContract(wbsTreePrivate, pawDTO);
                     WbsTreeContract wbsTreeContract = BeanUtil.copyProperties(wbsTreePrivate, WbsTreeContract.class);
                     if (wbsTreeContract != null) {
                         wbsTreeContract.setPKeyId(SnowFlakeUtil.getId());
@@ -246,7 +240,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                 });
 
                 //新增合同段节点、表
-                insertBatch(wbsTreeContractList, 100);
+                insertBatch(wbsTreeContractList, 1000);
 
                 //新增施工台账
                 constructionLedgerFeign.initConstructionLedger(constructionLedgerList);
@@ -792,9 +786,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
     }
 
     private List<WbsTreeContractVO> buildWbsTreeByStream(List<WbsTreeContractVO> wbsTreeVO2s) {
-        //根节点
         List<WbsTreeContractVO> list = wbsTreeVO2s.stream().filter(f -> f.getParentId() == 0L).collect(Collectors.toList());
-        //子节点分组
         Map<Long, List<WbsTreeContractVO>> map = wbsTreeVO2s.stream().collect(Collectors.groupingBy(WbsTreeContractVO::getParentId));
         this.recursionFnTree(list, map);
         return list;
@@ -821,53 +813,4 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
         return list;
     }
 
-    private WbsTreeContract getWbsTreeContract(WbsTreePrivate wbsTree, WbsTreeContractDTO pawDTO) {
-        WbsTreeContract wbsTreeContract = new WbsTreeContract();
-        //数据初始化-施工合同
-        Long snowId = SnowFlakeUtil.getId();
-        wbsTreeContract.setPKeyId(snowId);
-        wbsTreeContract.setId(wbsTree.getId());
-        wbsTreeContract.setWbsId(pawDTO.getWbsId());
-        wbsTreeContract.setProjectId(pawDTO.getProjectId());
-        wbsTreeContract.setContractId(pawDTO.getContractId());
-        wbsTreeContract.setWbsType(wbsTree.getType());
-        wbsTreeContract.setContractType(1);
-        wbsTreeContract.setTenantId(wbsTree.getTenantId());
-        wbsTreeContract.setParentId(wbsTree.getParentId());
-        wbsTreeContract.setAncestors(wbsTree.getAncestors());
-        wbsTreeContract.setNodeName(wbsTree.getNodeName());
-        wbsTreeContract.setNodeType(wbsTree.getNodeType());
-        wbsTreeContract.setFullName(wbsTree.getFullName());
-        wbsTreeContract.setSort(wbsTree.getSort());
-        wbsTreeContract.setRemark(wbsTree.getRemark());
-        wbsTreeContract.setType(wbsTree.getType());
-        wbsTreeContract.setTableType(wbsTree.getTableType());
-        wbsTreeContract.setStatus(wbsTree.getStatus());
-        wbsTreeContract.setIsDeleted(wbsTree.getIsDeleted());
-        wbsTreeContract.setUniqueCode(wbsTree.getUniqueCode());
-        wbsTreeContract.setPartitionCode(wbsTree.getPartitionCode());
-        wbsTreeContract.setIsConcrete(wbsTree.getIsConcrete());
-        wbsTreeContract.setIsExpernode(wbsTree.getIsExpernode());
-        wbsTreeContract.setTableOwner(wbsTree.getTableOwner());
-        wbsTreeContract.setMajorDataType(wbsTree.getMajorDataType());
-        wbsTreeContract.setInitTableName(wbsTree.getInitTableName());
-        wbsTreeContract.setIsLinkTable(wbsTree.getIsLinkTable());
-        wbsTreeContract.setExcelId(wbsTree.getExcelId());
-        wbsTreeContract.setHtmlUrl(wbsTree.getHtmlUrl());
-        wbsTreeContract.setIsBussShow(1);
-        wbsTreeContract.setCreateTime(wbsTree.getCreateTime());
-        wbsTreeContract.setUpdateTime(wbsTree.getUpdateTime());
-        wbsTreeContract.setUpdateUser(wbsTree.getUpdateUser());
-        wbsTreeContract.setCreateUser(wbsTree.getCreateUser());
-        wbsTreeContract.setCreateDept(wbsTree.getCreateDept());
-        if (wbsTree.getType() == 2) {
-            wbsTreeContract.setIsTypePrivatePid(wbsTree.getPKeyId());
-        }
-
-        //导入划分匹配字段
-        wbsTreeContract.setImportMatchingInfo(wbsTree.getFullName());
-
-        return wbsTreeContract;
-    }
-
 }

+ 57 - 51
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -215,55 +215,55 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean updateBatchByPid(List<WbsTreePrivateDTO3> wbsTreePrivates) {
-        //try {
-        //修改当前私有项目元素表基础信息
-        wbsTreePrivates.forEach(list -> {
-            baseMapper.updateBatchByPid(list);
-        });
-
-        //修改当前项目下所有合同段中的元素表基础信息
-        String projectId = "";
-        String parentId = "";
-        List<WbsTreePrivate> wbsTreePrivateList = new ArrayList<>();
-        int number = 0;
-        for (WbsTreePrivateDTO3 wbsTreePrivate : wbsTreePrivates) {
-            WbsTreePrivate wbsTreePrivate1 = baseMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getPKeyId, wbsTreePrivate.getPKeyId()));
-            wbsTreePrivateList.add(wbsTreePrivate1);
-            if (number == 0) {
-                projectId = wbsTreePrivate1.getProjectId();
-                parentId = String.valueOf(wbsTreePrivate1.getParentId());
-                number = 1;
+        try {
+            //修改当前私有项目元素表基础信息
+            wbsTreePrivates.forEach(list -> {
+                baseMapper.updateBatchByPid(list);
+            });
+
+            //修改当前项目下所有合同段中的元素表基础信息
+            String projectId = "";
+            String parentId = "";
+            List<WbsTreePrivate> wbsTreePrivateList = new ArrayList<>();
+            int number = 0;
+            for (WbsTreePrivateDTO3 wbsTreePrivate : wbsTreePrivates) {
+                WbsTreePrivate wbsTreePrivate1 = baseMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getPKeyId, wbsTreePrivate.getPKeyId()));
+                wbsTreePrivateList.add(wbsTreePrivate1);
+                if (number == 0) {
+                    projectId = wbsTreePrivate1.getProjectId();
+                    parentId = String.valueOf(wbsTreePrivate1.getParentId());
+                    number = 1;
+                }
             }
-        }
-        if (StringUtils.isNotEmpty(projectId) && StringUtils.isNotEmpty(parentId) && wbsTreePrivateList.size() > 0) {
-            //获取所有合同段ids
-            List<ContractInfo> contractInfos = contractInfoMapper.selectList(Wrappers.<ContractInfo>query().lambda().eq(ContractInfo::getPId, projectId));
-            if (contractInfos.size() > 0) {
-                List<Long> contractInfoIds = contractInfos.stream().map(ContractInfo::getId).collect(Collectors.toList());
-                for (Long contractInfoId : contractInfoIds) {
-                    for (WbsTreePrivate wbsTreePrivate : wbsTreePrivateList) {
-                        //判断当前合同段是否存在该元素表、以及该元素表父级节点(包括新增、复制节点)
-                        List<WbsTreeContract> wbsTreeContract = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
-                                .eq(WbsTreeContract::getContractId, contractInfoId)
-                                .eq(WbsTreeContract::getProjectId, wbsTreePrivate.getProjectId())
-                                .eq(WbsTreeContract::getStatus, 1)
-                                .eq(WbsTreeContract::getId, wbsTreePrivate.getId())
-                                .or()
-                                .eq(WbsTreeContract::getParentId, wbsTreePrivate.getId())
-                                .or()
-                                .eq(WbsTreeContract::getOldId, wbsTreePrivate.getId())
-                        );
-                        //修改原始、复制、新增节点下的元素表
-                        if (wbsTreeContract.size() > 0) {
-                            wbsTreeContractMapper.updateContractTablesInfo(contractInfoId, wbsTreePrivate);
+            if (StringUtils.isNotEmpty(projectId) && StringUtils.isNotEmpty(parentId) && wbsTreePrivateList.size() > 0) {
+                //获取所有合同段ids
+                List<ContractInfo> contractInfos = contractInfoMapper.selectList(Wrappers.<ContractInfo>query().lambda().eq(ContractInfo::getPId, projectId));
+                if (contractInfos.size() > 0) {
+                    List<Long> contractInfoIds = contractInfos.stream().map(ContractInfo::getId).collect(Collectors.toList());
+                    for (Long contractInfoId : contractInfoIds) {
+                        for (WbsTreePrivate wbsTreePrivate : wbsTreePrivateList) {
+                            //判断当前合同段是否存在该元素表、以及该元素表父级节点(包括新增、复制节点)
+                            List<WbsTreeContract> wbsTreeContract = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
+                                    .eq(WbsTreeContract::getContractId, contractInfoId)
+                                    .eq(WbsTreeContract::getProjectId, wbsTreePrivate.getProjectId())
+                                    .eq(WbsTreeContract::getStatus, 1)
+                                    .eq(WbsTreeContract::getId, wbsTreePrivate.getId())
+                                    .or()
+                                    .eq(WbsTreeContract::getParentId, wbsTreePrivate.getId())
+                                    .or()
+                                    .eq(WbsTreeContract::getOldId, wbsTreePrivate.getId())
+                            );
+                            //修改原始、复制、新增节点下的元素表
+                            if (wbsTreeContract.size() > 0) {
+                                wbsTreeContractMapper.updateContractTablesInfo(contractInfoId, wbsTreePrivate);
+                            }
                         }
                     }
                 }
             }
+        } catch (Exception e) {
+            throw new ServiceException("修改同步到合同段时异常 " + e.getMessage());
         }
-        /*} catch (Exception e) {
-            throw new ServiceException("操作失败");
-        }*/
         return true;
     }
 
@@ -341,11 +341,14 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
             }
         }
         try {
-            baseMapper.updateBatchWbsPrivate(listPrivate);
-            wbsTreeContractMapper.updateBatchWbsContract(listContract);
+            if (listPrivate.size() > 0) {
+                baseMapper.updateBatchWbsPrivate(listPrivate);
+            }
+            if (listContract.size() > 0) {
+                wbsTreeContractMapper.updateBatchWbsContract(listContract);
+            }
         } catch (Exception e) {
-            e.printStackTrace();
-            //throw new ServiceException("节点基础信息同步修改失败");
+            throw new ServiceException("节点基础信息同步修改失败 " + e.getMessage());
         }
         return true;
     }
@@ -391,11 +394,14 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
             }
         }
         try {
-            baseMapper.updateBatchWbsPrivate(listPrivate);
-            wbsTreeContractMapper.updateBatchWbsContract(listContract);
+            if (listPrivate.size() > 0) {
+                baseMapper.updateBatchWbsPrivate(listPrivate);
+            }
+            if (listContract.size() > 0) {
+                wbsTreeContractMapper.updateBatchWbsContract(listContract);
+            }
         } catch (Exception e) {
-            e.printStackTrace();
-            //throw new ServiceException("节点基础信息同步修改失败");
+            throw new ServiceException("节点基础信息同步修改失败 " + e.getMessage());
         }
         return true;
     }

+ 67 - 157
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -50,6 +50,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
     private final WbsTreeContractMapper wbsTreeContractMapper;
     private final ContractInfoMapper contractInfoMapper;
     private final TextdictInfoServiceImpl textDictInfoService;
+    private final TextdictInfoMapper textdictInfoMapper;
     private final FormulaMapper formulaMapper;
     private final BladeRedis bladeRedis;
     private final WbsParamServiceImpl wbsParamService;
@@ -588,7 +589,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    //@AvoidRepeatableCommit //aop
+    //@AvoidRepeatableCommit
     public Boolean submitWbsTreeInProject(WbsTreeContractDTO pawDTO) {
         if (StringUtils.isEmpty(pawDTO.getWbsId())) {
             throw new ServiceException("请正确选择一个wbs模板");
@@ -667,10 +668,9 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                 List<String> diffRent1 = DiffListUtil.getDiffRent(collect1, collect2);
 
                 //修改公有wbs节点信息、元素表基础信息到项目级wbs、合同段wbs
-                updateWbsInfoPrivateAsync(wbsTreeListAll, wbsTreePrivatesAll, pawDTO.getProjectId());
+                this.updateWbsInfoPrivateAsync(wbsTreeListAll, wbsTreePrivatesAll, pawDTO.getProjectId());
 
                 if (diffRent1.size() == 0) {
-                    //当wbsTreeIds == "" 时 1.在第一次新增未选择wbs树时  2.同步新增的元素表时
                     return true;
 
                 } else {
@@ -698,7 +698,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                                 WbsTreePrivate wbsTreePrivate = wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getPKeyId, snowId1));
 
                                 for (ContractInfo contractInfoId : contractInfoIds) {
-                                    //WbsTreeContract wbsTreeContract = getWbsTreeContract(wbsTreePrivate, pawDTO);
                                     WbsTreeContract wbsTreeContract = BeanUtil.copyProperties(wbsTreePrivate, WbsTreeContract.class);
                                     if (wbsTreeContract != null) {
                                         wbsTreeContract.setPKeyId(SnowFlakeUtil.getId());
@@ -759,21 +758,17 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
 
             } else if (pawDTO.getReferenceType().equals("private")) {
                 //私有同步新增元素表
-                //获取所私有引用项目的新增的元素表 根据primaryKeyId获取对象信息
+                //获取私有引用项目的wbs树的所有节点、元素表
                 WbsTreePrivate wbsTreePrivate = wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda()
                         .eq(WbsTreePrivate::getPKeyId, pawDTO.getPrimaryKeyId()));
-
-                //获取私有引用项目的wbs树的所有节点、元素表
                 List<WbsTreePrivate> wbsTreePrivateAllOld = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
                         .eq(WbsTreePrivate::getWbsId, wbsTreePrivate.getWbsId())
                         .eq(WbsTreePrivate::getProjectId, wbsTreePrivate.getProjectId())
                         .eq(WbsTreePrivate::getStatus, 1)
                 );
 
-                //私有引用项目的表单信息
+                //私有引用项目的表单id
                 List<WbsTreePrivate> WbsTreePrivateTables = wbsTreePrivateAllOld.stream().filter(f -> f.getType() == 2).collect(Collectors.toList());
-
-                //当前新增表单的id
                 List<String> collect1 = WbsTreePrivateTables.stream().map(WbsTreePrivate::getId).collect(Collectors.toList()).stream().map(String::valueOf).collect(Collectors.toList());
 
                 //获取当前项目私有wbs树下当前所有节点、元素表
@@ -783,13 +778,16 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                 );
 
                 //当前存在的表单的id
-                List<WbsTreePrivate> wbsTreePrivateNowTypes = wbsTreePrivatesAllNow.stream().filter(f -> f.getType() == 2).collect(Collectors.toList());
-                List<String> collect2 = wbsTreePrivateNowTypes.stream().map(WbsTreePrivate::getId).collect(Collectors.toList()).stream().map(String::valueOf).collect(Collectors.toList());
+                List<WbsTreePrivate> wbsTreePrivateNowTables = wbsTreePrivatesAllNow.stream().filter(f -> f.getType() == 2).collect(Collectors.toList());
+                List<String> collect2 = wbsTreePrivateNowTables.stream().map(WbsTreePrivate::getId).collect(Collectors.toList()).stream().map(String::valueOf).collect(Collectors.toList());
 
                 List<String> diffRent1 = DiffListUtil.getDiffRent(collect1, collect2);
 
-                //修改私有wbs节点信息、元素表基础信息到项目级wbs、合同段wbs
-                updateWbsInfoContractAsync(wbsTreePrivateAllOld, wbsTreePrivatesAllNow, pawDTO.getProjectId(), pawDTO.getPrimaryKeyId());
+                //同步私有wbs节点信息、元素表基础信息到项目级wbs、合同段wbs
+                this.updateWbsInfoContractAsync(wbsTreePrivateAllOld, wbsTreePrivatesAllNow, pawDTO.getProjectId(), pawDTO.getPrimaryKeyId());
+
+                //同步私有-电签匹配数据、默认信息数据
+                this.insertTextDictInfoAsync(WbsTreePrivateTables, wbsTreePrivateNowTables);
 
                 if (diffRent1.size() == 0) {
                     return true;
@@ -821,19 +819,15 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                             );
 
                             if (wbsTreePrivate1 != null) {
+                                //初始化元素表信息
                                 list.setPKeyId(SnowFlakeUtil.getId());
                                 list.setWbsId(pawDTO.getPrimaryKeyId());
                                 list.setProjectId(pawDTO.getProjectId());
-
-                                //同步元素表
+                                //同步新增元素表
                                 wbsTreePrivateService.save(list);
 
                                 //同步到该项目下的所有合同段
                                 for (ContractInfo contractInfoId : contractInfoIds) {
-                                    //WbsTreeContract wbsTreeContract = getWbsTreeContract(list, pawDTO);
-                                    //wbsTreeContract.setContractId(String.valueOf(contractInfoId.getId()));
-                                    //wbsTreeContract.setWbsId(pawDTO.getPrimaryKeyId());
-
                                     WbsTreeContract wbsTreeContract = BeanUtil.copyProperties(list, WbsTreeContract.class);
                                     if (wbsTreeContract != null) {
                                         wbsTreeContract.setPKeyId(SnowFlakeUtil.getId());
@@ -946,7 +940,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
 
             //2.新增
             if (saveIds.size() > 0) {
-                if (saveIds.size() >= 1000) { //新增1000个以上节点时,防止响应过慢重复提交
+                if (saveIds.size() >= 1000) { //新增1000个以上节点时
                     String redisValue = bladeRedis.get("submit-wbs-project:" + pawDTO.getProjectId());
                     if (StringUtils.isNotEmpty(redisValue) && redisValue.equals("1")) {
                         throw new ServiceException("请勿重复提交,请60秒后再次尝试!");
@@ -981,7 +975,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                     }
 
                     addListData.forEach(tree -> {
-                        //WbsTreePrivate wbsTreePrivate2 = getWbsTreePrivate1(tree, pawDTO);
                         WbsTreePrivate wbsTreePrivate = BeanUtil.copyProperties(tree, WbsTreePrivate.class);
                         if (wbsTreePrivate != null) {
                             wbsTreePrivate.setPKeyId(SnowFlakeUtil.getId());
@@ -1013,7 +1006,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                                 addListData.add(wbsTreePrivate);
 
                                 //根据元素表pKeyId,获取电签位置匹配信息、编辑默认信息
-                                List<TextdictInfo> textDictInfos = baseMapper.selectTextDictInfoByTabId(wbsTreePrivate.getPKeyId());
+                                List<TextdictInfo> textDictInfos = textdictInfoMapper.selectList(Wrappers.<TextdictInfo>query().lambda().eq(TextdictInfo::getTabId, wbsTreePrivate.getPKeyId()));
                                 if (textDictInfos.size() > 0) {
                                     textDictInfoData.put(wbsTreePrivate.getPKeyId(), textDictInfos);
                                 }
@@ -1023,7 +1016,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
 
                     addListData.forEach(tree -> {
                         //构造参数
-                        //WbsTreePrivate wbsTreePrivate2 = getWbsTreePrivate2(tree, pawDTO);
                         WbsTreePrivate wbsTreePrivate = BeanUtil.copyProperties(tree, WbsTreePrivate.class);
                         if (wbsTreePrivate != null) {
                             wbsTreePrivate.setPKeyId(SnowFlakeUtil.getId());
@@ -1069,7 +1061,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                     projectInfoMapper.updateTemplateIdById(pawDTO.getProjectId(), pawDTO.getPrimaryKeyId(), "private");
                 }
 
-                //Redis
                 if (saveIds.size() >= 1000) {
                     bladeRedis.set("submit-wbs-project:" + pawDTO.getProjectId(), "1");
                     bladeRedis.expire("submit-wbs-project:" + pawDTO.getProjectId(), 60);
@@ -1115,6 +1106,57 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         return wbsTreePrivateService.updateBatchByIds2(wbsTreePrivates, wbsTreePrivatesAllNow, projectId, primaryKeyId);
     }
 
+    @Async
+    public boolean insertTextDictInfoAsync(List<WbsTreePrivate> wbsTreePrivateOldTables, List<WbsTreePrivate> wbsTreePrivateNewTables) {
+        //wbsTreePrivateOldTables=原始引用的元素表 wbsTreePrivateNewTables=现在项目树的元素表
+        Map<Long, List<TextdictInfo>> textDictInfoData = new HashMap<>();
+        if (wbsTreePrivateOldTables.size() > 0) {
+            for (WbsTreePrivate wbsTreePrivate : wbsTreePrivateOldTables) {
+                //私有引用-电签匹配数据、默认信息数据,根据元素表pKeyId,获取电签位置匹配信息、编辑默认信息
+                List<TextdictInfo> textDictInfos = textdictInfoMapper.selectList(Wrappers.<TextdictInfo>query().lambda().eq(TextdictInfo::getTabId, wbsTreePrivate.getPKeyId()));
+                if (textDictInfos.size() > 0) {
+                    textDictInfoData.put(wbsTreePrivate.getId(), textDictInfos);
+                }
+            }
+        }
+
+        if (textDictInfoData.size() > 0) {
+            //同步电签配置信息 构造电签位置配置信息、编辑默认信息数据
+            List<TextdictInfo> insertData = new ArrayList<>();
+            for (WbsTreePrivate wbsTreePrivateNewTable : wbsTreePrivateNewTables) {
+                textDictInfoData.forEach((k, v) -> {
+                    if (wbsTreePrivateNewTable.getId().equals(k)) {
+                        for (TextdictInfo textdictInfo : v) {
+                            textdictInfo.setTabId(String.valueOf(wbsTreePrivateNewTable.getPKeyId()));
+                            textdictInfo.setId(SnowFlakeUtil.getId());
+                        }
+                        insertData.addAll(v);
+                    }
+                });
+            }
+
+            //判断是否存在
+            Iterator<TextdictInfo> iterator = insertData.iterator();
+            while (iterator.hasNext()) {
+                TextdictInfo textDictInfo = iterator.next();
+                TextdictInfo textDict = textdictInfoMapper.selectOne(Wrappers.<TextdictInfo>query().lambda()
+                        .eq(TextdictInfo::getColKey, textDictInfo.getColKey())
+                        .eq(TextdictInfo::getTabId, textDictInfo.getTabId())
+                        .eq(TextdictInfo::getType, textDictInfo.getType())
+                );
+                if (textDict != null) {
+                    iterator.remove();
+                }
+            }
+
+            textDictInfoService.saveBatch(insertData, 1000);
+            return true;
+        }
+
+        return false;
+    }
+
+
     @Override
     public WbsTreeAllListVO findWbsTreeList(Integer type) {
         WbsTreeAllListVO wbsTreeAllListVO = new WbsTreeAllListVO();
@@ -1213,136 +1255,4 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         }
     }
 
-    private WbsTreePrivate getWbsTreePrivate1(WbsTree wbsTree, WbsTreeContractDTO pawDTO) {
-        WbsTreePrivate wbsTreePrivate = new WbsTreePrivate();
-        Long snowId = SnowFlakeUtil.getId();
-        wbsTreePrivate.setPKeyId(snowId);
-        wbsTreePrivate.setId(wbsTree.getId());
-        wbsTreePrivate.setWbsId(wbsTree.getWbsId());
-        wbsTreePrivate.setWbsType(String.valueOf(pawDTO.getWbsType()));
-        wbsTreePrivate.setProjectId(pawDTO.getProjectId());
-        wbsTreePrivate.setTenantId(wbsTree.getTenantId());
-        wbsTreePrivate.setParentId(wbsTree.getParentId());
-        wbsTreePrivate.setAncestors(wbsTree.getAncestors());
-        wbsTreePrivate.setNodeType(wbsTree.getNodeType());
-        wbsTreePrivate.setNodeName(wbsTree.getNodeName());
-        wbsTreePrivate.setFullName(wbsTree.getFullName());
-        wbsTreePrivate.setSort(wbsTree.getSort());
-        wbsTreePrivate.setRemark(wbsTree.getRemark());
-        wbsTreePrivate.setType(wbsTree.getType());
-        wbsTreePrivate.setTableType(wbsTree.getTableType());
-        wbsTreePrivate.setStatus(wbsTree.getStatus());
-        wbsTreePrivate.setIsDeleted(wbsTree.getIsDeleted());
-        wbsTreePrivate.setUniqueCode(wbsTree.getUniqueCode());
-        wbsTreePrivate.setPartitionCode(wbsTree.getPartitionCode());
-        wbsTreePrivate.setIsConcrete(wbsTree.getIsConcrete());
-        wbsTreePrivate.setIsExpernode(wbsTree.getIsExpernode());
-        wbsTreePrivate.setTableOwner(wbsTree.getTableOwner());
-        wbsTreePrivate.setMajorDataType(wbsTree.getMajorDataType());
-        wbsTreePrivate.setInitTableName(wbsTree.getInitTableName());
-        wbsTreePrivate.setIsLinkTable(wbsTree.getIsLinkTable());
-        wbsTreePrivate.setIsExistForm(wbsTree.getIsExistForm());
-
-        wbsTreePrivate.setCreateTime(wbsTree.getCreateTime());
-        wbsTreePrivate.setUpdateTime(wbsTree.getUpdateTime());
-        wbsTreePrivate.setUpdateUser(wbsTree.getUpdateUser());
-        wbsTreePrivate.setCreateUser(wbsTree.getCreateUser());
-        wbsTreePrivate.setCreateDept(wbsTree.getCreateDept());
-        wbsTreePrivate.setFillRate(wbsTree.getFillRate());
-
-        return wbsTreePrivate;
-    }
-
-    private WbsTreePrivate getWbsTreePrivate2(WbsTreePrivate wbsTree, WbsTreeContractDTO pawDTO) {
-        WbsTreePrivate wbsTreePrivate = new WbsTreePrivate();
-        Long snowId = SnowFlakeUtil.getId();
-        wbsTreePrivate.setPKeyId(snowId);
-        wbsTreePrivate.setId(wbsTree.getId());
-        wbsTreePrivate.setWbsId(pawDTO.getPrimaryKeyId());
-        wbsTreePrivate.setWbsType(String.valueOf(pawDTO.getWbsType()));
-        wbsTreePrivate.setProjectId(pawDTO.getProjectId());
-        wbsTreePrivate.setTenantId(wbsTree.getTenantId());
-        wbsTreePrivate.setParentId(wbsTree.getParentId());
-        wbsTreePrivate.setAncestors(wbsTree.getAncestors());
-        wbsTreePrivate.setNodeType(wbsTree.getNodeType());
-        wbsTreePrivate.setNodeName(wbsTree.getNodeName());
-        wbsTreePrivate.setFullName(wbsTree.getFullName());
-        wbsTreePrivate.setSort(wbsTree.getSort());
-        wbsTreePrivate.setRemark(wbsTree.getRemark());
-        wbsTreePrivate.setType(wbsTree.getType());
-        wbsTreePrivate.setTableType(wbsTree.getTableType());
-        wbsTreePrivate.setStatus(wbsTree.getStatus());
-        wbsTreePrivate.setIsDeleted(wbsTree.getIsDeleted());
-        wbsTreePrivate.setUniqueCode(wbsTree.getUniqueCode());
-        wbsTreePrivate.setPartitionCode(wbsTree.getPartitionCode());
-        wbsTreePrivate.setIsConcrete(wbsTree.getIsConcrete());
-        wbsTreePrivate.setIsExpernode(wbsTree.getIsExpernode());
-        wbsTreePrivate.setTableOwner(wbsTree.getTableOwner());
-        wbsTreePrivate.setMajorDataType(wbsTree.getMajorDataType());
-        wbsTreePrivate.setInitTableName(wbsTree.getInitTableName());
-        wbsTreePrivate.setIsLinkTable(wbsTree.getIsLinkTable());
-        wbsTreePrivate.setIsExistForm(wbsTree.getIsExistForm());
-        wbsTreePrivate.setHtmlUrl(wbsTree.getHtmlUrl());
-
-        wbsTreePrivate.setCreateTime(wbsTree.getCreateTime());
-        wbsTreePrivate.setUpdateTime(wbsTree.getUpdateTime());
-        wbsTreePrivate.setUpdateUser(wbsTree.getUpdateUser());
-        wbsTreePrivate.setCreateUser(wbsTree.getCreateUser());
-        wbsTreePrivate.setCreateDept(wbsTree.getCreateDept());
-        //引用私有wbs,同步清表id
-        wbsTreePrivate.setExcelId(wbsTree.getExcelId());
-
-        wbsTreePrivate.setFillRate(wbsTree.getFillRate());
-
-        return wbsTreePrivate;
-    }
-
-    private WbsTreeContract getWbsTreeContract(WbsTreePrivate wbsTree, WbsTreeContractDTO pawDTO) {
-        WbsTreeContract wbsTreeContract = new WbsTreeContract();
-        Long snowId = SnowFlakeUtil.getId();
-        wbsTreeContract.setPKeyId(snowId);
-        wbsTreeContract.setId(wbsTree.getId());
-        wbsTreeContract.setWbsId(pawDTO.getWbsId());
-        wbsTreeContract.setProjectId(pawDTO.getProjectId());
-        wbsTreeContract.setContractType(pawDTO.getContractType());
-        wbsTreeContract.setWbsType(wbsTree.getType());
-        wbsTreeContract.setTenantId(wbsTree.getTenantId());
-        wbsTreeContract.setParentId(wbsTree.getParentId());
-        wbsTreeContract.setAncestors(wbsTree.getAncestors());
-        wbsTreeContract.setNodeName(wbsTree.getNodeName());
-        wbsTreeContract.setNodeType(wbsTree.getNodeType());
-        wbsTreeContract.setFullName(wbsTree.getNodeName());
-        wbsTreeContract.setSort(wbsTree.getSort());
-        wbsTreeContract.setRemark(wbsTree.getRemark());
-        wbsTreeContract.setType(wbsTree.getType());
-        wbsTreeContract.setTableType(wbsTree.getTableType());
-        wbsTreeContract.setStatus(wbsTree.getStatus());
-        wbsTreeContract.setIsDeleted(wbsTree.getIsDeleted());
-        wbsTreeContract.setUniqueCode(wbsTree.getUniqueCode());
-        wbsTreeContract.setPartitionCode(wbsTree.getPartitionCode());
-        wbsTreeContract.setIsConcrete(wbsTree.getIsConcrete());
-        wbsTreeContract.setIsExpernode(wbsTree.getIsExpernode());
-        wbsTreeContract.setTableOwner(wbsTree.getTableOwner());
-        wbsTreeContract.setMajorDataType(wbsTree.getMajorDataType());
-        wbsTreeContract.setInitTableName(wbsTree.getInitTableName());
-        wbsTreeContract.setIsLinkTable(wbsTree.getIsLinkTable());
-        wbsTreeContract.setExcelId(wbsTree.getExcelId());
-        wbsTreeContract.setHtmlUrl(wbsTree.getHtmlUrl());
-        wbsTreeContract.setIsBussShow(1);
-
-        wbsTreeContract.setCreateTime(wbsTree.getCreateTime());
-        wbsTreeContract.setUpdateTime(wbsTree.getUpdateTime());
-        wbsTreeContract.setUpdateUser(wbsTree.getUpdateUser());
-        wbsTreeContract.setCreateUser(wbsTree.getCreateUser());
-        wbsTreeContract.setCreateDept(wbsTree.getCreateDept());
-
-        wbsTreeContract.setFillRate(wbsTree.getFillRate());
-
-        if (wbsTree.getType() == 2) {
-            wbsTreeContract.setIsTypePrivatePid(wbsTree.getPKeyId());
-        }
-
-        return wbsTreeContract;
-    }
-
 }