From f2bfb4490106abcb41e3c7e09159e89a0f7219c0 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Thu, 13 Jul 2023 16:07:26 +0800
Subject: [PATCH] 水位缺失预警调整,重复水库进行去重,合并水库最多30个发送

---
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java |  104 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 101 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..ea0910a 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,119 @@
 	@Autowired
 	private SmsService smsService;
 
+
 	/**
-	 * 异步发送告警信息
+	 * 1.水位信息接收不到
+	 * @param alarmRule
+	 * @param templateId
+	 * @param uuid
+	 * @param adCode
+	 * @param isSendStation
+	 */
+	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);
+	}
+
+
+	/**
+	 * 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);
+		// 拼接内容后面的联系方式,当前模板县水利部人员姓名电话
+		// 遍历,拼接县水利部人员电话
+		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