From 0f5d46341a5fc2953739d7465b13a766adf3ed60 Mon Sep 17 00:00:00 2001 From: weitang Date: Mon, 28 Apr 2025 11:56:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AE=BE=E5=A4=87=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=E6=A8=A1=E5=9D=97=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DeviceWorkDataController.java | 59 ++++++++++++++++- .../auxcontrol/mapper/DeviceSignalMapper.java | 2 +- .../mapper/DeviceWorkDataMapper.java | 8 ++- .../service/IDeviceSignalService.java | 2 +- .../service/IDeviceWorkDataService.java | 6 +- .../service/impl/DeviceSignalServiceImpl.java | 4 +- .../impl/DeviceWorkDataServiceImpl.java | 9 ++- .../SubstationMaindeviceController.java | 4 +- .../service/ISubstationMaindeviceService.java | 2 +- .../impl/SubstationMaindeviceServiceImpl.java | 64 ++++++++++++++----- .../mapper/auxcontrol/DeviceSignalMapper.xml | 11 +++- .../auxcontrol/DeviceWorkDataMapper.xml | 14 ++++ 12 files changed, 154 insertions(+), 31 deletions(-) diff --git a/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/controller/DeviceWorkDataController.java b/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/controller/DeviceWorkDataController.java index 0d7840b..85ecc13 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/controller/DeviceWorkDataController.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/controller/DeviceWorkDataController.java @@ -1,5 +1,6 @@ package com.yfd.platform.modules.auxcontrol.controller; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yfd.platform.config.ResponseResult; import com.yfd.platform.modules.auxcontrol.domain.DeviceAlarmRecord; @@ -12,6 +13,15 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.LongStream; /** *

@@ -31,9 +41,54 @@ public class DeviceWorkDataController { @GetMapping("/page") @ApiOperation("分页查询变电站辅控设备告警记录") - public ResponseResult getDeviceWorkDataPage(Page page, String startDate, String endDate) { - Page deviceWorkDataPage = deviceWorkDataService.getDeviceWorkDataPage(page, startDate, endDate); + public ResponseResult getDeviceWorkDataPage(Page page, String stationId, String startDate, + String endDate) { + Page deviceWorkDataPage = deviceWorkDataService.getDeviceWorkDataPage(page, stationId, + startDate, endDate); return ResponseResult.successData(deviceWorkDataPage); } + public List processMinuteDataOptimized(List deviceWorkDataList) { + return null; + } + + @GetMapping("/getHistoricalCurve") + @ApiOperation("查询历史曲线") + public ResponseResult getHistoricalCurve(String stationId, String type) { + List deviceWorkDataList = deviceWorkDataService.getHistoricalCurve(stationId); + + Map historicalCurve = new HashMap<>(); + historicalCurve.put("xAxis", JSONUtil.parseObj("{\n" + + " type: 'category',\n" + + " data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']\n" + + " }")); + + historicalCurve.put("yAxis", JSONUtil.parseObj("{\n" + + " type: 'value'\n" + + " }")); + + historicalCurve.put("series", JSONUtil.parseArray("[\n" + + " {\n" + + " name: 'Step Start',\n" + + " type: 'line',\n" + + " step: 'start',\n" + + " data: [120, 132, 101, 134, 90, 230, 210]\n" + + " },\n" + + " {\n" + + " name: 'Step Middle',\n" + + " type: 'line',\n" + + " step: 'middle',\n" + + " data: [220, 282, 201, 234, 290, 430, 410]\n" + + " },\n" + + " {\n" + + " name: 'Step End',\n" + + " type: 'line',\n" + + " step: 'end',\n" + + " data: [450, 432, 401, 454, 590, 530, 510]\n" + + " }\n" + + " ]")); + + return ResponseResult.successData(historicalCurve); + } + } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/mapper/DeviceSignalMapper.java b/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/mapper/DeviceSignalMapper.java index 2881da9..c3a793b 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/mapper/DeviceSignalMapper.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/mapper/DeviceSignalMapper.java @@ -19,7 +19,7 @@ public interface DeviceSignalMapper extends BaseMapper { DeviceSignal selectOneDeviceSignal(String slaveIp, String type, String address); Map selectDeviceSignalMap(String slaveIp, String type, String address); - List> getDeviceSignalMaps(String mainDeviceId, String signalName); + List> getDeviceSignalMaps(String stationCode, String signalName); List selectDeviceSignalByIp(String ip); @Update("UPDATE fk_device_signal SET yc_value = #{value}, lastmodifydate = #{datetime} WHERE yc_addr = #{node_addr}") diff --git a/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/mapper/DeviceWorkDataMapper.java b/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/mapper/DeviceWorkDataMapper.java index 0465e66..bceaffb 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/mapper/DeviceWorkDataMapper.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/mapper/DeviceWorkDataMapper.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yfd.platform.modules.auxcontrol.domain.DeviceWorkData; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; + /** *

* 变电站-设备-运行数据 Mapper 接口 @@ -14,5 +16,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface DeviceWorkDataMapper extends BaseMapper { - Page getDeviceWorkDataPage(Page page, String startDate, String endDate); + Page getDeviceWorkDataPage(Page page,String stationId, String startDate, String endDate); + + List getHistoricalCurve(String stationId); + + } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/service/IDeviceSignalService.java b/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/service/IDeviceSignalService.java index d4141ca..d37e595 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/service/IDeviceSignalService.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/service/IDeviceSignalService.java @@ -53,7 +53,7 @@ public interface IDeviceSignalService extends IService { ***********************************/ Page getDeviceSignalPage(String deviceId, String signalName, Page page); - List> getDeviceSignalMaps(String mainDeviceId, String signalName); + List> getDeviceSignalMaps(String stationCode, String signalName); Map querySignalDataById(String signalId); diff --git a/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/service/IDeviceWorkDataService.java b/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/service/IDeviceWorkDataService.java index a54b0d7..2ae2840 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/service/IDeviceWorkDataService.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/service/IDeviceWorkDataService.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yfd.platform.modules.auxcontrol.domain.DeviceWorkData; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** *

