瀏覽代碼

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

lvy 14 小時之前
父節點
當前提交
9b317a7cf6

+ 9 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsParamServiceImpl.java

@@ -421,12 +421,17 @@ public class WbsParamServiceImpl extends BaseServiceImpl<WbsParamMapper, WbsPara
                 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()) {
+                        Map<Long, Integer> sortMap = new HashMap<>();
+                        for (int i = 0; i < pKeyIds.size(); i++) {
+                            sortMap.put(pKeyIds.get(i), i);
+                        }
+                        list.sort(Comparator.comparingInt(o -> sortMap.get(o.getPKeyId())));
+                        list.add(one);
+                        return list;
+                    }
                 }
             }
-            if (list != null && !list.isEmpty()) {
-                list.add(one);
-                return list;
-            }
             if(Func.isNotBlank(one.getTreeCode())){
                 List<String> treeCodes= FormulaUtils.treeCodeSplit(one.getTreeCode());
                 /**/