From b961a45d4cf16163c721e14c413fac99668f6016 Mon Sep 17 00:00:00 2001 From: weitang Date: Fri, 9 May 2025 17:27:09 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=AF=E5=A2=83=E6=95=B0=E6=8D=AE=E5=B1=95?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DeviceWorkDataController.java | 14 ++++++++ .../mapper/DeviceWorkDataMapper.java | 2 ++ .../service/IDeviceWorkDataService.java | 3 ++ .../impl/DeviceWorkDataServiceImpl.java | 5 +++ .../service/impl/WeatherLogServiceImpl.java | 36 ++++--------------- .../controller/AlarmLogController.java | 7 ++++ .../service/impl/AlarmLogServiceImpl.java | 33 +++++------------ .../auxcontrol/DeviceWorkDataMapper.xml | 36 +++++++++++++++++++ 8 files changed, 83 insertions(+), 53 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 bd685fc..c79504d 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 @@ -46,6 +46,13 @@ public class DeviceWorkDataController { return ResponseResult.successData(deviceWorkDataPage); } + @GetMapping("/getDeviceWorkData") + @ApiOperation("查询变电站设备运行数据") + public ResponseResult getDeviceWorkData(String stationId) { + List> map = deviceWorkDataService.getDeviceWorkData(stationId); + return ResponseResult.successData(map); + } + public Map processDeviceData(List deviceWorkDataList, String signalId) { // 生成过去60分钟的分钟时间槽 LocalDateTime now = LocalDateTime.now().truncatedTo(ChronoUnit.MINUTES); @@ -109,4 +116,11 @@ public class DeviceWorkDataController { return ResponseResult.successData(map); } + @GetMapping("/insertData") + @ApiOperation("生成遥测数据") + public ResponseResult insertData(String from, String type, String slaveIp, String address, String value) { + deviceWorkDataService.insertData(from, type, slaveIp, address, value); + return ResponseResult.success(); + } + } 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 b20b6de..f973eaa 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 @@ -5,6 +5,7 @@ import com.yfd.platform.modules.auxcontrol.domain.DeviceWorkData; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import java.util.List; +import java.util.Map; /** *

@@ -35,4 +36,5 @@ public interface DeviceWorkDataMapper extends BaseMapper { ***********************************/ List getHistoricalCurve(String signalId); + List> getDeviceWorkData(String stationId); } 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 abb746c..f16ba3d 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 @@ -5,6 +5,7 @@ import com.yfd.platform.modules.auxcontrol.domain.DeviceWorkData; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -45,4 +46,6 @@ public interface IDeviceWorkDataService extends IService { ***********************************/ List getHistoricalCurve(String signalId); + List> getDeviceWorkData(String stationId); + } 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 712d760..93b8d5e 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 @@ -94,4 +94,9 @@ public class DeviceWorkDataServiceImpl extends ServiceImpl> getDeviceWorkData(String stationId) { + return deviceWorkDataMapper.getDeviceWorkData(stationId); + } + } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/basedata/service/impl/WeatherLogServiceImpl.java b/riis-system/src/main/java/com/yfd/platform/modules/basedata/service/impl/WeatherLogServiceImpl.java index 01e4126..34b18fa 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/basedata/service/impl/WeatherLogServiceImpl.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/basedata/service/impl/WeatherLogServiceImpl.java @@ -3,6 +3,7 @@ package com.yfd.platform.modules.basedata.service.impl; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yfd.platform.modules.auxcontrol.mapper.DeviceWorkDataMapper; import com.yfd.platform.modules.basedata.domain.WeatherLog; import com.yfd.platform.modules.basedata.mapper.WeatherLogMapper; import com.yfd.platform.modules.basedata.service.IWeatherLogService; @@ -27,7 +28,7 @@ import java.util.stream.Collectors; public class WeatherLogServiceImpl extends ServiceImpl implements IWeatherLogService { @Resource - private ISysDictionaryItemsService sysDictionaryItemsService; + private DeviceWorkDataMapper deviceWorkDataMapper; /********************************** * 用途说明: 查询环境信息 @@ -36,34 +37,11 @@ public class WeatherLogServiceImpl extends ServiceImpl getWeatherLogList(String stationId) { - - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(WeatherLog::getStationId, stationId).eq(WeatherLog::getDatastatus, "1").orderByDesc(WeatherLog::getTime); - List list = this.list(queryWrapper); - Map> collect = - list.stream().filter(s -> StrUtil.isNotBlank(s.getType())).collect(Collectors.groupingBy(WeatherLog::getType)); - List> environmentType = sysDictionaryItemsService.getDeviceByType("EnvironmentType"); - Map weatherDevice = new HashMap<>(); - for (Map map : environmentType) { - String itemcode = map.get("itemcode").toString(); - String value = ""; - for (String type : collect.keySet()) { - List weatherLogs = collect.get(type); - if (type.equals(itemcode)) { - WeatherLog weatherLog = weatherLogs.get(0); - String value1 = weatherLog.getValue(); - if (StrUtil.isNotBlank(value1)) { - value = value1; - } - break; - } - } - String custom2 = map.get("custom2").toString(); - weatherDevice.put(custom2, value); + List> deviceWorkData = deviceWorkDataMapper.getDeviceWorkData(stationId); + Map map = new HashMap<>(); + for (Map deviceWorkDatum : deviceWorkData) { + map.put(deviceWorkDatum.get("itemcode").toString(), deviceWorkDatum.get("value")); } - String environment = "气温" + weatherDevice.get("temperature") + "°C,气压" + weatherDevice.get("pressure") + "Kpa" + - ",风速" + weatherDevice.get("windSpeed") + "m/s"; - weatherDevice.put("environment", environment); - return weatherDevice; + return map; } } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/patroltask/controller/AlarmLogController.java b/riis-system/src/main/java/com/yfd/platform/modules/patroltask/controller/AlarmLogController.java index c77ee29..eb08f4d 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/patroltask/controller/AlarmLogController.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/patroltask/controller/AlarmLogController.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yfd.platform.component.WebSocketServer; import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.modules.auxcontrol.service.IDeviceWorkDataService; import com.yfd.platform.modules.basedata.domain.DeviceChannel; import com.yfd.platform.modules.basedata.domain.SubstationDevice; import com.yfd.platform.modules.basedata.service.IDeviceChannelService; @@ -54,6 +55,9 @@ public class AlarmLogController { @Resource private ISubstationDeviceService substationDeviceService; + @Resource + private IDeviceWorkDataService deviceWorkDataService; + @GetMapping("/getAlarmLogList") @ApiOperation("查询报警信息") public ResponseResult getAlarmLogList(String stationId) { @@ -288,10 +292,13 @@ public class AlarmLogController { @GetMapping("/createAlarmData") @ApiOperation("生成报警") public ResponseResult createAlarmData(String from,String type,String slaveIp,String address,String value) { + deviceWorkDataService.insertData(from, type, slaveIp, address, value); alarmLogService.doAlaramRecord(from, type, slaveIp, address, value); // alarmLogService.doAlaramRecord("IEC61850", "yx", "192.168.1.1", "10", "2"); return ResponseResult.success(); } + + } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/patroltask/service/impl/AlarmLogServiceImpl.java b/riis-system/src/main/java/com/yfd/platform/modules/patroltask/service/impl/AlarmLogServiceImpl.java index 343941e..12bdde3 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/patroltask/service/impl/AlarmLogServiceImpl.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/patroltask/service/impl/AlarmLogServiceImpl.java @@ -2204,19 +2204,12 @@ public class AlarmLogServiceImpl extends ServiceImpl i if ("1".equals(value)) { //填充告警记录信息接口 AlarmLog alarmLog = FillingDeviceAlarmRecord(type, null, map, value); - //首先判断 在不在时间范围之内 判断时间在不在时间范围之内接口 - Map timeInterval = getTimeInterval(7); - //查询表中是否存在该报警记录 - List alarmRecords = queryDeviceAlarmRecord(alarmLog, timeInterval); - //如果没有有报警记录 新增记录 - if (alarmRecords.size() == 0) { - doAlarmAction(alarmLog); - } else if (alarmRecords.size() > 1) { - this.removeById(alarmRecords.get(0).getId()); - } + doAlarmAction(alarmLog); + WebSocketServer.sendInfo(alarmLog.getStationId(), JSONUtil.parseObj(alarmLog).toString()); } } - } else if ("yc".equals(type)) { + } + if ("yc".equals(type)) { //1.通过设备id 和信号id 查询告警参数设置表(告警规则) LambdaQueryWrapper querywrapperdap = new LambdaQueryWrapper<>(); if (StrUtil.isNotEmpty(map.get("meterDeviceId").toString())) { @@ -2232,28 +2225,20 @@ public class AlarmLogServiceImpl extends ServiceImpl i if (deviceAlarmParameter.getAlarmCondition() != null) { //根据告警规则 判断是否触发告警 boolean alarmTrigger = TriggerAlarm(deviceAlarmParameter, value); - //2.通过告警触发条件 和 value比较 满足条件 触发告警 if (alarmTrigger) { AlarmLog alarmLog = FillingDeviceAlarmRecord(type, deviceAlarmParameter , map, value); - //首先判断 在不在时间范围之内 判断时间在不在时间范围之内接口 - Map timeInterval = getTimeInterval(7); - //如果在时间范围内 - //查询表中是否存在该报警记录 - List alarmRecords = queryDeviceAlarmRecord(alarmLog, - timeInterval); - //如果没有有报警记录 新增记录 - if (alarmRecords.size() == 0) { - // 新增 - alarmLogMapper.insert(alarmLog); - //TODO 邮件推送暂时删除了 - } + // 新增 + alarmLogMapper.insert(alarmLog); + //TODO 邮件推送暂时删除了 + WebSocketServer.sendInfo(alarmLog.getStationId(), JSONUtil.parseObj(alarmLog).toString()); } } } } } + log.info("-----------------------------告警创建完毕------------------------------------"); } diff --git a/riis-system/src/main/resources/mapper/auxcontrol/DeviceWorkDataMapper.xml b/riis-system/src/main/resources/mapper/auxcontrol/DeviceWorkDataMapper.xml index cd1a543..bf60b62 100644 --- a/riis-system/src/main/resources/mapper/auxcontrol/DeviceWorkDataMapper.xml +++ b/riis-system/src/main/resources/mapper/auxcontrol/DeviceWorkDataMapper.xml @@ -38,4 +38,40 @@ ORDER BY start_time DESC +