package cn.gistack.alerts.notice.service.impl;
|
|
import cn.gistack.alerts.alarmRule.entity.AlarmRecord;
|
import cn.gistack.alerts.alarmRule.entity.AlarmRule;
|
import cn.gistack.alerts.alarmRule.service.AlarmRecordService;
|
import cn.gistack.alerts.alarmRule.service.AlarmRuleService;
|
import cn.gistack.alerts.notice.constant.ZtConfigConstant;
|
import cn.gistack.alerts.sms.service.ISmsTemplateService;
|
import cn.gistack.common.utils.SpringContextUtil;
|
import cn.gistack.alerts.notice.constant.PtInfoConstant;
|
import cn.gistack.alerts.notice.constant.ZtApiDataColumnConstant;
|
import cn.gistack.alerts.notice.constant.ZtApiUrlConstant;
|
import cn.gistack.alerts.notice.enums.PersonEnum;
|
import cn.gistack.alerts.notice.util.FormatUtil;
|
import cn.gistack.sm.sjztmd.vo.PersonVO;
|
import cn.gistack.sm.sjztmd.feign.IAttResManagePersonClient;
|
import cn.gistack.alerts.sms.entity.SmsTemplate;
|
import cn.gistack.alerts.sms.service.SmsService;
|
import cn.gistack.alerts.sms.vo.SmsRequestTemplate;
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import org.jetbrains.annotations.NotNull;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.http.HttpEntity;
|
import org.springframework.http.HttpHeaders;
|
import org.springframework.http.HttpMethod;
|
import org.springframework.http.ResponseEntity;
|
import org.springframework.stereotype.Component;
|
import org.springframework.util.MultiValueMap;
|
import org.springframework.web.client.RestTemplate;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.UUID;
|
|
/**
|
* 通知策略
|
*
|
* @author zhongrj
|
* @date 2023-05-30
|
*/
|
@Component
|
public class NoticeStrategyImpl {
|
|
@Autowired
|
private SmsService smsService;
|
|
@Autowired
|
private AlarmRuleService alarmRuleService;
|
|
@Autowired
|
private NoticeHandle noticeHandle;
|
|
@Autowired
|
private AsyncNoticeHandle asyncNoticeHandle;
|
|
|
|
|
/**
|
* 默认实现
|
*
|
* @param arg1 告警规则名称
|
* @param arg2
|
* @return
|
*/
|
public String doSomethingDefault(String arg1, String arg2) {
|
// 默认业务逻辑处理...
|
return "默认实现";
|
}
|
|
/**
|
* 策略1: 水位信息接收不到
|
*
|
* @param arg1 告警规则名称
|
* @param arg2
|
* @return
|
*/
|
public String waterInfoNotHandle(String arg1, String arg2) {
|
String templateId = "2431012216668";
|
// String adCode = "421181000000";
|
String adCode = null;
|
String uuid = templateId + UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
if (null!=alarmRule) {
|
asyncNoticeHandle.waterInfoNotHandle(alarmRule,templateId,uuid,adCode,false);
|
}
|
// 返回
|
return "水位信息接收不到";
|
}
|
|
/**
|
* 策略2: 水位数据异常
|
*
|
* @param arg1 告警规则名称
|
* @param arg2
|
* @return
|
*/
|
public String waterDataExcHandle(String arg1, String arg2) {
|
String templateId = "2431012248591";
|
//String adCode = "421181000000";
|
String adCode = null;
|
String uuid = templateId + UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
if (null!=alarmRule) {
|
asyncNoticeHandle.waterDataExcHandle(alarmRule,templateId,uuid,adCode,false);
|
}
|
// 返回
|
return "水位数据异常";
|
}
|
|
/**
|
* 策略3: 水位超低于死水位(水库技术责任人、巡查责任人)
|
*
|
* @param arg1 告警规则名称
|
* @param arg2
|
* @return
|
*/
|
public String waterLessDeadHandle(String arg1, String arg2) {
|
String adCode = "420607000000";
|
// String adCode = null;
|
String templateId = "2431012248594";
|
String uuid = templateId + UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
if (null!=alarmRule) {
|
asyncNoticeHandle.waterLessDeadHandle(templateId,uuid,alarmRule,adCode,false);
|
}
|
// 返回
|
return "水位超低于死水位";
|
}
|
|
|
|
/**
|
* 策略4: 水位高于死水位,低于旱警水位
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterMoreDeadLessHJHandle(String arg1, String arg2) {
|
// 业务逻辑处理 2...
|
return "";
|
}
|
|
/**
|
* 策略5: 水位接近汛限告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterComeOverHandle(String arg1, String arg2) {
|
String adCode = null;
|
String templateId = "znxsw10000001";
|
String uuid = templateId + UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
if (null!=alarmRule) {
|
asyncNoticeHandle.waterComeOverHandle(templateId,uuid,alarmRule, null);
|
}
|
return "水位接近汛限告警";
|
}
|
|
|
|
/**
|
* 策略6: 水位初次超汛限告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterFirstOverHandle(String arg1, String arg2) {
|
String adCode = "421303000000";
|
String templateId = "2431012216671";
|
String uuid = templateId + UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
if (null!=alarmRule) {
|
// 短信发送
|
asyncNoticeHandle.waterFirstOverHandle(templateId, uuid, alarmRule,adCode,true);
|
// 返回
|
return "水位初次超汛限告警";
|
}
|
// 返回
|
return "水位初次超汛限告警";
|
}
|
|
|
/**
|
* 策略7: 水位小幅超汛限告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterSmallScaleOverHandle(String arg1, String arg2) {
|
// 业务逻辑处理 2...
|
return "";
|
}
|
|
/**
|
* 策略8: 水位大幅超汛限告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterBigScaleOverHandle(String arg1, String arg2) {
|
// 业务逻辑处理 2...
|
return "";
|
}
|
|
/**
|
* 策略9: 水位接近设计洪水位告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterComeDesignHandle(String arg1, String arg2) {
|
// 业务逻辑处理 2...
|
return "";
|
}
|
|
/**
|
* 策略10: 水位超设计洪水位告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterMoreDesignHandle(String arg1, String arg2) {
|
String templateId = "2431012248604";
|
String uuid = templateId + UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
if (null!=alarmRule) {
|
// 异步处理,暂时解决超时重置问题
|
Map<String, Object> map = asyncNoticeHandle.waterMoreDesignHandle(templateId, uuid, alarmRule);
|
// 返回
|
return "水位超设计洪水位告警";
|
}
|
// 返回
|
return "水位超设计洪水位告警";
|
}
|
|
/**
|
* 策略11: 水位超校核洪水位告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterMoreCheckHandle(String arg1, String arg2) {
|
// 业务逻辑处理 2...
|
return "";
|
}
|
|
/**
|
* 策略12: 近1h水位陡升
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterComeOneHourUpHandle(String arg1, String arg2) {
|
// 业务逻辑处理 2...
|
return "";
|
}
|
|
/**
|
* 策略13: 近1h水位陡降
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterComeOneHourDownHandle(String arg1, String arg2) {
|
// 业务逻辑处理 2...
|
return "";
|
}
|
|
/**
|
* 策略14: 暴雨降雨预警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String rainstormHandle(String arg1, String arg2) {
|
// 业务逻辑处理 2...
|
return "";
|
}
|
|
/**
|
* 策略15: 已降大雨告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String alreadyHeavyRainHandle(String arg1, String arg2) {
|
// 业务逻辑处理 2...
|
return "";
|
}
|
|
/**
|
* 策略16: 已降暴雨告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String alreadyRainstormHandle(String arg1, String arg2) {
|
// 业务逻辑处理 2...
|
return "";
|
}
|
|
/**
|
* 策略17: 2小时降雨告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String twoHourRainHandle(String arg1, String arg2) {
|
// 业务逻辑处理 2...
|
return "";
|
}
|
|
/**
|
* 策略18: 6小时降雨告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String sixHourRainHandle(String arg1, String arg2) {
|
// 业务逻辑处理 2...
|
return "";
|
}
|
|
}
|