| | |
| | | import com.ruoyi.system.service.ISysPostService; |
| | | import com.ruoyi.system.service.ISysRoleService; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import com.ruoyi.system.domain.vo.BranchUserQueryVO; |
| | | |
| | | /** |
| | | * 用户信息 |
| | |
| | | /** |
| | | * 获取用户列表 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('system:user:list')") |
| | | @GetMapping("/list") |
| | | public TableDataInfo list(SysUser user) |
| | | { |
| | |
| | | { |
| | | return success(deptService.selectDeptTreeList(dept)); |
| | | } |
| | | |
| | | /** |
| | | * 获取当前用户管理的分公司下的所有用户(小程序端专用) |
| | | * 根据当前用户的oaOrderClass字段匹配分公司,返回这些分公司及其所有子部门的用户 |
| | | */ |
| | | @GetMapping("/branch/users") |
| | | public AjaxResult listBranchUsers() |
| | | { |
| | | // 获取当前用户 |
| | | SysUser currentUser = userService.selectUserById(getUserId()); |
| | | if (currentUser == null) { |
| | | return error("用户不存在"); |
| | | } |
| | | |
| | | // 获取当前用户管理的分公司ID列表 |
| | | String oaOrderClass = currentUser.getOaOrderClass(); |
| | | List<Long> branchDeptIds = new java.util.ArrayList<>(); |
| | | |
| | | if (StringUtils.isNotEmpty(oaOrderClass)) { |
| | | // 根据oaOrderClass查询匹配的分公司 |
| | | String[] orderCodes = oaOrderClass.split(","); |
| | | SysDept queryDept = new SysDept(); |
| | | queryDept.setParentId(100L); // 只查询分公司 |
| | | List<SysDept> allBranches = deptService.selectDeptList(queryDept); |
| | | |
| | | for (SysDept branch : allBranches) { |
| | | for (String code : orderCodes) { |
| | | // 匹配serviceOrderClass或dispatchOrderClass |
| | | if ((StringUtils.isNotEmpty(branch.getServiceOrderClass()) && branch.getServiceOrderClass().equals(code.trim())) |
| | | || (StringUtils.isNotEmpty(branch.getDispatchOrderClass()) && branch.getDispatchOrderClass().equals(code.trim()))) { |
| | | branchDeptIds.add(branch.getDeptId()); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 如果没有找到匹配的分公司,使用当前用户所在部门 |
| | | if (branchDeptIds.isEmpty()) { |
| | | Long userDeptId = currentUser.getDeptId(); |
| | | if (userDeptId != null) { |
| | | // 查找用户所在部门的父级分公司 |
| | | SysDept userDept = deptService.selectDeptById(userDeptId); |
| | | if (userDept != null) { |
| | | // 向上查找直到找到parent_id=100的分公司 |
| | | while (userDept != null && userDept.getParentId() != 100L) { |
| | | userDept = deptService.selectDeptById(userDept.getParentId()); |
| | | } |
| | | if (userDept != null && userDept.getParentId() == 100L) { |
| | | branchDeptIds.add(userDept.getDeptId()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 如果还是没有找到,返回空列表 |
| | | if (branchDeptIds.isEmpty()) { |
| | | return success(new java.util.ArrayList<>()); |
| | | } |
| | | |
| | | // 查询这些分公司及其所有子部门的用户 |
| | | List<SysUser> users = userService.selectUsersByBranchDeptIds(branchDeptIds); |
| | | |
| | | return success(users); |
| | | } |
| | | |
| | | /** |
| | | * 根据分公司ID列表获取用户(POST方式) |
| | | */ |
| | | @PostMapping("/branch/users") |
| | | public AjaxResult listUsersByBranchDepts(@RequestBody BranchUserQueryVO queryVO) |
| | | { |
| | | List<Long> branchDeptIds = queryVO.getBranchDeptIds(); |
| | | |
| | | if (branchDeptIds == null || branchDeptIds.isEmpty()) { |
| | | return success(new java.util.ArrayList<>()); |
| | | } |
| | | |
| | | // 查询这些分公司及其所有子部门的用户 |
| | | List<SysUser> users = userService.selectUsersByBranchDeptIds(branchDeptIds); |
| | | |
| | | return success(users); |
| | | } |
| | | |
| | | /** |
| | | * 根据oaUserId查询用户信息 |
| | | */ |
| | | @GetMapping("/oa-user/{oaUserId}") |
| | | public AjaxResult getUserByOaUserId(@PathVariable Integer oaUserId) |
| | | { |
| | | SysUser user = userService.selectUserByOaUserId(oaUserId); |
| | | if (user != null) { |
| | | return success(user); |
| | | } else { |
| | | return error("未找到对应的用户信息"); |
| | | } |
| | | } |
| | | } |