fix:数据总览支持项目编码模糊查询

This commit is contained in:
2026-03-10 16:30:10 +08:00
parent b18411ee3f
commit 8f64eea132
9 changed files with 36 additions and 14 deletions

View File

@@ -28,11 +28,11 @@ public class SimulationNodeFeignClientImpl implements ISimulationNodeFeignClient
* @param nodeId 节点ID
* @return SdmResponse<List<AllNodeByProjectIdAndTypeResp>> key 为节点idvalue 为节点名称
*/
public SdmResponse<List<AllNodeByProjectIdAndTypeResp>> getAllNodeByNodeType(Long nodeId, String nodeType) {
public SdmResponse<List<AllNodeByProjectIdAndTypeResp>> getAllNodeByNodeType(Long nodeId, String nodeType, String keyword) {
SdmResponse<List<AllNodeByProjectIdAndTypeResp>> response;
try {
log.info("根据节点类型和节点ID获取所有节点信息请求参数nodeId={}, nodeType={}", nodeId, nodeType);
response = simulationNodeFeignClient.getAllNodeByNodeType(nodeId, nodeType);
log.info("根据节点类型和节点ID获取所有节点信息请求参数nodeId={}, nodeType={}, keyword={}", nodeId, nodeType, keyword);
response = simulationNodeFeignClient.getAllNodeByNodeType(nodeId, nodeType, keyword);
if (!response.isSuccess() || response.getData() == null || response.getData().isEmpty()) {
return SdmResponse.failed("获取节点信息失败");
}

View File

@@ -26,7 +26,7 @@ public interface ISimulationNodeFeignClient {
* @return SdmResponse<List<AllNodeByProjectIdAndTypeResp>>
*/
@GetMapping("/node/getAllNodeByNodeType")
SdmResponse<List<AllNodeByProjectIdAndTypeResp>> getAllNodeByNodeType(@RequestParam(value = "nodeId", required = false) Long nodeId, @RequestParam(value = "nodeType") String nodeType);
SdmResponse<List<AllNodeByProjectIdAndTypeResp>> getAllNodeByNodeType(@RequestParam(value = "nodeId", required = false) Long nodeId, @RequestParam(value = "nodeType") String nodeType, @RequestParam(value = "keyword", required = false) String keyword);
/**
* 根据项目ID和节点类型获取所有节点信息

View File

@@ -19,4 +19,10 @@ public class GetSimulationNodeTreeReq {
* 聚合文件ID列表
*/
private List<Long> fileIds;
/**
* 项目名称/编码关键字(模糊查询)
*/
@Schema(description = "项目名称/编码关键字")
private String keyword;
}

View File

@@ -236,7 +236,7 @@ public class DimensionTemplateServiceImpl extends ServiceImpl<DimensionTemplateM
// 选中维度了,没有选节点,按照模版,展示模版的第一层节点数据(支持同一层多个节点类型)
List<String> rootNodeTypes = dimensionNodeTypeLevels.get(0);
for (String rootNodeType : rootNodeTypes) {
SdmResponse<List<AllNodeByProjectIdAndTypeResp>> allNodeByNodeTypeResponse = simuluationNodeFeignClient.getAllNodeByNodeType(null, rootNodeType);
SdmResponse<List<AllNodeByProjectIdAndTypeResp>> allNodeByNodeTypeResponse = simuluationNodeFeignClient.getAllNodeByNodeType(null, rootNodeType, req.getKeyword());
if (!allNodeByNodeTypeResponse.isSuccess()) {
log.error("获取节点信息失败,nodeType:{}", rootNodeType);

View File

@@ -156,8 +156,8 @@ public class SimulationNodeController implements ISimulationNodeFeignClient {
*/
@GetMapping("/getAllNodeByNodeType")
@Operation(summary = "根据节点类型获取所有节点", description = "根据节点类型获取所有节点")
public SdmResponse<List<AllNodeByProjectIdAndTypeResp>> getAllNodeByNodeType(@Parameter(description = "节点id") @RequestParam(value = "nodeId", required = false) Long nodeId, @RequestParam(value = "nodeType") String nodeType) {
return nodeService.getAllNodeByBodeType(nodeType, nodeId);
public SdmResponse<List<AllNodeByProjectIdAndTypeResp>> getAllNodeByNodeType(@Parameter(description = "节点id") @RequestParam(value = "nodeId", required = false) Long nodeId, @RequestParam(value = "nodeType") String nodeType, @RequestParam(value = "keyword", required = false) String keyword) {
return nodeService.getAllNodeByBodeType(nodeType, nodeId, keyword);
}
/**

View File

@@ -121,4 +121,6 @@ public interface SimulationNodeMapper extends BaseMapper<SimulationNode> {
List<SpdmNodeMemberVo> getNodeMemberListByMemberType(@Param("nodeIdList") List<String> nodeIdList,@Param("userId") Long userId,@Param("memberType") Integer memberType);
List<SimulationEncNodeVO>getEncNodeListByTaskId(@Param("taskId") String taskId);
List<SimulationNode> getAllNodeByNodeTypeWithKeyword(@Param("nodeType") String nodeType, @Param("nodeId") Long nodeId, @Param("keyword") String keyword);
}

View File

@@ -38,7 +38,7 @@ public interface INodeService extends IService<SimulationNode> {
SdmResponse batchUpdateWorkspaceExtra(BatchUpdateWorkspaceExtraReq req);
SdmResponse<List<AllNodeByProjectIdAndTypeResp>> getAllNodeByBodeType(String nodeType, Long nodeId);
SdmResponse<List<AllNodeByProjectIdAndTypeResp>> getAllNodeByBodeType(String nodeType, Long nodeId, String keyword);
SdmResponse<List<AllNodeByProjectIdAndTypeResp>> getAllNodeByProjectIdAndType(List<String> uuids, String nextNodeType);

View File

@@ -2278,14 +2278,10 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
}
@Override
public SdmResponse<List<AllNodeByProjectIdAndTypeResp>> getAllNodeByBodeType(String nodeType, Long nodeId) {
public SdmResponse<List<AllNodeByProjectIdAndTypeResp>> getAllNodeByBodeType(String nodeType, Long nodeId, String keyword) {
try {
List<AllNodeByProjectIdAndTypeResp> allNodeByProjectIdAndTypeRespList = new ArrayList<>();
List<SimulationNode> nodeList = this.lambdaQuery()
.eq(ObjectUtils.isNotEmpty(nodeId), SimulationNode::getId, nodeId)
.eq(ObjectUtils.isNotEmpty(nodeType), SimulationNode::getNodeType, nodeType)
.orderByDesc(SimulationNode::getCreateTime)
.list();
List<SimulationNode> nodeList = nodeMapper.getAllNodeByNodeTypeWithKeyword(nodeType, nodeId, keyword);
if (CollectionUtils.isEmpty(nodeList)) {
return SdmResponse.failed("未找到节点");
}

View File

@@ -920,5 +920,23 @@
AND t1.tag5 IS NOT NULL
</select>
<select id="getAllNodeByNodeTypeWithKeyword" resultType="com.sdm.project.model.entity.SimulationNode">
SELECT n.*
FROM simulation_node n
LEFT JOIN simulation_node p ON n.ownRootNodeUuid = p.uuid
WHERE 1 = 1
<if test="nodeId != null">
AND n.id = #{nodeId}
</if>
<if test="nodeType != null and nodeType != ''">
AND n.nodeType = #{nodeType}
</if>
<if test="keyword != null and keyword != ''">
<bind name="keywordLike" value="'%' + keyword + '%'"/>
AND (p.nodeName LIKE #{keywordLike} OR p.nodeCode LIKE #{keywordLike})
</if>
ORDER BY n.create_time DESC
</select>
</mapper>