fix: 新增电话告警统一配置,是否开启。

This commit is contained in:
tianyongbao
2026-04-05 00:05:33 +08:00
parent 8e7cccc537
commit 6b2817393a
2 changed files with 27 additions and 3 deletions

View File

@@ -101,6 +101,13 @@ public class AliyunIotProperties {
*/ */
private int saturabilityWarnHours = 8; private int saturabilityWarnHours = 8;
/**
* 是否启用报警电话通知
* 全局开关,关闭后所有类型的报警都不会触发电话通知
* 默认开启
*/
private boolean callNoticeEnabled = true;
@Data @Data
public static class VmsMnsConfig { public static class VmsMnsConfig {
/** /**

View File

@@ -570,7 +570,7 @@ public class DeviceDataHandler {
} }
// 仅对开启了电话通知开关的告警触发电话通知MessageWarn 由通知方法内部插入) // 仅对开启了电话通知开关的告警触发电话通知MessageWarn 由通知方法内部插入)
if (!callWarnList.isEmpty()) { if (!callWarnList.isEmpty() && aliyunIotProperties.isCallNoticeEnabled()) {
triggerAlarmNotification(device, alarmMessage.toString(), sensorData, callWarnList); triggerAlarmNotification(device, alarmMessage.toString(), sensorData, callWarnList);
} }
} }
@@ -903,6 +903,11 @@ public class DeviceDataHandler {
* @param deviceName 设备名称serialNum * @param deviceName 设备名称serialNum
*/ */
public void triggerOfflineAlarm(String deviceName) { public void triggerOfflineAlarm(String deviceName) {
// 全局电话通知开关检查
if (!aliyunIotProperties.isCallNoticeEnabled()) {
log.debug("[离线告警] 电话通知已全局关闭,跳过: {}", deviceName);
return;
}
try { try {
Device device = deviceMapper.selectOne( Device device = deviceMapper.selectOne(
new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<Device>() new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<Device>()
@@ -1026,6 +1031,11 @@ public class DeviceDataHandler {
* @param deviceName 设备名称serialNum * @param deviceName 设备名称serialNum
*/ */
public void triggerSaturaHighAlarm(String deviceName) { public void triggerSaturaHighAlarm(String deviceName) {
// 全局电话通知开关检查
if (!aliyunIotProperties.isCallNoticeEnabled()) {
log.debug("[饱和度告警] 电话通知已全局关闭,跳过: {}", deviceName);
return;
}
try { try {
Device device = deviceMapper.selectOne( Device device = deviceMapper.selectOne(
new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<Device>() new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<Device>()
@@ -1151,6 +1161,11 @@ public class DeviceDataHandler {
* @param params 事件参数 * @param params 事件参数
*/ */
private void triggerDeviceErrorAlarm(String deviceName, JSONObject params) { private void triggerDeviceErrorAlarm(String deviceName, JSONObject params) {
// 全局电话通知开关检查
if (!aliyunIotProperties.isCallNoticeEnabled()) {
log.debug("[设备故障] 电话通知已全局关闭,跳过: {}", deviceName);
return;
}
try { try {
Device device = deviceMapper.selectOne( Device device = deviceMapper.selectOne(
new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<Device>() new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<Device>()
@@ -1500,10 +1515,12 @@ public class DeviceDataHandler {
if (userId != null) { if (userId != null) {
MessageWarn warn = createMessageWarn(deviceId, userId, pondName, title, WARN_TYPE_DISSOLVED_OXYGEN, message); MessageWarn warn = createMessageWarn(deviceId, userId, pondName, title, WARN_TYPE_DISSOLVED_OXYGEN, message);
messageWarnMapper.insert(warn); messageWarnMapper.insert(warn);
// 创建电话通知记录 // 创建电话通知记录(全局开关控制)
if (aliyunIotProperties.isCallNoticeEnabled()) {
createCallNotices(device, pondName, warn); createCallNotices(device, pondName, warn);
} }
} }
}
// 写入 DeviceErrorCode 数据库记录 // 写入 DeviceErrorCode 数据库记录
DeviceErrorCode data = new DeviceErrorCode(); DeviceErrorCode data = new DeviceErrorCode();