From 16f035dcee7d936c181347ee825f26a08b7ea340 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 15 Jan 2026 17:27:39 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=A1=B6=E9=83=A8=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=B1=95=E6=9D=BF=E6=A0=B9=E6=8D=AE=E7=94=A8=E6=88=B7=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E7=B1=BB=E5=9E=8B=E7=BB=9F=E8=AE=A1=E6=95=B0=E6=8D=AE?= =?UTF-8?q?-=E9=9C=80=E6=B1=82=E9=83=A8=E9=97=A8=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E5=8F=91=E8=B5=B7=E7=9A=84=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=EF=BC=8C=E6=8E=A5=E5=8D=95=E9=83=A8=E9=97=A8=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=8E=A5=E6=94=B6=E7=9A=84=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/designhub/service/TaskService.java | 59 +++++++++++++++---- 1 file changed, 48 insertions(+), 11 deletions(-) diff --git a/backend/src/main/java/com/designhub/service/TaskService.java b/backend/src/main/java/com/designhub/service/TaskService.java index e4ba5af..206ee98 100644 --- a/backend/src/main/java/com/designhub/service/TaskService.java +++ b/backend/src/main/java/com/designhub/service/TaskService.java @@ -2391,8 +2391,18 @@ public class TaskService { log.info("部门负责人视角: deptId={}, deptType={}, childDeptCount={}", deptId, deptType, deptAndChildIds.size()); } - log.info("获取工作台统计数据: userId={}, isAdmin={}, month={}, deptId={}, isDeptView={}, deptType={}, deptAndChildIds={}", - userId, isAdmin, month, deptId, isDeptView, deptType, deptAndChildIds); + // 获取用户自己的部门类型(用于普通用户统计) + String userDeptType = null; + User currentUser = userMapper.selectById(userId); + if (currentUser != null && currentUser.getDeptId() != null) { + Department userDept = departmentMapper.selectById(currentUser.getDeptId()); + if (userDept != null) { + userDeptType = userDept.getDeptType(); + } + } + + log.info("获取工作台统计数据: userId={}, isAdmin={}, month={}, deptId={}, isDeptView={}, deptType={}, userDeptType={}, deptAndChildIds={}", + userId, isAdmin, month, deptId, isDeptView, deptType, userDeptType, deptAndChildIds); // 解析月份,如果不传则使用当前月份 LocalDate targetMonth; @@ -2441,9 +2451,18 @@ public class TaskService { .eq(Task::getStatus, "in_progress") .in(Task::getPublisherDeptId, deptAndChildIds)); } else if (!isAdmin) { - inProgressCount = taskMapper.selectCount(new LambdaQueryWrapper() - .eq(Task::getStatus, "in_progress") - .eq(Task::getReceiverId, userId)); + // 普通用户:根据部门类型决定统计方式 + if ("demand".equals(userDeptType)) { + // 需求部门用户:统计自己发起的任务 + inProgressCount = taskMapper.selectCount(new LambdaQueryWrapper() + .eq(Task::getStatus, "in_progress") + .eq(Task::getPublisherId, userId)); + } else { + // 接单部门用户:统计自己接收的任务 + inProgressCount = taskMapper.selectCount(new LambdaQueryWrapper() + .eq(Task::getStatus, "in_progress") + .eq(Task::getReceiverId, userId)); + } } else { inProgressCount = taskMapper.selectCount(new LambdaQueryWrapper() .eq(Task::getStatus, "in_progress")); @@ -2460,9 +2479,18 @@ public class TaskService { .eq(Task::getStatus, "completed") .in(Task::getPublisherDeptId, deptAndChildIds)); } else if (!isAdmin) { - completedCount = taskMapper.selectCount(new LambdaQueryWrapper() - .eq(Task::getStatus, "completed") - .eq(Task::getReceiverId, userId)); + // 普通用户:根据部门类型决定统计方式 + if ("demand".equals(userDeptType)) { + // 需求部门用户:统计自己发起的任务 + completedCount = taskMapper.selectCount(new LambdaQueryWrapper() + .eq(Task::getStatus, "completed") + .eq(Task::getPublisherId, userId)); + } else { + // 接单部门用户:统计自己接收的任务 + completedCount = taskMapper.selectCount(new LambdaQueryWrapper() + .eq(Task::getStatus, "completed") + .eq(Task::getReceiverId, userId)); + } } else { completedCount = taskMapper.selectCount(new LambdaQueryWrapper() .eq(Task::getStatus, "completed")); @@ -2479,9 +2507,18 @@ public class TaskService { .eq(Task::getStatus, "review") .in(Task::getPublisherDeptId, deptAndChildIds)); } else if (!isAdmin) { - reviewCount = taskMapper.selectCount(new LambdaQueryWrapper() - .eq(Task::getStatus, "review") - .eq(Task::getReceiverId, userId)); + // 普通用户:根据部门类型决定统计方式 + if ("demand".equals(userDeptType)) { + // 需求部门用户:统计自己发起的任务 + reviewCount = taskMapper.selectCount(new LambdaQueryWrapper() + .eq(Task::getStatus, "review") + .eq(Task::getPublisherId, userId)); + } else { + // 接单部门用户:统计自己接收的任务 + reviewCount = taskMapper.selectCount(new LambdaQueryWrapper() + .eq(Task::getStatus, "review") + .eq(Task::getReceiverId, userId)); + } } else { reviewCount = taskMapper.selectCount(new LambdaQueryWrapper() .eq(Task::getStatus, "review"));