From f2d0713c2b20a6c751399e2468996eafb8812988 Mon Sep 17 00:00:00 2001
From: ke <893754509@qq.com>
Date: Thu, 18 Apr 2024 10:37:13 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev

---
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java | 1165 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 1,098 insertions(+), 67 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 1da3e3c..418875a 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
@@ -6,10 +6,16 @@
 import cn.gistack.alerts.alarmRule.service.AlarmRuleService;
 import cn.gistack.alerts.notice.constant.ZtApiDataColumnConstant;
 import cn.gistack.alerts.notice.constant.ZtApiUrlConstant;
+import cn.gistack.resource.feign.ITextualResearchAttachClient;
+import cn.gistack.resource.vo.AlertTextualResearchAttachVO;
+import com.alibaba.fastjson.JSON;
 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;
+
 import java.util.List;
 import java.util.UUID;
 
@@ -34,7 +40,8 @@
 	@Autowired
 	private AsyncNoticeHandle asyncNoticeHandle;
 
-
+	@Autowired
+	private ITextualResearchAttachClient textualResearchAttachClient;
 
 
 	/**
@@ -64,14 +71,14 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.no_z_last_api_all);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
-		if (null!=alarmRule) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.waterInfoNotHandle(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.waterInfoNotList,false, adCode, false);
+						asyncNoticeHandle.waterInfoNotHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterInfoNotList, false, adCode, false);
 					}
 				}
 			}
@@ -95,14 +102,14 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_z_not_normal_api);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
-		if (null!=alarmRule) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.waterInfoNotHandle(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.waterDataExcList,false, adCode, false);
+						asyncNoticeHandle.waterInfoNotHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterDataExcList, false, adCode, false);
 					}
 				}
 			}
@@ -126,14 +133,14 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_diff_dead_z_api);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
-		if (null!=alarmRule) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.waterLessDeadHandle(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.waterLessDeadList,true, adCode, false);
+						asyncNoticeHandle.waterLessDeadHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterLessDeadList, true, adCode, false);
 					}
 				}
 			}
@@ -141,7 +148,6 @@
 		// 返回
 		return "水位超低于死水位";
 	}
-
 
 
 	/**
@@ -169,22 +175,23 @@
 		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) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				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);
 					}
 				}
 			}
 		}
 		return "水位接近汛限告警";
 	}
-
 
 
 	/**
@@ -201,14 +208,14 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.over_z_res_api);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
-		if (null!=alarmRule) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.waterFirstOverHandle(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.waterFirstOverList,true, adCode, true);
+						asyncNoticeHandle.waterFirstOverHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterFirstOverList, true, adCode, true);
 					}
 				}
 			}
@@ -234,16 +241,16 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_over_z_small_over_api);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
-		if (null!=alarmRule) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				if (alarmRuleDetailList.get(0).getAlarmMode().equals("短信")) {
-					asyncNoticeHandle.waterSmallScaleOverHandle1(alarmRule, alarmRuleDetailList.get(0), ztData,ZtApiDataColumnConstant.waterSmallScaleOverList,true, adCode, false,uuid);
+					asyncNoticeHandle.waterSmallScaleOverHandle1(alarmRule, alarmRuleDetailList.get(0), ztData, ZtApiDataColumnConstant.waterSmallScaleOverList, true, adCode, false, uuid);
 				}
 				if (alarmRuleDetailList.get(1).getAlarmMode().equals("短信")) {
-					asyncNoticeHandle.waterSmallScaleOverHandle2(alarmRule, alarmRuleDetailList.get(1), ztData,ZtApiDataColumnConstant.waterSmallScaleOverList,true, adCode, false,uuid);
+					asyncNoticeHandle.waterSmallScaleOverHandle2(alarmRule, alarmRuleDetailList.get(1), ztData, ZtApiDataColumnConstant.waterSmallScaleOverList, true, adCode, false, uuid);
 				}
 			}
 		}
@@ -267,16 +274,16 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_over_z_big_over_api);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
-		if (null!=alarmRule) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				if (alarmRuleDetailList.get(0).getAlarmMode().equals("短信")) {
-					asyncNoticeHandle.waterBigScaleOverHandle1(alarmRule, alarmRuleDetailList.get(0), ztData,ZtApiDataColumnConstant.waterBigScaleOverList1,true, adCode, false,uuid);
+					asyncNoticeHandle.waterBigScaleOverHandle1(alarmRule, alarmRuleDetailList.get(0), ztData, ZtApiDataColumnConstant.waterBigScaleOverList1, true, adCode, false, uuid);
 				}
 				if (alarmRuleDetailList.get(1).getAlarmMode().equals("短信")) {
-					asyncNoticeHandle.waterBigScaleOverHandle2(alarmRule, alarmRuleDetailList.get(1), ztData,ZtApiDataColumnConstant.waterBigScaleOverList2,true, adCode, false,uuid);
+					asyncNoticeHandle.waterBigScaleOverHandle2(alarmRule, alarmRuleDetailList.get(1), ztData, ZtApiDataColumnConstant.waterBigScaleOverList2, true, adCode, false, uuid);
 				}
 			}
 		}
@@ -298,21 +305,24 @@
 		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) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				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);
 					}
 				}
 			}
@@ -335,14 +345,14 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.over_des_rz_warn_api);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
-		if (null!=alarmRule) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.waterMoreDesignHandle(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.waterMoreDesignList,true, adCode, false,uuid);
+						asyncNoticeHandle.waterMoreDesignHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterMoreDesignList, true, adCode, false, uuid);
 					}
 //					if (alarmRuleDetail.getAlarmMode().equals("电话")) {
 //						asyncNoticeHandle.outCallHandleCall(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.waterMoreDesignList,true, adCode, false,uuid);
@@ -369,14 +379,14 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_over_chec_api);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
-		if (null!=alarmRule) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.waterMoreCheckHandle(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.waterMoreCheckList,true, adCode, false,uuid);
+						asyncNoticeHandle.waterMoreCheckHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterMoreCheckList, true, adCode, false, uuid);
 					}
 //					if (alarmRuleDetail.getAlarmMode().equals("电话")) {
 //						asyncNoticeHandle.outCallHandleCall(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.waterMoreCheckList,true, adCode, false,uuid);
@@ -403,14 +413,14 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_z_diff_up_api);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
-		if (null!=alarmRule) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.waterComeOneHourUpHandle(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.waterComeOneHourUpList,true, adCode, false,uuid);
+						asyncNoticeHandle.waterComeOneHourUpHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterComeOneHourUpList, true, adCode, false, uuid);
 					}
 				}
 			}
@@ -434,14 +444,14 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_z_diff_down_api);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
-		if (null!=alarmRule) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.waterComeOneHourDownHandle(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.waterComeOneHourDownList,true, adCode, false,uuid);
+						asyncNoticeHandle.waterComeOneHourDownHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterComeOneHourDownList, true, adCode, false, uuid);
 					}
 				}
 			}
@@ -477,14 +487,14 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_rain_dy_api);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
-		if (null!=alarmRule) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.alreadyHeavyRainHandle(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.alreadyHeavyRainList,true, adCode, false);
+						asyncNoticeHandle.alreadyHeavyRainHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.alreadyHeavyRainList, true, adCode, false);
 					}
 				}
 			}
@@ -508,14 +518,14 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_rain_by_api);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
-		if (null!=alarmRule) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.alreadyRainstormHandle(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.alreadyRainstormList,true, adCode, false);
+						asyncNoticeHandle.alreadyRainstormHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.alreadyRainstormList, true, adCode, false);
 					}
 				}
 			}
@@ -552,14 +562,14 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_rain_6_over_api);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
-		if (null!=alarmRule) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
 					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
-						asyncNoticeHandle.sixHourRainHandle(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.sixHourRainList,true, adCode, false,uuid);
+						asyncNoticeHandle.sixHourRainHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.sixHourRainList, true, adCode, false, uuid);
 					}
 //					if (alarmRuleDetail.getAlarmMode().equals("电话")) {
 //						asyncNoticeHandle.outCallHandleCall(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.sixHourRainList,true, adCode, false,uuid);
@@ -588,14 +598,14 @@
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_api);
 		// 获取告警规则详情,判断告警类型(短信,电话,站内信)
-		if (null!=alarmRule) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				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);
 					}
 				}
 			}
@@ -619,15 +629,19 @@
 		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) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				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);
 					}
 				}
 			}
@@ -647,19 +661,25 @@
 		//String adCode = "420607000000";
 		String uuid = UUID.randomUUID().toString();
 		String adCode = null;
-		// 查询当前策略对应的告警规则信息
+		// 查询当前策略对应的告警规则信息,根据名称获取告警信息
 		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) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				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);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetySyNoneHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.damSafetyList, false, adCode, true, uuid);
 					}
 				}
 			}
@@ -683,15 +703,19 @@
 		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) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				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);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetySyNoneHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.damSafetyList, false, adCode, true, uuid);
 					}
 				}
 			}
@@ -715,15 +739,19 @@
 		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) {
+		if (null != alarmRule) {
 			// 查询告警详情信息
 			List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
-			if (alarmRuleDetailList.size()>0){
+			if (alarmRuleDetailList.size() > 0) {
 				// 遍历
 				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);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetySyNoneHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.damSafetyList, false, adCode, true, uuid);
 					}
 				}
 			}
@@ -732,4 +760,1007 @@
 		return "大坝安全监测告警";
 	}
 
+	/**
+	 * 策略24:渗压基础数据缺失
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
+	public String damSafetySyDataMissingHandle(String arg1, String arg2) {
+
+		String uuid = UUID.randomUUID().toString();
+		String adCode = null;
+		// 查询当前策略对应的告警规则信息
+		AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
+		//调用本地服务获取数据
+		List<AlertTextualResearchAttachVO> syDataMissing = textualResearchAttachClient.getSyDataMissing();
+
+		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.damSafetySyDataMissingHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syDataMissingList, false, adCode, true, uuid);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("短信")){
+						asyncNoticeHandle.damSafetySyDataMissingHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syDataMissingList, false, adCode, false, uuid);
+					}
+				}
+			}
+		}
+
+		return "大坝安全监测渗压资料缺失告警";
+	}
+
+	/**
+	 * 策略25:变形基础数据缺失
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
+	public String damSafetyBxDataMissingHandle(String arg1, String arg2) {
+		String uuid = UUID.randomUUID().toString();
+		String adCode = null;
+		// 查询当前策略对应的告警规则信息
+		AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
+		//调用本地服务获取数据
+		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.damSafetySyDataMissingHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.bxDataMissingList, false, adCode, true, uuid);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("短信")){
+						asyncNoticeHandle.damSafetySyDataMissingHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.bxDataMissingList, false, adCode, false, uuid);
+					}
+				}
+			}
+		}
+		return "大坝安全监测变形资料缺失告警";
+	}
+
+	/**
+	 * 策略26:水位低于管底高程
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
+	public String damSafetySyLessThenPipeHandle(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.getZtData("", ZtApiUrlConstant.alarm_db_sy_less_or_higher_api);
+		JSONArray array = lessOrHigher(ztData, "less");
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(array,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.damSafetySyLessThenPipeHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syLessThenPipe, true, adCode, false, uuid);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetySyLessThenPipeHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syLessThenPipe, true, adCode, true, uuid);
+					}
+				}
+			}
+		}
+
+		return "水位低于管底高程告警";
+	}
+
+
+	/**
+	 * 策略27:水位高于管口高程
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
+	public String damSafetySyHigherThenNozzleHandle(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.getZtData("", ZtApiUrlConstant.alarm_db_sy_less_or_higher_api);
+
+
+		JSONArray array = lessOrHigher(ztData, "higher");
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(array,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.damSafetySyHigherThenNozzleHandleSms(alarmRule, alarmRuleDetail, resultData,ZtApiDataColumnConstant.syHigherThenNozzle,true, adCode, false,uuid);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetySyHigherThenNozzleHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syHigherThenNozzle, true, adCode, true, uuid);
+					}
+				}
+			}
+		}
+
+		return "水位高于管口高程告警";
+	}
+
+	/**
+	 * 策略28:水位高于坝顶高程
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
+	public String damSafetySyHigherThenBdElevationHandle(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.getZtData("", ZtApiUrlConstant.alarm_db_sy_higher_then_bdElevation_api);
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(ztData,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.damSafetySyHigherThenBdElevationHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syHigherThenBdElevation, true, adCode, false, uuid);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetySyHigherThenBdElevationHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syHigherThenBdElevation, true, adCode, true, uuid);
+					}
+				}
+			}
+		}
+		return "水位高于坝顶高程告警";
+	}
+
+	/**
+	 * 水位高于库水位告警
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
+	public String damSafetySyHigherThenWaterLevelHandle(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.getZtData("", ZtApiUrlConstant.alarm_db_sy_higher_then_water_level_api);
+		//这里需要对数据进行过滤
+		JSONArray resultData = filterNoAlertRes(ztData,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.damSafetySyHigherThenWaterLevelHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syHigherThenWaterLevel, true, adCode, false, uuid);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetySyHigherThenWaterLevelHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syHigherThenWaterLevel, true, adCode, true, uuid);
+					}
+				}
+			}
+		}
+		return "水位高于库水位告警";
+	}
+
+
+	/**
+	 * 水位长期不变,五日变幅小于5cm,十日变幅大于5cm小于8cm,三十日变幅大于8cm小于10cm
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
+	public String damSafetySyYellowChangeHandle(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.getZtData("", ZtApiUrlConstant.alarm_db_sy_rz_change_api);
+
+		JSONArray data = changeRange(ztData, "1");
+
+
+		//这里需要对数据进行过滤
+		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.damSafetySyYellowChangeHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syYellowRzChange, true, adCode, false, uuid);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetySyYellowChangeHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syYellowRzChange, true, adCode, true, uuid);
+					}
+				}
+			}
+		}
+		return "水位五日变幅小于5cm,十日变幅大于5cm小于8cm,三十日变幅大于8cm小于10cm告警";
+	}
+
+
+	/**
+	 * 渗压水位一日变幅大于0.5米小于1米,五日变幅大于1米小于2米,十日变幅大于2米小于5米,三十日变幅大于5米小于10米
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
+	public String damSafetySyOrangeChangeHandle(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.getZtData("", ZtApiUrlConstant.alarm_db_sy_rz_change_api);
+
+		JSONArray data = changeRange(ztData, "2");
+		//这里需要对数据进行过滤
+		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.damSafetySyOrangeChangeHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syOrangeRzChange, true, adCode, false, uuid);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetySyOrangeChangeHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syOrangeRzChange, true, adCode, true, uuid);
+					}
+				}
+			}
+		}
+		return "水位一日变幅大于0.5米小于1米,五日变幅大于1米小于2米,十日变幅大于2米小于5米,三十日变幅大于5米小于10米告警";
+	}
+
+
+	/**
+	 * 渗压水位一日变幅大于1米小于2米,五日变幅大于2米小于5米,十日变幅大于5米小于10米,三十日变幅大于10米
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
+	public String damSafetySyRedChangeHandle(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.getZtData("", ZtApiUrlConstant.alarm_db_sy_rz_change_api);
+
+		JSONArray data = changeRange(ztData, "3");
+		//这里需要对数据进行过滤
+		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.damSafetySyRedChangeHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syRedRzChange, true, adCode, false, uuid);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetySyRedChangeHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syRedRzChange, true, adCode, true, uuid);
+					}
+				}
+			}
+		}
+		return "水位一日变幅大于0.5米小于1米,五日变幅大于1米小于2米,十日变幅大于2米小于5米,三十日变幅大于5米小于10米告警";
+	}
+
+	/**
+	 * 近1h水位陡降
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
+	public String damSafetySyRz1hChangeHandle(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.getZtData("", ZtApiUrlConstant.alarm_db_sy_rz_1h_change_api);
+
+		JSONArray data = judgeType(ztData);
+		//这里需要对数据进行过滤
+		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.damSafetySyRz1hChangeHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syRz1hChange, true, adCode, false, uuid);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetySyRz1hChangeHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syRz1hChange, true, adCode, true, uuid);
+					}
+				}
+			}
+		}
+		return "近1h水位陡降告警";
+	}
+
+
+	/**
+	 * 变形值大于20mm小于50mm
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
+	public String damSafetyWyOver2Less5Handle(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.getZtData("", ZtApiUrlConstant.alarm_db_wy_value_api);
+
+		JSONArray data = judgeDirection(ztData, "1");
+		//这里需要对数据进行过滤
+		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.damSafetyWyOver2Less5HandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wyOver2Less5, true, adCode, false, uuid);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetyWyOver2Less5HandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wyOver2Less5, true, adCode, true, uuid);
+					}
+				}
+			}
+		}
+		return "变形值大于2cm小于5cm告警";
+
+
+	}
+
+
+	/**
+	 * 变形值大于50mm小于100mm
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
+	public String damSafetyWyOver5Less10Handle(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.getZtData("", ZtApiUrlConstant.alarm_db_wy_value_api);
+
+		JSONArray data = judgeDirection(ztData, "2");
+		//这里需要对数据进行过滤
+		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.damSafetyWyOver5Less10HandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wyOver5Less10, true, adCode, false, uuid);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetyWyOver5Less10HandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wyOver5Less10, true, adCode, true, uuid);
+					}
+				}
+			}
+		}
+		return "变形值大于5cm小于10cm告警";
+
+	}
+
+
+	/**
+	 * 近1h变形值大于10cm以上
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
+	public String damSafetyWyOver10Handle(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.getZtData("", ZtApiUrlConstant.alarm_db_wy_value_1h_change_over_10_api);
+		JSONArray data = judgeDirection(ztData, "3");
+
+
+		//这里需要对数据进行过滤
+		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.damSafetyWyOver10HandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wyOver10, true, adCode, false, uuid);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetyWyOver10HandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wyOver10, true, adCode, true, uuid);
+					}
+				}
+			}
+		}
+		return "变形值大于10cm告警";
+	}
+
+	/**
+	 * 近1h变形值大于10cm以上
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
+	public String damSafetyWy1hChangeOver10Handle(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.getZtData("", ZtApiUrlConstant.alarm_db_wy_value_1h_change_over_10_api);
+		JSONArray data = judgeDirectionV2(ztData);
+
+		//这里需要对数据进行过滤
+		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.damSafetyWy1hChangeOver10HandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetyWy1hChangeOver10HandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid);
+					}
+				}
+			}
+		}
+
+
+		return "近1h变形值大于10cm以上告警";
+	}
+
+	/**
+	 * 渗流量一日大于5L小于8L,连续3日增加
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
+	public String damSafetySlOver5Less8Handle(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.getZtData("", ZtApiUrlConstant.alarm_db_sl_value_change_api);
+		JSONArray data = filterData(ztData,"1");
+
+		//这里需要对数据进行过滤
+		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.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid);
+					}
+				}
+			}
+		}
+
+		return "渗流量一日大于5L小于8L,连续3日增加告警";
+	}
+
+
+	/**
+	 * 渗流量一日大于8L小于10L,连续3日增加
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
+	public String damSafetySlOver8Less10Handle(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.getZtData("", ZtApiUrlConstant.alarm_db_sl_value_change_api);
+		JSONArray data = filterData(ztData,"2");
+
+		//这里需要对数据进行过滤
+		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.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid);
+					}
+				}
+			}
+		}
+
+		return "渗流量一日大于5L小于8L,连续3日增加告警";
+	}
+
+
+	/**
+	 * 渗流量一日大于10L,连续3日增加
+	 *
+	 * @param arg1
+	 * @param arg2
+	 * @return
+	 */
+	public String damSafetySlOver10Handle(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.getZtData("", ZtApiUrlConstant.alarm_db_sl_value_change_api);
+		JSONArray data = filterData(ztData,"3");
+
+		//这里需要对数据进行过滤
+		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.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
+						asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid);
+					}
+				}
+			}
+		}
+
+		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);
+					}
+					if (alarmRuleDetail.getAlarmMode().equals("短信")) {
+						asyncNoticeHandle.videoOfflineHandleSms(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.videoOffline, false, adCode, false, uuid);
+					}
+
+				}
+			}
+		}
+
+		return "视频信息缺失告警";
+	}
+
+	private JSONArray filterData(JSONArray ztData, String level) {
+
+		JSONArray array = new JSONArray();
+		for (int i = 0; i < ztData.size(); i++) {
+			JSONObject jsonObject = ztData.getJSONObject(i);
+			String dataLevel = jsonObject.getString("level");
+
+			if (dataLevel.equals(level)) {
+				array.add(jsonObject);
+			}
+		}
+		return array;
+	}
+
+	/**
+	 * 判断方向
+	 *
+	 * @param ztData
+	 * @return
+	 */
+	private JSONArray judgeDirectionV2(JSONArray ztData) {
+		JSONArray array = new JSONArray();
+		for (int i = 0; i < ztData.size(); i++) {
+			JSONObject jsonObject = ztData.getJSONObject(i);
+			//上下游方向
+			Double diffDe = jsonObject.getDouble("diff_de");
+			//左右岸方向
+			Double diffDn = jsonObject.getDouble("diff_dn");
+			//垂直
+			Double diffDu = jsonObject.getDouble("diff_du");
+
+			String direction = "";
+			String val = "";
+			//近1h变形值大于10cm以上
+			if (diffDe > 100) {
+				direction = "上下游方向";
+				val = diffDe.toString();
+			} else if (diffDn > 100) {
+				direction = "左右岸方向";
+				val = diffDn.toString();
+			} else if (diffDu > 100) {
+				direction = "垂直";
+				val = diffDu.toString();
+			}
+
+			jsonObject.put("direction", direction);
+			jsonObject.put("val", val);
+			array.add(jsonObject);
+
+		}
+		return array;
+	}
+
+
+	/**
+	 * 判断方向
+	 *
+	 * @param ztData
+	 * @return
+	 */
+	private JSONArray judgeDirection(JSONArray ztData, String level) {
+		JSONArray array = new JSONArray();
+		for (int i = 0; i < ztData.size(); i++) {
+			JSONObject jsonObject = ztData.getJSONObject(i);
+			String dataLevel = jsonObject.getString("level");
+			//上下游方向
+			Double deVal = jsonObject.getDouble("de_val");
+			//左右岸方向
+			Double dnVal = jsonObject.getDouble("dn_val");
+			//垂直
+			Double duValue = jsonObject.getDouble("du_value");
+
+			String direction = "";
+			String val = "";
+
+			if (dataLevel.equals(level)) {
+				if (level.equals("1")) {
+					//变形值大于20mm小于50mm
+					if (20 < deVal && deVal < 50) {
+						direction = "上下游方向";
+						val = deVal.toString();
+					} else if (20 < dnVal && dnVal < 50) {
+						direction = "左右岸方向";
+						val = dnVal.toString();
+					} else if (20 < duValue && duValue < 50) {
+						direction = "垂直";
+						val = duValue.toString();
+					}
+				} else if (level.equals("2")) {
+					//变形值大于50mm小于100mm
+					if (50 < deVal && deVal < 100) {
+						direction = "上下游方向";
+						val = deVal.toString();
+					} else if (50 < dnVal && dnVal < 100) {
+						direction = "左右岸方向";
+						val = dnVal.toString();
+					} else if (50 < duValue && duValue < 100) {
+						direction = "垂直";
+						val = duValue.toString();
+					}
+				} else if (level.equals("3")) {
+					//变形值大于100mm
+
+					if (deVal > 100) {
+						direction = "上下游方向";
+						val = deVal.toString();
+					} else if (dnVal > 100) {
+						direction = "左右岸方向";
+						val = dnVal.toString();
+					} else if (duValue > 100) {
+						direction = "垂直";
+						val = duValue.toString();
+					}
+				}
+
+				jsonObject.put("direction", direction);
+				jsonObject.put("val", val);
+				array.add(jsonObject);
+			}
+
+		}
+		return array;
+	}
+
+
+	private JSONArray judgeType(JSONArray ztData) {
+		JSONArray array = new JSONArray();
+		for (int i = 0; i < ztData.size(); i++) {
+			JSONObject jsonObject = ztData.getJSONObject(i);
+			Double syVal = jsonObject.getDouble("sy_val");
+			Double leadVal = jsonObject.getDouble("lead_val");
+			String type = "";
+			if (syVal > leadVal) {
+				//当前水位大于1h
+				type = "陡升";
+			} else {
+				type = "陡降";
+			}
+
+			jsonObject.put("type", type);
+			array.add(jsonObject);
+		}
+		return array;
+	}
+
+	/**
+	 * 根据数据过滤不同程度的变幅
+	 *
+	 * @param ztData
+	 * @param level  1黄、2橙、3红
+	 * @return
+	 */
+	private JSONArray changeRange(JSONArray ztData, String level) {
+		JSONArray array = new JSONArray();
+
+		for (int i = 0; i < ztData.size(); i++) {
+			JSONObject jsonObject = ztData.getJSONObject(i);
+			String dataLevel = jsonObject.getString("level");
+
+			//一日变幅
+			Double diff2 = jsonObject.getDouble("diff_2");
+
+			//五日变幅
+			Double diff5 = jsonObject.getDouble("diff_5");
+
+			//十日变幅
+			Double diff10 = jsonObject.getDouble("diff_10");
+
+			//三十日变幅
+			Double diff30 = jsonObject.getDouble("diff_30");
+
+			String dayNum = "";
+			String diffVal = "";
+
+			if (dataLevel.equals(level)) {
+				if (level.equals("1")) {
+					//水位长期不变,五日变幅小于5cm,十日变幅大于5cm小于8cm,三十日变幅大于8cm小于10cm
+					if (diff5 < 0.05) {
+						dayNum = "五";
+						diffVal = diff5.toString();
+					} else if (0.05 < diff10 && diff10 < 0.08) {
+						dayNum = "十";
+						diffVal = diff10.toString();
+					} else if (0.08 < diff30 && diff30 < 0.1) {
+						dayNum = "三十";
+						diffVal = diff30.toString();
+					}
+				} else if (level.equals("2")) {
+					//渗压水位一日变幅大于0.5米小于1米,五日变幅大于1米小于2米,十日变幅大于2米小于5米,三十日变幅大于5米小于10米
+					if (0.5 < diff2 && diff2 < 1) {
+						dayNum = "一";
+						diffVal = diff2.toString();
+					} else if (1 < diff5 && diff5 < 2) {
+						dayNum = "五";
+						diffVal = diff5.toString();
+					} else if (2 < diff10 && diff10 < 5) {
+						dayNum = "十";
+						diffVal = diff10.toString();
+					} else if (5 < diff30 && diff30 < 10) {
+						dayNum = "三十";
+						diffVal = diff30.toString();
+					}
+				} else if (level.equals("3")) {
+					//渗压水位一日变幅大于1米小于2米,五日变幅大于2米小于5米,十日变幅大于5米小于10米,三十日变幅大于10米
+
+					if (1 < diff2 && diff2 < 2) {
+						dayNum = "一";
+						diffVal = diff2.toString();
+					} else if (2 < diff5 && diff5 < 5) {
+						dayNum = "五";
+						diffVal = diff5.toString();
+					} else if (5 < diff10 && diff10 < 10) {
+						dayNum = "十";
+						diffVal = diff10.toString();
+					} else if (10 < diff30) {
+						dayNum = "三十";
+						diffVal = diff30.toString();
+					}
+				}
+
+				jsonObject.put("dayNum", dayNum);
+
+				if (diffVal.equals("0.0")) {
+					diffVal = "0";
+				}
+
+				jsonObject.put("diff_val", diffVal);
+				array.add(jsonObject);
+			}
+		}
+		return array;
+	}
+
+
+	/**
+	 * 过滤低于管底高程数据或高于管口高程数据
+	 *
+	 * @param ztData
+	 * @param flag
+	 * @return
+	 */
+	private JSONArray lessOrHigher(JSONArray ztData, String flag) {
+
+		JSONArray array = new JSONArray();
+
+		for (int i = 0; i < ztData.size(); i++) {
+			JSONObject jsonObject = ztData.getJSONObject(i);
+
+			//获取低于管底高程数据min_value < tbbtel  即 min_value - tbbtel <0  即diff_tbb_val <0
+			if (flag == "less") {
+				Double differ = jsonObject.getDouble("diff_tbb_val");
+				if (differ < 0) {
+					//加进一个绝对值方便展示
+					jsonObject.put("diff_tbb_val_abs", Math.abs(differ));
+					array.add(jsonObject);
+				}
+			} else if (flag == "higher") {
+				//获取高于管口高程数据,即 max_value > tbttel 即 max_value - tbttel >0 即 diff_tbt_val >0
+				Double differ = jsonObject.getDouble("diff_tbt_val");
+				if (differ > 0) {
+					array.add(jsonObject);
+				}
+			}
+		}
+		return array;
+	}
+
+
+
+	//过滤不需要告警的水库
+	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