liuyc 2 anni fa
parent
commit
12e4b6cf2f

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml

@@ -519,8 +519,8 @@
                 full_name = #{item.nodeName},
                 node_type = #{item.nodeType},
                 major_data_type = #{item.majorDataType},
-                unique_code = #{item.uniqueCode},
-                partition_code = #{item.partitionCode},
+                /*unique_code = #{item.uniqueCode},
+                partition_code = #{item.partitionCode},*/
                 table_type = #{item.tableType},
                 table_owner = #{item.tableOwner}
             </set>

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.xml

@@ -260,8 +260,8 @@
                 full_name = #{item.fullName},
                 node_type = #{item.nodeType},
                 major_data_type = #{item.majorDataType},
-                unique_code = #{item.uniqueCode},
-                partition_code = #{item.partitionCode},
+                /*unique_code = #{item.uniqueCode},
+                partition_code = #{item.partitionCode},*/
                 table_type = #{item.tableType},
                 table_owner = #{item.tableOwner},
                 fill_rate = #{item.fillRate},

+ 69 - 39
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -323,15 +323,14 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                 if (wbsTree.getId().equals(wbsTreePrivate.getId()) &&
                         (!wbsTree.getNodeName().equals(wbsTreePrivate.getNodeName())
                                 || (wbsTree.getNodeType() != null && !wbsTree.getNodeType().equals(wbsTreePrivate.getNodeType()))
-                                || (wbsTree.getPartitionCode() != null && !wbsTree.getPartitionCode().equals(wbsTreePrivate.getPartitionCode()))
-                                || (wbsTree.getUniqueCode() != null && !wbsTree.getUniqueCode().equals(wbsTreePrivate.getUniqueCode()))
+                                /*|| (wbsTree.getPartitionCode() != null && !wbsTree.getPartitionCode().equals(wbsTreePrivate.getPartitionCode()))
+                                || (wbsTree.getUniqueCode() != null && !wbsTree.getUniqueCode().equals(wbsTreePrivate.getUniqueCode()))*/
                                 || (wbsTree.getMajorDataType() != null && !wbsTree.getMajorDataType().equals(wbsTreePrivate.getMajorDataType()))
                                 || (wbsTree.getTableType() != null && !wbsTree.getTableType().equals(wbsTreePrivate.getTableType()))
                                 || (wbsTree.getTableOwner() != null && !wbsTree.getTableOwner().equals(wbsTreePrivate.getTableOwner()))
                                 || (wbsTree.getImportMatchingInfo() != null && !wbsTree.getImportMatchingInfo().equals(wbsTreePrivate.getImportMatchingInfo()))
                         )) {
                     //修改项目wbs信息
-                    //baseMapper.updateBatchByIds(wbsTree, projectId);
                     WbsTreePrivate wbsPrivate = new WbsTreePrivate();
                     BeanUtil.copyProperties(wbsTree, wbsPrivate);
                     wbsPrivate.setProjectId(projectId);
@@ -339,7 +338,6 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
 
                     for (ContractInfo contractInfo : contractInfos) {
                         //修改合同段wbs信息
-                        //wbsTreeContractMapper.updateBatchByIds(wbsTree, contractInfo.getId());
                         WbsTreeContract wbsContract = new WbsTreeContract();
                         BeanUtil.copyProperties(wbsTree, wbsContract);
                         wbsContract.setContractId(String.valueOf(contractInfo.getId()));
@@ -375,15 +373,14 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                 if (wbsTreePrivate.getId().equals(treePrivateNow.getId()) &&
                         (!wbsTreePrivate.getNodeName().equals(treePrivateNow.getNodeName())
                                 || (wbsTreePrivate.getNodeType() != null && !wbsTreePrivate.getNodeType().equals(treePrivateNow.getNodeType()))
-                                || (wbsTreePrivate.getPartitionCode() != null && !wbsTreePrivate.getPartitionCode().equals(treePrivateNow.getPartitionCode()))
-                                || (wbsTreePrivate.getUniqueCode() != null && !wbsTreePrivate.getUniqueCode().equals(treePrivateNow.getUniqueCode()))
+                                /*|| (wbsTreePrivate.getPartitionCode() != null && !wbsTreePrivate.getPartitionCode().equals(treePrivateNow.getPartitionCode()))
+                                || (wbsTreePrivate.getUniqueCode() != null && !wbsTreePrivate.getUniqueCode().equals(treePrivateNow.getUniqueCode()))*/
                                 || (wbsTreePrivate.getMajorDataType() != null && !wbsTreePrivate.getMajorDataType().equals(treePrivateNow.getMajorDataType()))
                                 || (wbsTreePrivate.getTableType() != null && !wbsTreePrivate.getTableType().equals(treePrivateNow.getTableType()))
                                 || (wbsTreePrivate.getTableOwner() != null && !wbsTreePrivate.getTableOwner().equals(treePrivateNow.getTableOwner()))
                                 || (wbsTreePrivate.getImportMatchingInfo() != null && !wbsTreePrivate.getImportMatchingInfo().equals(treePrivateNow.getImportMatchingInfo())))) {
 
                     //修改项目wbs信息
-                    //baseMapper.updateBatchByIds2(wbsTreePrivate, projectId, wbsId);
                     WbsTreePrivate wbsPrivate = new WbsTreePrivate();
                     BeanUtil.copyProperties(wbsTreePrivate, wbsPrivate);
                     wbsPrivate.setWbsId(wbsId);
@@ -392,7 +389,6 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
 
                     for (ContractInfo contractInfo : contractInfos) {
                         //修改合同段wbs信息
-                        //wbsTreeContractMapper.updateBatchByIds2(wbsTreePrivate, contractInfo.getId());
                         WbsTreeContract wbsContract = new WbsTreeContract();
                         BeanUtil.copyProperties(wbsTreePrivate, wbsContract);
                         wbsContract.setContractId(String.valueOf(contractInfo.getId()));
@@ -605,7 +601,14 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                         .eq(WbsTreePrivate::getStatus, 1)
                 );
                 List<WbsTreePrivate> wbsTreePrivatesProjectNodes = wbsTreePrivatesProjectAll.stream().filter(f -> f.getType().equals(1)).collect(Collectors.toList());
-                List<WbsTreePrivate> wbsTreePrivatesProjectTables = wbsTreePrivatesProjectAll.stream().filter(f -> f.getType().equals(2) && f.getAncestors().contains(String.valueOf(wbsTreePrivate.getId()))).collect(Collectors.toList());
+
+                List<WbsTreePrivate> wbsTreePrivatesProjectTables;
+                if (wbsTreePrivate.getAncestors().equals("0")) {
+                    //根节点
+                    wbsTreePrivatesProjectTables = wbsTreePrivatesProjectAll.stream().filter(f -> f.getType().equals(2)).collect(Collectors.toList());
+                } else {
+                    wbsTreePrivatesProjectTables = wbsTreePrivatesProjectAll.stream().filter(f -> f.getType().equals(2) && f.getAncestors().contains(String.valueOf(wbsTreePrivate.getId()))).collect(Collectors.toList());
+                }
 
                 //获取新增的公有元素表addPublicTable
                 List<WbsTree> addPublicTable = wbsTreesPublicTables.stream().filter(f ->
@@ -620,6 +623,13 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                 //获取当前项目下所有施工合同段id
                 List<ContractInfo> contractInfos = contractInfoMapper.selectList(Wrappers.<ContractInfo>query().lambda().eq(ContractInfo::getPId, wbsTreePrivate.getProjectId()));
 
+                //获取当前项目下所有合同段树
+                List<WbsTreeContract> treeContractListAll = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
+                        .eq(WbsTreeContract::getProjectId, wbsTreePrivate.getProjectId())
+                        .eq(WbsTreeContract::getType, 1)
+                        .eq(WbsTreeContract::getStatus, 1)
+                );
+
                 //构造
                 for (WbsTree tree : addPublicTables) {
                     WbsTreePrivate dataPrivate = BeanUtil.copyProperties(tree, WbsTreePrivate.class);
@@ -650,26 +660,28 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                                 }
 
                                 //判断元素表在合同段wbs树中是否存在上级节点,存在则新增;不存在则表示没被引用,不新增
-                                WbsTreeContract dataContractParent = wbsTreeContractMapper.selectOne(Wrappers.<WbsTreeContract>query().lambda()
-                                        .eq(WbsTreeContract::getProjectId, dataContract.getProjectId())
-                                        .eq(WbsTreeContract::getContractId, contractInfo.getId())
-                                        .eq(WbsTreeContract::getType, 1)
-                                        .eq(WbsTreeContract::getStatus, 1)
-                                        .eq(WbsTreeContract::getId, dataContract.getParentId())
-                                );
+                                WbsTreeContract dataContractParent = treeContractListAll.stream().filter(f ->
+                                        f.getContractId().equals(String.valueOf(contractInfo.getId()))
+                                                && f.getProjectId().equals(dataContract.getProjectId())
+                                                && f.getStatus().equals(1)
+                                                && f.getType().equals(1)
+                                                && f.getId().equals(dataContract.getParentId())
+                                ).findAny().orElse(null);
+
                                 if (dataContractParent != null) {
                                     //新增
                                     insertDataContractList.add(dataContract);
 
                                     //获取上级父级节点同级别的复制或新增节点
-                                    List<WbsTreeContract> dataContractEquallyNodes = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
-                                            .eq(WbsTreeContract::getOldId, dataContractParent.getId())
-                                            .eq(WbsTreeContract::getContractId, contractInfo.getId())
-                                            .eq(WbsTreeContract::getProjectId, dataContractParent.getProjectId())
-                                            .eq(WbsTreeContract::getWbsId, dataContractParent.getWbsId())
-                                            .eq(WbsTreeContract::getType, 1)
-                                            .eq(WbsTreeContract::getStatus, 1)
-                                    );
+                                    List<WbsTreeContract> dataContractEquallyNodes = treeContractListAll.stream().filter(f ->
+                                            (ObjectUtils.isNotEmpty(f.getOldId()) && f.getOldId().equals(String.valueOf(dataContractParent.getId())))
+                                                    && f.getContractId().equals(String.valueOf(contractInfo.getId()))
+                                                    && f.getWbsId().equals(dataContractParent.getWbsId())
+                                                    && f.getProjectId().equals(dataContractParent.getProjectId())
+                                                    && f.getStatus().equals(1)
+                                                    && f.getType().equals(1)
+                                    ).collect(Collectors.toList());
+
                                     if (dataContractEquallyNodes.size() > 0) {
                                         //将表单同步到复制或新增的节点下
                                         for (WbsTreeContract treeContractCopy : dataContractEquallyNodes) {
@@ -720,7 +732,13 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                 );
 
                 List<WbsTreePrivate> wbsTreePrivatesProjectNodes = wbsTreePrivatesProjectAll.stream().filter(f -> f.getType().equals(1)).collect(Collectors.toList());
-                List<WbsTreePrivate> wbsTreePrivatesProjectTables = wbsTreePrivatesProjectAll.stream().filter(f -> f.getType().equals(2) && f.getAncestors().contains(String.valueOf(wbsTreePrivate.getId()))).collect(Collectors.toList());
+                List<WbsTreePrivate> wbsTreePrivatesProjectTables;
+                if (wbsTreePrivate.getAncestors().equals("0")) {
+                    //根节点
+                    wbsTreePrivatesProjectTables = wbsTreePrivatesProjectAll.stream().filter(f -> f.getType().equals(2)).collect(Collectors.toList());
+                } else {
+                    wbsTreePrivatesProjectTables = wbsTreePrivatesProjectAll.stream().filter(f -> f.getType().equals(2) && f.getAncestors().contains(String.valueOf(wbsTreePrivate.getId()))).collect(Collectors.toList());
+                }
 
                 //获取新增的私有元素表addPrivateTable
                 List<WbsTreePrivate> addPrivateTable = wbsTreePrivateRootTables.stream().filter(f ->
@@ -735,6 +753,13 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                         wbsTreePrivatesProjectNodes.stream().map(WbsTreePrivate::getId).collect(Collectors.toList()).contains(node.getParentId())
                 ).collect(Collectors.toList());
 
+                //获取当前项目下所有合同段树
+                List<WbsTreeContract> treeContractListAll = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
+                        .eq(WbsTreeContract::getProjectId, wbsTreePrivate.getProjectId())
+                        .eq(WbsTreeContract::getType, 1)
+                        .eq(WbsTreeContract::getStatus, 1)
+                );
+
                 //构造
                 for (WbsTreePrivate tree : addPrivateTables) {
                     WbsTreePrivate dataPrivate = BeanUtil.copyProperties(tree, WbsTreePrivate.class);
@@ -760,24 +785,29 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                                     wbsTreeContract.setIsTypePrivatePid(dataPrivate.getPKeyId());
                                 }
                                 //判断元素表是否存在上级节点,存在则新增;不存在则表示没被引用,不新增
-                                WbsTreeContract wbsTreeContract1 = wbsTreeContractMapper.selectOne(Wrappers.<WbsTreeContract>query().lambda()
-                                        .eq(WbsTreeContract::getProjectId, wbsTreeContract.getProjectId())
-                                        .eq(WbsTreeContract::getContractId, wbsTreeContract.getContractId())
-                                        .eq(WbsTreeContract::getWbsId, wbsTreeContract.getWbsId())
-                                        .eq(WbsTreeContract::getType, 1)
-                                        .eq(WbsTreeContract::getId, wbsTreeContract.getParentId())
-                                );
+
+                                WbsTreeContract wbsTreeContract1 = treeContractListAll.stream().filter(f ->
+                                        f.getContractId().equals(wbsTreeContract.getContractId())
+                                                && f.getProjectId().equals(wbsTreeContract.getProjectId())
+                                                && f.getWbsId().equals(wbsTreeContract.getWbsId())
+                                                && f.getStatus().equals(1)
+                                                && f.getType().equals(1)
+                                                && f.getId().equals(wbsTreeContract.getParentId())
+                                ).findAny().orElse(null);
+
                                 if (wbsTreeContract1 != null) {
                                     insertDataContractList.add(wbsTreeContract);
 
                                     //获取上级父级节点同级别的复制或新增节点
-                                    List<WbsTreeContract> wbsTreeContracts2 = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
-                                            .eq(WbsTreeContract::getOldId, wbsTreeContract1.getId())
-                                            .eq(WbsTreeContract::getContractId, contractInfo.getId())
-                                            .eq(WbsTreeContract::getProjectId, wbsTreePrivate.getProjectId())
-                                            .eq(WbsTreeContract::getWbsId, wbsTreePrivate.getWbsId())
-                                            .eq(WbsTreeContract::getType, 1)
-                                    );
+                                    List<WbsTreeContract> wbsTreeContracts2 = treeContractListAll.stream().filter(f ->
+                                            (ObjectUtils.isNotEmpty(f.getOldId()) && f.getOldId().equals(String.valueOf(wbsTreeContract1.getId())))
+                                                    && f.getContractId().equals(String.valueOf(contractInfo.getId()))
+                                                    && f.getWbsId().equals(wbsTreePrivate.getWbsId())
+                                                    && f.getProjectId().equals(wbsTreePrivate.getProjectId())
+                                                    && f.getStatus().equals(1)
+                                                    && f.getType().equals(1)
+                                    ).collect(Collectors.toList());
+
                                     if (wbsTreeContracts2.size() > 0) {
                                         //将表单同步到复制或新增的节点下
                                         for (WbsTreeContract treeContract : wbsTreeContracts2) {

+ 6 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -1,6 +1,7 @@
 package org.springblade.manager.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
@@ -785,6 +786,9 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                         //查询出当前wbs树下所有节点、表信息
                         List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectNodeAndTable(null, pawDTO.getWbsId(), pawDTO.getReferencePrivateWbsProjectId());
 
+                        //查询所有电签位置配置信息
+                        List<TextdictInfo> textDictInfosAll = textdictInfoMapper.selectList(Wrappers.<TextdictInfo>query().lambda());
+
                         for (WbsTreePrivate wbsTreePrivate : wbsTreePrivates) {
                             for (String id : saveIds) {
                                 if (Long.parseLong(id) == (wbsTreePrivate.getId())) {
@@ -795,7 +799,8 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                                     addListData.add(wbsTreePrivate);
 
                                     //根据元素表pKeyId,获取电签位置匹配信息、编辑默认信息
-                                    List<TextdictInfo> textDictInfos = textdictInfoMapper.selectList(Wrappers.<TextdictInfo>query().lambda().eq(TextdictInfo::getTabId, wbsTreePrivate.getPKeyId()));
+                                    List<TextdictInfo> textDictInfos = textDictInfosAll.stream().filter(f -> ObjectUtils.isNotEmpty(f.getTabId())
+                                            && f.getTabId().equals(String.valueOf(wbsTreePrivate.getPKeyId()))).collect(Collectors.toList());
                                     if (textDictInfos.size() > 0) {
                                         textDictInfoData.put(wbsTreePrivate.getPKeyId(), textDictInfos);
                                     }