This commit is contained in:
2025-12-22 10:31:43 +08:00
10 changed files with 130 additions and 5 deletions

View File

@@ -15,4 +15,14 @@ public class PerformanceExportExcelParam {
*/
private String runId;
/**
* 仿真参数库名称
*/
private String poolName;
/**
* 仿真参数库版本
*/
private String version;
}

View File

@@ -95,8 +95,8 @@ public class SimulationRunController implements ISimulationRunFeignClient {
/**
* 上传算例文件
*/
@PostMapping(value = "/uploadRunFiles", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public SdmResponse uploadRunFiles(UploadFilesReq req) {
@PostMapping(value = "/uploadRunFiles")
public SdmResponse uploadRunFiles(@RequestBody UploadFilesReq req) {
return runService.uploadRunFiles(req);
}

View File

@@ -725,8 +725,8 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
@Override
public SdmResponse uploadRunFiles(UploadFilesReq req) {
// 批量存储文件信息,返回数据供第二步分片上传使用
// return dataFeignClient.batchAddFileInfo(req);
return dataFeignClient.uploadFiles(req);
return dataFeignClient.batchAddFileInfo(req);
// return dataFeignClient.uploadFiles(req);
}
/**

View File

@@ -184,4 +184,5 @@ security:
- /systemApprove/approveStatusNotice
- /user/getUserToken
- /systemMsg/sendMessage
- /tenant/list
- /tenant/list
- /systemLog/saveLog

View File

@@ -106,4 +106,17 @@ public class SimulationPerformanceController implements ISimuluationPerformanceF
return simulationPerformanceService.exportPerformance(performanceExportExcelFormat, httpservletResponse);
}
/**
* 仿真参数库导出指标列表
* @param performanceExportExcelFormat
* @param httpservletResponse
* @return
*/
@PostMapping("/exportTaskPoolPerformance")
@Operation(summary = "导出指标列表", description = "导出指标列表")
public SdmResponse exportTaskPoolPerformance(@RequestBody PerformanceExportExcelFormat performanceExportExcelFormat , HttpServletResponse httpservletResponse) {
return simulationPerformanceService.exportTaskPoolPerformance(performanceExportExcelFormat, httpservletResponse);
}
}

View File

@@ -7,6 +7,7 @@ import com.sdm.common.entity.pojo.task.TaskBaseInfo;
import com.sdm.common.entity.req.system.LaunchApproveReq;
import com.sdm.common.entity.req.task.BindTaskAndFlowTemplateReq;
import com.sdm.common.feign.inter.task.ISimuluationTaskPoolFeignClient;
import com.sdm.task.model.entity.TaskPoolPerformance;
import com.sdm.task.model.entity.TaskPoolUpdateBean;
import com.sdm.task.model.req.ExportTaskPoolReq;
import com.sdm.task.service.ISimulationTaskPoolService;
@@ -68,6 +69,13 @@ public class SimuluationTaskPoolController implements ISimuluationTaskPoolFeignC
return service.getSimulationPoolPerformanceByVersion(poolName,version);
}
@GetMapping(value = "/getTaskPoolPerformanceWithVersion")
@ResponseBody
SdmResponse<List<TaskPoolPerformance>> getTaskPoolPerformanceWithVersion(@RequestParam String poolName, @RequestParam String version)
{
return service.getTaskPoolPerformanceWithVersion(poolName, version);
}
@GetMapping(value = "/getTaskPoolVersions")
@ResponseBody
SdmResponse getSimulationTaskPoolVersions(@RequestParam String poolName)

View File

@@ -48,4 +48,6 @@ public interface ISimulationPerformanceService extends IService<SimulationPerfor
*/
SdmResponse exportPerformance(PerformanceExportExcelFormat performanceExportExcelFormat, HttpServletResponse httpservletResponse);
SdmResponse exportTaskPoolPerformance(PerformanceExportExcelFormat performanceExportExcelFormat, HttpServletResponse httpservletResponse);
}

View File

