From 05ab1e9d4d254c2de7abd2dfc674b8a500ff74a7 Mon Sep 17 00:00:00 2001 From: weitang Date: Thu, 15 May 2025 17:50:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=AE=97=E6=B3=95=E5=92=8C?= =?UTF-8?q?=E6=95=85=E9=9A=9C=E8=AF=8A=E6=96=AD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AlgorithmClassController.java | 2 +- .../controller/AlgorithmDeviceController.java | 17 ++++++ .../modules/algorithm/domain/TreeNode.java | 31 ++++++++++ .../service/IAlgorithmClassService.java | 2 +- .../service/IAlgorithmDeviceService.java | 3 + .../impl/AlgorithmClassServiceImpl.java | 60 +++++++++---------- .../impl/AlgorithmDeviceServiceImpl.java | 11 ++++ .../AlgorithmClassComponentMapper.xml | 11 +++- 8 files changed, 101 insertions(+), 36 deletions(-) create mode 100644 riis-system/src/main/java/com/yfd/platform/modules/algorithm/domain/TreeNode.java diff --git a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/controller/AlgorithmClassController.java b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/controller/AlgorithmClassController.java index 80fc5cc..b39630c 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/controller/AlgorithmClassController.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/controller/AlgorithmClassController.java @@ -5,8 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.yfd.platform.config.ResponseResult; import com.yfd.platform.modules.algorithm.domain.AlgorithmClass; import com.yfd.platform.modules.algorithm.domain.AlgorithmParamsRequest; +import com.yfd.platform.modules.algorithm.domain.TreeNode; import com.yfd.platform.modules.algorithm.service.IAlgorithmClassService; -import com.yfd.platform.modules.basedata.domain.TreeNode; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; diff --git a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/controller/AlgorithmDeviceController.java b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/controller/AlgorithmDeviceController.java index a8bbbbf..4fe583e 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/controller/AlgorithmDeviceController.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/controller/AlgorithmDeviceController.java @@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; +import java.util.Map; /** *

@@ -41,4 +42,20 @@ public class AlgorithmDeviceController { return ResponseResult.error(); } } + + @PostMapping("/getAlgorithmDeviceParams") + @ApiOperation("查询算法部件的参数") + public ResponseResult getAlgorithmDeviceParams(String algorithmId, String componentId) { + List> algorithmDeviceParams = algorithmDeviceService.getAlgorithmDeviceParams(algorithmId + , componentId); + return ResponseResult.successData(algorithmDeviceParams); + } + +// @PostMapping("/getAlgorithmDeviceParams") +// @ApiOperation("查询算法部件的参数") +// public ResponseResult getAlgorithmDeviceParams(String algorithmId, String componentId) { +// List> algorithmDeviceParams = algorithmDeviceService.getAlgorithmDeviceParams(algorithmId +// , componentId); +// return ResponseResult.successData(algorithmDeviceParams); +// } } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/domain/TreeNode.java b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/domain/TreeNode.java new file mode 100644 index 0000000..7133ee7 --- /dev/null +++ b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/domain/TreeNode.java @@ -0,0 +1,31 @@ +package com.yfd.platform.modules.algorithm.domain; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Date: 2024/4/18 15:10 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@AllArgsConstructor +@NoArgsConstructor +public class TreeNode { + + private String id; + private String name; + private String parentId; + private List children = new ArrayList<>(); + + public TreeNode(String id, String name, String parentId) { + this.id = id; + this.parentId = parentId; + this.name = name; + } +} diff --git a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmClassService.java b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmClassService.java index 18a0c58..a648cc5 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmClassService.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmClassService.java @@ -3,7 +3,7 @@ package com.yfd.platform.modules.algorithm.service; import com.yfd.platform.modules.algorithm.domain.AlgorithmClass; import com.baomidou.mybatisplus.extension.service.IService; import com.yfd.platform.modules.algorithm.domain.AlgorithmParamsRequest; -import com.yfd.platform.modules.basedata.domain.TreeNode; +import com.yfd.platform.modules.algorithm.domain.TreeNode; import java.util.List; diff --git a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmDeviceService.java b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmDeviceService.java index 7ca501b..55ef38b 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmDeviceService.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmDeviceService.java @@ -4,6 +4,7 @@ import com.yfd.platform.modules.algorithm.domain.AlgorithmDevice; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -22,4 +23,6 @@ public interface IAlgorithmDeviceService extends IService { ***********************************/ boolean batchAddAlgorithmDevice(List algorithmDeviceList); + List> getAlgorithmDeviceParams(String algorithmId, String componentId); + } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmClassServiceImpl.java b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmClassServiceImpl.java index 3eba275..2d5f81e 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmClassServiceImpl.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmClassServiceImpl.java @@ -4,18 +4,15 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yfd.platform.modules.algorithm.domain.AlgorithmClass; import com.yfd.platform.modules.algorithm.domain.AlgorithmParams; import com.yfd.platform.modules.algorithm.domain.AlgorithmParamsRequest; +import com.yfd.platform.modules.algorithm.domain.TreeNode; import com.yfd.platform.modules.algorithm.mapper.AlgorithmClassComponentMapper; import com.yfd.platform.modules.algorithm.mapper.AlgorithmClassMapper; -import com.yfd.platform.modules.algorithm.mapper.AlgorithmParamsMapper; import com.yfd.platform.modules.algorithm.service.IAlgorithmClassService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yfd.platform.modules.algorithm.service.IAlgorithmParamsService; -import com.yfd.platform.modules.basedata.domain.TreeNode; -import com.yfd.platform.utils.SecurityUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -132,13 +129,11 @@ public class AlgorithmClassServiceImpl extends ServiceImpl ***********************************/ public List buildSignalTree(List> dataList) { - // 存储所有节点(使用ID作为键) Map nodeMap = new HashMap<>(); - // 存储最终返回的根节点列表 List roots = new ArrayList<>(); - // 遍历原始数据 + for (Map data : dataList) { - // 1. 解析各层级信息(根据实际字段名称调整) + // 解析字段(根据实际字段名称调整) String stationCode = (String) data.get("stationCode"); String stationName = (String) data.get("stationName"); String algorithmId = (String) data.get("algorithmId"); @@ -146,33 +141,34 @@ public class AlgorithmClassServiceImpl extends ServiceImpl { - TreeNode node = new TreeNode(stationCode, stationName); - roots.add(node); // 将变电站作为根节点 + // 1. 处理变电站节点(根节点) + TreeNode stationNode = nodeMap.computeIfAbsent(stationCode, k -> { + TreeNode node = new TreeNode(stationCode, stationName,null); + roots.add(node); // 添加为根节点 + return node; + }); + + if (StrUtil.isNotBlank(algorithmId)) { + // 2. 处理算法节点(第二层) + // 使用复合键:stationKey + ":" + algorithmId 确保唯一性 + String algorithmKey = stationCode + ":" + algorithmId; + TreeNode algorithmNode = nodeMap.computeIfAbsent(algorithmKey, k -> { + TreeNode node = new TreeNode(algorithmId, algorithmClassName,stationCode); + stationNode.getChildren().add(node); // 挂载到变电站节点下 + return node; + }); + + if (StrUtil.isNotBlank(componentId)) { + // 3. 处理组件节点(第三层) + // 使用复合键:algorithmKey + ":" + componentId 确保唯一性 + String componentKey = algorithmKey + ":" + componentId; + nodeMap.computeIfAbsent(componentKey, k -> { + TreeNode node = new TreeNode(componentId, componentName,algorithmId); + algorithmNode.getChildren().add(node); // 挂载到算法节点下 return node; }); - if (StrUtil.isNotBlank(algorithmId)) { - // 处理变电站层级 - TreeNode areaNode = nodeMap.computeIfAbsent(algorithmId, - k -> { - TreeNode node = new TreeNode(algorithmId, algorithmClassName); - stationNode.getChildren().add(node); // 将变电站作为根节点 - return node; - }); - - // 处理区域层级 - if (StrUtil.isNotBlank(componentId)) { - nodeMap.computeIfAbsent(componentId, - k -> { - TreeNode node = new TreeNode(componentId, componentName); - areaNode.getChildren().add(node); - return node; - }); - } } - } return roots; } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmDeviceServiceImpl.java b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmDeviceServiceImpl.java index 90cd445..71ade96 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmDeviceServiceImpl.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmDeviceServiceImpl.java @@ -1,5 +1,7 @@ package com.yfd.platform.modules.algorithm.service.impl; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.yfd.platform.modules.algorithm.domain.AlgorithmDevice; import com.yfd.platform.modules.algorithm.mapper.AlgorithmDeviceMapper; import com.yfd.platform.modules.algorithm.service.IAlgorithmDeviceService; @@ -9,6 +11,7 @@ import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.util.List; +import java.util.Map; /** *

@@ -35,4 +38,12 @@ public class AlgorithmDeviceServiceImpl extends ServiceImpl> getAlgorithmDeviceParams(String algorithmId, String componentId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(StrUtil.isNotBlank(algorithmId), AlgorithmDevice::getAlgorithmId, algorithmId); + queryWrapper.eq(StrUtil.isNotBlank(componentId), AlgorithmDevice::getComponentId, componentId).select(AlgorithmDevice::getDeviceName, AlgorithmDevice::getDeviceId, AlgorithmDevice::getParamValue); + return this.listMaps(queryWrapper); + } } diff --git a/riis-system/src/main/resources/mapper/algorithm/AlgorithmClassComponentMapper.xml b/riis-system/src/main/resources/mapper/algorithm/AlgorithmClassComponentMapper.xml index b595fc0..7816b01 100644 --- a/riis-system/src/main/resources/mapper/algorithm/AlgorithmClassComponentMapper.xml +++ b/riis-system/src/main/resources/mapper/algorithm/AlgorithmClassComponentMapper.xml @@ -4,11 +4,18 @@