From b105f0cdd8d803bce60a9e312eb3e41044562685 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Fri, 19 Apr 2024 15:07:14 +0800
Subject: [PATCH] 告警逻辑修改

---
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java |  260 ++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 203 insertions(+), 57 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
index ab8b1f2..7c56647 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
@@ -12,6 +12,7 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -174,6 +175,8 @@
 		AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_z_is_warn_over_flse_api);
+		//过滤不告警水库
+		JSONArray resultData = filterNoAlertRes(ztData, arg1);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -182,7 +185,7 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.waterComeOverHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterComeOverList, true, adCode, true);
+						asyncNoticeHandle.waterComeOverHandle(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.waterComeOverList, true, adCode, true);
 					}
 				}
 			}
@@ -302,6 +305,9 @@
 		AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_over_des_is_warn_api);
+
+		//过滤不告警水库
+		JSONArray resultData = filterNoAlertRes(ztData, arg1);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -310,13 +316,13 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.waterComeDesignHandleBySms(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterComeDesignList1, true, adCode, false, uuid);
+						asyncNoticeHandle.waterComeDesignHandleBySms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.waterComeDesignList1, true, adCode, false, uuid);
 					}
 //					if (alarmRuleDetail.getAlarmMode().equals("电话")) {
 //						asyncNoticeHandle.outCallHandleCall(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.waterComeDesignList2,true, adCode, false,uuid);
 //					}
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.waterComeDesignHandleStation(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterComeDesignList3, true, adCode, true, uuid);
+						asyncNoticeHandle.waterComeDesignHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.waterComeDesignList3, true, adCode, true, uuid);
 					}
 				}
 			}
@@ -599,7 +605,7 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetyHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.damSafetyList, true, adCode, false, uuid);
+						asyncNoticeHandle.damSafetyHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.damSafetyList, true, adCode, false, uuid,arg2);
 					}
 				}
 			}
@@ -623,6 +629,10 @@
 		AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("?is_alarm=1", ZtApiUrlConstant.alarm_db_sy_api);
+
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(ztData,arg1);
+
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -631,7 +641,7 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.damSafetySyHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.damSafetySyList, true, adCode, true, uuid);
+						asyncNoticeHandle.damSafetySyHandle(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.damSafetySyList, true, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -655,6 +665,9 @@
 		AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_none_api);
+
+		JSONArray resultData = filterNoAlertRes(ztData, arg1);
+
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -663,10 +676,10 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetyHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.damSafetyList, true, adCode, false, uuid);
+						asyncNoticeHandle.damSafetyHandle(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.damSafetyList, false, adCode, false, uuid,arg2);
 					}
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.damSafetySyHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.damSafetyList, true, adCode, true, uuid);
+						asyncNoticeHandle.damSafetySyNoneHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.damSafetyList, false, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -690,6 +703,7 @@
 		AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sl_none_api);
+		JSONArray resultData = filterNoAlertRes(ztData, arg1);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -698,7 +712,10 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetyHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.damSafetyList, true, adCode, false, uuid);
+						asyncNoticeHandle.damSafetyHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.damSafetyList, false, adCode, false, uuid,arg2);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetySyNoneHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.damSafetyList, false, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -722,6 +739,7 @@
 		AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_wy_none_api);
+		JSONArray resultData = filterNoAlertRes(ztData, arg1);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -730,7 +748,10 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetyHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.damSafetyList, true, adCode, false, uuid);
+						asyncNoticeHandle.damSafetyHandle(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.damSafetyList, true, adCode, false, uuid,arg2);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetySyNoneHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.damSafetyList, false, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -756,7 +777,7 @@
 		List<AlertTextualResearchAttachVO> syDataMissing = textualResearchAttachClient.getSyDataMissing();
 
 		JSONArray data = JSON.parseArray(JSON.toJSONString(syDataMissing));
-
+		JSONArray resultData = filterNoAlertRes(data, arg1);
 
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -764,8 +785,11 @@
 			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
-					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetySyDataMissingHandle(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.syDataMissingList, true, adCode, true, uuid);
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetySyDataMissingHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syDataMissingList, false, adCode, true, uuid,arg2);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("短信")){
+						asyncNoticeHandle.damSafetySyDataMissingHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syDataMissingList, false, adCode, false, uuid,arg2);
 					}
 				}
 			}
