部门视图重构代码提交
This commit is contained in:
parent
031b2ac6bf
commit
7c11497920
@ -105,4 +105,77 @@ public class TreeUtil {
|
||||
}
|
||||
return rootNodes;
|
||||
}
|
||||
|
||||
//建立树形结构
|
||||
//rootSign 根节点标识
|
||||
//tLevel 节点层级,用于指定展示层数
|
||||
//nodeType 节点类型,用于多数据类型合并
|
||||
public static List<Map> buildTreeFileFirst(String type,List<Map> nodeMaps,String rootSign,String rootNodeType,String tLevel,String nodeType){
|
||||
List<Map> treeNodes =new ArrayList<>();
|
||||
if("1".equals(type)) {
|
||||
HashMap<String, Object> deptNode = new HashMap<>();
|
||||
nodeType = "dept";
|
||||
deptNode.put("ID","all");
|
||||
deptNode.put("PARENTID","0");
|
||||
deptNode.put("name","全部");
|
||||
deptNode.put("ORDERINDEX","1");
|
||||
deptNode.put("TLEVEL","");
|
||||
deptNode.put("nodeType", "dept");
|
||||
treeNodes.add(deptNode);
|
||||
}
|
||||
for (Map treeNode : getRootNode(nodeMaps,rootSign,rootNodeType)) {
|
||||
treeNode = buildChildTreeFileFirst(treeNode,nodeMaps,tLevel,nodeType);
|
||||
treeNodes.add(treeNode);
|
||||
}
|
||||
// 子节点进行排序
|
||||
List<Map> treeNodesSort = Optional.ofNullable(treeNodes)
|
||||
.map(List::stream)
|
||||
.orElseGet(Stream::empty)
|
||||
.sorted(Comparator.comparing(treeNode->Integer.valueOf(treeNode.get("ORDERINDEX").toString())))
|
||||
.collect(Collectors.toList());
|
||||
return treeNodesSort;
|
||||
}
|
||||
//递归,建立子树形结构
|
||||
private static Map buildChildTreeFileFirst(Map pNode, List<Map> nodeMaps, String tLevel, String nodeType){
|
||||
List<Map> childNodes =new ArrayList<>();
|
||||
if (null == tLevel || tLevel.equals("")) {
|
||||
for (Map nodeMap : nodeMaps) {
|
||||
if (nodeMap.get("PARENTID").equals(pNode.get("ID"))) {
|
||||
childNodes.add(buildChildTreeFileFirst(nodeMap,nodeMaps,tLevel,nodeType));
|
||||
}
|
||||
}
|
||||
if(CollectionUtils.isNotEmpty(childNodes)){
|
||||
List<Map> childNodesSort = Optional.ofNullable(childNodes)
|
||||
.map(List::stream)
|
||||
.orElseGet(Stream::empty)
|
||||
.sorted(Comparator.comparing((Map treeNode) -> "file".equals(treeNode.get("nodeType").toString()) ? 0 : 1)
|
||||
// 然后按 ORDERINDEX 排序
|
||||
.thenComparing(treeNode -> Integer.valueOf(treeNode.get("ORDERINDEX").toString())))
|
||||
.collect(Collectors.toList());
|
||||
pNode.put("children",childNodesSort);
|
||||
}
|
||||
} else {
|
||||
for (Map nodeMap : nodeMaps) {
|
||||
if (Integer.valueOf(tLevel)>=Integer.valueOf(String.valueOf(nodeMap.get("TLEVEL")))) {
|
||||
if (nodeMap.get("PARENTID").equals(pNode.get("ID"))) {
|
||||
childNodes.add(buildChildTree(nodeMap,nodeMaps,tLevel,nodeType));
|
||||
}
|
||||
}
|
||||
if (Integer.valueOf(tLevel)<Integer.valueOf(String.valueOf(nodeMap.get("TLEVEL"))) && String.valueOf(nodeMap.get("nodeType")).equals(nodeType)) {
|
||||
if (nodeMap.get("PARENTID").equals(pNode.get("ID"))) {
|
||||
childNodes.add(buildChildTree(nodeMap,nodeMaps,tLevel,nodeType));
|
||||
}
|
||||
}
|
||||
}
|
||||
if(CollectionUtils.isNotEmpty(childNodes)){
|
||||
List<Map> childNodesSort = Optional.ofNullable(childNodes)
|
||||
.map(List::stream)
|
||||
.orElseGet(Stream::empty)
|
||||
.sorted(Comparator.comparing(childNodesOrigin->Integer.valueOf(childNodesOrigin.get("ORDERINDEX").toString())))
|
||||
.collect(Collectors.toList());
|
||||
pNode.put("children",childNodesSort);
|
||||
}
|
||||
}
|
||||
return pNode;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user