|
|
@@ -6,22 +6,20 @@ import org.jetbrains.annotations.NotNull;
|
|
|
import org.springframework.context.ApplicationEventPublisher;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import vip.xiaonuo.coldchain.core.alarm.bean.NotificationChannel;
|
|
|
import vip.xiaonuo.coldchain.core.alarm.bean.SensorAlarm;
|
|
|
import vip.xiaonuo.coldchain.core.alarm.bean.SensorAlarmUser;
|
|
|
import vip.xiaonuo.coldchain.core.alarm.config.ColdChainAlarmMessageProperties;
|
|
|
import vip.xiaonuo.coldchain.core.alarm.enums.SensorAlarmType;
|
|
|
-import vip.xiaonuo.coldchain.core.alarm.service.messagepush.LocalSensorAlarmMessagePushService;
|
|
|
import vip.xiaonuo.coldchain.core.alarm.service.messagepush.RedisSensorAlarmMessagePushService;
|
|
|
import vip.xiaonuo.coldchain.core.event.SensorAlarmEvent;
|
|
|
import vip.xiaonuo.coldchain.core.renke.config.JfcloudColdChainServerProperties;
|
|
|
-import vip.xiaonuo.coldchain.modular.monitordevice.entity.MonitorDevice;
|
|
|
import vip.xiaonuo.coldchain.modular.monitordevice.service.MonitorDeviceService;
|
|
|
import vip.xiaonuo.coldchain.modular.monitortarget.enums.MonitorStatusEnum;
|
|
|
import vip.xiaonuo.coldchain.modular.monitortarget.service.MonitorTargetService;
|
|
|
import vip.xiaonuo.coldchain.modular.monitortargetregion.entity.MonitorTargetRegion;
|
|
|
import vip.xiaonuo.coldchain.modular.monitortargetregion.service.MonitorTargetRegionService;
|
|
|
import vip.xiaonuo.common.cache.CommonCacheOperator;
|
|
|
-import vip.xiaonuo.common.exception.CommonException;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
@@ -138,8 +136,8 @@ public class DeviceOfflineDetectionService {
|
|
|
log.debug("设备 {}-{} 在线,最后上报时间:{}。", deviceCode, route, lastReportTimeStr);
|
|
|
MonitorTargetRegion monitorTargetRegion = monitorTargetRegionService.findOneByDeviceCodeAndSensorNo(deviceCode, route);
|
|
|
if (Objects.nonNull(monitorTargetRegion)) {
|
|
|
- if (redisSensorAlarmMessagePushService.hasExceededPushLimitLike("*", monitorTargetRegion.getId(), route,"设备离线")) {
|
|
|
- publishAlarm(deviceCode, route, lastReportTimeStr, "设备上线",SensorAlarmType.SENSOR_ON_LINE.getDeviceCode());
|
|
|
+ if (redisSensorAlarmMessagePushService.hasExceededPushLimitLike("*", monitorTargetRegion.getId(), route, "设备离线")) {
|
|
|
+ publishAlarm(deviceCode, route, lastReportTimeStr, "设备上线", SensorAlarmType.SENSOR_ON_LINE.getDeviceCode());
|
|
|
}
|
|
|
} else {
|
|
|
log.error("未找到设备编号 [{}] 和传感器编号 [{}] 对应的监控目标区域", deviceCode, route);
|
|
|
@@ -162,7 +160,7 @@ public class DeviceOfflineDetectionService {
|
|
|
* jackzhou add 设备下线预警标识
|
|
|
*/
|
|
|
if (Objects.isNull(monitorTargetRegion.getDeviceOfflineAlarm()) || !monitorTargetRegion.getDeviceOfflineAlarm()) {
|
|
|
- log.error("***********************设备未启动设备下线预警设置");
|
|
|
+ log.warn("设备未启动设备下线预警设置");
|
|
|
return;
|
|
|
}
|
|
|
String monitorTargetId = monitorTargetRegion.getMonitorTargetId();
|
|
|
@@ -197,6 +195,12 @@ public class DeviceOfflineDetectionService {
|
|
|
sensorAlarm.setRoomName(monitorTargetRegion.getRoomName());
|
|
|
sensorAlarm.setType(type);
|
|
|
log.warn("设备断电报警: 类型: {},详细报警内容 : {}", alarmType, alarmMessage);
|
|
|
+ // jackzhou 2025.10.21 添加短信预警通知类型
|
|
|
+ if (Boolean.TRUE.equals(monitorTargetRegion.getSmgOfflineAlarm())) {
|
|
|
+ List<NotificationChannel> channels = new ArrayList<>(sensorAlarm.getNotificationChannel());
|
|
|
+ channels.add(NotificationChannel.SMS);
|
|
|
+ sensorAlarm.setNotificationChannel(channels);
|
|
|
+ }
|
|
|
// 发布报警事件
|
|
|
applicationEventPublisher.publishEvent(new SensorAlarmEvent(this, sensorAlarm));
|
|
|
}
|