@@ -790,15 +814,18 @@
 		List<AlertTextualResearchAttachVO> syDataMissing = textualResearchAttachClient.getBxDataMissing();
 
 		JSONArray data = JSON.parseArray(JSON.toJSONString(syDataMissing));
-
+		JSONArray resultData = filterNoAlertRes(data, arg1);
 		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
 			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
-					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetySyDataMissingHandle(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.bxDataMissingList, true, adCode, true, uuid);
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetySyDataMissingHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.bxDataMissingList, false, adCode, true, uuid,arg2);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("短信")){
+						asyncNoticeHandle.damSafetySyDataMissingHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.bxDataMissingList, false, adCode, false, uuid,arg2);
 					}
 				}
 			}
@@ -823,7 +850,8 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_less_or_higher_api);
 		JSONArray array = lessOrHigher(ztData, "less");
-
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(array,arg1);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -832,10 +860,10 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetySyLessThenPipeHandleSms(alarmRule, alarmRuleDetail, array, ZtApiDataColumnConstant.syLessThenPipe, true, adCode, false, uuid);
+						asyncNoticeHandle.damSafetySyLessThenPipeHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syLessThenPipe, true, adCode, false, uuid,arg2);
 					}
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.damSafetySyLessThenPipeHandleStation(alarmRule, alarmRuleDetail, array, ZtApiDataColumnConstant.syLessThenPipe, true, adCode, true, uuid);
+						asyncNoticeHandle.damSafetySyLessThenPipeHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syLessThenPipe, true, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -863,7 +891,8 @@
 
 
 		JSONArray array = lessOrHigher(ztData, "higher");
-
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(array,arg1);
 
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
@@ -872,11 +901,11 @@
 			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
-//					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-//						asyncNoticeHandle.damSafetySyHigherThenNozzleHandleSms(alarmRule, alarmRuleDetail, array,ZtApiDataColumnConstant.syHigherThenNozzle,true, adCode, false,uuid);
-//					}
+					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
+						asyncNoticeHandle.damSafetySyHigherThenNozzleHandleSms(alarmRule, alarmRuleDetail, resultData,ZtApiDataColumnConstant.syHigherThenNozzle,true, adCode, false,uuid,arg2);
+					}
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.damSafetySyHigherThenNozzleHandleStation(alarmRule, alarmRuleDetail, array, ZtApiDataColumnConstant.syHigherThenNozzle, true, adCode, true, uuid);
+						asyncNoticeHandle.damSafetySyHigherThenNozzleHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syHigherThenNozzle, true, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -900,7 +929,8 @@
 		AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_higher_then_bdElevation_api);
-
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(ztData,arg1);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -909,10 +939,10 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetySyHigherThenBdElevationHandleSms(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.syHigherThenBdElevation, true, adCode, false, uuid);
+						asyncNoticeHandle.damSafetySyHigherThenBdElevationHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syHigherThenBdElevation, true, adCode, false, uuid,arg2);
 					}
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.damSafetySyHigherThenBdElevationHandleStation(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.syHigherThenBdElevation, true, adCode, true, uuid);
+						asyncNoticeHandle.damSafetySyHigherThenBdElevationHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syHigherThenBdElevation, true, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -934,7 +964,8 @@
 		AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_higher_then_water_level_api);
-
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(ztData,arg1);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -943,10 +974,10 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetySyHigherThenWaterLevelHandleSms(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.syHigherThenWaterLevel, true, adCode, false, uuid);
+						asyncNoticeHandle.damSafetySyHigherThenWaterLevelHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syHigherThenWaterLevel, true, adCode, false, uuid,arg2);
 					}
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.damSafetySyHigherThenWaterLevelHandleStation(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.syHigherThenWaterLevel, true, adCode, true, uuid);
+						asyncNoticeHandle.damSafetySyHigherThenWaterLevelHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syHigherThenWaterLevel, true, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -973,6 +1004,10 @@
 		JSONArray data = changeRange(ztData, "1");
 
 
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(data,arg1);
+
+
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -981,10 +1016,10 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetySyYellowChangeHandleSms(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.syYellowRzChange, true, adCode, false, uuid);
+						asyncNoticeHandle.damSafetySyYellowChangeHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syYellowRzChange, true, adCode, false, uuid,arg2);
 					}
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.damSafetySyYellowChangeHandleStation(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.syYellowRzChange, true, adCode, true, uuid);
+						asyncNoticeHandle.damSafetySyYellowChangeHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syYellowRzChange, true, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -1009,7 +1044,8 @@
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_rz_change_api);
 
 		JSONArray data = changeRange(ztData, "2");
