|
|
|
@ -35,7 +35,7 @@ public class SearchTreeUtil {
|
|
|
|
|
// 排序,设置是否为叶子节点
|
|
|
|
|
List<TreeNode> collect = treeList.stream().peek(item ->
|
|
|
|
|
item.setIsParent(CollectionUtils.isNotEmpty(item.getSubs()))
|
|
|
|
|
).sorted(Comparator.comparing(SearchTree::getOrderNum)).collect(Collectors.toList());
|
|
|
|
|
).collect(Collectors.toList());
|
|
|
|
|
if (CollectionUtils.isNotEmpty(collect)) {
|
|
|
|
|
treeDatas.addAll(collect);
|
|
|
|
|
}
|
|
|
|
@ -87,14 +87,16 @@ public class SearchTreeUtil {
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static List<SearchTree> builderTreeMode(List<SearchTree> treeList) {
|
|
|
|
|
List<SearchTree> sortedList = treeList.stream().sorted(Comparator.comparing(SearchTree::getOrderNum)).collect(Collectors.toList());
|
|
|
|
|
Map<String, List<TreeNode>> collects = sortedList.stream().collect(Collectors.groupingBy(TreeNode::getPid));
|
|
|
|
|
Map<String, List<SearchTree>> collects = treeList.stream().collect(Collectors.groupingBy(TreeNode::getPid));
|
|
|
|
|
Set<String> leafIds = new HashSet<>();
|
|
|
|
|
List<SearchTree> collect = sortedList.stream().peek(e -> {
|
|
|
|
|
e.setSubs(collects.get(e.getId()));
|
|
|
|
|
leafIds.add(e.getId());
|
|
|
|
|
if (CollectionUtils.isNotEmpty(e.getSubs())) {
|
|
|
|
|
e.setIsParent(true);
|
|
|
|
|
List<SearchTree> collect = treeList.stream().peek(e -> {
|
|
|
|
|
if (null != collects && CollectionUtils.isNotEmpty(collects.get(e.getId()))) {
|
|
|
|
|
List<TreeNode> nodes = collects.get(e.getId()).stream().sorted(Comparator.comparing(item -> null == item.getOrderNum() ? 0 : item.getOrderNum())).collect(Collectors.toList());
|
|
|
|
|
e.setSubs(nodes);
|
|
|
|
|
leafIds.add(e.getId());
|
|
|
|
|
if (CollectionUtils.isNotEmpty(e.getSubs())) {
|
|
|
|
|
e.setIsParent(true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
return collect.stream().filter(item -> !leafIds.contains(item.getPid())).collect(Collectors.toList());
|
|
|
|
@ -113,13 +115,14 @@ public class SearchTreeUtil {
|
|
|
|
|
boolean isAdd = !childMap.isEmpty();
|
|
|
|
|
Set<String> leafIds = new HashSet<>();
|
|
|
|
|
List<SearchTree> collect = treeList.stream().peek(e -> {
|
|
|
|
|
Set<TreeNode> treeNodes = new HashSet<>();
|
|
|
|
|
Set<TreeNode> treeNodes = new LinkedHashSet<>();
|
|
|
|
|
List<TreeNode> nodes = parentMap.get(e.getId());
|
|
|
|
|
if (CollectionUtils.isNotEmpty(nodes)) {
|
|
|
|
|
treeNodes.addAll(nodes);
|
|
|
|
|
}
|
|
|
|
|
if (isAdd && CollectionUtils.isNotEmpty(childMap.get(e.getId()))) {
|
|
|
|
|
treeNodes.addAll(childMap.get(e.getId()));
|
|
|
|
|
List<SearchTree> searchTrees = childMap.get(e.getId()).stream().sorted(Comparator.comparing(SearchTree::getOrderNum)).collect(Collectors.toList());
|
|
|
|
|
treeNodes.addAll(searchTrees);
|
|
|
|
|
}
|
|
|
|
|
if (CollectionUtils.isNotEmpty(e.getSubs())) {
|
|
|
|
|
treeNodes.addAll(e.getSubs());
|
|
|
|
|