opt:1.更新后台管理首页看板功能
This commit is contained in:
@@ -167,4 +167,36 @@ public class TaskAPIProvider implements TaskAPI {
|
||||
public WebResponse oneClickOperation(OneClickOperationRequestParam param, String source) {
|
||||
return taskService.oneClickOperation(param, source);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryTasksByTimeRange(String startTime, String endTime) {
|
||||
List<Task> taskList = taskService.queryTasksByTimeRange(startTime, endTime);
|
||||
|
||||
// 统计数据
|
||||
long totalTasks = taskList.size();
|
||||
long executingTasks = taskList.stream()
|
||||
.filter(task -> TaskStatusEnum.EXECUTING.getCode().equals(task.getStatus()))
|
||||
.count();
|
||||
long completedTasks = taskList.stream()
|
||||
.filter(task -> TaskStatusEnum.FINISHED.getCode().equals(task.getStatus()))
|
||||
.count();
|
||||
long canceledTasks = taskList.stream()
|
||||
.filter(task -> TaskStatusEnum.CANCELED.getCode().equals(task.getStatus()))
|
||||
.count();
|
||||
|
||||
// 计算完成率和取消率
|
||||
double completionRate = totalTasks > 0 ? (completedTasks * 100.0 / totalTasks) : 0;
|
||||
double cancellationRate = totalTasks > 0 ? (canceledTasks * 100.0 / totalTasks) : 0;
|
||||
|
||||
// 构建统计数据 Map
|
||||
Map<String, Object> statisticsData = new java.util.HashMap<>();
|
||||
statisticsData.put("totalTasks", totalTasks);
|
||||
statisticsData.put("executingTasks", executingTasks);
|
||||
statisticsData.put("completedTasks", completedTasks);
|
||||
statisticsData.put("canceledTasks", canceledTasks);
|
||||
statisticsData.put("completionRate", Math.round(completionRate * 100.0) / 100.0);
|
||||
statisticsData.put("cancellationRate", Math.round(cancellationRate * 100.0) / 100.0);
|
||||
|
||||
return statisticsData;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,4 +81,12 @@ public interface TaskService extends IService<Task>{
|
||||
*/
|
||||
WebResponse createCruiseTask(CreateCruiseTaskRequestParam param);
|
||||
|
||||
/**
|
||||
* 按时间范围查询任务数据(用于看板统计)
|
||||
* @param startTime 开始时间
|
||||
* @param endTime 结束时间
|
||||
* @return 任务列表
|
||||
*/
|
||||
List<Task> queryTasksByTimeRange(String startTime, String endTime);
|
||||
|
||||
}
|
||||
|
||||
@@ -359,4 +359,12 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper,Task> implements Tas
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Task> queryTasksByTimeRange(String startTime, String endTime) {
|
||||
return taskMapper.selectList(new LambdaQueryWrapper<>(Task.class)
|
||||
.ge(StrUtil.isNotBlank(startTime), Task::getCreate_time, startTime)
|
||||
.le(StrUtil.isNotBlank(endTime), Task::getCreate_time, endTime)
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user