guoshilong
2024-04-22 80b6162f20872caff8bc5d393e3c07496660a0bb
告警增加测点值
4 files modified
78 ■■■■ changed files
skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/entity/AlarmRecord.java 2 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java 9 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java 12 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java 55 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/entity/AlarmRecord.java
@@ -52,4 +52,6 @@
     * 任务id
     */
    private String taskId;
    private String monitorData;
}
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java
@@ -408,7 +408,7 @@
    }};
    /**
     * 策略36: 变形值大于100mm
     * 策略36: 1h变化
     */
    public static List<String>  wy1hChangeOver10 = new ArrayList<String>()
    {{
@@ -421,7 +421,7 @@
    }};
    /**
     * 策略36: 变形值大于100mm
     * 策略36:
     */
    public static List<String>  slOverLess = new ArrayList<String>()
    {{
@@ -432,8 +432,11 @@
        add("value");
    }};
    /**
     * 策略36: 变形值大于100mm
     * 策略36: 视频离线
     */
    public static List<String>  videoOffline = new ArrayList<String>()
    {{
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java
@@ -237,6 +237,12 @@
                list.add(stcd);
                list.add(res_cd);
                list.add(personVO.getPhone());
                //拿测点值
                String val = "";
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                val = jsonObject.getString("monitorData");
                list.add(val);
                if (flag) {
                    // 如果是电话告警,需要把日期拼到一起
                    if (alarmRuleDetail.getAlarmMode().equals("电话")) {
@@ -492,8 +498,11 @@
            .eq("temp_code", uuid)
            .eq("alarm_rule_id", alarmRule.getId())
            .eq("reservoir_number", list.get(1))
            .eq("alarm_survey_station_code",list.get(0))
        );
        if (null != alarmRecord) {
            //删除测值
            list.remove(3);
            // 删除测站编号
            list.remove(0);
            return alarmRecord;
@@ -506,6 +515,9 @@
            alarm.setReservoirNumber(list.get(1));
            alarm.setAlarmCondition(alarmRule.getRuleRemark());
            alarm.setTempCode(uuid);
            alarm.setMonitorData(list.get(3));
            //删除测值
            list.remove(3);
            // 新增
            boolean save = alarmRecordService.save(alarm);
            // 删除测站编号
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;
    }
}