diff --git a/backend/src/main/java/com/designhub/controller/TaskItemController.java b/backend/src/main/java/com/designhub/controller/TaskItemController.java index 9d53df7..347091e 100644 --- a/backend/src/main/java/com/designhub/controller/TaskItemController.java +++ b/backend/src/main/java/com/designhub/controller/TaskItemController.java @@ -299,15 +299,33 @@ public class TaskItemController { return Result.success(groups); } - // 如果没有提供部门ID,从用户信息中获取 - if (deptId == null) { - if (user == null || user.getDeptId() == null) { - return Result.success(new java.util.ArrayList<>()); - } - deptId = user.getDeptId(); + // 查找用户作为负责人的所有部门 + List leadingDepts = departmentMapper.selectList( + new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper() + .eq(com.designhub.entity.Department::getLeaderId, userId) + .eq(com.designhub.entity.Department::getStatus, 1) + ); + + if (leadingDepts.isEmpty()) { + // 不是任何部门的负责人,返回空列表 + return Result.success(new java.util.ArrayList<>()); } - List> groups = taskItemService.getPendingApprovalGroups(deptId); - return Result.success(groups); + // 合并所有负责部门的待审核子任务组 + List> allGroups = new java.util.ArrayList<>(); + java.util.Set addedKeys = new java.util.HashSet<>(); + + for (com.designhub.entity.Department dept : leadingDepts) { + List> groups = taskItemService.getPendingApprovalGroups(dept.getId()); + for (Map group : groups) { + String key = group.get("taskId") + "-" + group.get("groupNo"); + if (!addedKeys.contains(key)) { + addedKeys.add(key); + allGroups.add(group); + } + } + } + + return Result.success(allGroups); } }