Browse Source

wbs排序

liuyc 2 năm trước cách đây
mục cha
commit
750c82dc90

+ 7 - 15
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ContractInfoServiceImpl.java

@@ -36,7 +36,6 @@ import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import java.io.IOException;
-import java.lang.reflect.Field;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -282,7 +281,9 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
      * @return
      */
     private List<WbsTreePrivateVO> buildWbsTreeByStreamChildNodeTreeProject(List<WbsTreePrivateVO> nodes, WbsTreePrivate parentNodeRoot) {
-        List<WbsTreePrivateVO> list = nodes.stream().filter(f -> f.getId().equals(parentNodeRoot.getId())).collect(Collectors.toList());
+        List<WbsTreePrivateVO> list = nodes.stream().filter(f -> f.getId().equals(parentNodeRoot.getId()))
+                .sorted(Comparator.comparing(WbsTreePrivateVO::getSort, Comparator.nullsLast(Integer::compare)))
+                .collect(Collectors.toList());
         Map<Long, List<WbsTreePrivateVO>> map = nodes.stream().collect(Collectors.groupingBy(WbsTreePrivateVO::getParentId));
         this.recursionFnTreeChildNodeProject(list, map);
         return list;
@@ -291,21 +292,12 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
     private void recursionFnTreeChildNodeProject(List<WbsTreePrivateVO> list, Map<Long, List<WbsTreePrivateVO>> map) {
         for (WbsTreePrivateVO wbsTreePrivateVO : list) {
             List<WbsTreePrivateVO> childrenList = map.get(wbsTreePrivateVO.getId());
-            wbsTreePrivateVO.setChildren(childrenList);
             if (childrenList != null && childrenList.size() > 0) {
+                List<WbsTreePrivateVO> sortChildrenList = childrenList.stream()
+                        .sorted(Comparator.comparing(WbsTreePrivateVO::getSort, Comparator.nullsLast(Integer::compare))).collect(Collectors.toList());
                 wbsTreePrivateVO.setHasChildren(true);
-                recursionFnTreeProject(childrenList, map);
-            }
-        }
-    }
-
-    private void recursionFnTreeProject(List<WbsTreePrivateVO> list, Map<Long, List<WbsTreePrivateVO>> map) {
-        for (WbsTreePrivateVO wbsTreePrivateVO : list) {
-            List<WbsTreePrivateVO> childrenList = map.get(wbsTreePrivateVO.getId());
-            wbsTreePrivateVO.setChildren(childrenList);
-            if (childrenList != null && childrenList.size() > 0) {
-                wbsTreePrivateVO.setHasChildren(true);
-                recursionFnTreeProject(childrenList, map);
+                wbsTreePrivateVO.setChildren(sortChildrenList);
+                recursionFnTreeChildNodeProject(sortChildrenList, map);
             }
         }
     }