-
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(data,arg1);
 
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
@@ -1019,10 +1055,10 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetySyOrangeChangeHandleSms(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.syOrangeRzChange, true, adCode, false, uuid);
+						asyncNoticeHandle.damSafetySyOrangeChangeHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syOrangeRzChange, true, adCode, false, uuid,arg2);
 					}
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.damSafetySyOrangeChangeHandleStation(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.syOrangeRzChange, true, adCode, true, uuid);
+						asyncNoticeHandle.damSafetySyOrangeChangeHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syOrangeRzChange, true, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -1047,7 +1083,8 @@
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_rz_change_api);
 
 		JSONArray data = changeRange(ztData, "3");
-
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(data,arg1);
 
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
@@ -1057,10 +1094,10 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetySyRedChangeHandleSms(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.syRedRzChange, true, adCode, false, uuid);
+						asyncNoticeHandle.damSafetySyRedChangeHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syRedRzChange, true, adCode, false, uuid,arg2);
 					}
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.damSafetySyRedChangeHandleStation(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.syRedRzChange, true, adCode, true, uuid);
+						asyncNoticeHandle.damSafetySyRedChangeHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syRedRzChange, true, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -1084,7 +1121,8 @@
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_rz_1h_change_api);
 
 		JSONArray data = judgeType(ztData);
-
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(data,arg1);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -1093,10 +1131,10 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetySyRz1hChangeHandleSms(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.syRz1hChange, true, adCode, false, uuid);
+						asyncNoticeHandle.damSafetySyRz1hChangeHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syRz1hChange, true, adCode, false, uuid,arg2);
 					}
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.damSafetySyRz1hChangeHandleStation(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.syRz1hChange, true, adCode, true, uuid);
+						asyncNoticeHandle.damSafetySyRz1hChangeHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syRz1hChange, true, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -1122,7 +1160,8 @@
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_wy_value_api);
 
 		JSONArray data = judgeDirection(ztData, "1");
-
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(data,arg1);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -1131,10 +1170,10 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetyWyOver2Less5HandleSms(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.wyOver2Less5, true, adCode, false, uuid);
+						asyncNoticeHandle.damSafetyWyOver2Less5HandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wyOver2Less5, true, adCode, false, uuid,arg2);
 					}
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.damSafetyWyOver2Less5HandleStation(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.wyOver2Less5, true, adCode, true, uuid);
+						asyncNoticeHandle.damSafetyWyOver2Less5HandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wyOver2Less5, true, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -1162,7 +1201,8 @@
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_wy_value_api);
 
 		JSONArray data = judgeDirection(ztData, "2");
-
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(data,arg1);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -1171,10 +1211,10 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetyWyOver5Less10HandleSms(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.wyOver5Less10, true, adCode, false, uuid);
+						asyncNoticeHandle.damSafetyWyOver5Less10HandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wyOver5Less10, true, adCode, false, uuid,arg2);
 					}
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.damSafetyWyOver5Less10HandleStation(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.wyOver5Less10, true, adCode, true, uuid);
+						asyncNoticeHandle.damSafetyWyOver5Less10HandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wyOver5Less10, true, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -1200,6 +1240,11 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_wy_value_1h_change_over_10_api);
 		JSONArray data = judgeDirection(ztData, "3");
+
+
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(data,arg1);
+
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -1208,10 +1253,10 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetyWyOver10HandleSms(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.wyOver10, true, adCode, false, uuid);
+						asyncNoticeHandle.damSafetyWyOver10HandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wyOver10, true, adCode, false, uuid,arg2);
 					}
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.damSafetyWyOver10HandleStation(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.wyOver10, true, adCode, true, uuid);
+						asyncNoticeHandle.damSafetyWyOver10HandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wyOver10, true, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -1235,6 +1280,11 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_wy_value_1h_change_over_10_api);
 		JSONArray data = judgeDirectionV2(ztData);
