diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index 4c30f42c..aaa53686 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -576,7 +576,9 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic for (DepartmentPO departmentPO : filterDeparts) { buildParentDepts(departmentPO, builderDeparts); } - List deptTrees = SearchTreeUtil.builderTreeMode(DepartmentBO.buildSetToSearchTree(builderDeparts, false)); + List departmentTrees = DepartmentBO.buildSetToSearchTree(builderDeparts, false); + List searchTrees = SearchTreeUtil.builderTreeMode(departmentTrees, jobTrees); + List deptTrees = SearchTreeUtil.builderTreeMode(departmentTrees); // 添加部门的上级分部 String parentCompS = deptTrees.stream().map(SearchTree::getParentComp).collect(Collectors.joining(",")); if (!StringUtil.isEmpty(parentCompS)) { @@ -589,7 +591,6 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic for (CompPO compPO : filterComps) { buildParentComps(compPO, builderComps); } - List searchTrees = SearchTreeUtil.builderTreeMode(deptTrees, jobTrees); return SearchTreeUtil.builderTreeMode(CompBO.buildSetToSearchTree(builderComps), searchTrees); } diff --git a/src/com/engine/organization/util/tree/SearchTreeUtil.java b/src/com/engine/organization/util/tree/SearchTreeUtil.java index 5ff6bdee..2ec73a8c 100644 --- a/src/com/engine/organization/util/tree/SearchTreeUtil.java +++ b/src/com/engine/organization/util/tree/SearchTreeUtil.java @@ -108,7 +108,7 @@ public class SearchTreeUtil { Map> childMap = deptTrees.stream().collect(Collectors.groupingBy(SearchTree::getParentComp)); boolean isAdd = !childMap.isEmpty(); return treeList.stream().peek(e -> { - List treeNodes = new ArrayList<>(); + Set treeNodes = new HashSet<>(); List nodes = parentMap.get(e.getId()); if (CollectionUtils.isNotEmpty(nodes)) { treeNodes.addAll(nodes); @@ -119,7 +119,7 @@ public class SearchTreeUtil { if (CollectionUtils.isNotEmpty(e.getSubs())) { treeNodes.addAll(e.getSubs()); } - e.setSubs(treeNodes); + e.setSubs( new ArrayList<>(treeNodes)); }).peek(item -> { if (CollectionUtils.isNotEmpty(item.getSubs())) { item.setIsParent(true);