From 93c783e6ddf2731eab9cf264a7882632c8ce955f Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Mon, 10 Jul 2023 17:30:50 +0800
Subject: [PATCH] 初次超汛限告警新增站内信信息发送
---
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java | 19 ++++++++-
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/vo/SmsRequestTemplate.java | 11 +++++
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java | 3 +
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java | 5 ++
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java | 23 +++++++++++
5 files changed, 57 insertions(+), 4 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java
index 3338965..0b3d7f8 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java
@@ -64,16 +64,19 @@
* @param uuid
* @param alarmRule
* @param adCode
+ * @param isSendStation 是否发送站内信
* @return
*/
@Async
- public Map<String, Object> waterFirstOverHandle(String templateId, String uuid, AlarmRule alarmRule,String adCode) {
+ public Map<String, Object> waterFirstOverHandle(String templateId, String uuid, AlarmRule alarmRule,String adCode,Boolean isSendStation) {
Map<String, Object> map = new HashMap<>();
// 调用中台服务接口查询数据
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.over_z_res_api);
// 只发短信,将发短信信息组装好
SmsRequestTemplate smsRequestTemplate
= noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterFirstOverList,true,adCode);
+ smsRequestTemplate.setIsSendStation(isSendStation);
+
// 拼接后面内容
if (smsRequestTemplate.getPersonVOList().size()>0) {
for (List<String> list : smsRequestTemplate.getTemplateContent()) {
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 67c50b5..1749d56 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
@@ -19,12 +19,15 @@
import cn.gistack.sm.sjztmd.feign.IAttResManagePersonClient;
import cn.gistack.sm.sjztmd.vo.PersonVO;
import cn.gistack.system.feign.ISysClient;
+import cn.gistack.system.user.entity.User;
+import cn.gistack.system.user.feign.IUserClient;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.shaded.com.google.gson.JsonObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
@@ -58,6 +61,9 @@
@Autowired
private IMessageClient messageClient;
+ @Autowired
+ private IUserClient userClient;
+
/**
@@ -81,6 +87,7 @@
SmsTemplate smsTemplate = smsTemplateService.getOne(new QueryWrapper<SmsTemplate>().eq("template_id",templateId).eq("is_deleted",0));
if (null != smsTemplate) {
SmsRequestTemplate smsRequestTemplate = new SmsRequestTemplate();
+ smsRequestTemplate.setAlarmRule(alarmRule);
// 设置模板信息
smsRequestTemplate.setSmsTemplate(smsTemplate);
// 解析模板并设置 title
@@ -454,7 +461,7 @@
messageRecord.setTheme(alarmRule.getRuleName());
messageRecord.setSender(AuthUtil.getUserId().toString());
messageRecord.setSource("智能告警");
- messageRecord.setStatus(2);
+ messageRecord.setStatus(0);
// 设置告警记录信息
AlarmRecordDetail alarmRecordDetail = new AlarmRecordDetail();
@@ -490,7 +497,9 @@
messageRecordList.add(messageRecord);
}
// 保存告警记录详情信息
- saveMessageRecord(messageRecordList);
+ if (smsRequestTemplate.getIsSendStation()) {
+ saveMessageRecord(messageRecordList);
+ }
Map<String, Object> map = new HashMap<>(2);
// 返回
return map;
@@ -501,6 +510,12 @@
* @param messageRecordList
*/
public void saveMessageRecord(List<MessageRecord> messageRecordList) {
+ // 遍历,查询对应的用户id
+ for (MessageRecord messageRecord : messageRecordList) {
+ // 通过手机号获取用户id信息
+ R<List<User>> listR = userClient.userInfoByPhone("000000", messageRecord.getRecipient());
+ messageRecord.setRecipient(listR.getData().get(0).getId().toString());
+ }
// 保存记录
messageClient.saveMessageRecord(messageRecordList);
// 发起通知
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 bd78041..e8f2ceb 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
@@ -223,7 +223,8 @@
// 查询当前策略对应的告警规则信息
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
if (null!=alarmRule) {
- asyncNoticeHandle.waterFirstOverHandle(templateId, uuid, alarmRule,adCode);
+ // 短信发送
+ asyncNoticeHandle.waterFirstOverHandle(templateId, uuid, alarmRule,adCode,true);
// 返回
return "水位初次超汛限告警";
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
index cd7549f..24ae8c7 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
@@ -6,7 +6,9 @@
import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendDataResult;
import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest;
import cn.gistack.alerts.alarmRule.entity.AlarmRecordDetail;
+import cn.gistack.alerts.alarmRule.entity.AlarmRule;
import cn.gistack.alerts.alarmRule.service.AlarmRecordDetailService;
+import cn.gistack.alerts.notice.service.impl.NoticeHandle;
import cn.gistack.alerts.notice.util.FormatUtil;
import cn.gistack.alerts.sms.constant.MinConstant;
import cn.gistack.alerts.sms.dto.DynSMSSendRequestDTO;
@@ -24,12 +26,14 @@
import cn.gistack.alerts.sms.vo.SmsResponseVO;
import cn.gistack.sm.intelligentCall.entity.CallNotFillRecord;
import cn.gistack.sm.intelligentCall.feign.OutCallClient;
+import cn.gistack.sm.message.entity.MessageRecord;
import cn.gistack.sm.sjztmd.feign.IAttResManagePersonClient;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.google.common.collect.Lists;
import org.jetbrains.annotations.NotNull;
import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -75,6 +79,9 @@
@Autowired
private SmsAsyncService asyncService;
+ @Autowired
+ private NoticeHandle noticeHandle;
+
/**
* 发送 xx 变量模板短信
* @param phoneNumbers 手机号集合
@@ -112,13 +119,22 @@
// 取出数据
SMSSendRequest request = new SMSSendRequest();
SmsTemplate smsTemplate = smsRequestTemplate.getSmsTemplate();
+ AlarmRule alarmRule = smsRequestTemplate.getAlarmRule();
request.setTemplateId(smsTemplate.getTemplateId());
List<List<String>> templateContent = smsRequestTemplate.getTemplateContent();
// 先保存结果记录
SmsResult smsResult = saveSendResult(null,null,request, templateContent.size());
List<SmsRecord> smsRecordList = new ArrayList<>();
+ List<MessageRecord> messageRecordList = new ArrayList<>();
// 遍历处理
for (List<String> list : templateContent) {
+ // 设置站内信记录信息
+ MessageRecord messageRecord = new MessageRecord();
+ messageRecord.setTheme(alarmRule.getRuleName());
+ messageRecord.setSender(AuthUtil.getUserId().toString());
+ messageRecord.setSource("智能告警");
+ messageRecord.setStatus(0);
+
AlarmRecordDetail alarmRecordDetail = new AlarmRecordDetail();
alarmRecordDetail.setReservoirNumber(list.get(0));
alarmRecordDetail.setAlarmRecordId(Long.parseLong(list.get(list.size() - 1)));
@@ -141,6 +157,7 @@
alarmRecordDetail.setPhone(list.get(0));
// 设置手机号
request.setUserNumber(list.get(0));
+ messageRecord.setRecipient(list.get(0));
// 内容处理
String s = smsTemplate.getContent().replaceAll("\\{.+?\\}", "%s");
// 短信内容拼接(完成发送的结果信息)
@@ -150,6 +167,8 @@
String format = String.format(s, list.toArray());
// 设置内容
request.setMessageContent(format);
+ messageRecord.setContent(format);
+ messageRecordList.add(messageRecord);
// 保存短信发送记录
smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId());
if (null != smsRecord){
@@ -162,6 +181,10 @@
}
smsRecordList.add(smsRecord);
}
+ if (smsRequestTemplate.getIsSendStation()) {
+ // 保存站内信信息
+ noticeHandle.saveMessageRecord(messageRecordList);
+ }
Map<String, Object> map = new HashMap<>(2);
map.put("smsRecord",smsRecordList.size());
// 返回
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/vo/SmsRequestTemplate.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/vo/SmsRequestTemplate.java
index 4c6b31d..abf3384 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/vo/SmsRequestTemplate.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/vo/SmsRequestTemplate.java
@@ -1,6 +1,7 @@
package cn.gistack.alerts.sms.vo;
import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest;
+import cn.gistack.alerts.alarmRule.entity.AlarmRule;
import cn.gistack.alerts.sms.entity.SmsTemplate;
import cn.gistack.sm.sjztmd.vo.PersonVO;
import lombok.Data;
@@ -60,4 +61,14 @@
* 短信模板对象信息
*/
private SmsTemplate smsTemplate;
+
+ /**
+ * 是否发送站内信
+ */
+ private Boolean isSendStation;
+
+ /**
+ * 告警规则信息
+ */
+ private AlarmRule alarmRule;
}
--
Gitblit v1.9.3