fix: 修复需求部门进行中任务统计与列表显示不一致的问题
需求部门视角的'进行中任务'统计现在包含所有处理中的任务(pending、in_progress、review等), 排除 draft、completed、cancelled 状态,与前端列表显示逻辑保持一致
This commit is contained in:
parent
5573a89e41
commit
0818db76b2
@ -2499,34 +2499,42 @@ public class TaskService {
|
||||
LocalDateTime lastWeekStartTime = LocalDateTime.of(lastWeekStart, LocalTime.MIN);
|
||||
LocalDateTime lastWeekEndTime = LocalDateTime.of(lastWeekEnd, LocalTime.MAX);
|
||||
|
||||
// 进行中的任务数
|
||||
// 进行中的任务数(处理中的任务,包括 pending、in_progress、review 等,排除 draft、completed、cancelled)
|
||||
// 🔥 需求部门统计:所有非草稿、非已完成的任务都算"处理中"
|
||||
Long inProgressCount = 0L;
|
||||
List<String> excludeStatuses = java.util.Arrays.asList("draft", "completed", "cancelled");
|
||||
|
||||
if (isDeptView && "receiving".equals(deptType)) {
|
||||
// 接单部门视角:统计该部门(含子部门)设计师接单的任务
|
||||
inProgressCount = taskMapper.selectCount(new LambdaQueryWrapper<Task>()
|
||||
.eq(Task::getStatus, "in_progress")
|
||||
.in(Task::getReceiverDeptId, deptAndChildIds));
|
||||
.in(Task::getReceiverDeptId, deptAndChildIds)
|
||||
.eq(Task::getDeleted, 0));
|
||||
} else if (isDeptView && "demand".equals(deptType)) {
|
||||
// 需求部门视角:统计该部门发起的任务
|
||||
// 需求部门视角:统计该部门发起的所有处理中任务(与前端列表显示一致)
|
||||
inProgressCount = taskMapper.selectCount(new LambdaQueryWrapper<Task>()
|
||||
.eq(Task::getStatus, "in_progress")
|
||||
.in(Task::getPublisherDeptId, deptAndChildIds));
|
||||
.notIn(Task::getStatus, excludeStatuses)
|
||||
.in(Task::getPublisherDeptId, deptAndChildIds)
|
||||
.eq(Task::getDeleted, 0));
|
||||
} else if (!isAdmin) {
|
||||
// 普通用户:根据部门类型决定统计方式
|
||||
if ("demand".equals(userDeptType)) {
|
||||
// 需求部门用户:统计自己发起的任务
|
||||
// 需求部门用户:统计自己发起的所有处理中任务
|
||||
inProgressCount = taskMapper.selectCount(new LambdaQueryWrapper<Task>()
|
||||
.eq(Task::getStatus, "in_progress")
|
||||
.eq(Task::getPublisherId, userId));
|
||||
.notIn(Task::getStatus, excludeStatuses)
|
||||
.eq(Task::getPublisherId, userId)
|
||||
.eq(Task::getDeleted, 0));
|
||||
} else {
|
||||
// 接单部门用户:统计自己接收的任务
|
||||
// 接单部门用户:统计自己接收的进行中任务
|
||||
inProgressCount = taskMapper.selectCount(new LambdaQueryWrapper<Task>()
|
||||
.eq(Task::getStatus, "in_progress")
|
||||
.eq(Task::getReceiverId, userId));
|
||||
.eq(Task::getReceiverId, userId)
|
||||
.eq(Task::getDeleted, 0));
|
||||
}
|
||||
} else {
|
||||
inProgressCount = taskMapper.selectCount(new LambdaQueryWrapper<Task>()
|
||||
.eq(Task::getStatus, "in_progress"));
|
||||
.eq(Task::getStatus, "in_progress")
|
||||
.eq(Task::getDeleted, 0));
|
||||
}
|
||||
|
||||
// 已完成的任务数
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user