package cn.gistack.alerts.notice.service.impl;
|
|
import cn.gistack.alerts.alarmRule.entity.AlarmRule;
|
import cn.gistack.alerts.alarmRule.entity.AlarmRuleDetail;
|
import cn.gistack.alerts.alarmRule.service.AlarmRuleDetailService;
|
import cn.gistack.alerts.alarmRule.service.AlarmRuleService;
|
import cn.gistack.alerts.notice.constant.ZtApiDataColumnConstant;
|
import cn.gistack.alerts.notice.constant.ZtApiUrlConstant;
|
import cn.gistack.resource.feign.ITextualResearchAttachClient;
|
import cn.gistack.resource.vo.AlertTextualResearchAttachVO;
|
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.springblade.core.tool.utils.StringUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import java.util.List;
|
import java.util.UUID;
|
|
/**
|
* 通知策略
|
*
|
* @author zhongrj
|
* @date 2023-05-30
|
*/
|
@Component
|
public class NoticeStrategyImpl {
|
|
@Autowired
|
private AlarmRuleService alarmRuleService;
|
|
@Autowired
|
private AlarmRuleDetailService alarmRuleDetailService;
|
|
@Autowired
|
private NoticeHandle noticeHandle;
|
|
@Autowired
|
private AsyncNoticeHandle asyncNoticeHandle;
|
|
@Autowired
|
private ITextualResearchAttachClient textualResearchAttachClient;
|
|
|
/**
|
* 默认实现
|
*
|
* @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 adCode = "421181000000";
|
String adCode = null;
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.no_z_last_api_all);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.waterInfoNotHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterInfoNotList, false, adCode, false);
|
}
|
}
|
}
|
}
|
// 返回
|
return "水位信息接收不到";
|
}
|
|
/**
|
* 策略2: 水位数据异常
|
*
|
* @param arg1 告警规则名称
|
* @param arg2
|
* @return
|
*/
|
public String waterDataExcHandle(String arg1, String arg2) {
|
//String adCode = "421181000000";
|
String adCode = null;
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_z_not_normal_api);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.waterInfoNotHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterDataExcList, false, adCode, false);
|
}
|
}
|
}
|
}
|
// 返回
|
return "水位数据异常";
|
}
|
|
/**
|
* 策略3: 水位超低于死水位(水库技术责任人、巡查责任人)
|
*
|
* @param arg1 告警规则名称
|
* @param arg2
|
* @return
|
*/
|
public String waterLessDeadHandle(String arg1, String arg2) {
|
String adCode = "420881000000";
|
// String adCode = null;
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_diff_dead_z_api);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.waterLessDeadHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterLessDeadList, true, 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;
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_z_is_warn_over_flse_api);
|
//过滤不告警水库
|
JSONArray resultData = filterNoAlertRes(ztData, arg1);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.waterComeOverHandle(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.waterComeOverList, true, adCode, true);
|
}
|
}
|
}
|
}
|
return "水位接近汛限告警";
|
}
|
|
|
/**
|
* 策略6: 水位初次超汛限告警(当前测试发送站内信)
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterFirstOverHandle(String arg1, String arg2) {
|
String adCode = "421303000000";
|
// String adCode = null;
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.over_z_res_api);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.waterFirstOverHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterFirstOverList, true, adCode, true);
|
}
|
}
|
}
|
}
|
// 返回
|
return "水位初次超汛限告警";
|
}
|
|
|
/**
|
* 策略7: 水位小幅超汛限告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterSmallScaleOverHandle(String arg1, String arg2) {
|
// String adCode = "421303000000";
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_over_z_small_over_api);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
if (alarmRuleDetailList.get(0).getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.waterSmallScaleOverHandle1(alarmRule, alarmRuleDetailList.get(0), ztData, ZtApiDataColumnConstant.waterSmallScaleOverList, true, adCode, false, uuid);
|
}
|
if (alarmRuleDetailList.get(1).getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.waterSmallScaleOverHandle2(alarmRule, alarmRuleDetailList.get(1), ztData, ZtApiDataColumnConstant.waterSmallScaleOverList, true, adCode, false, uuid);
|
}
|
}
|
}
|
// 返回
|
return "水位小幅超汛限告警";
|
}
|
|
|
/**
|
* 策略7.1: 水位小幅超汛限告警2--水位高于汛限水位20cm
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterSmallScaleOver20Handle(String arg1, String arg2) {
|
// String adCode = "421303000000";
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("?diff_value=0.2", ZtApiUrlConstant.res_over_z_small_over_api);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
if (alarmRuleDetailList.get(0).getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.waterSmallScaleOverHandle1(alarmRule, alarmRuleDetailList.get(0), ztData, ZtApiDataColumnConstant.waterSmallScaleOverList, true, adCode, false, uuid);
|
}
|
if (alarmRuleDetailList.get(1).getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.waterSmallScaleOverHandle2(alarmRule, alarmRuleDetailList.get(1), ztData, ZtApiDataColumnConstant.waterSmallScaleOverList, true, adCode, false, uuid);
|
}
|
}
|
}
|
// 返回
|
return "水位小幅超汛限告警";
|
}
|
|
/**
|
* 策略8: 水位大幅超汛限告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterBigScaleOverHandle(String arg1, String arg2) {
|
//String adCode = "421303000000";
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_over_z_big_over_api);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
if (alarmRuleDetailList.get(0).getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.waterBigScaleOverHandle1(alarmRule, alarmRuleDetailList.get(0), ztData, ZtApiDataColumnConstant.waterBigScaleOverList1, true, adCode, false, uuid);
|
}
|
if (alarmRuleDetailList.get(1).getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.waterBigScaleOverHandle2(alarmRule, alarmRuleDetailList.get(1), ztData, ZtApiDataColumnConstant.waterBigScaleOverList2, true, adCode, false, uuid);
|
}
|
}
|
}
|
// 返回
|
return "水位大幅超汛限告警";
|
}
|
|
/**
|
* 策略9: 水位接近设计洪水位告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterComeDesignHandle(String arg1, String arg2) {
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_over_des_is_warn_api);
|
|
//过滤不告警水库
|
JSONArray resultData = filterNoAlertRes(ztData, arg1);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.waterComeDesignHandleBySms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.waterComeDesignList1, true, adCode, false, uuid);
|
}
|
// if (alarmRuleDetail.getAlarmMode().equals("电话")) {
|
// asyncNoticeHandle.outCallHandleCall(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.waterComeDesignList2,true, adCode, false,uuid);
|
// }
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.waterComeDesignHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.waterComeDesignList3, true, adCode, true, uuid);
|
}
|
}
|
}
|
}
|
return "水位接近设计洪水位告警";
|
}
|
|
/**
|
* 策略10: 水位超设计洪水位告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterMoreDesignHandle(String arg1, String arg2) {
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("?is_show=1", ZtApiUrlConstant.over_des_rz_warn_api);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.waterMoreDesignHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterMoreDesignList, true, adCode, false, uuid);
|
}
|
// if (alarmRuleDetail.getAlarmMode().equals("电话")) {
|
// asyncNoticeHandle.outCallHandleCall(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.waterMoreDesignList,true, adCode, false,uuid);
|
// }
|
}
|
}
|
}
|
// 返回
|
return "水位超设计洪水位告警";
|
}
|
|
/**
|
* 策略11: 水位超校核洪水位告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterMoreCheckHandle(String arg1, String arg2) {
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("?is_show=1", ZtApiUrlConstant.res_over_chec_api);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.waterMoreCheckHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterMoreCheckList, true, adCode, false, uuid);
|
}
|
// if (alarmRuleDetail.getAlarmMode().equals("电话")) {
|
// asyncNoticeHandle.outCallHandleCall(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.waterMoreCheckList,true, adCode, false,uuid);
|
// }
|
}
|
}
|
}
|
// 返回
|
return "水位超校核洪水位告警";
|
}
|
|
/**
|
* 策略12: 近1h水位陡升
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterComeOneHourUpHandle(String arg1, String arg2) {
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_z_diff_up_api);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.waterComeOneHourUpHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterComeOneHourUpList, true, adCode, false, uuid);
|
}
|
}
|
}
|
}
|
// 返回
|
return "近1h水位陡升";
|
}
|
|
/**
|
* 策略13: 近1h水位陡降
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String waterComeOneHourDownHandle(String arg1, String arg2) {
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_z_diff_down_api);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.waterComeOneHourDownHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterComeOneHourDownList, true, adCode, false, uuid);
|
}
|
}
|
}
|
}
|
// 返回
|
return "近1h水位陡降";
|
}
|
|
/**
|
* 策略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) {
|
//String adCode = "420607000000";
|
String adCode = null;
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_rain_dy_api);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.alreadyHeavyRainHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.alreadyHeavyRainList, false, adCode, false);
|
}
|
}
|
}
|
}
|
// 返回
|
return "已降大雨告警";
|
}
|
|
/**
|
* 策略16: 已降暴雨告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String alreadyRainstormHandle(String arg1, String arg2) {
|
//String adCode = "420607000000";
|
String adCode = null;
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_rain_by_api);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.alreadyRainstormHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.alreadyRainstormList, false, adCode, false);
|
}
|
}
|
}
|
}
|
// 返回
|
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) {
|
//String adCode = "420607000000";
|
String uuid = UUID.randomUUID().toString();
|
String adCode = null;
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_rain_6_over_api);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.sixHourRainHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.sixHourRainList, false, adCode, false, uuid);
|
}
|
// if (alarmRuleDetail.getAlarmMode().equals("电话")) {
|
// asyncNoticeHandle.outCallHandleCall(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.sixHourRainList,true, adCode, false,uuid);
|
// }
|
}
|
}
|
}
|
// 返回
|
return "6小时降雨告警";
|
}
|
|
/**
|
* 策略18: 6小时降雨告警2
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String sixHourRainHandle2(String arg1, String arg2) {
|
//String adCode = "420607000000";
|
String uuid = UUID.randomUUID().toString();
|
String adCode = null;
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("?drp=50", ZtApiUrlConstant.alarm_rain_only_6_over_api);
|
// 外呼对应数据
|
JSONArray whztData = noticeHandle.getZtData("?drp=100", ZtApiUrlConstant.alarm_rain_only_6_over_api);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.sixHourRainHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.sixHourRainList, false, adCode, false, uuid);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("电话")) {
|
asyncNoticeHandle.outCallHandleCall(alarmRule, alarmRuleDetail, whztData,ZtApiDataColumnConstant.sixHourRainList,false, adCode, false,uuid);
|
}
|
}
|
}
|
}
|
// 返回
|
return "6小时降雨告警";
|
}
|
|
|
/**
|
* 策略19: 大坝安全监测告警-数据缺失
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetyHandle(String arg1, String arg2) {
|
//String adCode = "420607000000";
|
String uuid = UUID.randomUUID().toString();
|
String adCode = null;
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_api);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetyHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.damSafetyList, true, adCode, false, uuid,arg2);
|
}
|
}
|
}
|
}
|
// 返回
|
return "大坝安全监测告警";
|
}
|
|
/**
|
* 策略20: 大坝安全监测告警-渗压管水位大于校核洪水位
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetySyHandle(String arg1, String arg2) {
|
//String adCode = "420607000000";
|
String uuid = UUID.randomUUID().toString();
|
String adCode = null;
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("?is_alarm=1", ZtApiUrlConstant.alarm_db_sy_api);
|
|
//这里需要对数据进行过滤
|
JSONArray resultData = filterNoAlertRes(ztData,arg1);
|
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetySyHandle(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.damSafetySyList, true, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
// 返回
|
return "大坝安全监测告警";
|
}
|
|
/**
|
* 策略21: 大坝安全监测告警-渗压数据缺失
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetySyNoneHandle(String arg1, String arg2) {
|
//String adCode = "420607000000";
|
String uuid = UUID.randomUUID().toString();
|
String adCode = null;
|
// 查询当前策略对应的告警规则信息,根据名称获取告警信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_none_api);
|
|
JSONArray resultData = filterNoAlertRes(ztData, arg1);
|
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetyHandle(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.damSafetyList, false, adCode, false, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetySyNoneHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.damSafetyList, false, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
// 返回
|
return "大坝安全监测告警";
|
}
|
|
/**
|
* 策略22: 大坝安全监测告警-渗流数据缺失
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetySlNoneHandle(String arg1, String arg2) {
|
//String adCode = "420607000000";
|
String uuid = UUID.randomUUID().toString();
|
String adCode = null;
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sl_none_api);
|
JSONArray resultData = filterNoAlertRes(ztData, arg1);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetyHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.damSafetyList, false, adCode, false, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetySyNoneHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.damSafetyList, false, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
// 返回
|
return "大坝安全监测告警";
|
}
|
|
/**
|
* 策略23: 大坝安全监测告警-位移数据缺失
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetyWyNoneHandle(String arg1, String arg2) {
|
//String adCode = "420607000000";
|
String uuid = UUID.randomUUID().toString();
|
String adCode = null;
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_wy_none_api);
|
JSONArray resultData = filterNoAlertRes(ztData, arg1);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetyHandle(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.damSafetyList, true, adCode, false, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetySyNoneHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.damSafetyList, false, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
// 返回
|
return "大坝安全监测告警";
|
}
|
|
/**
|
* 策略24:渗压基础数据缺失
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetySyDataMissingHandle(String arg1, String arg2) {
|
|
String uuid = UUID.randomUUID().toString();
|
String adCode = null;
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
//调用本地服务获取数据
|
List<AlertTextualResearchAttachVO> syDataMissing = textualResearchAttachClient.getSyDataMissing();
|
|
JSONArray data = JSON.parseArray(JSON.toJSONString(syDataMissing));
|
JSONArray resultData = filterNoAlertRes(data, arg1);
|
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetySyDataMissingHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syDataMissingList, false, adCode, true, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("短信")){
|
asyncNoticeHandle.damSafetySyDataMissingHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syDataMissingList, false, adCode, false, uuid,arg2);
|
}
|
}
|
}
|
}
|
|
return "大坝安全监测渗压资料缺失告警";
|
}
|
|
/**
|
* 策略25:变形基础数据缺失
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetyBxDataMissingHandle(String arg1, String arg2) {
|
String uuid = UUID.randomUUID().toString();
|
String adCode = null;
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
//调用本地服务获取数据
|
List<AlertTextualResearchAttachVO> syDataMissing = textualResearchAttachClient.getBxDataMissing();
|
|
JSONArray data = JSON.parseArray(JSON.toJSONString(syDataMissing));
|
JSONArray resultData = filterNoAlertRes(data, arg1);
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetySyDataMissingHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.bxDataMissingList, false, adCode, true, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("短信")){
|
asyncNoticeHandle.damSafetySyDataMissingHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.bxDataMissingList, false, adCode, false, uuid,arg2);
|
}
|
}
|
}
|
}
|
return "大坝安全监测变形资料缺失告警";
|
}
|
|
/**
|
* 策略26:水位低于管底高程
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetySyLessThenPipeHandle(String arg1, String arg2) {
|
|
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_less_or_higher_api);
|
JSONArray array = lessOrHigher(ztData, "less");
|
//这里需要对数据进行过滤
|
JSONArray resultData = filterNoAlertRes(array,arg1);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetySyLessThenPipeHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syLessThenPipe, true, adCode, false, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetySyLessThenPipeHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syLessThenPipe, true, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
|
return "水位低于管底高程告警";
|
}
|
|
|
/**
|
* 策略27:水位高于管口高程
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetySyHigherThenNozzleHandle(String arg1, String arg2) {
|
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_less_or_higher_api);
|
|
|
JSONArray array = lessOrHigher(ztData, "higher");
|
//这里需要对数据进行过滤
|
JSONArray resultData = filterNoAlertRes(array,arg1);
|
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetySyHigherThenNozzleHandleSms(alarmRule, alarmRuleDetail, resultData,ZtApiDataColumnConstant.syHigherThenNozzle,true, adCode, false,uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetySyHigherThenNozzleHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syHigherThenNozzle, true, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
|
return "水位高于管口高程告警";
|
}
|
|
/**
|
* 策略28:水位高于坝顶高程
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetySyHigherThenBdElevationHandle(String arg1, String arg2) {
|
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_higher_then_bdElevation_api);
|
//这里需要对数据进行过滤
|
JSONArray resultData1 = filterNoAlertRes(ztData,arg1);
|
|
JSONArray resultData = setMonitorData(resultData1, "max_value");
|
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetySyHigherThenBdElevationHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syHigherThenBdElevation, true, adCode, false, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetySyHigherThenBdElevationHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syHigherThenBdElevation, true, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
return "水位高于坝顶高程告警";
|
}
|
|
/**
|
* 水位高于库水位告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetySyHigherThenWaterLevelHandle(String arg1, String arg2) {
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_higher_then_water_level_api);
|
//这里需要对数据进行过滤
|
JSONArray resultData1 = filterNoAlertRes(ztData,arg1);
|
|
JSONArray resultData = setMonitorData(resultData1, "max_value");
|
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetySyHigherThenWaterLevelHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syHigherThenWaterLevel, true, adCode, false, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetySyHigherThenWaterLevelHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syHigherThenWaterLevel, true, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
return "水位高于库水位告警";
|
}
|
|
|
/**
|
* 水位长期不变,五日变幅小于5cm,十日变幅大于5cm小于8cm,三十日变幅大于8cm小于10cm
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetySyYellowChangeHandle(String arg1, String arg2) {
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_rz_change_api);
|
|
JSONArray data = changeRange(ztData, "1");
|
|
|
//这里需要对数据进行过滤
|
JSONArray resultData = filterNoAlertRes(data,arg1);
|
|
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetySyYellowChangeHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syYellowRzChange, true, adCode, false, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetySyYellowChangeHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syYellowRzChange, true, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
return "水位五日变幅小于5cm,十日变幅大于5cm小于8cm,三十日变幅大于8cm小于10cm告警";
|
}
|
|
|
/**
|
* 渗压水位一日变幅大于0.5米小于1米,五日变幅大于1米小于2米,十日变幅大于2米小于5米,三十日变幅大于5米小于10米
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetySyOrangeChangeHandle(String arg1, String arg2) {
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_rz_change_api);
|
|
JSONArray data = changeRange(ztData, "2");
|
//这里需要对数据进行过滤
|
JSONArray resultData = filterNoAlertRes(data,arg1);
|
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetySyOrangeChangeHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syOrangeRzChange, true, adCode, false, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetySyOrangeChangeHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syOrangeRzChange, true, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
return "水位一日变幅大于0.5米小于1米,五日变幅大于1米小于2米,十日变幅大于2米小于5米,三十日变幅大于5米小于10米告警";
|
}
|
|
|
/**
|
* 渗压水位一日变幅大于1米小于2米,五日变幅大于2米小于5米,十日变幅大于5米小于10米,三十日变幅大于10米
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetySyRedChangeHandle(String arg1, String arg2) {
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_rz_change_api);
|
|
JSONArray data = changeRange(ztData, "3");
|
//这里需要对数据进行过滤
|
JSONArray resultData = filterNoAlertRes(data,arg1);
|
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetySyRedChangeHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syRedRzChange, true, adCode, false, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetySyRedChangeHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syRedRzChange, true, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
return "水位一日变幅大于0.5米小于1米,五日变幅大于1米小于2米,十日变幅大于2米小于5米,三十日变幅大于5米小于10米告警";
|
}
|
|
/**
|
* 近1h水位陡降
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetySyRz1hChangeHandle(String arg1, String arg2) {
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_rz_1h_change_api);
|
|
// 处理数据
|
JSONArray data = judgeType(ztData);
|
//这里需要对数据进行过滤
|
JSONArray resultData = filterNoAlertRes(data,arg1);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetySyRz1hChangeHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syRz1hChange, true, adCode, false, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetySyRz1hChangeHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.syRz1hChange, true, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
return "近1h水位陡降告警";
|
}
|
|
|
/**
|
* 变形值大于20mm小于50mm
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetyWyOver2Less5Handle(String arg1, String arg2) {
|
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_wy_value_api);
|
|
JSONArray data = judgeDirection(ztData, "1");
|
//这里需要对数据进行过滤
|
JSONArray resultData = filterNoAlertRes(data,arg1);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetyWyOver2Less5HandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wyOver2Less5, true, adCode, false, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetyWyOver2Less5HandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wyOver2Less5, true, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
return "变形值大于2cm小于5cm告警";
|
|
|
}
|
|
|
/**
|
* 变形值大于50mm小于100mm
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetyWyOver5Less10Handle(String arg1, String arg2) {
|
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_wy_value_api);
|
|
JSONArray data = judgeDirection(ztData, "2");
|
//这里需要对数据进行过滤
|
JSONArray resultData = filterNoAlertRes(data,arg1);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetyWyOver5Less10HandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wyOver5Less10, true, adCode, false, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetyWyOver5Less10HandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wyOver5Less10, true, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
return "变形值大于5cm小于10cm告警";
|
|
}
|
|
|
/**
|
* 变形值大于100mm
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetyWyOver10Handle(String arg1, String arg2) {
|
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_wy_value_api);
|
JSONArray data = judgeDirection(ztData, "3");
|
|
|
//这里需要对数据进行过滤
|
JSONArray resultData = filterNoAlertRes(data,arg1);
|
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetyWyOver10HandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wyOver10, true, adCode, false, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetyWyOver10HandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wyOver10, true, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
return "变形值大于10cm告警";
|
}
|
|
/**
|
* 近1h变形值大于10cm以上
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetyWy1hChangeOver10Handle(String arg1, String arg2) {
|
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_wy_value_1h_change_over_10_api);
|
JSONArray data = judgeDirectionV2(ztData);
|
|
//这里需要对数据进行过滤
|
JSONArray resultData = filterNoAlertRes(data,arg1);
|
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetyWy1hChangeOver10HandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetyWy1hChangeOver10HandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
|
|
return "近1h变形值大于10cm以上告警";
|
}
|
|
/**
|
* 渗流量一日大于5L小于8L,连续3日增加
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetySlOver5Less8Handle(String arg1, String arg2) {
|
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sl_value_change_api);
|
JSONArray data = filterData(ztData,"1");
|
|
//这里需要对数据进行过滤
|
JSONArray resultData1 = filterNoAlertRes(data,arg1);
|
JSONArray resultData = setMonitorData(resultData1, "value");
|
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.slOverLess, true, adCode, false, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.slOverLess, true, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
|
return "渗流量一日大于5L小于8L,连续3日增加告警";
|
}
|
|
|
/**
|
* 渗流量一日大于8L小于10L,连续3日增加
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetySlOver8Less10Handle(String arg1, String arg2) {
|
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sl_value_change_api);
|
JSONArray data = filterData(ztData,"2");
|
|
//这里需要对数据进行过滤
|
JSONArray resultData1 = filterNoAlertRes(data,arg1);
|
JSONArray resultData = setMonitorData(resultData1, "value");
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.slOverLess, true, adCode, false, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.slOverLess, true, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
|
return "渗流量一日大于5L小于8L,连续3日增加告警";
|
}
|
|
|
/**
|
* 渗流量一日大于10L,连续3日增加
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String damSafetySlOver10Handle(String arg1, String arg2) {
|
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sl_value_change_api);
|
JSONArray data = filterData(ztData,"3");
|
|
//这里需要对数据进行过滤
|
JSONArray resultData1 = filterNoAlertRes(data,arg1);
|
|
JSONArray resultData = setMonitorData(resultData1, "value");
|
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.slOverLess, true, adCode, false, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.slOverLess, true, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
|
return "渗流量一日大于10L告警";
|
}
|
|
/**
|
* 视频离线
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String videoOfflineHandle(String arg1, String arg2) {
|
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtDataV2("", ZtApiUrlConstant.alarm_video_offline_api);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.videoOfflineHandleStation(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.videoOffline, false, adCode, true, uuid,arg2);
|
}
|
if (alarmRuleDetail.getAlarmMode().equals("短信")) {
|
asyncNoticeHandle.videoOfflineHandleSms(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.videoOffline, false, adCode, false, uuid,arg2);
|
}
|
|
}
|
}
|
}
|
|
return "视频信息缺失告警";
|
}
|
|
|
/**
|
* 策略42: 水位防洪高水位告警
|
*
|
* @param arg1
|
* @param arg2
|
* @return
|
*/
|
public String topLevOfFloAlertHandle(String arg1, String arg2) {
|
String adCode = null;
|
String uuid = UUID.randomUUID().toString();
|
// 查询当前策略对应的告警规则信息
|
AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
|
// 调用中台服务接口查询数据
|
JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.over_flpr_rz_warn_api);
|
// 获取告警规则详情,判断告警类型(短信,电话,站内信)
|
if (null != alarmRule) {
|
// 查询告警详情信息
|
List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
|
if (alarmRuleDetailList.size() > 0) {
|
// 遍历
|
for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
|
if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
|
asyncNoticeHandle.topLevOfFloAlertHandleStation(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.topLevOfFloAlertList, true, adCode, true, uuid,arg2);
|
}
|
}
|
}
|
}
|
// 返回
|
return "水位防洪高水位告警";
|
}
|
|
private JSONArray filterData(JSONArray ztData, String level) {
|
|
JSONArray array = new JSONArray();
|
for (int i = 0; i < ztData.size(); i++) {
|
JSONObject jsonObject = ztData.getJSONObject(i);
|
String dataLevel = jsonObject.getString("level");
|
|
if (dataLevel.equals(level)) {
|
array.add(jsonObject);
|
}
|
}
|
return array;
|
}
|
|
/**
|
* 判断方向
|
*
|
* @param ztData
|
* @return
|
*/
|
private JSONArray judgeDirectionV2(JSONArray ztData) {
|
JSONArray array = new JSONArray();
|
for (int i = 0; i < ztData.size(); i++) {
|
JSONObject jsonObject = ztData.getJSONObject(i);
|
//上下游方向
|
Double diffDe = jsonObject.getDouble("diff_de");
|
//左右岸方向
|
Double diffDn = jsonObject.getDouble("diff_dn");
|
//垂直
|
Double diffDu = jsonObject.getDouble("diff_du");
|
|
String direction = "";
|
String val = "";
|
//近1h变形值大于10cm以上
|
if (diffDe > 100) {
|
direction = "上下游方向";
|
val = diffDe.toString();
|
} else if (diffDn > 100) {
|
direction = "左右岸方向";
|
val = diffDn.toString();
|
} else if (diffDu > 100) {
|
direction = "垂直";
|
val = diffDu.toString();
|
}
|
|
jsonObject.put("direction", direction);
|
jsonObject.put("val", val);
|
jsonObject.put("monitorData",val);
|
array.add(jsonObject);
|
|
}
|
return array;
|
}
|
|
|
/**
|
* 判断方向
|
*
|
* @param ztData
|
* @return
|
*/
|
private JSONArray judgeDirection(JSONArray ztData, String level) {
|
JSONArray array = new JSONArray();
|
for (int i = 0; i < ztData.size(); i++) {
|
JSONObject jsonObject = ztData.getJSONObject(i);
|
String dataLevel = jsonObject.getString("level");
|
//上下游方向
|
Double deVal = jsonObject.getDouble("de_val");
|
//左右岸方向
|
Double dnVal = jsonObject.getDouble("dn_val");
|
//垂直
|
Double duValue = jsonObject.getDouble("垂直位移");
|
|
String direction = "";
|
String val = "";
|
|
if (dataLevel.equals(level)) {
|
if (level.equals("1")) {
|
//变形值大于20mm小于50mm
|
if (20 < deVal && deVal < 50) {
|
direction = "上下游方向";
|
val = deVal.toString();
|
} else if (20 < dnVal && dnVal < 50) {
|
direction = "左右岸方向";
|
val = dnVal.toString();
|
} else if (20 < duValue && duValue < 50) {
|
direction = "垂直";
|
val = duValue.toString();
|
}
|
} else if (level.equals("2")) {
|
//变形值大于50mm小于100mm
|
if (50 < deVal && deVal < 100) {
|
direction = "上下游方向";
|
val = deVal.toString();
|
} else if (50 < dnVal && dnVal < 100) {
|
direction = "左右岸方向";
|
val = dnVal.toString();
|
} else if (50 < duValue && duValue < 100) {
|
direction = "垂直";
|
val = duValue.toString();
|
}
|
} else if (level.equals("3")) {
|
//变形值大于100mm
|
|
if (deVal > 100) {
|
direction = "上下游方向";
|
val = deVal.toString();
|
} else if (dnVal > 100) {
|
direction = "左右岸方向";
|
val = dnVal.toString();
|
} else if (duValue > 100) {
|
direction = "垂直";
|
val = duValue.toString();
|
}
|
}
|
|
jsonObject.put("direction", direction);
|
jsonObject.put("val", val);
|
jsonObject.put("monitorData",val);
|
array.add(jsonObject);
|
}
|
|
}
|
return array;
|
}
|
|
|
private JSONArray judgeType(JSONArray ztData) {
|
JSONArray array = new JSONArray();
|
for (int i = 0; i < ztData.size(); i++) {
|
JSONObject jsonObject = ztData.getJSONObject(i);
|
Double syVal = jsonObject.getDouble("sy_val");
|
Double leadVal = jsonObject.getDouble("lead_val");
|
String type = "";
|
if (syVal > leadVal) {
|
//当前水位大于1h
|
type = "陡升";
|
} else {
|
type = "陡降";
|
}
|
|
jsonObject.put("type", type);
|
jsonObject.put("monitorData",jsonObject.getString("sy_val"));
|
array.add(jsonObject);
|
}
|
return array;
|
}
|
|
/**
|
* 根据数据过滤不同程度的变幅
|
*
|
* @param ztData
|
* @param level 1黄、2橙、3红
|
* @return
|
*/
|
private JSONArray changeRange(JSONArray ztData, String level) {
|
JSONArray array = new JSONArray();
|
|
for (int i = 0; i < ztData.size(); i++) {
|
JSONObject jsonObject = ztData.getJSONObject(i);
|
String dataLevel = jsonObject.getString("level");
|
|
//一日变幅
|
Double diff2 = jsonObject.getDouble("diff_2");
|
|
//五日变幅
|
Double diff5 = jsonObject.getDouble("diff_5");
|
|
//十日变幅
|
Double diff10 = jsonObject.getDouble("diff_10");
|
|
//三十日变幅
|
Double diff30 = jsonObject.getDouble("diff_30");
|
|
String dayNum = "";
|
String diffVal = "";
|
if (dataLevel.equals(level)) {
|
if (level.equals("1")) {
|
//水位长期不变,五日变幅小于5cm,十日变幅大于5cm小于8cm,三十日变幅大于8cm小于10cm
|
if (diff5 < 0.05) {
|
dayNum = "五";
|
diffVal = diff5.toString();
|
} else if (0.05 < diff10 && diff10 < 0.08) {
|
dayNum = "十";
|
diffVal = diff10.toString();
|
} else if (0.08 < diff30 && diff30 < 0.1) {
|
dayNum = "三十";
|
diffVal = diff30.toString();
|
}
|
} else if (level.equals("2")) {
|
//渗压水位一日变幅大于0.5米小于1米,五日变幅大于1米小于2米,十日变幅大于2米小于5米,三十日变幅大于5米小于10米
|
if (0.5 < diff2 && diff2 < 1) {
|
dayNum = "一";
|
diffVal = diff2.toString();
|
} else if (1 < diff5 && diff5 < 2) {
|
dayNum = "五";
|
diffVal = diff5.toString();
|
} else if (2 < diff10 && diff10 < 5) {
|
dayNum = "十";
|
diffVal = diff10.toString();
|
} else if (5 < diff30 && diff30 < 10) {
|
dayNum = "三十";
|
diffVal = diff30.toString();
|
}
|
} else if (level.equals("3")) {
|
//渗压水位一日变幅大于1米小于2米,五日变幅大于2米小于5米,十日变幅大于5米小于10米,三十日变幅大于10米
|
|
if (1 < diff2 && diff2 < 2) {
|
dayNum = "一";
|
diffVal = diff2.toString();
|
} else if (2 < diff5 && diff5 < 5) {
|
dayNum = "五";
|
diffVal = diff5.toString();
|
} else if (5 < diff10 && diff10 < 10) {
|
dayNum = "十";
|
diffVal = diff10.toString();
|
} else if (10 < diff30) {
|
dayNum = "三十";
|
diffVal = diff30.toString();
|
}
|
}
|
|
jsonObject.put("dayNum", dayNum);
|
|
if (diffVal.equals("0.0")) {
|
diffVal = "0";
|
}
|
|
jsonObject.put("diff_val", diffVal);
|
jsonObject.put("monitorData",jsonObject.getString("val1"));
|
array.add(jsonObject);
|
}
|
}
|
return array;
|
}
|
|
|
/**
|
* 过滤低于管底高程数据或高于管口高程数据
|
*
|
* @param ztData
|
* @param flag
|
* @return
|
*/
|
private JSONArray lessOrHigher(JSONArray ztData, String flag) {
|
|
JSONArray array = new JSONArray();
|
|
for (int i = 0; i < ztData.size(); i++) {
|
JSONObject jsonObject = ztData.getJSONObject(i);
|
|
//获取低于管底高程数据min_value < tbbtel 即 min_value - tbbtel <0 即diff_tbb_val <0
|
if (flag == "less") {
|
Double differ = jsonObject.getDouble("diff_tbb_val");
|
if (differ < 0) {
|
//加进一个绝对值方便展示
|
jsonObject.put("diff_tbb_val_abs", Math.abs(differ));
|
jsonObject.put("monitorData",jsonObject.getString("min_value"));
|
array.add(jsonObject);
|
}
|
} else if (flag == "higher") {
|
//获取高于管口高程数据,即 max_value > tbttel 即 max_value - tbttel >0 即 diff_tbt_val >0
|
Double differ = jsonObject.getDouble("diff_tbt_val");
|
if (differ > 0) {
|
jsonObject.put("monitorData",jsonObject.getString("max_value"));
|
array.add(jsonObject);
|
}
|
}
|
}
|
return array;
|
}
|
|
|
|
//过滤不需要告警的水库
|
public JSONArray filterNoAlertRes(JSONArray jsonArray,String ruleName){
|
JSONArray result = new JSONArray();
|
|
//获取要过滤的水库数据
|
String noAlertRes= noticeHandle.getNoAlertRes(ruleName);
|
|
if (StringUtil.isBlank(noAlertRes)){
|
//如果没有需要过滤的数据
|
return jsonArray;
|
}
|
|
for (int i = 0; i < jsonArray.size(); i++) {
|
|
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
|
String resCd = jsonObject.getString("res_cd");
|
//判断水库是否在不告警水库列表中
|
boolean contains = noAlertRes.contains(resCd);
|
|
if (!contains){
|
//不在则往结果集中加入数据
|
result.add(jsonObject);
|
}
|
}
|
return result;
|
}
|
|
//给数组赋值监测值,便于后面记录监测值
|
public JSONArray setMonitorData(JSONArray source,String monitorName){
|
JSONArray result = new JSONArray();
|
for (int i = 0; i < source.size(); i++) {
|
JSONObject jsonObject = source.getJSONObject(i);
|
|
String data = jsonObject.getString(monitorName);
|
jsonObject.put("monitorData",data);
|
result.add(jsonObject);
|
}
|
return result;
|
}
|
}
|