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/NoticeHandle.java | 100 ++++++++++++++++++++-----------------------------
1 files changed, 41 insertions(+), 59 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 11f15b9..a8882e5 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
@@ -75,6 +75,7 @@
* @param columnsList 列名集合信息
* @param flag 是否包含日期
* @param adCode 行政区编号
+ * @param uuid 本次执行临时编号
* @return
*/
public SmsRequestTemplate getSendSmsTemplate(JSONArray jsonArray,
@@ -82,7 +83,8 @@
AlarmRule alarmRule,
List<String> columnsList,
Boolean flag,
- String adCode) {
+ String adCode,
+ String uuid) {
// 通过模板id 查询模板相关信息
SmsTemplate smsTemplate = smsTemplateService.getOne(new QueryWrapper<SmsTemplate>().eq("template_id",templateId).eq("is_deleted",0));
if (null != smsTemplate) {
@@ -93,7 +95,7 @@
// 解析模板并设置 title
smsRequestTemplate.setTitle(FormatUtil.composeMessage(smsTemplate.getContent()));
// 列名数据转换
- getColumnData(jsonArray, columnsList,smsRequestTemplate,alarmRule,flag,adCode);
+ getColumnData(jsonArray, columnsList,smsRequestTemplate,alarmRule,flag,adCode,uuid);
//返回
return smsRequestTemplate;
}
@@ -107,6 +109,7 @@
* @param smsRequestTemplate
* @param flag
* @param adCode
+ * @param uuid
* @return
*/
private void getColumnData(JSONArray jsonArray,
@@ -114,59 +117,25 @@
SmsRequestTemplate smsRequestTemplate,
AlarmRule alarmRule,
Boolean flag,
- String adCode) {
+ String adCode,
+ String uuid) {
List<PersonVO> personLists = new ArrayList<>();
List<List<String>> lists = new ArrayList<>();
+ Set<String> set = new HashSet<>();
for (int i = 0; i < jsonArray.size(); i++) {
if (null!=adCode){
// city_cd,county_cd 过滤数据
String county_cd = jsonArray.getJSONObject(i).getString("county_cd");
if (null!= county_cd && county_cd.equals(adCode)) {
- jointData(jsonArray, columnsList, alarmRule, flag, personLists, lists, i);
+ jointData(jsonArray, columnsList, alarmRule, flag, personLists, lists, i,uuid,set);
}
}else {
- jointData(jsonArray, columnsList, alarmRule, flag, personLists, lists, i);
+ jointData(jsonArray, columnsList, alarmRule, flag, personLists, lists, i,uuid,set);
}
}
// 设置信息
smsRequestTemplate.setPersonVOList(personLists);
smsRequestTemplate.setTemplateContent(lists);
- }
-
- /**
- * 列名数据转换-- 需合并水库名称
- * @param jsonArray
- * @param columnsList
- * @param smsRequestTemplate
- * @param flag
- * @param adCode
- * @return
- */
- private void getMergeColumnData(JSONArray jsonArray,
- List<String> columnsList,
- SmsRequestTemplate smsRequestTemplate,
- AlarmRule alarmRule,
- Boolean flag,
- String adCode) {
- Set<String> resCdSet = new HashSet<>();
- for (int i = 0; i < jsonArray.size(); i++) {
- String res_cd = jsonArray.getJSONObject(i).getString("res_cd");
- resCdSet.add(res_cd);
- }
- // 查询对应的人员
- getPersonListByResList(resCdSet,alarmRule);
- // 设置信息
-// smsRequestTemplate.setPersonVOList(personLists);
-// smsRequestTemplate.setTemplateContent(lists);
- }
-
- /**
- * 查询对应的用户及水库信息
- * @param resCdSet
- * @param alarmRule
- */
- private void getPersonListByResList(Set<String> resCdSet, AlarmRule alarmRule) {
- // 查询对应的用户及水库信息
}
/**
@@ -180,27 +149,40 @@
* @param i
* @return
*/
- private void jointData(JSONArray jsonArray, List<String> columnsList, AlarmRule alarmRule, Boolean flag, List<PersonVO> personLists, List<List<String>> lists, int i) {
+ private void jointData(JSONArray jsonArray,
+ List<String> columnsList,
+ AlarmRule alarmRule,
+ Boolean flag,
+ List<PersonVO> personLists,
+ List<List<String>> lists,
+ int i,
+ String uuid,
+ Set<String> set) {
// 根据水库编号,所在区域查询需要发送的人员手机号及设置
String res_cd = jsonArray.getJSONObject(i).getString("res_cd");
- // 取出测站编码
- String stcd = jsonArray.getJSONObject(i).getString("stcd");
- // 判断时间是否存在
- String tm = jsonArray.getJSONObject(i).getString("tm");
- String day = "";
- String hour = "";
- String minute = "";
- if (null != tm && !tm.equals("") && flag) {
- flag = true;
- // 加入天,时,分
- day = tm.substring(8, 10);
- hour =tm.substring(11, 13);
- minute = tm.substring(14, 16);
- } else {
- flag = false;
+ String tempStr = uuid + res_cd;
+ // 去重水库操作,如果有重复的水库则不操作
+ if (!set.contains(tempStr)) {
+ set.add(tempStr);
+ // 取出测站编码
+ String stcd = jsonArray.getJSONObject(i).getString("stcd");
+ // 判断时间是否存在
+ String tm = jsonArray.getJSONObject(i).getString("tm");
+ String day = "";
+ String hour = "";
+ String minute = "";
+ if (null != tm && !tm.equals("") && flag) {
+ flag = true;
+ // 加入天,时,分
+ day = tm.substring(8, 10);
+ hour = tm.substring(11, 13);
+ minute = tm.substring(14, 16);
+ } else {
+ flag = false;
+ }
+ // 获取告警人员信息
+ getAlarmPersonList(jsonArray, columnsList, alarmRule, flag, personLists, lists, i, res_cd, day, hour, minute, stcd);
}
- // 获取告警人员信息
- getAlarmPersonList(jsonArray, columnsList, alarmRule, flag, personLists, lists, i, res_cd, day, hour, minute,stcd);
}
/**
--
Gitblit v1.9.3