@@ -9,6 +9,7 @@ import com.sdm.common.entity.pojo.task.TaskBaseInfo;
import com.sdm.common.entity.req.system.LaunchApproveReq;
import com.sdm.common.entity.req.task.BindTaskAndFlowTemplateReq;
import com.sdm.task.model.entity.SimulatePoolTaskFlowTemplateRelate;
import com.sdm.task.model.entity.TaskPoolPerformance;
import com.sdm.task.model.entity.TaskPoolUpdateBean;
import com.sdm.task.model.req.ExportTaskPoolReq;
import jakarta.servlet.http.HttpServletResponse;
@@ -33,6 +34,8 @@ public interface ISimulationTaskPoolService {
SdmResponse getSimulationPoolPerformanceByVersion(String poolName,String version);
SdmResponse<List<TaskPoolPerformance>> getTaskPoolPerformanceWithVersion(String poolName, String version);
SdmResponse getSimulationPoolTasks(String poolName,String version);
SdmResponse<Map<String, TaskBaseInfo>> getSimulationTasksByPoolId(long poolId);

View File

@@ -16,9 +16,11 @@ import com.sdm.task.model.dto.TaskPerformanceDto;
import com.sdm.task.model.entity.SimulationPerformance;
import com.sdm.task.dao.SimulationPerformanceMapper;
import com.sdm.task.model.entity.SimulationTask;
import com.sdm.task.model.entity.TaskPoolPerformance;
import com.sdm.task.model.req.BatchAddTaskPerformanceReq;
import com.sdm.task.service.ISimulationPerformanceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sdm.task.service.ISimulationTaskPoolService;
import com.sdm.task.service.ISimulationTaskService;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.collections4.CollectionUtils;
@@ -45,6 +47,9 @@ public class SimulationPerformanceServiceImpl extends ServiceImpl<SimulationPerf
@Autowired
private ISimulationTaskService simulationTaskService;
@Autowired
private ISimulationTaskPoolService simulationTaskPoolService;
@Override
public SdmResponse getTaskPerformance(Integer taskId) {
@@ -168,4 +173,29 @@ public class SimulationPerformanceServiceImpl extends ServiceImpl<SimulationPerf
return response;
}
@Override
public SdmResponse exportTaskPoolPerformance(PerformanceExportExcelFormat performanceExportExcelFormat, HttpServletResponse httpServletResponse) {
SdmResponse response = new SdmResponse();
PerformanceExportExcelParam params = performanceExportExcelFormat.getParams();
String poolName = params.getPoolName();
String version = params.getVersion();
if (poolName == null || version == null) {
log.error("poolName和version不能为空");
throw new RuntimeException("导出仿真指标库失败原因poolName和version不能为空");
}
List<ExportExcelFormat> exportExcelFormats = performanceExportExcelFormat.getExcelHeaders();
SdmResponse<List<TaskPoolPerformance>> sdmResponse = simulationTaskPoolService.getTaskPoolPerformanceWithVersion(poolName, version);
if(sdmResponse.getData() != null) {
List<TaskPoolPerformance> dataList = sdmResponse.getData();
if (CollectionUtils.isEmpty(dataList)) {
ExcelUtil.exportExcelNoMerge(new JSONArray(),exportExcelFormats,httpServletResponse);
return response;
}
ExcelUtil.exportExcelNoMerge(JSONArray.from(dataList),exportExcelFormats,httpServletResponse);
} else {
return sdmResponse;
}
return response;
}
}

View File

@@ -32,6 +32,8 @@ import com.sdm.task.model.req.QueryTaskPoolReq;
import com.sdm.task.service.ISimulationTaskPoolService;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -826,6 +828,62 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
return response;
}
/**
* 根据仿真指标库名称和版本查询
* @param poolName
* @param version
* @return
*/
public SdmResponse<List<TaskPoolPerformance>> getTaskPoolPerformanceWithVersion(String poolName, String version)
{
List<TaskPoolVersion> taskPoolVersions = mapper.queryTaskPoolVersion(poolName, version);
if (CollectionUtils.isNotEmpty(taskPoolVersions)) {
String versionContents = taskPoolVersions.get(0).versionContents;
if (StringUtil.isNotEmpty(versionContents)) {
JSONObject root = JSONObject.parseObject(versionContents);
JSONArray nodes = root.getJSONArray("nodes");
if (nodes == null || nodes.isEmpty()) {
return SdmResponse.success();
}
List<JSONObject> performanceNodes = new ArrayList<>();
// 遍历每个根节点
for (int i = 0; i < nodes.size(); i++) {
JSONObject node = nodes.getJSONObject(i);
findPerformanceNodesRecursive(node, performanceNodes);
}
List<TaskPoolPerformance> performances = performanceNodes.stream().map(i -> {
TaskPoolPerformance taskPoolPerformance = JSONObject.parseObject(i.toString(), TaskPoolPerformance.class);
return taskPoolPerformance;
}).toList();
return SdmResponse.success(performances);
}
}
return SdmResponse.success();
}
private static void findPerformanceNodesRecursive(JSONObject node, List<JSONObject> result) {
if (node == null) {
return;
}
// 检查当前节点是否为 performance 类型
String nodeType = node.getString("nodeType");
if ("performance".equals(nodeType)) {
result.add(node);
}
// 递归处理子节点
JSONArray children = node.getJSONArray("children");
if (children != null && !children.isEmpty()) {
for (int i = 0; i < children.size(); i++) {
JSONObject child = children.getJSONObject(i);
findPerformanceNodesRecursive(child, result);
}
}
}
/**
* 发起仿真库评审
* @param templateId