fix: include cross-month completions in designer monthly performance

This commit is contained in:
Your Name 2026-02-22 18:28:01 +08:00
parent cc7435012b
commit 4354d6d736

View File

@ -600,11 +600,20 @@ public class AnalyticsService {
// 获取所有设计师(接单部门成员,所有用户均可查看所有设计师)
List<User> designers = getDesigners(deptId);
// 获取时间范围内的任务
// 获取时间范围内的任务:
// 1) 当月创建的任务(用于接单/在途统计)
// 2) 当月完成的任务(修复跨月创建、当月完成积分未计入问题)
LambdaQueryWrapper<Task> taskQuery = new LambdaQueryWrapper<Task>()
.ge(Task::getCreateTime, startTime)
.le(Task::getCreateTime, endTime)
.isNotNull(Task::getReceiverId);
.isNotNull(Task::getReceiverId)
.and(wrapper -> wrapper
.and(created -> created
.ge(Task::getCreateTime, startTime)
.le(Task::getCreateTime, endTime))
.or(completed -> completed
.eq(Task::getStatus, "completed")
.isNotNull(Task::getActualEndTime)
.ge(Task::getActualEndTime, startTime)
.le(Task::getActualEndTime, endTime)));
List<Task> tasks = taskMapper.selectList(taskQuery);
@ -631,12 +640,21 @@ public class AnalyticsService {
.filter(t -> designer.getId().equals(t.getReceiverId()))
.collect(Collectors.toList());
// 获取该设计师的子任务(流水线任务中的子任务)
// 获取该设计师的子任务(流水线任务中的子任务):
// 1) 当月创建
// 2) 当月完成(修复跨月创建、当月完成积分未计入问题)
List<TaskItem> designerTaskItems = taskItemMapper.selectList(
new LambdaQueryWrapper<TaskItem>()
.eq(TaskItem::getReceiverId, designer.getId())
.ge(TaskItem::getCreateTime, startTime)
.le(TaskItem::getCreateTime, endTime)
.and(wrapper -> wrapper
.and(created -> created
.ge(TaskItem::getCreateTime, startTime)
.le(TaskItem::getCreateTime, endTime))
.or(completed -> completed
.eq(TaskItem::getStatus, "completed")
.isNotNull(TaskItem::getCompleteTime)
.ge(TaskItem::getCompleteTime, startTime)
.le(TaskItem::getCompleteTime, endTime)))
);
// 主任务统计