zrj
2024-07-11 6e4c8d00a3e745fdb910c2325840e3b88f634d21
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
@@ -203,6 +203,7 @@
    */
   public String waterFirstOverHandle(String arg1, String arg2) {
      String adCode = "421303000000";
//      String adCode = null;
      // 查询当前策略对应的告警规则信息
      AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
      // 调用中台服务接口查询数据
@@ -240,6 +241,40 @@
      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) {
         // 查询告警详情信息
@@ -343,7 +378,7 @@
      // 查询当前策略对应的告警规则信息
      AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
      // 调用中台服务接口查询数据
      JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.over_des_rz_warn_api);
      JSONArray ztData = noticeHandle.getZtData("?is_show=1", ZtApiUrlConstant.over_des_rz_warn_api);
      // 获取告警规则详情,判断告警类型(短信,电话,站内信)
      if (null != alarmRule) {
         // 查询告警详情信息
@@ -377,7 +412,7 @@
      // 查询当前策略对应的告警规则信息
      AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
      // 调用中台服务接口查询数据
      JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_over_chec_api);
      JSONArray ztData = noticeHandle.getZtData("?is_show=1", ZtApiUrlConstant.res_over_chec_api);
      // 获取告警规则详情,判断告警类型(短信,电话,站内信)
      if (null != alarmRule) {
         // 查询告警详情信息
@@ -494,7 +529,7 @@
            // 遍历
            for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
               if (alarmRuleDetail.getAlarmMode().equals("短信")) {
                  asyncNoticeHandle.alreadyHeavyRainHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.alreadyHeavyRainList, true, adCode, false);
                  asyncNoticeHandle.alreadyHeavyRainHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.alreadyHeavyRainList, false, adCode, false);
               }
            }
         }
@@ -525,7 +560,7 @@
            // 遍历
            for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
               if (alarmRuleDetail.getAlarmMode().equals("短信")) {
                  asyncNoticeHandle.alreadyRainstormHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.alreadyRainstormList, true, adCode, false);
                  asyncNoticeHandle.alreadyRainstormHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.alreadyRainstormList, false, adCode, false);
               }
            }
         }
@@ -569,11 +604,48 @@
            // 遍历
            for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
               if (alarmRuleDetail.getAlarmMode().equals("短信")) {
                  asyncNoticeHandle.sixHourRainHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.sixHourRainList, true, adCode, false, uuid);
                  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);
               }
            }
         }
      }
@@ -1126,6 +1198,7 @@
      // 调用中台服务接口查询数据
      JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_rz_1h_change_api);
      // 处理数据
      JSONArray data = judgeType(ztData);
      //这里需要对数据进行过滤
      JSONArray resultData = filterNoAlertRes(data,arg1);
@@ -1231,7 +1304,7 @@
   /**
    * 近1h变形值大于10cm以上
    * 变形值大于100mm
    *
    * @param arg1
    * @param arg2
@@ -1244,7 +1317,7 @@
      // 查询当前策略对应的告警规则信息
      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 ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_wy_value_api);
      JSONArray data = judgeDirection(ztData, "3");
@@ -1472,6 +1545,38 @@
      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();
@@ -1543,7 +1648,7 @@
         //左右岸方向
         Double dnVal = jsonObject.getDouble("dn_val");
         //垂直
         Double duValue = jsonObject.getDouble("du_value");
         Double duValue = jsonObject.getDouble("垂直位移");
         String direction = "";
         String val = "";
@@ -1614,7 +1719,7 @@
         }
         jsonObject.put("type", type);
         jsonObject.put("monitor",jsonObject.getString("diff_val"));
         jsonObject.put("monitorData",jsonObject.getString("sy_val"));
         array.add(jsonObject);
      }
      return array;