组织人员树

This commit is contained in:
sxu 2024-11-01 11:12:23 +08:00
parent 5a17972438
commit f6ef65bdb9
7 changed files with 88 additions and 36 deletions

View File

@ -55,8 +55,6 @@ public class SysDept extends BaseEntity
/** 子部门 */
private List<SysDept> children = new ArrayList<SysDept>();
private List<SysUser> sysUsers;
private Integer level;
public Integer getLevel() {
@ -193,14 +191,6 @@ public class SysDept extends BaseEntity
this.children = children;
}
public List<SysUser> getSysUsers() {
return sysUsers;
}
public void setSysUsers(List<SysUser> sysUsers) {
this.sysUsers = sysUsers;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

View File

@ -463,6 +463,19 @@ public class SysUserController extends BaseController {
return error("系统异常,请联系管理员");
}
/**
* 根据角色列表获取部门人员树列表
*/
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("system:user:list"))
@GetMapping("/deptUserTreeInRoleIds")
public AjaxResult deptUserTree(SysDept dept, List<Long> roleIds) {
try {
return success(deptService.selectDeptUserTree(dept, roleIds));
} catch (Exception e) {
logger.error(e.toString(), e);
}
return error("系统异常,请联系管理员");
}
/**
* 修改用户审批状态

View File

@ -34,8 +34,6 @@ public class TreeSelect implements Serializable {
private Integer level;
private List<SysUser> sysUsers;
/**
* 子节点
@ -52,7 +50,6 @@ public class TreeSelect implements Serializable {
this.parentId = dept.getParentId();
this.status = dept.getStatus();
this.label = dept.getDeptName();
this.sysUsers = dept.getSysUsers();
this.level = dept.getLevel();
this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
}
@ -111,12 +108,4 @@ public class TreeSelect implements Serializable {
public void setStatus(String status) {
this.status = status;
}
public List<SysUser> getSysUsers() {
return sysUsers;
}
public void setSysUsers(List<SysUser> sysUsers) {
this.sysUsers = sysUsers;
}
}

View File

@ -19,6 +19,15 @@ public interface SysDeptMapper
*/
public List<SysDept> selectDeptList(SysDept dept);
/**
* 根据角色列表查询部门人员树结构信息
*
* @param dept 部门信息
* @param roleIds 角色列表
* @return 部门树信息集合
*/
public List<SysDept> selectDeptUserList(SysDept dept, @Param("roleIds") List<Long> roleIds);
/**
* 根据角色ID查询部门树信息
*

View File

@ -35,6 +35,15 @@ public interface ISysDeptService
*/
public List<TreeSelect> selectDeptUserTreeList(SysDept dept);
/**
* 根据角色列表查询部门人员树结构信息
*
* @param dept 部门信息
* @param roleIds 角色列表
* @return 部门树信息集合
*/
public List<TreeSelect> selectDeptUserTree(SysDept dept, List<Long> roleIds);
/**
* 构建前端所需要树结构
*

View File

@ -75,6 +75,21 @@ public class SysDeptServiceImpl implements ISysDeptService
return buildDeptTreeSelect(depts);
}
/**
* 根据角色列表查询部门人员树结构信息
*
* @param dept 部门信息
* @param roleIds 角色列表
* @return 部门树信息集合
*/
@Override
@DataScope(deptAlias = "d")
public List<TreeSelect> selectDeptUserTree(SysDept dept, List<Long> roleIds)
{
List<SysDept> depts = deptMapper.selectDeptUserList(dept, roleIds);
return buildDeptTreeSelect(depts);
}
/**
* 查询部门人员树结构信息
*
@ -89,21 +104,21 @@ public class SysDeptServiceImpl implements ISysDeptService
return buildDeptTreeSelect(userList);
}
List<SysDept> depts = SpringUtils.getAopProxy(this).selectDeptList(dept);
for (SysDept sysDept : depts) {
SysUser paramUser = new SysUser();
paramUser.setDeptId(sysDept.getDeptId());
List<SysUser> users = userMapper.selectUserList(paramUser);
List<SysUser> sysUsers = new ArrayList<>();
for (SysUser user : users) {
SysUser userResult = userMapper.selectUserById(user.getUserId());
user.setRoles(userResult.getRoles());
if (user.getDeptId().equals(sysDept.getDeptId())) {
sysUsers.add(user);
}
}
sysDept.setSysUsers(sysUsers);
}
// for (SysDept sysDept : depts) {
// SysUser paramUser = new SysUser();
// paramUser.setDeptId(sysDept.getDeptId());
// List<SysUser> users = userMapper.selectUserList(paramUser);
//
// List<SysUser> sysUsers = new ArrayList<>();
// for (SysUser user : users) {
// SysUser userResult = userMapper.selectUserById(user.getUserId());
// user.setRoles(userResult.getRoles());
// if (user.getDeptId().equals(sysDept.getDeptId())) {
// sysUsers.add(user);
// }
// }
// sysDept.setSysUsers(sysUsers);
// }
return buildDeptTreeSelect(depts);
}

View File

@ -47,6 +47,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
order by d.parent_id, d.order_num
</select>
<select id="selectDeptUserList" parameterType="com.bonus.system.api.domain.SysDept" resultMap="SysDeptResult">
SELECT
d.dept_id AS deptId,
d.parent_id AS parentId,
d.dept_name AS deptName
FROM sys_dept d
WHERE d.del_flag = '0'
AND d.STATUS = '0'
UNION
SELECT
su.user_id AS deptId,
su.dept_id AS parentId,
su.nick_name AS deptName
FROM sys_user su
LEFT JOIN sys_user_role sr ON su.user_id = sr.user_id
LEFT JOIN sys_dept sd ON su.dept_id = sd.dept_id
WHERE su.del_flag = '0'
<if test="roleIds != null">
and sr.role_id in
<foreach collection="roleIds" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
</if>
</select>
<select id="selectDeptListByRoleId" resultType="Long">
select d.dept_id
from sys_dept d