fix:数据统计支持传入多个

This commit is contained in:
2026-03-19 10:32:24 +08:00
parent 3f84b63832
commit 6edb68035f
2 changed files with 55 additions and 15 deletions

View File

@@ -18,6 +18,9 @@ public class CommonGetCompleteStatisticsReq {
@Schema(description = "数据返回Tag类型: tag1、tag2,tag3,tag4,tag5,tag6,tag7,tag8,tag9,tag10")
private String resultTagType;
@Schema(description = "查询学科信息")
private String discipline;
@Schema(description = "标签1")
private String tag1;

View File

@@ -2914,23 +2914,60 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
@Override
public SdmResponse getTaskCompleteStatisticsByDiscipline(CommonGetCompleteStatisticsReq req) {
List<SimulationTask> simulationTasks = simulationTaskService.lambdaQuery()
// 构建查询条件
var query = simulationTaskService.lambdaQuery()
.eq(SimulationTask::getTenantId, ThreadLocalContext.getTenantId())
.isNotNull(SimulationTask::getDiscipline)
.ne(SimulationTask::getDiscipline, "")
.isNotNull(SimulationTask::getExeStatus)
.eq(ObjectUtils.isNotEmpty(req.getTag1()), SimulationTask::getTag1, req.getTag1())
.eq(ObjectUtils.isNotEmpty(req.getTag2()), SimulationTask::getTag2, req.getTag2())
.eq(ObjectUtils.isNotEmpty(req.getTag3()), SimulationTask::getTag3, req.getTag3())
.eq(ObjectUtils.isNotEmpty(req.getTag4()), SimulationTask::getTag4, req.getTag4())
.eq(ObjectUtils.isNotEmpty(req.getTag5()), SimulationTask::getTag5, req.getTag5())
.eq(ObjectUtils.isNotEmpty(req.getTag6()), SimulationTask::getTag6, req.getTag6())
.eq(ObjectUtils.isNotEmpty(req.getTag7()), SimulationTask::getTag7, req.getTag7())
.eq(ObjectUtils.isNotEmpty(req.getTag9()), SimulationTask::getTag9, req.getTag9())
.eq(ObjectUtils.isNotEmpty(req.getTag10()), SimulationTask::getTag10, req.getTag10())
.list();
// 按学科(discipline)分组统计任务完成状态
.isNotNull(SimulationTask::getExeStatus);
// 处理 discipline 字段,支持逗号分隔的多个值
if (StringUtils.isNotBlank(req.getDiscipline())) {
String[] disciplines = req.getDiscipline().split(",");
query.in(SimulationTask::getDiscipline, Arrays.asList(disciplines));
}
// 处理 tag1-tag10支持逗号分隔的多个 ID
if (StringUtils.isNotBlank(req.getTag1())) {
String[] tag1Values = req.getTag1().split(",");
query.in(SimulationTask::getTag1, Arrays.asList(tag1Values));
}
if (StringUtils.isNotBlank(req.getTag2())) {
String[] tag2Values = req.getTag2().split(",");
query.in(SimulationTask::getTag2, Arrays.asList(tag2Values));
}
if (StringUtils.isNotBlank(req.getTag3())) {
String[] tag3Values = req.getTag3().split(",");
query.in(SimulationTask::getTag3, Arrays.asList(tag3Values));
}
if (StringUtils.isNotBlank(req.getTag4())) {
String[] tag4Values = req.getTag4().split(",");
query.in(SimulationTask::getTag4, Arrays.asList(tag4Values));
}
if (StringUtils.isNotBlank(req.getTag5())) {
String[] tag5Values = req.getTag5().split(",");
query.in(SimulationTask::getTag5, Arrays.asList(tag5Values));
}
if (StringUtils.isNotBlank(req.getTag6())) {
String[] tag6Values = req.getTag6().split(",");
query.in(SimulationTask::getTag6, Arrays.asList(tag6Values));
}
if (StringUtils.isNotBlank(req.getTag7())) {
String[] tag7Values = req.getTag7().split(",");
query.in(SimulationTask::getTag7, Arrays.asList(tag7Values));
}
if (StringUtils.isNotBlank(req.getTag9())) {
String[] tag9Values = req.getTag9().split(",");
query.in(SimulationTask::getTag9, Arrays.asList(tag9Values));
}
if (StringUtils.isNotBlank(req.getTag10())) {
String[] tag10Values = req.getTag10().split(",");
query.in(SimulationTask::getTag10, Arrays.asList(tag10Values));
}
List<SimulationTask> simulationTasks = query.list();
// 按学科 (discipline) 分组统计任务完成状态
Set<String> allExeStatus = new HashSet<>();
Map<String, CommonStatisticsVo> statisticsMap = buildCommonStatistics(
simulationTasks,
@@ -2938,7 +2975,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
SimulationTask::getExeStatus,
allExeStatus
);
return buildStatisticsResponse(statisticsMap, allExeStatus, "allExeStatus");
}