部门树形数据的封装
代码
package com.minglei.dto;
import com.minglei.entity.Dept;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class DeptNode {
private Dept node;
private List<DeptNode> childs;
//获取部门树形结构
public static List<DeptNode> getTree(List<DeptNode> deptNodes){
List<DeptNode>result= new ArrayList<>();
for (DeptNode deptNode : deptNodes) {
if("0".equals(deptNode.getNode().getParent_dept_id())){
result.add(getChlids(deptNode, deptNodes));
}
}
return result;
}
private static DeptNode getChlids(DeptNode deptNode, List<DeptNode> deptNodes) {
for (DeptNode deptNode1 : deptNodes) {
if(deptNode.getNode().getId().equals(deptNode1.getNode().getParent_dept_id())){
if(deptNode.getChilds()==null){
List<DeptNode> deptNodeList = new ArrayList<>();
deptNode.setChilds(deptNodeList);
}
deptNode.getChilds().add(getChlids(deptNode1,deptNodes));
}
}
return deptNode;
}
public static DeptNode depts2deptNode(List<Dept>depts){
List<DeptNode > deptNodes =new ArrayList<>();
for (Dept dept : depts) {
DeptNode deptNode = new DeptNode();
deptNode.setNode(dept);
deptNodes.add(deptNode);
}
return getTree(deptNodes).get(0);
}
}