From 2a8f13fe78fbf4b74bd93bd43ae7b7e3e9211e79 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 05 Jul 2023 10:18:48 +0800
Subject: [PATCH] 超设计告警修改为异步执行,暂时解决超时任务重试问题
---
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java | 81 +++++++---------------------------------
1 files changed, 14 insertions(+), 67 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 882a2d7..9eec07a 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
@@ -51,10 +51,10 @@
private AlarmRuleService alarmRuleService;
@Autowired
- private RestTemplate restTemplate;
+ private NoticeHandle noticeHandle;
@Autowired
- private NoticeHandle noticeHandle;
+ private AsyncNoticeHandle asyncNoticeHandle;
@@ -85,7 +85,7 @@
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
if (null!=alarmRule) {
// 调用中台服务接口查询数据
- JSONArray ztData = getZtData("", ZtApiUrlConstant.res_z_null_api);
+ JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_z_null_api);
// 只发短信,将发短信信息组装好
SmsRequestTemplate smsRequestTemplate = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterInfoNotList,false,null);
// 拼接内容后面的联系方式,当前模板拼接平台服务电话
@@ -118,7 +118,7 @@
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
if (null!=alarmRule) {
// 调用中台服务接口查询数据
- JSONArray ztData = getZtData("", ZtApiUrlConstant.res_z_not_normal_api);
+ JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_z_not_normal_api);
// 只发短信,将发短信信息组装好
SmsRequestTemplate smsRequestTemplate
= noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterDataExcList,false,null);
@@ -151,7 +151,7 @@
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
if (null!=alarmRule) {
// 调用中台服务接口查询数据
- JSONArray ztData = getZtData("", ZtApiUrlConstant.res_diff_dead_z_api);
+ JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_diff_dead_z_api);
// 只发短信,将发短信信息组装好
SmsRequestTemplate smsRequestTemplate = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterLessDeadList,true,null);
// 拼接内容后面的联系方式,当前模板县水利部人员姓名电话
@@ -166,13 +166,15 @@
}
}
// 调用短信服务
- Map<String,Object> map = smsService.sendSignMsg(smsRequestTemplate);
+ Map<String, Object> map = smsService.sendSignMsg(smsRequestTemplate);
// 返回
return "本次-水位初次超汛限告警短信成功通知数量:" + map.get("smsRecord");
}
// 返回
return "水位超低于死水位";
}
+
+
/**
* 策略4: 水位高于死水位,低于旱警水位
@@ -200,7 +202,7 @@
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
if (null!=alarmRule) {
// 调用中台服务接口查询数据
- JSONArray ztData = getZtData("", ZtApiUrlConstant.res_diff_dead_z_api);
+ JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_diff_dead_z_api);
// 只发送站内信
SmsRequestTemplate smsRequestTemplate = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterLessDeadList,true,null);
// 拼接内容后面的联系方式,当前模板县水利部人员姓名电话
@@ -240,7 +242,7 @@
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
if (null!=alarmRule) {
// 调用中台服务接口查询数据
- JSONArray ztData = getZtData("", ZtApiUrlConstant.over_z_res_api);
+ JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.over_z_res_api);
// 只发短信,将发短信信息组装好
SmsRequestTemplate smsRequestTemplate
= noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterFirstOverList,true,adCode);
@@ -318,29 +320,10 @@
// 查询当前策略对应的告警规则信息
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
if (null!=alarmRule) {
- // 调用中台服务接口查询数据
- JSONArray ztData = getZtData("", ZtApiUrlConstant.over_des_rz_warn_api);
- // 只发短信,将发短信信息组装好
- SmsRequestTemplate smsRequestTemplate
- = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterMoreDesignList,true,null);
- // 拼接后面内容
- 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<String, Object> map = smsService.sendSignMsg(smsRequestTemplate);
- // 返回
- return "本次-水位初次超汛限告警短信成功通知数量:" + map.get("smsRecord");
- }
+ // 异步处理,暂时解决超时重置问题
+ Map<String, Object> map = asyncNoticeHandle.handleAlarmInfo(templateId, uuid, alarmRule);
+ // 返回
+ return "水位超设计洪水位告警";
}
// 返回
return "水位超设计洪水位告警";
@@ -442,40 +425,4 @@
return "";
}
- /**
- * 调用中台接口查询数据
- *
- * @param params
- * @param url
- * @return
- */
- private JSONArray getZtData(String params, String url) {
- // 获取环境
- String activeProfile = SpringContextUtil.getActiveProfile();
- if (activeProfile.equals("dev")){
- url = ZtApiUrlConstant.url_prefix_dev + url;
- }
- if (activeProfile.equals("prod")){
- url = ZtApiUrlConstant.url_prefix_prod + url;
- }
- //设置请求头
- HttpHeaders headers = new HttpHeaders();
- headers.add(ZtConfigConstant.header_key, ZtConfigConstant.header_value);
- //封装请求头
- HttpEntity<MultiValueMap<String, Object>> formEntity = new HttpEntity<MultiValueMap<String, Object>>(headers);
- try {
- //有请求头,有参数请求
- ResponseEntity<String> responseEntity =
- restTemplate.exchange(url + params,
- HttpMethod.GET,
- formEntity,
- String.class);
- JSONObject jsonObject = JSON.parseObject(responseEntity.getBody());
- // 返回
- return JSONArray.parseArray(jsonObject.get("data").toString());
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
}
--
Gitblit v1.9.3