liuyc 2 years ago
parent
commit
6b42967b17

+ 17 - 3
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -1357,7 +1357,20 @@ public class InformationWriteQueryController extends BladeController {
             List<ConstructionLedger> saveLedger = new ArrayList<>();
 
             //获取子级节点、表信息
-            List<WbsTreeContract> nodeChildAll = informationQueryService.getNodeChildAllByNodeId(needCopyNode.getId() + "", needCopyNode.getContractId(), vo.getNeedCopyPrimaryKeyId());
+            //List<WbsTreeContract> nodeChildAll = informationQueryService.getNodeChildAllByNodeId(needCopyNode.getId() + "", needCopyNode.getContractId(), vo.getNeedCopyPrimaryKeyId());
+            List<WbsTreeContract> needCopyChildNodes = this.getChildNodes(needCopyNode);
+            if (ObjectUtil.isEmpty(needCopyChildNodes) || needCopyChildNodes.size() == 0) {
+                //最下层级节点复制
+                needCopyChildNodes = new ArrayList<>();
+                needCopyChildNodes.add(needCopyNode);
+            }
+            needCopyChildNodes.add(needCopyNode);
+            List<WbsTreeContract> nodeChildAll = new ArrayList<>(needCopyChildNodes);
+            List<WbsTreeContract> addChildNodesTables = this.getChildNodesTables(needCopyChildNodes, needCopyNode.getContractId());
+            if (addChildNodesTables != null) {
+                nodeChildAll.addAll(addChildNodesTables);
+            }
+
             //获取数据源表(附件复制使用)
             Set<WbsTreeContract> oldTabs = nodeChildAll.stream().filter(f -> (new Integer(2).equals(f.getType()))).collect(Collectors.toSet());
 
@@ -1458,7 +1471,8 @@ public class InformationWriteQueryController extends BladeController {
             }
 
             //更新redis缓存
-            informationQueryService.AsyncWbsTree(needCopyNode.getParentId() + "", needCopyNode.getParentId() + "", needCopyNode.getContractId(), "", "1");
+            //informationQueryService.AsyncWbsTree(needCopyNode.getParentId() + "", needCopyNode.getParentId() + "", needCopyNode.getContractId(), "", "1");
+            informationQueryService.delAsyncWbsTree(needCopyNode.getContractId());
 
             return booleanR;
 
@@ -1661,7 +1675,7 @@ public class InformationWriteQueryController extends BladeController {
             if (obj != null && ObjectUtil.isNotEmpty(obj.getParentId())) {
                 if (newMap.size() > 0) {
                     WbsTreeContract parentObj = newMap.get(obj.getParentId());
-                    if (parentObj != null && !obj.getAncestors().contains(obj.getParentId().toString())) {
+                    if (parentObj != null && ObjectUtil.isNotEmpty(obj.getAncestors()) && ObjectUtil.isNotEmpty(obj.getParentId()) && !obj.getAncestors().contains(obj.getParentId().toString())) {
                         String parentAncestors = parentObj.getAncestors();
                         obj.setAncestors(parentAncestors + "," + obj.getParentId());
                     }

+ 1 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -797,7 +797,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                     }
                 }
 
-                //分组查询有节点的对应节点参数信息
+                //分组查询有节点的对应节点参数信息
                 Set<String> keyIds = map.keySet();
                 List<Long> wbsTreeIds = new ArrayList<>(map.values());
                 List<List<Long>> partition = Lists.partition(wbsTreeIds, 1000);
@@ -807,7 +807,6 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                     wbsParamOldList.addAll(wbsParams);
                 }
 
-
                 //构造当前项目的节点参数信息
                 for (String ids : keyIds) {
                     String nodePKeyIdNow = ids.split(",")[0];