diff --git a/backend/src/main/java/com/designhub/service/DepartmentService.java b/backend/src/main/java/com/designhub/service/DepartmentService.java index 743af82..df0c9cc 100644 --- a/backend/src/main/java/com/designhub/service/DepartmentService.java +++ b/backend/src/main/java/com/designhub/service/DepartmentService.java @@ -592,6 +592,30 @@ public class DepartmentService { return children; } + /** + * 获取部门的所有子部门ID(递归) + */ + public List getAllChildDeptIds(Long deptId) { + List result = new ArrayList<>(); + if (deptId == null) { + return result; + } + + // 查找直接子部门 + List children = departmentMapper.selectList( + new LambdaQueryWrapper() + .eq(Department::getParentId, deptId) + ); + + // 递归获取所有子部门 + for (Department child : children) { + result.add(child.getId()); + result.addAll(getAllChildDeptIds(child.getId())); + } + + return result; + } + /** * 检查用户是否为任何部门的负责人 */