zhongrj
2023-10-14 a3491167b015b4352058e852eb550587ebd92857
新增大坝安全监测告警
7 files modified
125 ■■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java 13 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiUrlConstant.java 5 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java 43 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java 14 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java 33 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/strategy/NoticeStrategyContext.java 1 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/AlarmXxlJob.java 16 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java
@@ -16,7 +16,7 @@
     */
    public static List<String>  waterInfoNotList = new ArrayList<String>()
    {{
        add("county_nm,town_nm");
//        add("county_nm,town_nm");
        add("res_nm");
    }};
@@ -25,7 +25,7 @@
     */
    public static List<String>  waterDataExcList = new ArrayList<String>()
    {{
        add("county_nm,town_nm");
//        add("county_nm,town_nm");
        add("res_nm");
//        add("rz");
    }};
@@ -223,4 +223,13 @@
        add("rz");
    }};
    /**
     * 19.坝安全监测告警
     */
    public static List<String>  damSafetyList = new ArrayList<String>()
    {{
//        add("county_nm,town_nm");
        add("res_nm");
        add("ms_flag");
    }};
}
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiUrlConstant.java
@@ -102,4 +102,9 @@
     */
    public static final String alarm_rain_6_over_api = "/services/1234567890ABCDEFGHIJKLMN/alarm/rain/6/over/api";
    /**
     * 19. 大坝安全监测告警
     */
    public static final String alarm_db_api = "/services/1234567890ABCDEFGHIJKLMN/alarm/db/api";
}
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java
@@ -886,7 +886,6 @@
                                                 Boolean isSendStation,
                                                 String uuid) {
        Map<String, Object> map = new HashMap<>();
//        String uuid = alarmRuleDetail.getTemplateId() + UUID.randomUUID().toString();
        // 只发短信,将发短信信息组装好
        SmsRequestTemplate smsRequestTemplate
            = noticeHandle.getSendSmsTemplate(ztData,alarmRule,alarmRuleDetail,columnList ,flag,adCode,uuid,isSendStation);
@@ -932,7 +931,6 @@
                                                 Boolean isSendStation,
                                                 String uuid) {
        Map<String, Object> map = new HashMap<>();
//        String uuid = alarmRuleDetail.getTemplateId() + UUID.randomUUID().toString();
        // 只发短信,将发短信信息组装好
        SmsRequestTemplate smsRequestTemplate
            = noticeHandle.getSendSmsTemplate(ztData,alarmRule,alarmRuleDetail,columnList ,flag,adCode,uuid,isSendStation);
@@ -954,5 +952,44 @@
        return map;
    }
    /**
     * 策略19: 大坝安全监测告警-短信
     *
     * @param alarmRule 告警规则信息
     * @param alarmRuleDetail 告警规则详情信息
     * @param ztData 告警数据
     * @param columnList 告警模板动态内容key
     * @param flag 是否包含日期
     * @param adCode 行政区code用户过滤数据
     * @param isSendStation 是否发送站内信
     * @return
     */
    @Async
    public Map<String, Object> damSafetyHandle(AlarmRule alarmRule,
                                AlarmRuleDetail alarmRuleDetail,
                                JSONArray ztData,
                                List<String> columnList,
                                Boolean flag,
                                String adCode,
                                Boolean isSendStation,
                                String uuid) {
        Map<String, Object> map = new HashMap<>();
        // 只发短信,将发短信信息组装好
        SmsRequestTemplate smsRequestTemplate
            = noticeHandle.getSendSmsTemplate(ztData,alarmRule,alarmRuleDetail,columnList ,flag,adCode,uuid,isSendStation);
        // 拼接后面内容
        if (smsRequestTemplate.getPersonVOList().size() > 0) {
            for (List<String> list : smsRequestTemplate.getTemplateContent()) {
                // 保存告警记录信息
                AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list, alarmRule, uuid);
                if (null != alarmRecord) {
                    list.add(alarmRecord.getId().toString());
                }
            }
            map = smsService.sendSignMsg(smsRequestTemplate);
            // 调用短信服务
            return map;
        }
        return map;
    }
}
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java
@@ -320,6 +320,20 @@
                }else {
                    format = format + jsonArray.getJSONObject(i).getString(s);
                }
            } else if (s.equals("ms_flag")) {
                // 水位
                String ms_flag = "ms_flag";
                if (null!= jsonArray.getJSONObject(i).getString(ms_flag) && jsonArray.getJSONObject(i).getString(ms_flag).equals("sy")) {
                    format = format  + "渗压";
                } else if (null!= jsonArray.getJSONObject(i).getString(ms_flag) && jsonArray.getJSONObject(i).getString(ms_flag).equals("sl")) {
                    format = format  + "渗流" ;
                } else if (null!= jsonArray.getJSONObject(i).getString(ms_flag) && jsonArray.getJSONObject(i).getString(ms_flag).equals("by")) {
                    format = format  + "白蚁" ;
                } else if (null!= jsonArray.getJSONObject(i).getString(ms_flag) && jsonArray.getJSONObject(i).getString(ms_flag).equals("bx")) {
                    format = format  + "变形" ;
                } else {
                    format = format + jsonArray.getJSONObject(i).getString(s);
                }
            } else {
                format = format + jsonArray.getJSONObject(i).getString(s);
            }
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
@@ -571,4 +571,37 @@
        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);
                    }
                }
            }
        }
        // 返回
        return "大坝安全监测告警";
    }
}
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/strategy/NoticeStrategyContext.java
@@ -54,6 +54,7 @@
        strategyMap.put("alreadyRainstormHandle", (arg1, arg2) -> noticeStrategyImpl.alreadyRainstormHandle(arg1, arg2));
        strategyMap.put("twoHourRainHandle", (arg1, arg2) -> noticeStrategyImpl.twoHourRainHandle(arg1, arg2));
        strategyMap.put("sixHourRainHandle", (arg1, arg2) -> noticeStrategyImpl.sixHourRainHandle(arg1, arg2));
        strategyMap.put("damSafetyHandle", (arg1, arg2) -> noticeStrategyImpl.damSafetyHandle(arg1, arg2));
    }
    /**
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/AlarmXxlJob.java
@@ -308,4 +308,20 @@
        // 返回
        return ReturnT.SUCCESS;
    }
    /**
     * 策略19: 大坝安全监测告警-监测数据缺失-定时任务执行器
     * @param param
     * @return
     * @throws Exception
     */
    @XxlJob("damSafetyHandle")
    public ReturnT<String> damSafetyHandle(String param){
        XxlJobLogger.log("开始执行任务...");
        // 创建外呼任务
        noticeClient.createAlarmNoticeTaskJobHandler("监测数据缺失","","damSafetyHandle");
        XxlJobLogger.log("结束自动创建任务...");
        // 返回
        return ReturnT.SUCCESS;
    }
}