+
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(data,arg1);
+
+
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -1243,10 +1293,10 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetyWy1hChangeOver10HandleSms(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid);
+						asyncNoticeHandle.damSafetyWy1hChangeOver10HandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid,arg2);
 					}
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.damSafetyWy1hChangeOver10HandleStation(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid);
+						asyncNoticeHandle.damSafetyWy1hChangeOver10HandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -1256,6 +1306,13 @@
 		return "近1h变形值大于10cm以上告警";
 	}
 
+	/**
+	 * 渗流量一日大于5L小于8L,连续3日增加
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
 	public String damSafetySlOver5Less8Handle(String arg1, String arg2) {
 
 		String adCode = null;
@@ -1265,6 +1322,11 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sl_value_change_api);
 		JSONArray data = filterData(ztData,"1");
+
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(data,arg1);
+
+
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -1273,10 +1335,10 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid);
+						asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid,arg2);
 					}
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid);
+						asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -1286,6 +1348,13 @@
 	}
 
 
+	/**
+	 * 渗流量一日大于8L小于10L,连续3日增加
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
 	public String damSafetySlOver8Less10Handle(String arg1, String arg2) {
 
 		String adCode = null;
@@ -1295,6 +1364,10 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sl_value_change_api);
 		JSONArray data = filterData(ztData,"2");
+
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(data,arg1);
+
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -1303,10 +1376,10 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid);
+						asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid,arg2);
 					}
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid);
+						asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -1316,7 +1389,13 @@
 	}
 
 
-
+	/**
+	 * 渗流量一日大于10L,连续3日增加
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
 	public String damSafetySlOver10Handle(String arg1, String arg2) {
 
 		String adCode = null;
@@ -1326,6 +1405,10 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sl_value_change_api);
 		JSONArray data = filterData(ztData,"3");
+
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(data,arg1);
+
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
 		if (null != alarmRule) {
 			// 查询告警详情信息
@@ -1334,10 +1417,10 @@
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid);
+						asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid,arg2);
 					}
 					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
-						asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, data, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid);
+						asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid,arg2);
 					}
 				}
 			}
@@ -1346,7 +1429,41 @@
 		return "渗流量一日大于5L小于8L,连续3日增加告警";
 	}
 
+	/**
+	 * 视频离线
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
+	public String videoOfflineHandle(String arg1, String arg2) {
 
+		String adCode = null;
+		String uuid = UUID.randomUUID().toString();
+		// 查询当前策略对应的告警规则信息
+		AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
+		// 调用中台服务接口查询数据
+		JSONArray ztData = noticeHandle.getZtDataV2("", ZtApiUrlConstant.alarm_video_offline_api);
+		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
+		if (null != alarmRule) {
+			// 查询告警详情信息
+			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
+			if (alarmRuleDetailList.size() > 0) {
+				// 遍历
+				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.videoOfflineHandleStation(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.videoOffline, false, adCode, true, uuid,arg2);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
+						asyncNoticeHandle.videoOfflineHandleSms(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.videoOffline, false, adCode, false, uuid,arg2);
+					}
+
+				}
+			}
+		}
+
+		return "视频信息缺失告警";
+	}
 
 	private JSONArray filterData(JSONArray ztData, String level) {
 
@@ -1617,4 +1734,33 @@
 
 
 
+	//过滤不需要告警的水库
+	public JSONArray filterNoAlertRes(JSONArray jsonArray,String ruleName){
+		JSONArray result = new JSONArray();
+
+		//获取要过滤的水库数据
+		String noAlertRes= noticeHandle.getNoAlertRes(ruleName);
+
+		if (StringUtil.isBlank(noAlertRes)){
+			//如果没有需要过滤的数据
+			return jsonArray;
+		}
+
+		for (int i = 0; i < jsonArray.size(); i++) {
+
+			JSONObject jsonObject = jsonArray.getJSONObject(i);
+
+			String resCd = jsonObject.getString("res_cd");
+			//判断水库是否在不告警水库列表中
+			boolean contains = noAlertRes.contains(resCd);
+
+			if (!contains){
+				//不在则往结果集中加入数据
+				result.add(jsonObject);
+			}
+		}
+		return  result;
+	}
+
+
 }

--
Gitblit v1.9.3