wlzboy
3 天以前 40a8157440e3b906da8f52e07d939d78c3f4c313
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -350,4 +350,48 @@
            return error("未找到对应的用户信息");
        }
    }
    /**
     * 更新用户可管理分公司(通过oaOrderClass字段保存编码列表)
     * 接收选中的分公司deptId列表,查询对应编码后合并写入oaOrderClass
     */
    @PreAuthorize("@ss.hasPermi('system:user:edit')")
    @Log(title = "用户管理-分公司配置", businessType = BusinessType.UPDATE)
    @PutMapping("/branch/{userId}")
    public AjaxResult updateUserBranch(@PathVariable Long userId, @RequestBody java.util.List<Long> deptIds)
    {
        userService.checkUserDataScope(userId);
        SysUser user = userService.selectUserById(userId);
        if (user == null) {
            return error("用户不存在");
        }
        // 根据deptIds查询分公司信息,收集编码
        java.util.Set<String> codeSet = new java.util.LinkedHashSet<>();
        if (deptIds != null && !deptIds.isEmpty()) {
            SysDept queryDept = new SysDept();
            queryDept.setParentId(100L);
            List<SysDept> allBranches = deptService.selectDeptList(queryDept);
            java.util.Map<Long, SysDept> deptMap = new java.util.HashMap<>();
            for (SysDept d : allBranches) {
                deptMap.put(d.getDeptId(), d);
            }
            for (Long deptId : deptIds) {
                SysDept dept = deptMap.get(deptId);
                if (dept != null) {
                    if (StringUtils.isNotEmpty(dept.getServiceOrderClass())) {
                        codeSet.add(dept.getServiceOrderClass().trim());
                    }
                    if (StringUtils.isNotEmpty(dept.getDispatchOrderClass())) {
                        codeSet.add(dept.getDispatchOrderClass().trim());
                    }
                }
            }
        }
        String newOaOrderClass = String.join(",", codeSet);
        SysUser updateUser = new SysUser();
        updateUser.setUserId(userId);
        updateUser.setOaOrderClass(newOaOrderClass);
        updateUser.setUpdateBy(getUsername());
        return toAjax(userService.updateUserProfile(updateUser));
    }
}