优化查询分析项库,通过节点类型节点名称过滤分析项

This commit is contained in:
daiqy88
2026-03-04 08:52:43 +08:00
parent 8db8301930
commit b75a4d4b3a
4 changed files with 25 additions and 11 deletions

View File

@@ -113,9 +113,9 @@ public class SimuluationTaskPoolController implements ISimuluationTaskPoolFeignC
@GetMapping(value = "/getTaskPoolLoadcases")
@ResponseBody
SdmResponse getTaskPoolLoadcases(@RequestParam("poolName") String poolName,@RequestParam("version")String version)
SdmResponse getTaskPoolLoadcases(@RequestParam("poolName") String poolName,@RequestParam("version")String version,@RequestParam(name = "nodeType",required = false)String nodeType,@RequestParam(name = "nodeName",required = false)String nodeName)
{
return service.getSimulationPoolTasks(poolName,version);
return service.getSimulationPoolTasks(poolName,version,nodeType,nodeName);
}
@GetMapping(value = "/getTaskPoolTaskMap")

View File

@@ -36,7 +36,7 @@ public interface ISimulationTaskPoolService {
SdmResponse<List<TaskPoolPerformance>> getTaskPoolPerformanceWithVersion(String poolName, String version);
SdmResponse getSimulationPoolTasks(String poolName,String version);
SdmResponse getSimulationPoolTasks(String poolName,String version,String nodeLevel,String nodeName);
SdmResponse<Map<String, TaskBaseInfo>> getSimulationTasksByPoolId(long poolId);

View File

@@ -1939,10 +1939,12 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
* @param nodeObject
* @return
*/
private List<TaskPoolItem> getTaskPoolNodeItem(JSONObject nodeObject)
private List<TaskPoolItem> getTaskPoolNodeItem(JSONObject nodeObject,String nodeType,String nodeName)
{
List<TaskPoolItem> tasks = new ArrayList<>();
JSONArray children = nodeObject.getJSONArray("children");
String currentNodeType = nodeObject.getString("nodeType");
String currentNodeName = nodeObject.getString("nodeName");
if(children != null)
{
for(int index=0; index<children.size(); index++)
@@ -1951,11 +1953,23 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
String childType = childObj.getString("levelType");
if(childType.equals("node"))
{
List<TaskPoolItem> childNodeTasks = getTaskPoolNodeItem(childObj);
List<TaskPoolItem> childNodeTasks = getTaskPoolNodeItem(childObj,nodeType,nodeName);
tasks.addAll(childNodeTasks);
}
else if(childType.equals("task"))
{
//如果节点类型有过滤限制,节点类型不匹配直接返回
if(nodeType != null && !nodeType.isEmpty() && !nodeType.equals(currentNodeType))
{
return tasks;
}
//如果节点名称有过滤限制,节点名称不匹配直接返回
if(nodeName != null && !nodeName.isEmpty() && !nodeName.equals(currentNodeName))
{
return tasks;
}
ObjectMapper objectMapper = new ObjectMapper();
try {
TaskPoolItem poolItem = objectMapper.readValue(childObj.toJSONString(),TaskPoolItem.class);
@@ -1974,7 +1988,7 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
@Override
public SdmResponse getSimulationPoolTasksByUuids(String poolName,String version,List<String> uuids)
{
SdmResponse taskResponse = getSimulationPoolTasks(poolName,version);
SdmResponse taskResponse = getSimulationPoolTasks(poolName,version,"","");
if(!taskResponse.isSuccess())
return taskResponse;
SdmResponse response = SdmResponse.success();
@@ -2007,7 +2021,7 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
}
else
{
SdmResponse taskResponse = getSimulationPoolTasks(poolVersion.poolName,poolVersion.poolVersion);
SdmResponse taskResponse = getSimulationPoolTasks(poolVersion.poolName,poolVersion.poolVersion,"","");
if(taskResponse.isSuccess())
{
List<TaskPoolItem> tasks = (List<TaskPoolItem>)taskResponse.getData();
@@ -2029,7 +2043,7 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
}
@Override
public SdmResponse getSimulationPoolTasks(String poolName,String version)
public SdmResponse getSimulationPoolTasks(String poolName,String version,String nodeType,String nodeName)
{
SdmResponse response = SdmResponse.success();
JSONObject poolJson = null;
@@ -2067,7 +2081,7 @@ public class SimulationTaskPoolServiceImpl extends BaseService implements ISimul
for(int index=0; index<nodeArray.size(); index++)
{
JSONObject nodeObj = nodeArray.getJSONObject(index);
List<TaskPoolItem> nodeTasks = getTaskPoolNodeItem(nodeObj);
List<TaskPoolItem> nodeTasks = getTaskPoolNodeItem(nodeObj,nodeType,nodeName);
tasks.addAll(nodeTasks);
}
}