1、仿真任务置信度统计(未完成)

This commit is contained in:
2025-12-17 15:05:19 +08:00
parent 23309a01fd
commit 8131033e23
3 changed files with 67 additions and 0 deletions

View File

@@ -214,4 +214,14 @@ public class SimulationTaskController {
return taskService.getTaskAchieveStatistics(req);
}
/**
* 仿真任务置信度统计
*/
@SysLog("仿真任务置信度统计")
@PostMapping("/getTaskConfidenceStatistics")
@Operation(summary = "仿真任务置信度统计", description = "仿真任务置信度统计")
public SdmResponse getTaskConfidenceStatistics() {
return taskService.getTaskConfidenceStatistics();
}
}

View File

@@ -73,4 +73,6 @@ public interface ITaskService {
SdmResponse getTaskAchieveStatistics(TaskCompleteStatisticsReq req);
SdmResponse getTaskConfidenceStatistics();
}

View File

@@ -44,6 +44,7 @@ import com.sdm.project.service.*;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
@@ -55,6 +56,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -2385,4 +2387,57 @@ public class TaskServiceImpl implements ITaskService {
return SdmResponse.success(resultResponse);
}
@Override
public SdmResponse getTaskConfidenceStatistics() {
// 查询所有学科节点
List<SimulationNode> disciplineNodeList = nodeService.lambdaQuery().eq(SimulationNode::getNodeType, NodeTypeEnum.DISCIPLINE.getValue()).list();
if (CollectionUtils.isEmpty(disciplineNodeList)) {
log.error("仿真任务置信度统计时未查询到学科类型的节点");
return SdmResponse.success(new ArrayList<>());
}
Map<String, String> disciplineMap = disciplineNodeList.stream().collect(Collectors.toMap(SimulationNode::getUuid, SimulationNode::getNodeCode));
// 查询所有任务再通过tag6去过滤兼容多层级学科的情况
List<SimulationTask> allTaskList= simulationTaskService.lambdaQuery().list();
if (CollectionUtils.isEmpty(allTaskList)) {
log.error("仿真任务置信度统计时未查询到任务");
return SdmResponse.success(new ArrayList<>());
}
Map<String,List<SimulationTask>> taskMap = Map.of();
String currentDisciplineNodeId;
for (SimulationTask task : allTaskList) {
String relateTaskDisciplineNodeId = task.getTag6();
if (StringUtils.isBlank(relateTaskDisciplineNodeId)) {
continue;
}
List<String> relateTaskDisciplineNodeIdList = Arrays.stream(relateTaskDisciplineNodeId.split(",")).toList();
currentDisciplineNodeId = relateTaskDisciplineNodeIdList.get(relateTaskDisciplineNodeIdList.size() - 1);
if (CollectionUtils.isEmpty(taskMap.get(currentDisciplineNodeId))) {
List<SimulationTask> relateTaskList = new ArrayList<>();
relateTaskList.add(task);
taskMap.put(currentDisciplineNodeId,relateTaskList);
}else {
taskMap.get(currentDisciplineNodeId).add(task);
}
}
if (MapUtils.isEmpty(taskMap)) {
log.error("仿真任务置信度统计时未查询到关联学科的任务");
return SdmResponse.success(new ArrayList<>());
}
for (Map.Entry<String, List<SimulationTask>> entry : taskMap.entrySet()) {
String disciplineNodeId = entry.getKey();
String disciplineNodeName = disciplineMap.get(disciplineNodeId);
if (StringUtils.isBlank(disciplineNodeName)) {
log.error("disciplineNodeId为{},未匹配到学科名称",disciplineNodeId);
continue;
}
// 对置信度进行计算
List<SimulationTask> taskList = entry.getValue();
taskList.stream().filter(task -> StringUtils.isNotBlank(task.getConfidence()))
.mapToInt(task -> Integer.parseInt(task.getConfidence()));
}
return null;
}
}