From b4a52fbe7cabe2f49a8a57ec0d1a6ae2ac3b973c Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 26 Jul 2023 09:43:50 +0800
Subject: [PATCH] 水位低于死水位告警告警修改

---
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java |  170 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 167 insertions(+), 3 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java
index 644da6f..de786fc 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java
@@ -25,21 +25,185 @@
 	@Autowired
 	private SmsService smsService;
 
+
 	/**
-	 * 异步发送告警信息
+	 * 1.水位信息接收不到
+	 * @param alarmRule
+	 * @param templateId
+	 * @param uuid
+	 * @param adCode
+	 * @param isSendStation
+	 */
+	@Async
+	public void waterInfoNotHandle(AlarmRule alarmRule, String templateId, String uuid, String adCode,Boolean isSendStation) {
+		// 调用中台服务接口查询数据
+		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.no_z_last_api_all);
+		// 只发短信,将发短信信息组装好
+		SmsRequestTemplate smsRequestTemplate = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterInfoNotList,false,adCode,uuid);
+		// 遍历
+		for (List<String> list : smsRequestTemplate.getTemplateContent()) {
+			// 保存告警记录信息
+			AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list,alarmRule,uuid);
+			if (null != alarmRecord) {
+				list.add(alarmRecord.getId().toString());
+			}
+		}
+		// 调用短信服务
+		smsService.sendMergeSignMsg(smsRequestTemplate);
+	}
+
+
+	/**
+	 * 策略2: 水位数据异常
+	 * @param alarmRule
+	 * @param templateId
+	 * @param uuid
+	 * @param adCode
+	 * @param isSendStation
+	 */
+	@Async
+	public void waterDataExcHandle(AlarmRule alarmRule, String templateId, String uuid, String adCode, boolean isSendStation) {
+		// 调用中台服务接口查询数据
+		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_z_not_normal_api);
+		// 只发短信,将发短信信息组装好
+		SmsRequestTemplate smsRequestTemplate = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterDataExcList,false,adCode,uuid);
+		// 遍历
+		for (List<String> list : smsRequestTemplate.getTemplateContent()) {
+			// 保存告警记录信息
+			AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list,alarmRule,uuid);
+			if (null != alarmRecord) {
+				list.add(alarmRecord.getId().toString());
+			}
+		}
+		// 调用短信服务
+		smsService.sendMergeSignMsg(smsRequestTemplate);
+	}
+
+	/**
+	 * 3.水位超低于死水位
+	 * @param templateId
+	 * @param uuid
+	 * @param alarmRule
+	 * @param adCode
+	 * @param isSendStation
+	 */
+	@Async
+	public Map<String, Object> waterLessDeadHandle(String templateId, String uuid, AlarmRule alarmRule, String adCode, boolean isSendStation) {
+		Map<String, Object> map = new HashMap<>();
+		// 调用中台服务接口查询数据
+		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_diff_dead_z_api);
+		// 只发送站内信
+		SmsRequestTemplate smsRequestTemplate = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterLessDeadList,true,adCode,uuid);
+		// 拼接内容后面的联系方式,当前模板县水利部人员姓名电话
+		if (smsRequestTemplate.getPersonVOList().size()>0) {
+			// 遍历,拼接县水利部人员电话
+			for (List<String> list : smsRequestTemplate.getTemplateContent()) {
+				// 后面依次拼接市县水利部门人员姓名电话
+				// 拼接市县水利部人员姓名及联系方式
+				noticeHandle.addCityCountyBusinessPersonInfo(list);
+				// 保存告警记录信息
+				AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list,alarmRule,uuid);
+				if (null != alarmRecord) {
+					list.add(alarmRecord.getId().toString());
+				}
+			}
+			// 调用短信服务
+			map = smsService.sendSignMsg(smsRequestTemplate);
+			// 返回
+			return map;
+		}
+		return map;
+	}
+
+
+	/**
+	 * 5.水位接近汛限告警
+	 * @param templateId
+	 * @param uuid
+	 * @param alarmRule
+	 * @param adCode
+	 */
+	@Async
+	public void waterComeOverHandle(String templateId, String uuid, AlarmRule alarmRule, String adCode) {
+		// 调用中台服务接口查询数据
+		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_diff_dead_z_api);
+		// 只发送站内信
+		SmsRequestTemplate smsRequestTemplate = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterLessDeadList,true,null,uuid);
+		// 拼接内容后面的联系方式,当前模板县水利部人员姓名电话
+		if (smsRequestTemplate.getPersonVOList().size()>0) {
+			// 遍历,拼接县水利部人员电话
+			for (List<String> list : smsRequestTemplate.getTemplateContent()) {
+				// 后面依次拼接 巡查责任人姓名,技术责任人姓名,市县水利部门人员姓名电话(暂时不要)
+				noticeHandle.addPatrolTechnologyInfo(list);
+				// 市县水利部门人员姓名电话(暂时不要)
+//				list.add("测试:13112341234");
+				// 保存告警记录信息
+//			AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list,alarmRule,uuid);
+//			if (null != alarmRecord) {
+//				list.add(alarmRecord.getId().toString());
+				list.add("999");
+//			}
+			}
+		}
+		// 保存站内信记录信息
+		noticeHandle.saveInStationInfo(smsRequestTemplate,alarmRule);
+	}
+
+
+	/**
+	 * 6.水位初次超汛限告警 处理
+	 * @param templateId
+	 * @param uuid
+	 * @param alarmRule
+	 * @param adCode
+	 * @param isSendStation 是否发送站内信
+	 * @return
+	 */
+	@Async
+	public Map<String, Object> waterFirstOverHandle(String templateId, String uuid, AlarmRule alarmRule,String adCode,Boolean isSendStation) {
+		Map<String, Object> map = new HashMap<>();
+		// 调用中台服务接口查询数据
+		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.over_z_res_api);
+		// 只发短信,将发短信信息组装好
+		SmsRequestTemplate smsRequestTemplate
+			= noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterFirstOverList,true,adCode,uuid);
+		smsRequestTemplate.setIsSendStation(isSendStation);
+
+		// 拼接后面内容
+		if (smsRequestTemplate.getPersonVOList().size()>0) {
+			for (List<String> list : smsRequestTemplate.getTemplateContent()) {
+				// 依次拼接巡查责任人,技术责任人姓名
+				noticeHandle.addPatrolTechnologyInfo(list);
+				// 拼接市县水利部人员姓名及联系方式
+				noticeHandle.addCityCountyBusinessPersonInfo(list);
+				// 保存告警记录信息
+				AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list,alarmRule,uuid);
+				if (null != alarmRecord) {
+					list.add(alarmRecord.getId().toString());
+				}
+			}
+			// 调用短信服务
+			map = smsService.sendSignMsg(smsRequestTemplate);
+			return map;
+		}
+		return map;
+	}
+
+	/**
+	 * 10.水位超设计洪水位告警处理
 	 * @param templateId
 	 * @param uuid
 	 * @param alarmRule
 	 * @return
 	 */
 	@Async
-	public Map<String, Object> handleAlarmInfo(String templateId, String uuid, AlarmRule alarmRule) {
+	public Map<String, Object> waterMoreDesignHandle(String templateId, String uuid, AlarmRule alarmRule) {
 		Map<String, Object> map = new HashMap<>();
 		// 调用中台服务接口查询数据
 		JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.over_des_rz_warn_api);
 		// 只发短信,将发短信信息组装好
 		SmsRequestTemplate smsRequestTemplate
-			= noticeHandle.getSendSmsTemplate(ztData, templateId, alarmRule, ZtApiDataColumnConstant.waterMoreDesignList, true, null);
+			= noticeHandle.getSendSmsTemplate(ztData, templateId, alarmRule, ZtApiDataColumnConstant.waterMoreDesignList, true, null,uuid);
 		// 拼接后面内容
 		if (smsRequestTemplate.getPersonVOList().size() > 0) {
 			for (List<String> list : smsRequestTemplate.getTemplateContent()) {

--
Gitblit v1.9.3