Explorar o código

解决复制节点后节点参数获取数据错误的问题

lvy hai 1 día
pai
achega
a56ce1e443

+ 11 - 6
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsParamServiceImpl.java

@@ -416,6 +416,17 @@ public class WbsParamServiceImpl extends BaseServiceImpl<WbsParamMapper, WbsPara
         WbsTreeContract one = this.treeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, pkeyId));
         if (one != null) {
             List<WbsTreeContract> list = new ArrayList<>();
+            if (one.getAncestorsPId() != null && !one.getAncestorsPId().trim().isEmpty() && !one.getAncestorsPId().trim().equals("0")) {
+                List<Long> pKeyIds = Func.toLongList(one.getAncestorsPId()).stream().filter(item -> item != null && item > 0).collect(Collectors.toList());
+                if (pKeyIds.size() > 1) {
+                    pKeyIds.remove(0);
+                    list = this.treeContractService.list(Wrappers.<WbsTreeContract>lambdaQuery().in(WbsTreeContract::getPKeyId, pKeyIds).eq(WbsTreeContract::getContractId, one.getContractId()));
+                }
+            }
+            if (list != null && !list.isEmpty()) {
+                list.add(one);
+                return list;
+            }
             if(Func.isNotBlank(one.getTreeCode())){
                 List<String> treeCodes= FormulaUtils.treeCodeSplit(one.getTreeCode());
                 /**/
@@ -433,12 +444,6 @@ public class WbsParamServiceImpl extends BaseServiceImpl<WbsParamMapper, WbsPara
                     }
                     Collections.reverse(list);
                 }
-                if (list.isEmpty()) {
-                    if (one.getAncestorsPId() != null && !one.getAncestorsPId().trim().isEmpty() && !one.getAncestorsPId().equals("0")) {
-                        List<Long> pKeyIds = Func.toLongList(one.getAncestorsPId());
-                        list = this.treeContractService.list(Wrappers.<WbsTreeContract>lambdaQuery().in(WbsTreeContract::getPKeyId, pKeyIds).eq(WbsTreeContract::getContractId, one.getContractId()));
-                    }
-                }
                 list.add(one);
             }else {
                 list.add(one);