From 2bbc0abc0819744c880173489f88a159dab74f7b Mon Sep 17 00:00:00 2001 From: mashili Date: Mon, 29 Sep 2025 10:14:46 +0800 Subject: [PATCH] =?UTF-8?q?0918=E4=BC=98=E5=8C=96-=E5=91=8A=E8=AD=A6?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ems/mapper/EmsAlarmRecordsMapper.java | 8 ++++++- .../ems/service/IEmsAlarmRecordsService.java | 5 +++- .../impl/EmsAlarmRecordsServiceImpl.java | 20 ++++++++++++++-- .../service/impl/EmsTicketServiceImpl.java | 24 +++++++++++++++++++ .../impl/FXXDataProcessServiceImpl.java | 2 +- .../mapper/ems/EmsAlarmRecordsMapper.xml | 17 ++++++++++++- 6 files changed, 70 insertions(+), 6 deletions(-) diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAlarmRecordsMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAlarmRecordsMapper.java index 41751b6..d7eeb52 100644 --- a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAlarmRecordsMapper.java +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAlarmRecordsMapper.java @@ -99,5 +99,11 @@ public interface EmsAlarmRecordsMapper public void batchUpsert(@Param("recordsList")List recordsList); // 获取所有没有处理完成的告警记录 - public List getAllUnfinishedRecords(@Param("needUpdateKeys")List needUpdateKeys,@Param("siteId") String siteId); + public List getAllUnfinishedRecords(@Param("needUpdateKeys")List needUpdateKeys,@Param("siteId") String siteId, + @Param("deviceId") String deviceId); + + // 根据ticketNo更新告警状态 + public EmsAlarmRecords getAlarmByTicketNo(@Param("ticketNo")String ticketNo); + //获取指定设备未处理和处理中的告警 + public List getNeedPutRedisAlarm(@Param("siteId")String siteId, @Param("deviceId")String deviceId); } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/IEmsAlarmRecordsService.java b/ems-system/src/main/java/com/xzzn/ems/service/IEmsAlarmRecordsService.java index 9fc29d1..139d857 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/IEmsAlarmRecordsService.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/IEmsAlarmRecordsService.java @@ -88,8 +88,11 @@ public interface IEmsAlarmRecordsService public void initAlarmMatchInfo(); // 获取所有没有处理完成的告警记录 - public List getAllUnfinishedRecords(List needUpdateKeys, String siteId); + public List getAllUnfinishedRecords(List needUpdateKeys, String siteId, String deviceId); // 批量处理告警数据 public void batchProcessAlarmRecords(List recordsList); + + // 根据site_id和deviceId更新对应的redis + public void updateRedisAlarmRecords(String siteId, String deviceId); } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsAlarmRecordsServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsAlarmRecordsServiceImpl.java index 146c54e..08fcc62 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsAlarmRecordsServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsAlarmRecordsServiceImpl.java @@ -9,6 +9,7 @@ import com.xzzn.common.core.domain.entity.SysUser; import com.xzzn.common.core.redis.RedisCache; import com.xzzn.common.enums.AlarmLevelStatus; import com.xzzn.common.enums.AlarmStatus; +import com.xzzn.common.enums.TicketStatus; import com.xzzn.common.utils.DateUtils; import com.xzzn.common.utils.StringUtils; import com.xzzn.ems.domain.EmsAlarmMatchData; @@ -159,6 +160,7 @@ public class EmsAlarmRecordsServiceImpl implements IEmsAlarmRecordsService emsTicket.setContent(emsAlarmRecords.getAlarmContent()); emsTicket.setUserId(userId); emsTicket.setWorkUserId(userId); + emsTicket.setStatus(Long.valueOf(TicketStatus.WAITING.getCode())); emsTicket.setCreateTime(DateUtils.getNowDate()); emsTicket.setCreateBy(user.getUserName()); emsTicket.setUpdateTime(DateUtils.getNowDate()); @@ -267,8 +269,8 @@ public class EmsAlarmRecordsServiceImpl implements IEmsAlarmRecordsService } @Override - public List getAllUnfinishedRecords(List needUpdateKeys, String siteId) { - return emsAlarmRecordsMapper.getAllUnfinishedRecords(needUpdateKeys,siteId); + public List getAllUnfinishedRecords(List needUpdateKeys, String siteId, String deviceId) { + return emsAlarmRecordsMapper.getAllUnfinishedRecords(needUpdateKeys,siteId,deviceId); } @Override @@ -276,5 +278,19 @@ public class EmsAlarmRecordsServiceImpl implements IEmsAlarmRecordsService emsAlarmRecordsMapper.batchUpsert(recordsList); } + @Override + public void updateRedisAlarmRecords(String siteId, String deviceId) { + if (StringUtils.isEmpty(siteId) || StringUtils.isEmpty(deviceId)) { + return; + } + String redisKey = RedisKeyConstants.LATEST_ALARM_RECORD + "_" + siteId +"_" + deviceId; + List allDeviceRecords = emsAlarmRecordsMapper.getNeedPutRedisAlarm(siteId,deviceId); + // 转Map + Map newAlarms = allDeviceRecords.stream() + .filter(a -> !AlarmStatus.DONE.getCode().equals(a.getStatus())) + .collect(Collectors.toMap(EmsAlarmRecords::getAlarmPoint, a -> a)); + redisCache.setAllCacheMapValue(redisKey, newAlarms); + } + } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsTicketServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsTicketServiceImpl.java index 588cc1a..8e41617 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsTicketServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsTicketServiceImpl.java @@ -3,10 +3,15 @@ package com.xzzn.ems.service.impl; import java.util.List; import java.util.Random; +import com.xzzn.common.enums.AlarmStatus; import com.xzzn.common.utils.DateUtils; +import com.xzzn.common.utils.StringUtils; +import com.xzzn.ems.domain.EmsAlarmRecords; import com.xzzn.ems.domain.EmsTicket; import com.xzzn.ems.domain.vo.TicketListVo; +import com.xzzn.ems.mapper.EmsAlarmRecordsMapper; import com.xzzn.ems.mapper.EmsTicketMapper; +import com.xzzn.ems.service.IEmsAlarmRecordsService; import com.xzzn.ems.service.IEmsTicketService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -23,6 +28,10 @@ public class EmsTicketServiceImpl implements IEmsTicketService { @Autowired private EmsTicketMapper emsTicketMapper; + @Autowired + private EmsAlarmRecordsMapper emsAlarmRecordsMapper; + @Autowired + private IEmsAlarmRecordsService iEmsAlarmRecordsService; /** * 查询工单主-工单详情 @@ -76,6 +85,21 @@ public class EmsTicketServiceImpl implements IEmsTicketService @Override public int updateEmsTicket(EmsTicket emsTicket) { + String status = emsTicket.getStatus().toString(); + String ticketNo = emsTicket.getTicketNo(); + // 判断工单状态为:3-已完成 + if ("3".equals(status) && !StringUtils.isEmpty(ticketNo)) { + // 处理告警数据状态-已处理 + EmsAlarmRecords emsAlarmRecords = emsAlarmRecordsMapper.getAlarmByTicketNo(ticketNo); + if (emsAlarmRecords != null) { + emsAlarmRecords.setStatus(AlarmStatus.DONE.getCode()); + emsAlarmRecords.setUpdateTime(DateUtils.getNowDate()); + emsAlarmRecords.setAlarmEndTime(DateUtils.getNowDate()); + emsAlarmRecordsMapper.updateEmsAlarmRecords(emsAlarmRecords); + // 更新告警redis + iEmsAlarmRecordsService.updateRedisAlarmRecords(emsAlarmRecords.getSiteId(),emsAlarmRecords.getDeviceId()); + } + } emsTicket.setUpdateTime(DateUtils.getNowDate()); return emsTicketMapper.updateEmsTicket(emsTicket); } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java index 5c2f718..4fa57ea 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java @@ -866,7 +866,7 @@ public class FXXDataProcessServiceImpl extends AbstractBatteryDataProcessor impl // 批量查询数据库-需要更新的数据 Map needUpdateMap = new HashMap<>(); if (!needUpdateKeys.isEmpty()) { - List records = iEmsAlarmRecordsService.getAllUnfinishedRecords(needUpdateKeys,SITE_ID); + List records = iEmsAlarmRecordsService.getAllUnfinishedRecords(needUpdateKeys,SITE_ID, deviceId); // 转为Map便于快速获取 needUpdateMap = records.stream() .collect(Collectors.toMap( diff --git a/ems-system/src/main/resources/mapper/ems/EmsAlarmRecordsMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsAlarmRecordsMapper.xml index 8b1dcd0..fa7a31d 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsAlarmRecordsMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsAlarmRecordsMapper.xml @@ -192,10 +192,11 @@ limit 1 - WHERE status 1 and site_id = #{siteId} + and device_id = #{deviceId} and alarm_point IN #{key} @@ -246,4 +247,18 @@ status = values(status), device_id = values(device_id) + + + + \ No newline at end of file