feat: Enhance department management with parent ID validation and department scope handling

This commit is contained in:
2026-07-16 09:25:35 +08:00
parent e21e51de8a
commit 8dea752d48
7 changed files with 81 additions and 14 deletions

View File

@@ -76,6 +76,11 @@ public class SysDeptController extends BaseController
@PostMapping
public AjaxResult add(@Validated @RequestBody SysDept dept)
{
if (dept.getParentId() == null)
{
return error("上级部门不能为空");
}
deptService.checkDeptDataScope(dept.getParentId());
if (!deptService.checkDeptNameUnique(dept))
{
return error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在");
@@ -93,7 +98,12 @@ public class SysDeptController extends BaseController
public AjaxResult edit(@Validated @RequestBody SysDept dept)
{
Long deptId = dept.getDeptId();
if (dept.getParentId() == null)
{
return error("上级部门不能为空");
}
deptService.checkDeptDataScope(deptId);
deptService.checkDeptDataScope(dept.getParentId());
if (!deptService.checkDeptNameUnique(dept))
{
return error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在");

View File

@@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.ruoyi.common.annotation.Log;
@@ -64,8 +65,10 @@ public class SysUserController extends BaseController
*/
@PreAuthorize("@ss.hasPermi('system:user:list')")
@GetMapping("/list")
public TableDataInfo list(SysUser user)
public TableDataInfo list(SysUser user,
@RequestParam(value = "deptScope", required = false, defaultValue = "SELF") String deptScope)
{
applyDeptScope(user, deptScope);
startPage();
List<SysUser> list = userService.selectUserList(user);
return getDataTable(list);
@@ -74,8 +77,10 @@ public class SysUserController extends BaseController
@Log(title = "用户管理", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('system:user:export')")
@PostMapping("/export")
public void export(HttpServletResponse response, SysUser user)
public void export(HttpServletResponse response, SysUser user,
@RequestParam(value = "deptScope", required = false, defaultValue = "SELF") String deptScope)
{
applyDeptScope(user, deptScope);
List<SysUser> list = userService.selectUserList(user);
ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
util.exportExcel(response, list, "用户数据");
@@ -260,6 +265,20 @@ public class SysUserController extends BaseController
return success(deptService.selectDeptTreeList(dept));
}
/**
* 设置用户列表的部门范围。
*
* 未指定部门时使用当前登录用户所在部门,默认只查询本级部门。
*/
private void applyDeptScope(SysUser user, String deptScope)
{
if (user.getDeptId() == null || user.getDeptId() == 0)
{
user.setDeptId(getDeptId());
}
user.getParams().put("deptScope", "CHILDREN".equalsIgnoreCase(deptScope) ? "CHILDREN" : "SELF");
}
@ApiOperation("企业资质审核")
@PreAuthorize("@ss.hasPermi('sys:company:approval')")
@PostMapping("/approval")