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