| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | package org.jeecg.modules.system.vo.thirdapp;import com.jeecg.dingtalk.api.department.vo.Department;import org.springframework.beans.BeanUtils;import java.util.ArrayList;import java.util.List;/** * 钉钉树结构的部门 * * @author sunjianlei */public class JdtDepartmentTreeVo extends Department {    private List<JdtDepartmentTreeVo> children;    public List<JdtDepartmentTreeVo> getChildren() {        return children;    }    public JdtDepartmentTreeVo setChildren(List<JdtDepartmentTreeVo> children) {        this.children = children;        return this;    }    public JdtDepartmentTreeVo(Department department) {        BeanUtils.copyProperties(department, this);    }    /**     * 是否有子项     */    public boolean hasChildren() {        return children != null && children.size() > 0;    }    @Override    public String toString() {        return "JwDepartmentTree{" +                "children=" + children +                "} " + super.toString();    }    /**     * 静态辅助方法,将list转为tree结构     */    public static List<JdtDepartmentTreeVo> listToTree(List<Department> allDepartment) {        // 先找出所有的父级        List<JdtDepartmentTreeVo> treeList = getByParentId(1, allDepartment);        getChildrenRecursion(treeList, allDepartment);        return treeList;    }    private static List<JdtDepartmentTreeVo> getByParentId(Integer parentId, List<Department> allDepartment) {        List<JdtDepartmentTreeVo> list = new ArrayList<>();        for (Department department : allDepartment) {            if (parentId.equals(department.getParent_id())) {                list.add(new JdtDepartmentTreeVo(department));            }        }        return list;    }    private static void getChildrenRecursion(List<JdtDepartmentTreeVo> treeList, List<Department> allDepartment) {        for (JdtDepartmentTreeVo departmentTree : treeList) {            // 递归寻找子级            List<JdtDepartmentTreeVo> children = getByParentId(departmentTree.getDept_id(), allDepartment);            if (children.size() > 0) {                departmentTree.setChildren(children);                getChildrenRecursion(children, allDepartment);            }        }    }}
 |