|
@@ -4827,7 +4827,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
if (!leafNodes.isEmpty()) {
|
|
|
- return leafNodes;
|
|
|
+ return sortLeafNodes(leafNodes);
|
|
|
}
|
|
|
|
|
|
// 2. 如果没有子分项,找分项工程 (节点类型4)
|
|
@@ -4836,7 +4836,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
if (!leafNodes.isEmpty()) {
|
|
|
- return leafNodes;
|
|
|
+ return sortLeafNodes(leafNodes);
|
|
|
}
|
|
|
|
|
|
// 3. 如果没有分项,找子分部工程 (节点类型3)
|
|
@@ -4845,7 +4845,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
if (!leafNodes.isEmpty()) {
|
|
|
- return leafNodes;
|
|
|
+ return sortLeafNodes(leafNodes);
|
|
|
}
|
|
|
|
|
|
// 4. 如果没有子分部,找分部工程 (节点类型2)
|
|
@@ -4854,13 +4854,30 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
if (!leafNodes.isEmpty()) {
|
|
|
- return leafNodes;
|
|
|
+ return sortLeafNodes(leafNodes);
|
|
|
}
|
|
|
|
|
|
// 5. 最后找单位工程 (节点类型18)
|
|
|
- return projects.stream()
|
|
|
+ leafNodes = projects.stream()
|
|
|
.filter(item -> item.getNodeType() == 18)
|
|
|
.collect(Collectors.toList());
|
|
|
+
|
|
|
+ return sortLeafNodes(leafNodes);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 排序方法:先按pId排序,pId相同则按sort排序(null值排在最后)
|
|
|
+ private List<WbsTreeContract> sortLeafNodes(List<WbsTreeContract> nodes) {
|
|
|
+ return nodes.stream()
|
|
|
+ .sorted(Comparator
|
|
|
+ .comparing(WbsTreeContract::getPId)
|
|
|
+ .thenComparing(
|
|
|
+ Comparator.comparing(
|
|
|
+ WbsTreeContract::getSort,
|
|
|
+ Comparator.nullsLast(Comparator.naturalOrder())
|
|
|
+ )
|
|
|
+ )
|
|
|
+ )
|
|
|
+ .collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
// 根据叶子节点类型填充工程数据
|