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()