fix:仿真汇总看板-项目任务达成统计,提供新接口,统计项目下所有任务,不按当前用户筛选

This commit is contained in:
2026-04-01 11:11:48 +08:00
parent c945546050
commit 159d610051
3 changed files with 79 additions and 0 deletions

View File

@@ -283,6 +283,16 @@ public class SimulationNodeController implements ISimulationNodeFeignClient {
return nodeService.getTaskCompleteStatisticsByDiscipline(req);
}
/**
* 基于 学科学科不是节点是task的一个属性查询任务达成统计
*/
@PostMapping("/getTaskAchieveStatisticsByDiscipline")
@Operation(summary = "基于 学科学科不是节点是task的一个属性查询任务达成统计", description = "仿真任务达成统计")
public SdmResponse getTaskAchieveStatisticsByDiscipline(@RequestBody @Validated CommonGetCompleteStatisticsReq req) {
req.setTenantId(ThreadLocalContext.getTenantId());
return nodeService.getTaskAchieveStatisticsByDiscipline(req);
}
/** 基于 学科学科不是节点是task的一个属性查询指标完成统计
* 需要传:
* tag1-tag10 标签

View File

@@ -59,6 +59,8 @@ public interface INodeService extends IService<SimulationNode> {
SdmResponse getTaskCompleteStatisticsByDiscipline(CommonGetCompleteStatisticsReq req);
SdmResponse getTaskAchieveStatisticsByDiscipline(CommonGetCompleteStatisticsReq req);
SdmResponse getPerformanceCompleteStatisticsByDiscipline(CommonGetCompleteStatisticsReq req);
// 工位评审通过统计查询

View File

@@ -3135,6 +3135,73 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
return buildStatisticsResponse(statisticsMap, allExeStatus, "allExeStatus");
}
@Override
public SdmResponse getTaskAchieveStatisticsByDiscipline(CommonGetCompleteStatisticsReq req) {
// 构建查询条件
var query = simulationTaskService.lambdaQuery()
.eq(SimulationTask::getTenantId, ThreadLocalContext.getTenantId())
.isNotNull(SimulationTask::getDiscipline)
.ne(SimulationTask::getDiscipline, "")
.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,
SimulationTask::getDiscipline,
SimulationTask::getAchieveStatus,
allExeStatus
);
return buildStatisticsResponse(statisticsMap, allExeStatus, "allExeStatus");
}
public SdmResponse getPerformanceCompleteStatisticsByDiscipline(CommonGetCompleteStatisticsReq req){
List<PerformanceCompleteFromDisciplineVo> performanceList = this.baseMapper.getPerformanceCompleteStatisticsByDiscipline(req);
// 按学科(discipline)分组统计指标完成状态