数据查询分析

This commit is contained in:
2025-11-03 19:52:21 +08:00
parent 18c12a3a22
commit dcb6e8399c
18 changed files with 229 additions and 25 deletions

View File

@@ -4,6 +4,8 @@ import com.sdm.common.common.SdmResponse;
import com.sdm.project.model.req.SpdmAnalysisPerformanceListReq;
import com.sdm.project.model.req.SpdmAnalysisRunListReq;
import com.sdm.project.model.req.SpdmAnalysisTaskListReq;
import com.sdm.project.model.resp.GetAllRunResultByTaskIdResp;
import com.sdm.project.model.resp.RunResultResp;
import com.sdm.project.service.ITaskService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -12,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
@RestController
@RequestMapping("/analysis")
@@ -59,10 +62,10 @@ public class SimulationAnalysisController {
/**
* 数据分析(数据查询)-根据任务id获取所有算列结果和5种文件
* 数据分析(数据查询)-根据任务id获取所有算列结果
*/
@GetMapping("/getAllRunResult")
public SdmResponse getAllRunResultByTaskId(String taskId) {
@GetMapping("/getAllRunResultByTaskId")
public SdmResponse<GetAllRunResultByTaskIdResp> getAllRunResultByTaskId(String taskId) {
return taskService.getAllRunResultByTaskId(taskId);
}

View File

@@ -0,0 +1,16 @@
package com.sdm.project.model.resp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class GetAllRunResultByTaskIdResp {
@Schema(description = "任务指标列表")
List<TasKPerformanceResp> tasKPerformanceRespList = new ArrayList<>();
@Schema(description = "工况算列运行结果")
List<RunResultResp> runResultResp;
}

View File

@@ -0,0 +1,15 @@
package com.sdm.project.model.resp;
import com.sdm.project.model.entity.SimulationPerformance;
import com.sdm.project.model.entity.SimulationRun;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class RunResultResp {
SimulationRun simulationRun;
List<SimulationPerformance> simulationPerformance = new ArrayList<>();
}

View File

@@ -0,0 +1,19 @@
package com.sdm.project.model.resp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class TasKPerformanceResp {
@Schema(description = "指标名称")
String performanceName;
@Schema(description = "单位")
String unit;
@Schema(description = "达成方式")
String method;
@Schema(description = "目标值")
String targetValue;
}

View File

@@ -6,6 +6,8 @@ import com.sdm.project.model.req.SpdmAnalysisPerformanceListReq;
import com.sdm.project.model.req.SpdmAnalysisRunListReq;
import com.sdm.project.model.req.SpdmAnalysisTaskListReq;
import com.sdm.project.model.req.SpdmTaskListReq;
import com.sdm.project.model.resp.GetAllRunResultByTaskIdResp;
import com.sdm.project.model.resp.RunResultResp;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -28,5 +30,5 @@ public interface ITaskService {
SdmResponse edit(ModifyTaskNode req);
SdmResponse getAllRunResultByTaskId(String taskId);
SdmResponse<GetAllRunResultByTaskIdResp> getAllRunResultByTaskId(String taskId);
}

View File

@@ -13,13 +13,18 @@ import com.sdm.project.model.bo.ModifyTaskNode;
import com.sdm.project.model.bo.TaskExtraNode;
import com.sdm.project.model.bo.TaskMemberNode;
import com.sdm.project.model.bo.TaskNodeTag;
import com.sdm.project.model.entity.SimulationPerformance;
import com.sdm.project.model.entity.SimulationRun;
import com.sdm.project.model.po.PerformanceNodePo;
import com.sdm.project.model.po.ProjectNodePo;
import com.sdm.project.model.po.TaskNodeMemberPo;
import com.sdm.project.model.po.TaskRunPo;
import com.sdm.project.model.req.*;
import com.sdm.project.model.resp.GetAllRunResultByTaskIdResp;
import com.sdm.project.model.resp.RunResultResp;
import com.sdm.project.model.resp.TasKPerformanceResp;
import com.sdm.project.model.vo.*;
import com.sdm.project.service.ISimulationPerformanceService;
import com.sdm.project.service.ISimulationRunService;
import com.sdm.project.service.ITaskService;
import lombok.extern.slf4j.Slf4j;
@@ -58,6 +63,9 @@ public class TaskServiceImpl implements ITaskService {
@Autowired
private ISimulationRunService simulationRunService;
@Autowired
private ISimulationPerformanceService simulationPerformanceService;
@Override
public SdmResponse list(SpdmTaskListReq req) {
@@ -703,9 +711,53 @@ public class TaskServiceImpl implements ITaskService {
}
@Override
public SdmResponse getAllRunResultByTaskId(String taskId) {
List<SimulationRun> list = simulationRunService.lambdaQuery().eq(SimulationRun::getTaskId, taskId).list();
public SdmResponse<GetAllRunResultByTaskIdResp> getAllRunResultByTaskId(String taskId) {
GetAllRunResultByTaskIdResp result= new GetAllRunResultByTaskIdResp();
// taskId不为nullrunid为null查询所有工况设定的标准指标
List<SimulationPerformance> simulationTaskPerformances = simulationPerformanceService
.lambdaQuery()
.eq(SimulationPerformance::getTaskId, taskId)
.isNull(SimulationPerformance::getRunId)
.list();
if(CollectionUtils.isEmpty(simulationTaskPerformances)) {
return SdmResponse.success();
}
return null;
simulationTaskPerformances.forEach(simulationPerformance -> {
TasKPerformanceResp taskPerformanceResp = new TasKPerformanceResp();
BeanUtils.copyProperties(simulationPerformance, taskPerformanceResp);
result.getTasKPerformanceRespList().add(taskPerformanceResp);
});
// // taskId不为nullrunid不为null获取算列计算结果
List<SimulationRun> simulationRunList = simulationRunService.lambdaQuery().eq(SimulationRun::getTaskId, taskId).list();
Map<String, List<SimulationPerformance>> simulationRunPerformanceMap = simulationPerformanceService
.lambdaQuery()
.eq(SimulationPerformance::getTaskId, taskId)
.isNotNull(SimulationPerformance::getRunId)
.list()
.stream()
.collect(Collectors.groupingBy(SimulationPerformance::getRunId));
List<RunResultResp> runResultRespList = new ArrayList<>();
if(CollectionUtils.isNotEmpty(simulationRunList)) {
for (SimulationRun simulationRun : simulationRunList) {
RunResultResp runResultResp = new RunResultResp();
runResultResp.setSimulationRun(simulationRun);
List<SimulationPerformance> simulationPerformance = simulationRunPerformanceMap.get(simulationRun.getUuid());
if (CollectionUtils.isNotEmpty(simulationPerformance)) {
runResultResp.setSimulationPerformance(simulationPerformance);
}
runResultRespList.add(runResultResp);
}
}
result.setRunResultResp(runResultRespList);
return SdmResponse.success(result);
}
}