فهرست منبع

Merge remote-tracking branch 'origin/master' into master

yangyj 2 سال پیش
والد
کامیت
21cb00a771

+ 7 - 4
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/AddContractTreeNodeVO.java

@@ -31,14 +31,14 @@ public class AddContractTreeNodeVO {
         if (this.halfSelectedList == null) {
             this.halfSelectedList = new ArrayList<>();
         }
-        this.halfSelectedList.add(new Node(primaryKeyId, nodeName));
+        this.halfSelectedList.add(new Node(primaryKeyId, nodeName, null));
     }
 
-    public void setAllSelectedList(String primaryKeyId, String nodeName) {
+    public void setAllSelectedList(String primaryKeyId, String nodeName, String isPeer) {
         if (this.allSelectedList == null) {
             this.allSelectedList = new ArrayList<>();
         }
-        this.allSelectedList.add(new Node(primaryKeyId, nodeName));
+        this.allSelectedList.add(new Node(primaryKeyId, nodeName, isPeer));
     }
 
     @Data
@@ -47,9 +47,12 @@ public class AddContractTreeNodeVO {
 
         private String nodeName;
 
-        public Node(String primaryKeyId, String nodeName) {
+        private String isPeer; //是否同级,仅当前节点 1=是,0=否
+
+        public Node(String primaryKeyId, String nodeName, String isPeer) {
             this.primaryKeyId = primaryKeyId;
             this.nodeName = nodeName;
+            this.isPeer = isPeer;
         }
 
         public Node() {

+ 21 - 12
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -2688,6 +2688,9 @@ public class InformationWriteQueryController extends BladeController {
         } else {
             //todo 仅当前节点操作
             if (allSelectedNodeList.size() > 0) {
+                if (allSelectedNodeList.size() != 1) {
+                    throw new ServiceException("只能选择单节点进行新增操作");
+                }
                 //查询数据
                 selectedNodeList = this.unifiedCode(allSelectedNodeList, treeContract, "0");
 
@@ -2722,7 +2725,7 @@ public class InformationWriteQueryController extends BladeController {
             });
 
             //处理数据
-            selectedNodeList.forEach(half -> {
+            for (WbsTreeContract half : selectedNodeList) {
                 //处理合同段数据
                 WbsTreeContract newData = new WbsTreeContract();
                 BeanUtils.copyProperties(half, newData);
@@ -2736,12 +2739,22 @@ public class InformationWriteQueryController extends BladeController {
                 //设置父级id
                 if ("1".equals(vo.getSaveType())) {
                     //当前节点及其子节点操作
-                    newData.setParentId(OldIdToNewIdMap.containsKey(half.getParentId()) ? OldIdToNewIdMap.get(half.getParentId()) : treeContract.getId().equals(half.getParentId()) || treeContract.getOldId().equals(half.getParentId().toString()) ? treeContract.getId() : SnowFlakeUtil.getId());
+                    newData.setParentId(OldIdToNewIdMap.containsKey(half.getParentId()) ? OldIdToNewIdMap.get(half.getParentId()) : treeContract.getId().equals(half.getParentId()) /*|| treeContract.getOldId().equals(half.getParentId().toString())*/ ? treeContract.getId() : SnowFlakeUtil.getId());
                 } else {
-                    //仅当前节点新增操作时,父级id=选择新增的节点父级id
+                    //TODO 仅当前节点新增操作时,父级id=选择新增的节点父级id(同级情况) or 父级id=选择新增的节点id(不同级情况,也就是下级)
                     if (new Integer("1").equals(half.getType())) {
-                        //节点
-                        newData.setParentId(half.getParentId());
+                        if (vo.getAllSelectedList().size() == 1) {
+                            AddContractTreeNodeVO.Node node = vo.getAllSelectedList().get(0);
+                            if (("1").equals(node.getIsPeer())) {
+                                //同级
+                                newData.setParentId(treeContract.getParentId());
+
+                            } else if (("2").equals(node.getIsPeer())) {
+                                //下一级
+                                newData.setParentId(treeContract.getId());
+
+                            }
+                        }
                     } else if (new Integer("2").equals(half.getType())) {
                         //表
                         newData.setParentId(OldIdToNewIdMap.containsKey(half.getParentId()) ? OldIdToNewIdMap.get(half.getParentId()) : treeContract.getId().equals(half.getParentId()) || treeContract.getOldId().equals(half.getParentId().toString()) ? treeContract.getId() : SnowFlakeUtil.getId());
@@ -2809,7 +2822,7 @@ public class InformationWriteQueryController extends BladeController {
                     //生成施工日志
                     this.createLedger(newData, saveLedger, null, nodeMap);
                 }
-            });
+            }
         }
         treeContract.setNodeName(vo.getAllSelectedList().get(0).getNodeName());
         R<Boolean> booleanR = this.saveOrCopyNodeTree(saveList, saveLedger, 2, treeContract);
@@ -2859,9 +2872,7 @@ public class InformationWriteQueryController extends BladeController {
             //selectedNodeList.removeIf(wbsTreePrivate -> treeContract.getId().equals(wbsTreePrivate.getId()) || treeContract.getOldId().equals(wbsTreePrivate.getId().toString()));
             selectedNodeList.removeIf(wbsTreePrivate -> {
                 Long id = wbsTreePrivate.getId();
-                String oldId = wbsTreePrivate.getId().toString();
-                return treeContract.getId() != null && treeContract.getOldId() != null &&
-                        (treeContract.getId().equals(id) || treeContract.getOldId().equals(oldId));
+                return treeContract.getId() != null && treeContract.getId().equals(id);
             });
         }
 
@@ -2982,9 +2993,7 @@ public class InformationWriteQueryController extends BladeController {
             //剔除与当前操作节点相同的ID
             allSelectedNodeLists.removeIf(wbsTreePrivate -> {
                 Long id = wbsTreePrivate.getId();
-                String oldId = wbsTreePrivate.getId().toString();
-                return treeContract.getId() != null && treeContract.getOldId() != null &&
-                        (treeContract.getId().equals(id) || treeContract.getOldId().equals(oldId));
+                return treeContract.getId() != null && treeContract.getId().equals(id);
             });
             //allSelectedNodeLists.removeIf(wbsTreePrivate -> treeContract.getId().equals(wbsTreePrivate.getId()) || treeContract.getOldId().equals(wbsTreePrivate.getId().toString()));
             //设置到集合中