From 6735eaad855055d7a7e1149f3a01ebff1e29005b Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 26 Jul 2023 16:00:43 +0800
Subject: [PATCH] 雨量大雨,暴雨,6小时告警新增
---
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java | 231 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 218 insertions(+), 13 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 0b3d7f8..e4abf36 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
@@ -27,7 +27,97 @@
/**
- * 水位接近汛限告警
+ * 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
@@ -38,20 +128,22 @@
// 调用中台服务接口查询数据
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_diff_dead_z_api);
// 只发送站内信
- SmsRequestTemplate smsRequestTemplate = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterLessDeadList,true,null);
+ SmsRequestTemplate smsRequestTemplate = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterLessDeadList,true,null,uuid);
// 拼接内容后面的联系方式,当前模板县水利部人员姓名电话
- // 遍历,拼接县水利部人员电话
- for (List<String> list : smsRequestTemplate.getTemplateContent()) {
- // 后面依次拼接 巡查责任人姓名,技术责任人姓名,市县水利部门人员姓名电话(暂时不要)
- noticeHandle.addPatrolTechnologyInfo(list);
- // 市县水利部门人员姓名电话(暂时不要)
+ 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");
+ list.add("999");
// }
+ }
}
// 保存站内信记录信息
noticeHandle.saveInStationInfo(smsRequestTemplate,alarmRule);
@@ -59,7 +151,7 @@
/**
- * 水位初次超汛限告警 处理
+ * 6.水位初次超汛限告警 处理
* @param templateId
* @param uuid
* @param alarmRule
@@ -74,7 +166,7 @@
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.over_z_res_api);
// 只发短信,将发短信信息组装好
SmsRequestTemplate smsRequestTemplate
- = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterFirstOverList,true,adCode);
+ = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterFirstOverList,true,adCode,uuid);
smsRequestTemplate.setIsSendStation(isSendStation);
// 拼接后面内容
@@ -98,7 +190,7 @@
}
/**
- * 水位超设计洪水位告警处理
+ * 10.水位超设计洪水位告警处理
* @param templateId
* @param uuid
* @param alarmRule
@@ -111,7 +203,7 @@
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()) {
@@ -132,4 +224,117 @@
return map;
}
+ /**
+ * 策略15: 已降大雨告警
+ *
+ * @param templateId
+ * @param uuid
+ * @param alarmRule
+ * @param adCode
+ * @param isSendStation 是否发送站内信
+ * @return
+ */
+ @Async
+ public Map<String, Object> alreadyHeavyRainHandle(String templateId, String uuid, AlarmRule alarmRule, String adCode, boolean isSendStation) {
+ Map<String, Object> map = new HashMap<>();
+ // 调用中台服务接口查询数据
+ JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_rain_dy_api);
+ // 只发短信,将发短信信息组装好
+ SmsRequestTemplate smsRequestTemplate
+ = noticeHandle.getSendSmsTemplate(ztData, templateId, alarmRule, ZtApiDataColumnConstant.alreadyHeavyRainList, false, adCode,uuid);
+ // 拼接后面内容
+ 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;
+ }
+
+ /**
+ * 策略16: 已降暴雨告警
+ *
+ * @param templateId
+ * @param uuid
+ * @param alarmRule
+ * @param adCode
+ * @param isSendStation 是否发送站内信
+ * @return
+ */
+ @Async
+ public Map<String, Object> alreadyRainstormHandle(String templateId, String uuid, AlarmRule alarmRule, String adCode, boolean isSendStation) {
+ Map<String, Object> map = new HashMap<>();
+ // 调用中台服务接口查询数据
+ JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_rain_by_api);
+ // 只发短信,将发短信信息组装好
+ SmsRequestTemplate smsRequestTemplate
+ = noticeHandle.getSendSmsTemplate(ztData, templateId, alarmRule, ZtApiDataColumnConstant.alreadyRainstormList, false, adCode,uuid);
+ // 拼接后面内容
+ 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;
+ }
+
+ /**
+ * 策略18: 6小时降雨告警
+ *
+ * @param templateId
+ * @param uuid
+ * @param alarmRule
+ * @param adCode
+ * @param isSendStation 是否发送站内信
+ * @return
+ */
+ @Async
+ public Map<String, Object> sixHourRainHandle(String templateId, String uuid, AlarmRule alarmRule, String adCode, boolean isSendStation) {
+ Map<String, Object> map = new HashMap<>();
+ // 调用中台服务接口查询数据
+ JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_rain_6_over_api);
+ // 只发短信,将发短信信息组装好
+ SmsRequestTemplate smsRequestTemplate
+ = noticeHandle.getSendSmsTemplate(ztData, templateId, alarmRule, ZtApiDataColumnConstant.sixHourRainList, false, adCode,uuid);
+ // 拼接后面内容
+ if (smsRequestTemplate.getPersonVOList().size() > 0) {
+ for (List<String> list : smsRequestTemplate.getTemplateContent()) {
+ // 依次添加行政责任人,主管部门责任人,技术责任人,巡查责任人信息(姓名,联系电话)
+ noticeHandle.addWaterMoreDesignPatrolTechnologyInfo(list,"1,2,4,5");
+ // 拼接市县水利部人员姓名及联系方式
+ 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;
+ }
}
--
Gitblit v1.9.3