组织人员树修改
This commit is contained in:
parent
b555eb2773
commit
ac50102555
|
|
@ -57,6 +57,16 @@ public class SysDept extends BaseEntity
|
|||
|
||||
private List<SysUser> sysUsers;
|
||||
|
||||
private Integer level;
|
||||
|
||||
public Integer getLevel() {
|
||||
return level;
|
||||
}
|
||||
|
||||
public void setLevel(Integer level) {
|
||||
this.level = level;
|
||||
}
|
||||
|
||||
public Long getDeptId()
|
||||
{
|
||||
return deptId;
|
||||
|
|
@ -208,6 +218,7 @@ public class SysDept extends BaseEntity
|
|||
.append("createTime", getCreateTime())
|
||||
.append("updateBy", getUpdateBy())
|
||||
.append("updateTime", getUpdateTime())
|
||||
.append("level", getLevel())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ public class TreeSelect implements Serializable {
|
|||
|
||||
private String status;
|
||||
|
||||
private Integer level;
|
||||
|
||||
private List<SysUser> sysUsers;
|
||||
|
||||
|
||||
|
|
@ -51,6 +53,7 @@ public class TreeSelect implements Serializable {
|
|||
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());
|
||||
}
|
||||
|
||||
|
|
@ -61,6 +64,14 @@ public class TreeSelect implements Serializable {
|
|||
this.children = menu.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public Integer getLevel() {
|
||||
return level;
|
||||
}
|
||||
|
||||
public void setLevel(Integer level) {
|
||||
this.level = level;
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -207,26 +207,66 @@
|
|||
</select>
|
||||
|
||||
<select id="getTree" resultType="com.bonus.system.api.domain.SysDept">
|
||||
WITH RECURSIVE DeptHierarchy AS (
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
(
|
||||
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_dept sd ON su.dept_id = sd.dept_id
|
||||
WHERE su.del_flag = '0'
|
||||
) AS combined_results
|
||||
deptId,
|
||||
parentId,
|
||||
deptName,
|
||||
0 AS level -- 初始级别为 0
|
||||
FROM (
|
||||
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_dept sd ON su.dept_id = sd.dept_id
|
||||
WHERE su.del_flag = '0'
|
||||
) AS combined_results
|
||||
WHERE parentId = 0 -- 选择根级别(parentId 为 0)
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
cr.deptId,
|
||||
cr.parentId,
|
||||
cr.deptName,
|
||||
ch.level + 1 -- 级别递增
|
||||
FROM DeptHierarchy ch
|
||||
JOIN (
|
||||
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_dept sd ON su.dept_id = sd.dept_id
|
||||
WHERE su.del_flag = '0'
|
||||
) AS cr ON cr.parentId = ch.deptId -- 根据父级进行连接
|
||||
)
|
||||
|
||||
SELECT * FROM DeptHierarchy
|
||||
WHERE level <= 3 -- 只选择前 3 级
|
||||
ORDER BY level, deptId; -- 根据级别和部门ID排序
|
||||
|
||||
</select>
|
||||
|
||||
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
|
||||
|
|
|
|||
Loading…
Reference in New Issue