天天看点

部门树递归

public class Dept {

    private static final long serialVersionUID = 1L;

    /**
     * 部门名称
     */
    @ApiModelProperty(value = "部门名称")
	private String name;
    /**
     * 部门负责人ID
     */
	private Long manager;
  
	@TableField("parent_id")
	private Long parentId;
  
	@TableField("data_authority")
	private Long dataAuthority;



	
}











@Override
    public Map<String, Object> deptTree() {
        List<Map<String,Object>> list = subDeptTree(1L);
        Map<String, Object> map = new HashMap<String,Object>();
        map.put("id",1L);
        map.put("name","全公司");
        map.put("parentId",0L);
        map.put("subDept",list);
        return map;
    }


  /**
     * 功能:生成子部门树信息
     * @param id
     * @return
     */
    private List<Map<String, Object>> subDeptTree(Long id) {
        List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
        EntityWrapper<Dept> entityWrapper = new EntityWrapper<Dept>();
        entityWrapper.eq("parent_id",id);
        List<Dept> deptList = deptDao.selectList(entityWrapper);
        for(Dept dept : deptList) {
            Map<String, Object> deptMap = new HashMap<String, Object>();
            deptMap.put("id",dept.getId());
            deptMap.put("name",dept.getName());
            deptMap.put("parentId",dept.getParentId());
            List<Map<String,Object>> deptList1 = subDeptTree(dept.getId());
            deptMap.put("subDept",deptList1);
            list.add(deptMap);
        }
        return list;
    }