From aee1138de08b677c321a12705b787c8333fe26b3 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 Jan 2026 21:30:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=8E=A5=E5=8D=95=E9=83=A8=E9=97=A8Dash?= =?UTF-8?q?board=E7=BB=9F=E8=AE=A1=E5=BA=94=E5=8C=85=E5=90=AB=E4=B8=BB?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1+=E5=AD=90=E4=BB=BB=E5=8A=A1=E6=95=B0?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/designhub/service/TaskService.java | 37 +++++++++++++++---- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/backend/src/main/java/com/designhub/service/TaskService.java b/backend/src/main/java/com/designhub/service/TaskService.java index 4609c90..ac3c160 100644 --- a/backend/src/main/java/com/designhub/service/TaskService.java +++ b/backend/src/main/java/com/designhub/service/TaskService.java @@ -2571,11 +2571,19 @@ public class TaskService { List excludeStatuses = java.util.Arrays.asList("draft", "completed", "cancelled"); if (isDeptView && "receiving".equals(deptType)) { - // 接单部门视角:统计该部门(含子部门)设计师接单的任务 - inProgressCount = taskMapper.selectCount(new LambdaQueryWrapper() + // 接单部门视角:统计该部门(含子部门)设计师接单的任务(主任务+子任务) + // 主任务数量 + Long mainTaskCount = taskMapper.selectCount(new LambdaQueryWrapper() .eq(Task::getStatus, "in_progress") .in(Task::getReceiverDeptId, deptAndChildIds) .eq(Task::getDeleted, 0)); + // 子任务数量(TaskItem表没有deleted字段) + Long subTaskCount = taskItemMapper.selectCount(new LambdaQueryWrapper() + .eq(TaskItem::getStatus, "in_progress") + .in(TaskItem::getReceiverDeptId, deptAndChildIds)); + inProgressCount = mainTaskCount + subTaskCount; + log.info("接单部门进行中任务统计: mainTaskCount={}, subTaskCount={}, total={}", + mainTaskCount, subTaskCount, inProgressCount); } else if (isDeptView && "demand".equals(deptType)) { // 需求部门视角:统计该部门发起的所有处理中任务(与前端列表显示一致) inProgressCount = taskMapper.selectCount(new LambdaQueryWrapper() @@ -2606,9 +2614,17 @@ public class TaskService { // 已完成的任务数 Long completedCount = 0L; if (isDeptView && "receiving".equals(deptType)) { - completedCount = taskMapper.selectCount(new LambdaQueryWrapper() + // 接单部门视角:统计主任务+子任务 + Long mainCompleted = taskMapper.selectCount(new LambdaQueryWrapper() .eq(Task::getStatus, "completed") - .in(Task::getReceiverDeptId, deptAndChildIds)); + .in(Task::getReceiverDeptId, deptAndChildIds) + .eq(Task::getDeleted, 0)); + Long subCompleted = taskItemMapper.selectCount(new LambdaQueryWrapper() + .eq(TaskItem::getStatus, "completed") + .in(TaskItem::getReceiverDeptId, deptAndChildIds)); + completedCount = mainCompleted + subCompleted; + log.info("接单部门已完成任务统计: mainCompleted={}, subCompleted={}, total={}", + mainCompleted, subCompleted, completedCount); } else if (isDeptView && "demand".equals(deptType)) { completedCount = taskMapper.selectCount(new LambdaQueryWrapper() .eq(Task::getStatus, "completed") @@ -2770,13 +2786,20 @@ public class TaskService { .ne(Task::getStatus, "draft") // 排除草稿 .eq(Task::getDeleted, 0)); } else if (isDeptView && "receiving".equals(deptType)) { - // 接单部门视角:统计该部门接单的任务数 - publishedCount = taskMapper.selectCount(new LambdaQueryWrapper() + // 接单部门视角:统计该部门接单的任务数(主任务+子任务) + Long mainPublished = taskMapper.selectCount(new LambdaQueryWrapper() .in(Task::getReceiverDeptId, deptAndChildIds) .ge(Task::getCreateTime, monthStart) .le(Task::getCreateTime, monthEnd) - .ne(Task::getStatus, "draft") // 排除草稿 + .ne(Task::getStatus, "draft") .eq(Task::getDeleted, 0)); + Long subPublished = taskItemMapper.selectCount(new LambdaQueryWrapper() + .in(TaskItem::getReceiverDeptId, deptAndChildIds) + .ge(TaskItem::getCreateTime, monthStart) + .le(TaskItem::getCreateTime, monthEnd)); + publishedCount = mainPublished + subPublished; + log.info("接单部门接单任务统计: mainPublished={}, subPublished={}, total={}", + mainPublished, subPublished, publishedCount); } else { // 当前用户发布的任务数 publishedCount = taskMapper.selectCount(new LambdaQueryWrapper()