fix: 设计师绩效榜单添加子任务的接单数、完成数和积分统计
This commit is contained in:
parent
23e413984c
commit
6f522a9b95
@ -594,19 +594,42 @@ public class AnalyticsService {
|
||||
int designerWithData = 0;
|
||||
|
||||
for (User designer : designers) {
|
||||
// 获取该设计师的任务
|
||||
// 获取该设计师的主任务
|
||||
List<Task> designerTasks = tasks.stream()
|
||||
.filter(t -> designer.getId().equals(t.getReceiverId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
int receivedCount = designerTasks.size();
|
||||
int completedCount = (int) designerTasks.stream()
|
||||
// 获取该设计师的子任务(流水线任务中的子任务)
|
||||
List<TaskItem> designerTaskItems = taskItemMapper.selectList(
|
||||
new LambdaQueryWrapper<TaskItem>()
|
||||
.eq(TaskItem::getReceiverId, designer.getId())
|
||||
.ge(TaskItem::getCreateTime, startTime)
|
||||
.le(TaskItem::getCreateTime, endTime)
|
||||
);
|
||||
|
||||
// 主任务统计
|
||||
int mainReceivedCount = designerTasks.size();
|
||||
int mainCompletedCount = (int) designerTasks.stream()
|
||||
.filter(t -> "completed".equals(t.getStatus()))
|
||||
.count();
|
||||
int inProgressCount = (int) designerTasks.stream()
|
||||
int mainInProgressCount = (int) designerTasks.stream()
|
||||
.filter(t -> "in_progress".equals(t.getStatus()))
|
||||
.count();
|
||||
|
||||
// 子任务统计
|
||||
int subReceivedCount = designerTaskItems.size();
|
||||
int subCompletedCount = (int) designerTaskItems.stream()
|
||||
.filter(t -> "completed".equals(t.getStatus()))
|
||||
.count();
|
||||
int subInProgressCount = (int) designerTaskItems.stream()
|
||||
.filter(t -> "in_progress".equals(t.getStatus()))
|
||||
.count();
|
||||
|
||||
// 合计(主任务 + 子任务)
|
||||
int receivedCount = mainReceivedCount + subReceivedCount;
|
||||
int completedCount = mainCompletedCount + subCompletedCount;
|
||||
int inProgressCount = mainInProgressCount + subInProgressCount;
|
||||
|
||||
// 计算准时完成数
|
||||
int onTimeCount = 0;
|
||||
int overdueCount = 0;
|
||||
@ -729,6 +752,16 @@ public class AnalyticsService {
|
||||
}
|
||||
}
|
||||
|
||||
// 计算子任务的获得积分
|
||||
for (TaskItem item : designerTaskItems) {
|
||||
if ("completed".equals(item.getStatus()) && item.getCompleteTime() != null
|
||||
&& !item.getCompleteTime().isBefore(startTime)
|
||||
&& !item.getCompleteTime().isAfter(endTime)) {
|
||||
BigDecimal itemScore = item.getTotalScore() != null ? item.getTotalScore() : BigDecimal.ZERO;
|
||||
totalScore = totalScore.add(itemScore);
|
||||
}
|
||||
}
|
||||
|
||||
// 计算子任务的延误扣分(与getDesignerDeductionDetails保持一致)
|
||||
try {
|
||||
// 查询已完成的子任务(按完成时间查询)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user