获取部门及其子部门树,返回map结构
public R getDepOrgWithChildrenTreeMap() {
SysUserEntity employee=getUser();
List<DepNode> depNodes=new ArrayList<>();
if(StringUtils.isNotBlank(employee.getDepOrg())){
//查询父级
DepNode depNode= departmentDao.getSelfNode(employee.getDepOrg());
//查询子节点
depNode.setChildren(departmentService.getTreeByDep(employee.getDepOrg()));
//添加子节点
depNodes.add(depNode);
}else {
return R.error("未获取到当前用户的部门编号");
}
return R.ok().put("data",depNodes);
}
public List<DepNode> getTreeByDep(String depOrg) {
List<DepNode> depNodes= departmentDao.getChildrenNodeByPid(depOrg);
for(DepNode depNode:depNodes)
{
depNode.setChildren(this.getTreeByDep(depNode.getDepOrg()));
}
return depNodes;
}
定义一个实体类
private Integer id;
private String name;
private boolean open;
private List<DepNode> children;
private String depOrg;
<select id="getSelfNode" resultType="io.athena.modules.ins.entity.DepNode">
select guid as id,dep_name as name,false as open,dep_org from t_department where dep_org=#{depOrg}
</select>
<select id="getChildrenNodeByPid" resultType="io.athena.modules.ins.entity.DepNode">
select guid as id,dep_name as name,false as open,dep_org from t_department where dep_parent=#{depOrg}
</select>
<!--查询所有部门的名称与代码-->
<select id="queryAllDepOrg" resultType="com.alibaba.fastjson.JSONObject">
select dep_name,dep_org from t_department
</select>