guoshilong
2024-04-22 80b6162f20872caff8bc5d393e3c07496660a0bb
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
@@ -930,7 +930,10 @@
      // 调用中台服务接口查询数据
      JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_higher_then_bdElevation_api);
      //这里需要对数据进行过滤
      JSONArray resultData = filterNoAlertRes(ztData,arg1);
      JSONArray resultData1 = filterNoAlertRes(ztData,arg1);
      JSONArray resultData = setMonitorData(resultData1, "max_value");
      // 获取告警规则详情,判断告警类型(短信,电话,站内信)
      if (null != alarmRule) {
         // 查询告警详情信息
@@ -965,7 +968,10 @@
      // 调用中台服务接口查询数据
      JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_db_sy_higher_then_water_level_api);
      //这里需要对数据进行过滤
      JSONArray resultData = filterNoAlertRes(ztData,arg1);
      JSONArray resultData1 = filterNoAlertRes(ztData,arg1);
      JSONArray resultData = setMonitorData(resultData1, "max_value");
      // 获取告警规则详情,判断告警类型(短信,电话,站内信)
      if (null != alarmRule) {
         // 查询告警详情信息
@@ -1284,7 +1290,6 @@
      //这里需要对数据进行过滤
      JSONArray resultData = filterNoAlertRes(data,arg1);
      // 获取告警规则详情,判断告警类型(短信,电话,站内信)
      if (null != alarmRule) {
         // 查询告警详情信息
@@ -1324,8 +1329,8 @@
      JSONArray data = filterData(ztData,"1");
      //这里需要对数据进行过滤
      JSONArray resultData = filterNoAlertRes(data,arg1);
      JSONArray resultData1 = filterNoAlertRes(data,arg1);
      JSONArray resultData = setMonitorData(resultData1, "value");
      // 获取告警规则详情,判断告警类型(短信,电话,站内信)
      if (null != alarmRule) {
@@ -1335,10 +1340,10 @@
            // 遍历
            for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
               if (alarmRuleDetail.getAlarmMode().equals("短信")) {
                  asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid,arg2);
                  asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.slOverLess, true, adCode, false, uuid,arg2);
               }
               if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
                  asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid,arg2);
                  asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.slOverLess, true, adCode, true, uuid,arg2);
               }
            }
         }
@@ -1366,8 +1371,8 @@
      JSONArray data = filterData(ztData,"2");
      //这里需要对数据进行过滤
      JSONArray resultData = filterNoAlertRes(data,arg1);
      JSONArray resultData1 = filterNoAlertRes(data,arg1);
      JSONArray resultData = setMonitorData(resultData1, "value");
      // 获取告警规则详情,判断告警类型(短信,电话,站内信)
      if (null != alarmRule) {
         // 查询告警详情信息
@@ -1376,10 +1381,10 @@
            // 遍历
            for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
               if (alarmRuleDetail.getAlarmMode().equals("短信")) {
                  asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid,arg2);
                  asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.slOverLess, true, adCode, false, uuid,arg2);
               }
               if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
                  asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid,arg2);
                  asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.slOverLess, true, adCode, true, uuid,arg2);
               }
            }
         }
@@ -1407,7 +1412,9 @@
      JSONArray data = filterData(ztData,"3");
      //这里需要对数据进行过滤
      JSONArray resultData = filterNoAlertRes(data,arg1);
      JSONArray resultData1 = filterNoAlertRes(data,arg1);
      JSONArray resultData = setMonitorData(resultData1, "value");
      // 获取告警规则详情,判断告警类型(短信,电话,站内信)
      if (null != alarmRule) {
@@ -1417,16 +1424,16 @@
            // 遍历
            for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
               if (alarmRuleDetail.getAlarmMode().equals("短信")) {
                  asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, false, uuid,arg2);
                  asyncNoticeHandle.damSafetySlOverLessHandleSms(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.slOverLess, true, adCode, false, uuid,arg2);
               }
               if (alarmRuleDetail.getAlarmMode().equals("站内信")) {
                  asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.wy1hChangeOver10, true, adCode, true, uuid,arg2);
                  asyncNoticeHandle.damSafetySlOverLessHandleStation(alarmRule, alarmRuleDetail, resultData, ZtApiDataColumnConstant.slOverLess, true, adCode, true, uuid,arg2);
               }
            }
         }
      }
      return "渗流量一日大于5L小于8L,连续3日增加告警";
      return "渗流量一日大于10L告警";
   }
   /**
@@ -1512,6 +1519,7 @@
         jsonObject.put("direction", direction);
         jsonObject.put("val", val);
         jsonObject.put("monitorData",val);
         array.add(jsonObject);
      }
@@ -1582,6 +1590,7 @@
            jsonObject.put("direction", direction);
            jsonObject.put("val", val);
            jsonObject.put("monitorData",val);
            array.add(jsonObject);
         }
@@ -1605,6 +1614,7 @@
         }
         jsonObject.put("type", type);
         jsonObject.put("monitor",jsonObject.getString("diff_val"));
         array.add(jsonObject);
      }
      return array;
@@ -1638,7 +1648,6 @@
         String dayNum = "";
         String diffVal = "";
         if (dataLevel.equals(level)) {
            if (level.equals("1")) {
               //水位长期不变,五日变幅小于5cm,十日变幅大于5cm小于8cm,三十日变幅大于8cm小于10cm
@@ -1692,6 +1701,7 @@
            }
            jsonObject.put("diff_val", diffVal);
            jsonObject.put("monitorData",jsonObject.getString("val1"));
            array.add(jsonObject);
         }
      }
@@ -1719,12 +1729,14 @@
            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);
            }
         }
@@ -1762,5 +1774,16 @@
      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;
   }
}