From 13a2488a1c825da7e2404f5f1036a42b6c44c849 Mon Sep 17 00:00:00 2001
From: zrj <646384940@qq.com>
Date: Mon, 02 Sep 2024 18:04:09 +0800
Subject: [PATCH] 告警合并发送调整
---
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java | 80 +++++++++++++++++++++++++++++++++++++---
1 files changed, 74 insertions(+), 6 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java
index 7b68ed0..a47a474 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java
@@ -119,6 +119,12 @@
if (null != smsTemplate) {
// 创建消息发送对象
SmsRequestTemplate smsRequestTemplate = new SmsRequestTemplate();
+ // 通过模板id 查询模板相关信息(外呼对应的模板id则为场景id)
+ SmsTemplate mergeSmsTemplate
+ = smsTemplateService.getOne(new QueryWrapper<SmsTemplate>().eq("id", alarmRuleDetail.getMergeTemplateId()).eq("is_deleted", 0));
+ if (null!=mergeSmsTemplate){
+ smsRequestTemplate.setSmsTemplateMerge(mergeSmsTemplate);
+ }
// 设置是否发送站内信
smsRequestTemplate.setIsSendStation(isSendStation);
// 设置告警信息
@@ -227,6 +233,7 @@
// 设置信息
smsRequestTemplate.setPersonVOList(personLists);
smsRequestTemplate.setTemplateContent(lists);
+ smsRequestTemplate.setTemplateMergeContent(moreLists);
}
/**
@@ -283,7 +290,9 @@
//日期处理
flag = timeHandle(jsonArray, alarmRuleDetail, flag, i, list);
// 合并水库名称
- boolean isMerge = mergeResName(jsonArray, columnsList, lists, i, personVO,list.size());
+ boolean isMerge = Strings.isBlank(alarmRuleDetail.getMergeTemplateId())?
+ mergeResName(jsonArray, columnsList,lists, i, personVO,list.size()):
+ mergeResName(jsonArray,list, mergeColumnsList,lists,moreLists, i, personVO,list.size());
if (isMerge){
break;
}
@@ -437,6 +446,65 @@
}
}
}
+ break;
+ }
+ }
+ return isMerge;
+ }
+
+ /**
+ * 合并水库名称内容--暂不启用
+ * @param jsonArray 告警数据
+ * @param list 当前告警内容
+ * @param columnsList 告警列(合并)
+ * @param lists 告警内容
+ * @param moreLists 合并告警内容
+ * @param i 集合索引
+ * @param personVO 人员信息
+ * @param index 索引
+ * @return
+ */
+ private boolean mergeResName(JSONArray jsonArray,
+ List<String> list,
+ List<String> columnsList,
+ List<List<String>> lists,
+ List<List<String>> moreLists,
+ int i,
+ PersonVO personVO,
+ int index) {
+ boolean isMerge = false;
+ for (List<String> listStr : lists) {
+ // 如果告警人员已经存在,则需要按规则判断是否合并水库名称,将当前人员告警内容中的水库名称合并
+ if (listStr.contains(personVO.getPhone())) {
+ isMerge = true;
+ // 判断合并的水库名称是否超过3个,超过3个则不在合并,直接舍弃
+ String resNames = listStr.get(index);
+ int length = resNames.split("、").length;
+ if (length>2){
+ break;
+ }
+ // 变量将值放入集合中
+ for (String column : columnsList) {
+ String[] split = column.split(",");
+ String format = "";
+ String lastString = split[split.length-1];
+ if (lastString.equals("1")) {
+ // 需要合并数据,目前只会合并乡镇水库名称,其他情况不处理
+ for (String s : split) {
+ // 乡镇水库拼接
+ format = format + jsonArray.getJSONObject(i).getString(s);
+ }
+ format = format.replaceAll("null","");
+ // 合并水库名称信息,2個以上拼接等
+ if (length==2){
+ list.add(listStr.get(index) + "、" + format + "等");
+ }else {
+ list.add(listStr.get(index) + "、" + format);
+ }
+ }
+ }
+ // 加入合并的集合
+ moreLists.add(list);
break;
}
}
@@ -805,12 +873,12 @@
//删除测值
list.remove(3);
// 新增
-// boolean save = alarmRecordService.save(alarm);
-// // 删除测站编号
+ boolean save = alarmRecordService.save(alarm);
+ // 删除测站编号
list.remove(0);
-// if (save) {
-// return alarm;
-// }
+ if (save) {
+ return alarm;
+ }
}
// 返回
return null;
--
Gitblit v1.9.3