From b3eac89b903fd1b59a8ca2a8460f073b9180079c Mon Sep 17 00:00:00 2001
From: zhongrijian <646384940@qq.com>
Date: Sat, 01 Jun 2024 17:41:11 +0800
Subject: [PATCH] 新增超过防洪高水位告警
---
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java | 15 +++++++
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java | 32 ++++++++++++++++
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/strategy/NoticeStrategyContext.java | 2 +
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java | 51 +++++++++++++++++++++++++
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiUrlConstant.java | 5 ++
5 files changed, 105 insertions(+), 0 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java
index ffbf147..581457b 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java
@@ -487,4 +487,19 @@
add("res_nm");
add("video_name");
}};
+
+
+ /**
+ * 42 水位超防洪高水位告警处理
+ */
+ public static List<String> topLevOfFloAlertList = new ArrayList<String>()
+ {{
+ add("town_nm");
+ add("res_nm");
+ add("rz");
+ add("over_des_wtr_level");
+ add("diff_dam");
+ add("drp_24");
+ add("flpr_high_stag");
+ }};
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiUrlConstant.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiUrlConstant.java
index 7e97e9f..f006f2a 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiUrlConstant.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiUrlConstant.java
@@ -171,4 +171,9 @@
*/
public static final String alarm_video_offline_api = "/services/1234567890ABCDEFGHIJKLMN/wmst_not_online_list/api?pageNo=1&pageSize=9999";
+ /**
+ * 42. 超防洪高水位告警
+ */
+ public static final String over_flpr_rz_warn_api = "/services/1234567890ABCDEFGHIJKLMN/over_flpr_rz/warn";
+
}
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 65b02be..b4b3da6 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
@@ -2375,4 +2375,55 @@
}
return map;
}
+
+ /**
+ * 策略42 站内信----- 超防洪高水位告警
+ *
+ * @param alarmRule 告警规则
+ * @param alarmRuleDetail 告警规则详情
+ * @param ztData 中台数据
+ * @param columnList 需要展示的数据字段
+ * @param flag 是否显示日期
+ * @param adCode 行政区划
+ * @param isSendStation 是否站内信
+ * @param uuid 随机生成id
+ * @return
+ */
+ public void topLevOfFloAlertHandleStation(AlarmRule alarmRule,
+ AlarmRuleDetail alarmRuleDetail,
+ JSONArray data,
+ List<String> columnList,
+ boolean flag,
+ String adCode,
+ boolean isSendStation,
+ String uuid,
+ String isDay
+ ) {
+ SmsRequestTemplate smsRequestTemplate
+ = noticeHandle.getSendSmsTemplate(data, alarmRule, alarmRuleDetail, columnList, flag, adCode, uuid, isSendStation);
+ // 拼接后面内容
+ if (smsRequestTemplate.getPersonVOList().size() > 0) {
+ for (List<String> list : smsRequestTemplate.getTemplateContent()) {
+ String remark = StringUtil.format("水位:{}\n防洪高水位:{}米\n超防洪高水位:{}米\n",
+ list.get(9), list.get(13), String.format("%.2f", Double.valueOf(list.get(9).replace("米", "")) - Double.valueOf(list.get(13)))
+ );
+ list.remove(13);
+ System.out.println(remark);
+ // 依次添加行政责任人,主管部门责任人,技术责任人,巡查责任人信息(姓名,联系电话)
+ noticeHandle.addWaterMoreDesignPatrolTechnologyInfo(list, "1,2,4,5");
+ // 拼接市县水利部人员姓名及联系方式
+ noticeHandle.addCityCountyBusinessPersonInfo(list);
+ // 保存告警记录信息
+ AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list, alarmRule, uuid,remark);
+ if (null != alarmRecord) {
+ list.add(alarmRecord.getId().toString());
+ }
+ }
+
+ //如果参数是day,表示是每天生成告警,不需要发信息
+ if (isDay.equals("day")) return;
+ // 保存站内信记录信息
+ noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
+ }
+ }
}
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 132a2e2..9a2a0bf 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
@@ -1474,6 +1474,38 @@
return "视频信息缺失告警";
}
+
+ /**
+ * 策略42: 水位防洪高水位告警
+ *
+ * @param arg1
+ * @param arg2
+ * @return
+ */
+ public String topLevOfFloAlertHandle(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.over_flpr_rz_warn_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.topLevOfFloAlertHandleStation(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.topLevOfFloAlertList, true, adCode, true, uuid,arg2);
+ }
+ }
+ }
+ }
+ // 返回
+ return "水位防洪高水位告警";
+ }
+
private JSONArray filterData(JSONArray ztData, String level) {
JSONArray array = new JSONArray();
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/strategy/NoticeStrategyContext.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/strategy/NoticeStrategyContext.java
index a9a95c6..718fa2a 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/strategy/NoticeStrategyContext.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/strategy/NoticeStrategyContext.java
@@ -118,6 +118,8 @@
strategyMap.put("damSafetySlOver10Handle",(arg1,arg2)->noticeStrategyImpl.damSafetySlOver10Handle(arg1,arg2));
//41 视频信息接收不到
strategyMap.put("videoOfflineHandle",(arg1,arg2)->noticeStrategyImpl.videoOfflineHandle(arg1,arg2));
+ //42 水位-超防洪高水位告警
+ strategyMap.put("topLevOfFloAlertHandle",(arg1,arg2)->noticeStrategyImpl.topLevOfFloAlertHandle(arg1,arg2));
}
/**
--
Gitblit v1.9.3