From c2bee1ceb911e0abb622bee6d90494a036009efe Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Wed, 16 Oct 2024 12:48:29 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E9=97=A8=E4=BA=BA=E5=91=98=E6=A0=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/bonus/system/api/domain/SysDept.java | 10 +++++++ .../system/controller/SysUserController.java | 15 ++++++++++ .../bonus/system/domain/vo/TreeSelect.java | 12 ++++++++ .../bonus/system/service/ISysDeptService.java | 8 +++++ .../service/impl/SysDeptServiceImpl.java | 30 +++++++++++++++++++ 5 files changed, 75 insertions(+) diff --git a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysDept.java b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysDept.java index 6c9f019..de02091 100644 --- a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysDept.java +++ b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysDept.java @@ -55,6 +55,8 @@ public class SysDept extends BaseEntity /** 子部门 */ private List children = new ArrayList(); + private List sysUsers; + public Long getDeptId() { return deptId; @@ -181,6 +183,14 @@ public class SysDept extends BaseEntity this.children = children; } + public List getSysUsers() { + return sysUsers; + } + + public void setSysUsers(List sysUsers) { + this.sysUsers = sysUsers; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysUserController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysUserController.java index b19493a..c0665c4 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysUserController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysUserController.java @@ -397,6 +397,21 @@ public class SysUserController extends BaseController { return error("系统异常,请联系管理员"); } + /** + * 获取部门人员树列表 + */ + @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("system:user:list")) + @GetMapping("/deptUserTree") + public AjaxResult deptUserTree(SysDept dept) { + try { + return success(deptService.selectDeptUserTreeList(dept)); + } catch (Exception e) { + logger.error(e.toString(), e); + } + return error("系统异常,请联系管理员"); + } + + /** * 修改用户审批状态 */ diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/domain/vo/TreeSelect.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/domain/vo/TreeSelect.java index 2328d97..0a7b955 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/domain/vo/TreeSelect.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/domain/vo/TreeSelect.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.stream.Collectors; import com.bonus.system.api.domain.SysMenu; +import com.bonus.system.api.domain.SysUser; import com.fasterxml.jackson.annotation.JsonInclude; import com.bonus.system.api.domain.SysDept; @@ -28,6 +29,8 @@ public class TreeSelect implements Serializable { private String status; + private List sysUsers; + /** * 子节点 @@ -43,6 +46,7 @@ public class TreeSelect implements Serializable { this.id = dept.getDeptId(); this.status = dept.getStatus(); this.label = dept.getDeptName(); + this.sysUsers = dept.getSysUsers(); this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); } @@ -84,4 +88,12 @@ public class TreeSelect implements Serializable { public void setStatus(String status) { this.status = status; } + + public List getSysUsers() { + return sysUsers; + } + + public void setSysUsers(List sysUsers) { + this.sysUsers = sysUsers; + } } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/ISysDeptService.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/ISysDeptService.java index 2e759af..0f73492 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/ISysDeptService.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/ISysDeptService.java @@ -27,6 +27,14 @@ public interface ISysDeptService */ public List selectDeptTreeList(SysDept dept); + /** + * 查询部门人员树结构信息 + * + * @param dept 部门信息 + * @return 部门树信息集合 + */ + public List selectDeptUserTreeList(SysDept dept); + /** * 构建前端所需要树结构 * diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysDeptServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysDeptServiceImpl.java index 03b8e4d..c76d5f5 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysDeptServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysDeptServiceImpl.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.stream.Collectors; import com.bonus.common.core.web.domain.BaseEntity; +import com.bonus.system.mapper.SysUserMapper; import com.bonus.system.utils.CommonDataPermissionInfo; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -36,6 +37,9 @@ public class SysDeptServiceImpl implements ISysDeptService @Autowired private SysDeptMapper deptMapper; + @Autowired + private SysUserMapper userMapper; + @Autowired private SysRoleMapper roleMapper; @@ -71,6 +75,32 @@ public class SysDeptServiceImpl implements ISysDeptService return buildDeptTreeSelect(depts); } + /** + * 查询部门人员树结构信息 + * + * @param dept 部门信息 + * @return 部门树信息集合 + */ + @Override + public List selectDeptUserTreeList(SysDept dept) + { + List depts = SpringUtils.getAopProxy(this).selectDeptList(dept); + for (SysDept sysDept : depts) { + SysUser paramUser = new SysUser(); + paramUser.setDeptId(sysDept.getDeptId()); + List users = userMapper.selectUserList(paramUser); + + List sysUsers = new ArrayList<>(); + for (SysUser sysUser : users) { + if (sysUser.getDeptId().equals(sysDept.getDeptId())) { + sysUsers.add(sysUser); + } + } + sysDept.setSysUsers(sysUsers); + } + return buildDeptTreeSelect(depts); + } + /** * 构建前端所需要树结构 *