From 6e4c8d00a3e745fdb910c2325840e3b88f634d21 Mon Sep 17 00:00:00 2001
From: zrj <646384940@qq.com>
Date: Thu, 11 Jul 2024 09:19:59 +0800
Subject: [PATCH] 大雨。暴雨预警参数修改
---
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 152 insertions(+), 24 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 7c56647..336d3bd 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
@@ -203,6 +203,7 @@
*/
public String waterFirstOverHandle(String arg1, String arg2) {
String adCode = "421303000000";
+// String adCode = null;
// 查询当前策略对应的告警规则信息
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
// 调用中台服务接口查询数据
@@ -240,6 +241,40 @@
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
// 调用中台服务接口查询数据
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_over_z_small_over_api);
+ // 获取告警规则详情,判断告警类型(短信,电话,站内信)
+ if (null != alarmRule) {
+ // 查询告警详情信息
+ List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
+ if (alarmRuleDetailList.size() > 0) {
+ // 遍历
+ if (alarmRuleDetailList.get(0).getAlarmMode().equals("短信")) {
+ 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);
+ }
+ }
+ }
+ // 返回
+ return "水位小幅超汛限告警";
+ }
+
+
+ /**
+ * 策略7.1: 水位小幅超汛限告警2--水位高于汛限水位20cm
+ *
+ * @param arg1
+ * @param arg2
+ * @return
+ */
+ public String waterSmallScaleOver20Handle(String arg1, String arg2) {
+// String adCode = "421303000000";
+ String adCode = null;
+ String uuid = UUID.randomUUID().toString();
+ // 查询当前策略对应的告警规则信息
+ AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
+ // 调用中台服务接口查询数据
+ JSONArray ztData = noticeHandle.getZtData("?diff_value=0.2", ZtApiUrlConstant.res_over_z_small_over_api);
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
if (null != alarmRule) {
// 查询告警详情信息
@@ -343,7 +378,7 @@
// 查询当前策略对应的告警规则信息
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
// 调用中台服务接口查询数据
- JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.over_des_rz_warn_api);
+ JSONArray ztData = noticeHandle.getZtData("?is_show=1", ZtApiUrlConstant.over_des_rz_warn_api);
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
if (null != alarmRule) {
// 查询告警详情信息
@@ -377,7 +412,7 @@
// 查询当前策略对应的告警规则信息
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
// 调用中台服务接口查询数据
- JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_over_chec_api);
+ JSONArray ztData = noticeHandle.getZtData("?is_show=1", ZtApiUrlConstant.res_over_chec_api);
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
if (null != alarmRule) {
// 查询告警详情信息
@@ -494,7 +529,7 @@
// 遍历
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, false, adCode, false);
}
}
}
@@ -525,7 +560,7 @@
// 遍历
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, false, adCode, false);
}
}
}
@@ -569,11 +604,48 @@
// 遍历
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, false, adCode, false, uuid);
}
// if (alarmRuleDetail.getAlarmMode().equals("电话")) {
// asyncNoticeHandle.outCallHandleCall(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.sixHourRainList,true, adCode, false,uuid);
// }
+ }
+ }
+ }
+ // 返回
+ return "6小时降雨告警";
+ }
+
+ /**
+ * 策略18: 6小时降雨告警2
+ *
+ * @param arg1
+ * @param arg2
+ * @return
+ */
+ public String sixHourRainHandle2(String arg1, String arg2) {
+ //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("?drp=50", ZtApiUrlConstant.alarm_rain_only_6_over_api);
+ // 外呼对应数据
+ JSONArray whztData = noticeHandle.getZtData("?drp=100", ZtApiUrlConstant.alarm_rain_only_6_over_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.sixHourRainHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.sixHourRainList, false, adCode, false, uuid);
+ }
+ if (alarmRuleDetail.getAlarmMode().equals("电话")) {
+ asyncNoticeHandle.outCallHandleCall(alarmRule, alarmRuleDetail, whztData,ZtApiDataColumnConstant.sixHourRainList,false, adCode, false,uuid);
+ }
}
}
}
@@ -930,7 +1002,10 @@
// 调用中台服务接口查询数据
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_higher_then_bdElevation_api);
//这里需要对数据进行过滤
- JSONArray resultData = filterNoAlertRes(ztData,arg1);
+ JSONArray resultData1 = filterNoAlertRes(ztData,arg1);
+
+ JSONArray resultData = setMonitorData(resultData1, "max_value");
+
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
if (null != alarmRule) {
// 查询告警详情信息
@@ -965,7 +1040,10 @@
// 调用中台服务接口查询数据
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_higher_then_water_level_api);
//这里需要对数据进行过滤
- JSONArray resultData = filterNoAlertRes(ztData,arg1);
+ JSONArray resultData1 = filterNoAlertRes(ztData,arg1);
+
+ JSONArray resultData = setMonitorData(resultData1, "max_value");
+
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
if (null != alarmRule) {
// 查询告警详情信息
@@ -1120,6 +1198,7 @@
// 调用中台服务接口查询数据
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_rz_1h_change_api);
+ // 处理数据
JSONArray data = judgeType(ztData);
//这里需要对数据进行过滤
JSONArray resultData = filterNoAlertRes(data,arg1);
@@ -1225,7 +1304,7 @@
/**
- * 近1h变形值大于10cm以上
+ * 变形值大于100mm
*
* @param arg1
* @param arg2
@@ -1238,7 +1317,7 @@
// 查询当前策略对应的告警规则信息
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 ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_wy_value_api);
JSONArray data = judgeDirection(ztData, "3");
@@ -1284,7 +1363,6 @@
//这里需要对数据进行过滤
JSONArray resultData = filterNoAlertRes(data,arg1);
-
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
if (null != alarmRule) {
// 查询告警详情信息
@@ -1324,8 +1402,8 @@
JSONArray data = filterData(ztData,"1");
//这里需要对数据进行过滤
- JSONArray resultData = filterNoAlertRes(data,arg1);
-
+ JSONArray resultData1 = filterNoAlertRes(data,arg1);
+ JSONArray resultData = setMonitorData(resultData1, "value");
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
if (null != alarmRule) {
@@ -1335,10 +1413,10 @@
// 遍历
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
- asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid,arg2);
+ asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.slOverLess, true, adCode, false, uuid,arg2);
}
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
- asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid,arg2);
+ asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.slOverLess, true, adCode, true, uuid,arg2);
}
}
}
@@ -1366,8 +1444,8 @@
JSONArray data = filterData(ztData,"2");
//这里需要对数据进行过滤
- JSONArray resultData = filterNoAlertRes(data,arg1);
-
+ JSONArray resultData1 = filterNoAlertRes(data,arg1);
+ JSONArray resultData = setMonitorData(resultData1, "value");
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
if (null != alarmRule) {
// 查询告警详情信息
@@ -1376,10 +1454,10 @@
// 遍历
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
- asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid,arg2);
+ asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.slOverLess, true, adCode, false, uuid,arg2);
}
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
- asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid,arg2);
+ asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.slOverLess, true, adCode, true, uuid,arg2);
}
}
}
@@ -1407,7 +1485,9 @@
JSONArray data = filterData(ztData,"3");
//这里需要对数据进行过滤
- JSONArray resultData = filterNoAlertRes(data,arg1);
+ JSONArray resultData1 = filterNoAlertRes(data,arg1);
+
+ JSONArray resultData = setMonitorData(resultData1, "value");
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
if (null != alarmRule) {
@@ -1417,16 +1497,16 @@
// 遍历
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
- asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid,arg2);
+ asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.slOverLess, true, adCode, false, uuid,arg2);
}
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
- asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid,arg2);
+ asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.slOverLess, true, adCode, true, uuid,arg2);
}
}
}
}
- return "渗流量一日大于5L小于8L,连续3日增加告警";
+ return "渗流量一日大于10L告警";
}
/**
@@ -1463,6 +1543,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) {
@@ -1512,6 +1624,7 @@
jsonObject.put("direction", direction);
jsonObject.put("val", val);
+ jsonObject.put("monitorData",val);
array.add(jsonObject);
}
@@ -1535,7 +1648,7 @@
//左右岸方向
Double dnVal = jsonObject.getDouble("dn_val");
//垂直
- Double duValue = jsonObject.getDouble("du_value");
+ Double duValue = jsonObject.getDouble("垂直位移");
String direction = "";
String val = "";
@@ -1582,6 +1695,7 @@
jsonObject.put("direction", direction);
jsonObject.put("val", val);
+ jsonObject.put("monitorData",val);
array.add(jsonObject);
}
@@ -1605,6 +1719,7 @@
}
jsonObject.put("type", type);
+ jsonObject.put("monitorData",jsonObject.getString("sy_val"));
array.add(jsonObject);
}
return array;
@@ -1638,7 +1753,6 @@
String dayNum = "";
String diffVal = "";
-
if (dataLevel.equals(level)) {
if (level.equals("1")) {
//水位长期不变,五日变幅小于5cm,十日变幅大于5cm小于8cm,三十日变幅大于8cm小于10cm
@@ -1692,6 +1806,7 @@
}
jsonObject.put("diff_val", diffVal);
+ jsonObject.put("monitorData",jsonObject.getString("val1"));
array.add(jsonObject);
}
}
@@ -1719,12 +1834,14 @@
if (differ < 0) {
//加进一个绝对值方便展示
jsonObject.put("diff_tbb_val_abs", Math.abs(differ));
+ jsonObject.put("monitorData",jsonObject.getString("min_value"));
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) {
+ jsonObject.put("monitorData",jsonObject.getString("max_value"));
array.add(jsonObject);
}
}
@@ -1762,5 +1879,16 @@
return result;
}
+ //给数组赋值监测值,便于后面记录监测值
+ public JSONArray setMonitorData(JSONArray source,String monitorName){
+ JSONArray result = new JSONArray();
+ for (int i = 0; i < source.size(); i++) {
+ JSONObject jsonObject = source.getJSONObject(i);
+ String data = jsonObject.getString(monitorName);
+ jsonObject.put("monitorData",data);
+ result.add(jsonObject);
+ }
+ return result;
+ }
}
--
Gitblit v1.9.3