* 变电站-设备-运行数据 服务类 @@ -26,6 +28,8 @@ public interface IDeviceWorkDataService extends IService { ***********************************/ void insertData(String from, String slave_ip, String address, String value, String dateTimeString); - Page getDeviceWorkDataPage(Page page, String startDate, String endDate); + Page getDeviceWorkDataPage(Page page,String stationId, String startDate, String endDate); + + List getHistoricalCurve(String stationId); } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/service/impl/DeviceSignalServiceImpl.java b/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/service/impl/DeviceSignalServiceImpl.java index 7ec8c66..0a2aa9a 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/service/impl/DeviceSignalServiceImpl.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/service/impl/DeviceSignalServiceImpl.java @@ -129,8 +129,8 @@ public class DeviceSignalServiceImpl extends ServiceImpl> getDeviceSignalMaps(String mainDeviceId, String signalName) { - return deviceSignalMapper.getDeviceSignalMaps(mainDeviceId, signalName); + public List> getDeviceSignalMaps(String stationCode, String signalName) { + return deviceSignalMapper.getDeviceSignalMaps(stationCode, signalName); } @Override diff --git a/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/service/impl/DeviceWorkDataServiceImpl.java b/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/service/impl/DeviceWorkDataServiceImpl.java index 025ef06..8121f9a 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/service/impl/DeviceWorkDataServiceImpl.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/auxcontrol/service/impl/DeviceWorkDataServiceImpl.java @@ -72,8 +72,13 @@ public class DeviceWorkDataServiceImpl extends ServiceImpl getDeviceWorkDataPage(Page page, String startDate, String endDate) { - return deviceWorkDataMapper.getDeviceWorkDataPage(page,startDate,endDate); + public Page getDeviceWorkDataPage(Page page,String stationId, String startDate, String endDate) { + return deviceWorkDataMapper.getDeviceWorkDataPage(page,stationId,startDate,endDate); + } + + @Override + public List getHistoricalCurve(String stationId) { + return deviceWorkDataMapper.getHistoricalCurve(stationId); } } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationMaindeviceController.java b/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationMaindeviceController.java index 0f47ab0..bbeb2ba 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationMaindeviceController.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/basedata/controller/SubstationMaindeviceController.java @@ -462,8 +462,8 @@ public class SubstationMaindeviceController { @GetMapping("/getDeviceSignalTree") @ApiOperation("获取信号树(前台)") - public ResponseResult getDeviceSignalTree(String mainDeviceId,String signalName) { - List treeNodes = substationMaindeviceService.getDeviceSignalTree(mainDeviceId,signalName); + public ResponseResult getDeviceSignalTree(String stationCode,String signalName) { + List treeNodes = substationMaindeviceService.getDeviceSignalTree(stationCode,signalName); return ResponseResult.successData(treeNodes); } } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/basedata/service/ISubstationMaindeviceService.java b/riis-system/src/main/java/com/yfd/platform/modules/basedata/service/ISubstationMaindeviceService.java index 9b3d151..3bdb88a 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/basedata/service/ISubstationMaindeviceService.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/basedata/service/ISubstationMaindeviceService.java @@ -124,5 +124,5 @@ public interface ISubstationMaindeviceService extends IService getDeviceSignalTree(String mainDeviceId,String signalName); + List getDeviceSignalTree(String stationCode,String signalName); } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/basedata/service/impl/SubstationMaindeviceServiceImpl.java b/riis-system/src/main/java/com/yfd/platform/modules/basedata/service/impl/SubstationMaindeviceServiceImpl.java index f12ba69..2ba56b9 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/basedata/service/impl/SubstationMaindeviceServiceImpl.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/basedata/service/impl/SubstationMaindeviceServiceImpl.java @@ -681,8 +681,8 @@ public class SubstationMaindeviceServiceImpl extends ServiceImpl getDeviceSignalTree(String mainDeviceId, String signalName) { - List> dataList = deviceSignalService.getDeviceSignalMaps(mainDeviceId, signalName); + public List getDeviceSignalTree(String stationCode, String signalName) { + List> dataList = deviceSignalService.getDeviceSignalMaps(stationCode, signalName); List treeNodes = this.buildSignalTree(dataList); if (treeNodes.size() <= 0) { return treeNodes; @@ -698,6 +698,12 @@ public class SubstationMaindeviceServiceImpl extends ServiceImpl data : dataList) { // 1. 解析各层级信息(根据实际字段名称调整) + String stationCode = (String) data.get("stationCode"); + String stationName = (String) data.get("stationName"); + String areaId = (String) data.get("areaId"); + String areaName = (String) data.get("areaName"); + String bayId = (String) data.get("bayId"); + String bayName = (String) data.get("bayName"); String mainDeviceId = (String) data.get("mainDeviceId"); String mainDeviceName = (String) data.get("mainDeviceName"); String componentId = (String) data.get("componentId"); @@ -705,33 +711,61 @@ public class SubstationMaindeviceServiceImpl extends ServiceImpl { - TreeNode node = new TreeNode(mainDeviceId, mainDeviceName); + TreeNode node = new TreeNode(stationCode, stationName); roots.add(node); // 将变电站作为根节点 return node; }); - - if (StrUtil.isNotBlank(componentId)) { - TreeNode componentNode = nodeMap.computeIfAbsent(componentId, + if (StrUtil.isNotBlank(areaId)) { + // 处理变电站层级 + TreeNode areaNode = nodeMap.computeIfAbsent(areaId, k -> { - TreeNode node = new TreeNode(componentId, componentName); - mainDeviceNode.getChildren().add(node); + TreeNode node = new TreeNode(areaId, areaName); + stationNode.getChildren().add(node); // 将变电站作为根节点 return node; }); - // 处理间隔层级 - if (StrUtil.isNotBlank(signalId)) { - TreeNode signalNode = nodeMap.computeIfAbsent(signalId, + // 处理区域层级 + if (StrUtil.isNotBlank(bayId)) { + TreeNode bayNode = nodeMap.computeIfAbsent(bayId, k -> { - TreeNode node = new TreeNode(signalId, signalName); - componentNode.getChildren().add(node); + TreeNode node = new TreeNode(bayId, bayName); + areaNode.getChildren().add(node); return node; }); + // 处理间隔层级 + if (StrUtil.isNotBlank(mainDeviceId)) { + TreeNode mainDeviceNode = nodeMap.computeIfAbsent(mainDeviceId, + k -> { + TreeNode node = new TreeNode(mainDeviceId, mainDeviceName); + bayNode.getChildren().add(node); + return node; + }); + + // 处理主设备层级 + if (StrUtil.isNotBlank(componentId)) { + TreeNode componentNode = nodeMap.computeIfAbsent(componentId, + k -> { + TreeNode node = new TreeNode(componentId, componentName); + mainDeviceNode.getChildren().add(node); + return node; + }); + if (StrUtil.isNotBlank(signalId)) { + nodeMap.computeIfAbsent(signalId, + k -> { + TreeNode node = new TreeNode(signalId, signalName); + componentNode.getChildren().add(node); + return node; + }); + } + } + + } } } + } return roots; } diff --git a/riis-system/src/main/resources/mapper/auxcontrol/DeviceSignalMapper.xml b/riis-system/src/main/resources/mapper/auxcontrol/DeviceSignalMapper.xml index f210f69..ad99829 100644 --- a/riis-system/src/main/resources/mapper/auxcontrol/DeviceSignalMapper.xml +++ b/riis-system/src/main/resources/mapper/auxcontrol/DeviceSignalMapper.xml @@ -55,13 +55,18 @@ isc.main_device_id, isc.main_device_name, isc.component_id, - isc.component_name + isc.component_name, + isc.station_code, + isc.area_id, + isc.area_name, + isc.bay_id, + isc.bay_name FROM fk_device_signal fds INNER JOIN iis_substation_component isc ON isc.component_id = fds.main_compnent_id WHERE 1=1 - - AND fds.main_device_id = #{mainDeviceId} + + AND isc.station_code = #{stationCode} diff --git a/riis-system/src/main/resources/mapper/auxcontrol/DeviceWorkDataMapper.xml b/riis-system/src/main/resources/mapper/auxcontrol/DeviceWorkDataMapper.xml index 00f577d..e8344df 100644 --- a/riis-system/src/main/resources/mapper/auxcontrol/DeviceWorkDataMapper.xml +++ b/riis-system/src/main/resources/mapper/auxcontrol/DeviceWorkDataMapper.xml @@ -15,6 +15,7 @@ FROM fk_device_work_data WHERE 1=1 + AND station_id=#{stationId} AND start_time >= #{startDate} @@ -24,4 +25,17 @@ ORDER BY start_time DESC +