From 62fd513df73c1d24043f63613a0883207a21205c Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 7 Jan 2026 17:00:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=83=A8=E9=97=A8?= =?UTF-8?q?=E8=B4=9F=E8=B4=A3=E4=BA=BA=E6=9F=A5=E7=9C=8B=E5=BE=85=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E5=AD=90=E4=BB=BB=E5=8A=A1=E7=BB=84=E7=9A=84=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 使用leader_id查找用户负责的所有部门,而不是user.dept_id 2. 合并所有负责部门的待审核子任务组 3. 支持一个用户是多个部门负责人的场景 --- .../controller/TaskItemController.java | 34 ++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) 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); } }