组织人员树修改
This commit is contained in:
parent
b555eb2773
commit
ac50102555
|
|
@ -57,6 +57,16 @@ public class SysDept extends BaseEntity
|
||||||
|
|
||||||
private List<SysUser> sysUsers;
|
private List<SysUser> sysUsers;
|
||||||
|
|
||||||
|
private Integer level;
|
||||||
|
|
||||||
|
public Integer getLevel() {
|
||||||
|
return level;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLevel(Integer level) {
|
||||||
|
this.level = level;
|
||||||
|
}
|
||||||
|
|
||||||
public Long getDeptId()
|
public Long getDeptId()
|
||||||
{
|
{
|
||||||
return deptId;
|
return deptId;
|
||||||
|
|
@ -208,6 +218,7 @@ public class SysDept extends BaseEntity
|
||||||
.append("createTime", getCreateTime())
|
.append("createTime", getCreateTime())
|
||||||
.append("updateBy", getUpdateBy())
|
.append("updateBy", getUpdateBy())
|
||||||
.append("updateTime", getUpdateTime())
|
.append("updateTime", getUpdateTime())
|
||||||
|
.append("level", getLevel())
|
||||||
.toString();
|
.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,8 @@ public class TreeSelect implements Serializable {
|
||||||
|
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
|
private Integer level;
|
||||||
|
|
||||||
private List<SysUser> sysUsers;
|
private List<SysUser> sysUsers;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -51,6 +53,7 @@ public class TreeSelect implements Serializable {
|
||||||
this.status = dept.getStatus();
|
this.status = dept.getStatus();
|
||||||
this.label = dept.getDeptName();
|
this.label = dept.getDeptName();
|
||||||
this.sysUsers = dept.getSysUsers();
|
this.sysUsers = dept.getSysUsers();
|
||||||
|
this.level = dept.getLevel();
|
||||||
this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
|
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());
|
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() {
|
public Long getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -207,10 +207,13 @@
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getTree" resultType="com.bonus.system.api.domain.SysDept">
|
<select id="getTree" resultType="com.bonus.system.api.domain.SysDept">
|
||||||
|
WITH RECURSIVE DeptHierarchy AS (
|
||||||
SELECT
|
SELECT
|
||||||
*
|
deptId,
|
||||||
FROM
|
parentId,
|
||||||
(
|
deptName,
|
||||||
|
0 AS level -- 初始级别为 0
|
||||||
|
FROM (
|
||||||
SELECT
|
SELECT
|
||||||
d.dept_id AS deptId,
|
d.dept_id AS deptId,
|
||||||
d.parent_id AS parentId,
|
d.parent_id AS parentId,
|
||||||
|
|
@ -218,7 +221,9 @@
|
||||||
FROM sys_dept d
|
FROM sys_dept d
|
||||||
WHERE d.del_flag = '0'
|
WHERE d.del_flag = '0'
|
||||||
AND d.STATUS = '0'
|
AND d.STATUS = '0'
|
||||||
|
|
||||||
UNION
|
UNION
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
su.user_id AS deptId,
|
su.user_id AS deptId,
|
||||||
su.dept_id AS parentId,
|
su.dept_id AS parentId,
|
||||||
|
|
@ -227,6 +232,41 @@
|
||||||
LEFT JOIN sys_dept sd ON su.dept_id = sd.dept_id
|
LEFT JOIN sys_dept sd ON su.dept_id = sd.dept_id
|
||||||
WHERE su.del_flag = '0'
|
WHERE su.del_flag = '0'
|
||||||
) AS combined_results
|
) 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>
|
</select>
|
||||||
|
|
||||||
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
|
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue