diff --git a/mh-common/src/main/java/com/mh/common/model/request/AdvantechDatas.java b/mh-common/src/main/java/com/mh/common/model/request/AdvantechDatas.java index 987525b..dea0bb2 100644 --- a/mh-common/src/main/java/com/mh/common/model/request/AdvantechDatas.java +++ b/mh-common/src/main/java/com/mh/common/model/request/AdvantechDatas.java @@ -22,4 +22,9 @@ public class AdvantechDatas { */ private T value; + /** + * 质量值 + */ + private T quality; + } diff --git a/mh-system/src/main/java/com/mh/system/service/operation/IAlarmCodeService.java b/mh-system/src/main/java/com/mh/system/service/operation/IAlarmCodeService.java index 05d9d76..705381b 100644 --- a/mh-system/src/main/java/com/mh/system/service/operation/IAlarmCodeService.java +++ b/mh-system/src/main/java/com/mh/system/service/operation/IAlarmCodeService.java @@ -22,5 +22,5 @@ public interface IAlarmCodeService { int deleteAlarmCodeByIds(String[] acIds); - AlarmCode selectAlarmCodeByAlarmType(String eventType); + List selectAlarmCodeByAlarmType(String eventType); } diff --git a/mh-system/src/main/java/com/mh/system/service/operation/impl/AlarmCodeServiceImpl.java b/mh-system/src/main/java/com/mh/system/service/operation/impl/AlarmCodeServiceImpl.java index ced2e77..a1fd897 100644 --- a/mh-system/src/main/java/com/mh/system/service/operation/impl/AlarmCodeServiceImpl.java +++ b/mh-system/src/main/java/com/mh/system/service/operation/impl/AlarmCodeServiceImpl.java @@ -85,12 +85,13 @@ public class AlarmCodeServiceImpl implements IAlarmCodeService { } @Override - public AlarmCode selectAlarmCodeByAlarmType(String eventType) { + public List selectAlarmCodeByAlarmType(String eventType) { if (StringUtils.isEmpty(eventType)) { return null; } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("event_type", eventType); - return alarmCodeMapper.selectOne(queryWrapper); + List alarmCodes = alarmCodeMapper.selectList(queryWrapper); + return alarmCodes; } } diff --git a/mh-system/src/main/java/com/mh/system/service/operation/impl/AlarmRecordsServiceImpl.java b/mh-system/src/main/java/com/mh/system/service/operation/impl/AlarmRecordsServiceImpl.java index 0c9a08b..e5bffc0 100644 --- a/mh-system/src/main/java/com/mh/system/service/operation/impl/AlarmRecordsServiceImpl.java +++ b/mh-system/src/main/java/com/mh/system/service/operation/impl/AlarmRecordsServiceImpl.java @@ -176,30 +176,35 @@ public class AlarmRecordsServiceImpl implements IAlarmRecordsService { if ("0".equals(alarmRule.getAlarmType())) { // 当前是越限事件 // 查询事件类型查询对应的报警模板内容 - AlarmCode alarmCode = alarmCodeService.selectAlarmCodeByAlarmType(alarmRule.getEventType()); - // 获取当前采集参数值 - CollectionParamsManage collectionParamsManage = collectionParamsManageService.selectCollectionParamsManageById(alarmRule.getCpmId()); - // 判断当前值是否是当前事件 - if (null == collectionParamsManage) { + List alarmCodes = alarmCodeService.selectAlarmCodeByAlarmType(alarmRule.getEventType()); + if (alarmCodes == null || alarmCodes.isEmpty()) { continue; } - AlarmRecords alarmRecords = new AlarmRecords(); - BigDecimal curValue = collectionParamsManage.getCurValue(); - Date curTime = collectionParamsManage.getCurTime(); - // 阈值 - String threshold1 = alarmRule.getThreshold1(); - String threshold2 = alarmRule.getThreshold2(); - // 设置Redis取消标记(有效期略大于延迟时间) - redisTemplate.deleteObject("alarm:cancel:" + collectionParamsManage.getId()); - if (alarmRule.getTimePeriodSet() == 0 && DateUtils.isSameDay(curTime, new Date())) { - // 执行相关操作 - insertOrUpdateRecord(alarmRule, curValue, threshold1, threshold2, alarmCode, alarmRecords, collectionParamsManage); - } else if (alarmRule.getTimePeriodSet() == 1 - && DateUtils.isSameDay(collectionParamsManage.getCurTime(), new Date()) - && DateUtils.isCurrentTimeInRange(alarmRule.getBeginTime(), alarmRule.getEndTime(), curTime) - ) { - // 执行相关操作 - insertOrUpdateRecord(alarmRule, curValue, threshold1, threshold2, alarmCode, alarmRecords, collectionParamsManage); + for (AlarmCode alarmCode : alarmCodes) { + // 获取当前采集参数值 + CollectionParamsManage collectionParamsManage = collectionParamsManageService.selectCollectionParamsManageById(alarmRule.getCpmId()); + // 判断当前值是否是当前事件 + if (null == collectionParamsManage) { + continue; + } + AlarmRecords alarmRecords = new AlarmRecords(); + BigDecimal curValue = collectionParamsManage.getCurValue(); + Date curTime = collectionParamsManage.getCurTime(); + // 阈值 + String threshold1 = alarmRule.getThreshold1(); + String threshold2 = alarmRule.getThreshold2(); + // 设置Redis取消标记(有效期略大于延迟时间) + redisTemplate.deleteObject("alarm:cancel:" + collectionParamsManage.getId()); + if (alarmRule.getTimePeriodSet() == 0 && DateUtils.isSameDay(curTime, new Date())) { + // 执行相关操作 + insertOrUpdateRecord(alarmRule, curValue, threshold1, threshold2, alarmCode, alarmRecords, collectionParamsManage); + } else if (alarmRule.getTimePeriodSet() == 1 + && DateUtils.isSameDay(collectionParamsManage.getCurTime(), new Date()) + && DateUtils.isCurrentTimeInRange(alarmRule.getBeginTime(), alarmRule.getEndTime(), curTime) + ) { + // 执行相关操作 + insertOrUpdateRecord(alarmRule, curValue, threshold1, threshold2, alarmCode, alarmRecords, collectionParamsManage); + } } } } @@ -241,7 +246,13 @@ public class AlarmRecordsServiceImpl implements IAlarmRecordsService { "true", 2, TimeUnit.MINUTES // 例如:延迟5分钟,设置10分钟过期 ); - insertOrUpdateRecord(alarmRule, curValue, threshold1, threshold2, alarmCodeService.selectAlarmCodeByAlarmType(alarmRule.getEventType()), alarmRecords, collectionParamsManage); + List alarmCode = alarmCodeService.selectAlarmCodeByAlarmType(alarmRule.getEventType()); + if (alarmCode == null || alarmCode.isEmpty()) { + continue; + } + for (AlarmCode code : alarmCode) { + insertOrUpdateRecord(alarmRule, curValue, threshold1, threshold2, code, alarmRecords, collectionParamsManage); + } } } }