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()) { 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); // 发起通知 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 "水位初次超汛限告警"; } 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()); // 返回 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; }