结构整理

This commit is contained in:
daiqy88
2025-10-15 18:46:13 +08:00
parent 1aa7c9dfe7
commit 58579e04cf
5 changed files with 168 additions and 2 deletions

1
.idea/compiler.xml generated
View File

@@ -2,6 +2,7 @@
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile default="true" name="Default" enabled="true" />
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />

View File

@@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@RestController
@RequestMapping(value = "/taskpool")
@RequestMapping(value = "/simulation/taskpool")
public class SimuluationTaskPoolController {
@Autowired
@@ -79,5 +79,12 @@ public class SimuluationTaskPoolController {
{
return service.exportTaskPool(response,jsonObject);
}
@GetMapping(value = "/getTaskPoolLoadcases")
@ResponseBody
SdmResponse getTaskPoolLoadcases(@RequestParam("poolName") String poolName,@RequestParam("version")String version)
{
return service.getSimulationPoolTasks(poolName,version);
}
}

View File

@@ -19,6 +19,8 @@ public interface ISimulationTaskPoolService {
SdmResponse getSimulationPoolPerformance(String poolName);
SdmResponse getSimulationPoolTasks(String poolName,String version);
SdmResponse getTaskPoolVersions(String poolName);
SdmResponse cleanTaskPool(String poolName);

View File

@@ -3,6 +3,7 @@ package com.sdm.task.service.impl;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.json.JsonMapper;
import com.sdm.common.common.ResultCode;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.service.BaseService;
@@ -13,10 +14,14 @@ import com.sdm.task.model.entity.*;
import com.sdm.task.service.ISimulationTaskPoolService;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.net.URLEncoder;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -1238,6 +1243,157 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
return response;
}
/**
* 获取节点下分析项
* @param nodeObject
* @return
*/
private List<TaskPoolItem> getTaskPoolNodeItem(JSONObject nodeObject)
{
List<TaskPoolItem> tasks = new ArrayList<>();
JSONArray children = nodeObject.getJSONArray("children");
if(children != null)
{
for(int index=0; index<children.size(); index++)
{
JSONObject childObj = children.getJSONObject(index);
String childType = childObj.getString("levelType");
if(childType.equals("node"))
{
List<TaskPoolItem> childNodeTasks = getTaskPoolNodeItem(childObj);
tasks.addAll(childNodeTasks);
}
else if(childType.equals("task"))
{
ObjectMapper objectMapper = new ObjectMapper();
try {
TaskPoolItem poolItem = objectMapper.readValue(childObj.toJSONString(),TaskPoolItem.class);
tasks.add(poolItem);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
}
return tasks;
}
@Override
public SdmResponse getSimulationPoolTasks(String poolName,String version)
{
SdmResponse response = SdmResponse.success();
JSONObject poolJson = null;
if(version==null || version.length()==0)
{
SdmResponse poolTreeResponse = getCurrentPoolTree(poolName);
if(poolTreeResponse.getCode() != ResultCode.SUCCESS.getCode())
{
response = SdmResponse.failed("获取分析项库失败");
return response;
}
else
{
TaskPoolTree poolTree = (TaskPoolTree) poolTreeResponse.getData();
poolJson = JSONObject.from(poolTree);
}
}
else
{
String versionContents = mapper.queryTaskPoolVersionContent(poolName,version);
if(versionContents == null || versionContents.length() == 0)
{
response = SdmResponse.failed("分析项库版本不存在");
return response;
}
else
{
poolJson = JSONObject.parseObject(versionContents);
}
}
List<TaskPoolItem> tasks = new ArrayList<>();
JSONArray nodeArray = poolJson.getJSONArray("nodes");
if(nodeArray != null)
{
for(int index=0; index<nodeArray.size(); index++)
{
JSONObject nodeObj = nodeArray.getJSONObject(index);
List<TaskPoolItem> nodeTasks = getTaskPoolNodeItem(nodeObj);
tasks.addAll(nodeTasks);
}
}
////////////
/*List<TaskPoolItem> taskPoolItems = mapper.queryTaskPoolItems(poolName);
List<TaskPoolPerformance> poolPerformances = mapper.queryTaskPoolPerformances(poolName);
List<TaskPoolItemExtra> taskPoolItemExtras = mapper.queryTaskPoolItemExtras(poolName);
List<TaskPoolPerformanceExtra> taskPoolPerformanceExtras = mapper.queryTaskPoolPerformanceExtras(poolName);
Map<String,List<TaskPoolPerformance>> taskPoolPerformanceMap = new HashMap<>();
Map<String,List<TaskPoolItemExtra>> taskPoolItemExtraMap = new HashMap<>();
Map<String,List<TaskPoolPerformanceExtra>> taskPoolPerformanceExtraMap = new HashMap<>();
//整理性能指标附加属性
for(TaskPoolPerformanceExtra performanceExtra : taskPoolPerformanceExtras)
{
String performanceUuid = performanceExtra.performanceId;
List<TaskPoolPerformanceExtra> extras = taskPoolPerformanceExtraMap.get(performanceUuid);
if(extras == null)
{
extras = new ArrayList<>();
taskPoolPerformanceExtraMap.put(performanceUuid,extras);
}
extras.add(performanceExtra);
}
//整理分析项附加属性
for(TaskPoolItemExtra itemExtra : taskPoolItemExtras)
{
String taskUUid = itemExtra.taskId;
List<TaskPoolItemExtra> extras = taskPoolItemExtraMap.get(taskUUid);
if(extras == null)
{
extras = new ArrayList<>();
taskPoolItemExtraMap.put(taskUUid,extras);
}
extras.add(itemExtra);
}
//整理性能指标
for(TaskPoolPerformance performance : poolPerformances)
{
//获取附加属性
List<TaskPoolPerformanceExtra> performanceExtras = taskPoolPerformanceExtraMap.get(performance.uuid);
if(performanceExtras != null)
{
performance.extras = performanceExtras;
}
String taskUuid = performance.taskId;
List<TaskPoolPerformance> performances = taskPoolPerformanceMap.get(taskUuid);
if(performances == null)
{
performances = new ArrayList<>();
taskPoolPerformanceMap.put(taskUuid,performances);
}
performances.add(performance);
}
//整理分析项
for(TaskPoolItem poolItem : taskPoolItems)
{
//获取分析项附加属性
List<TaskPoolItemExtra> itemExtras = taskPoolItemExtraMap.get(poolItem.uuid);
if(itemExtras != null)
{
poolItem.extras = itemExtras;
}
//获取分析项性能指标
List<TaskPoolPerformance> performances = taskPoolPerformanceMap.get(poolItem.uuid);
if(performances != null)
{
poolItem.performances = performances;
}
}*/
response.setData(tasks);
return response;
}
@Override
public SdmResponse exportTaskPool(HttpServletResponse httpServletResponse,JSONObject paramObject) {
String poolName = paramObject.getString("poolName");

View File

@@ -103,6 +103,6 @@ lombok:
file:
rootPath: /data/home/sdm
scriptPath : D:\\scripts
scriptPath : /opt/script
#logging:
# config: ./config/logback.xml