1、仿真任务置信度统计(未完成)
This commit is contained in:
@@ -214,4 +214,14 @@ public class SimulationTaskController {
|
||||
return taskService.getTaskAchieveStatistics(req);
|
||||
}
|
||||
|
||||
/**
|
||||
* 仿真任务置信度统计
|
||||
*/
|
||||
@SysLog("仿真任务置信度统计")
|
||||
@PostMapping("/getTaskConfidenceStatistics")
|
||||
@Operation(summary = "仿真任务置信度统计", description = "仿真任务置信度统计")
|
||||
public SdmResponse getTaskConfidenceStatistics() {
|
||||
return taskService.getTaskConfidenceStatistics();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -73,4 +73,6 @@ public interface ITaskService {
|
||||
|
||||
SdmResponse getTaskAchieveStatistics(TaskCompleteStatisticsReq req);
|
||||
|
||||
SdmResponse getTaskConfidenceStatistics();
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user