zhongrj
2023-07-27 6498864704d82d0046634062a7177ec7e4127eb9
新增小幅,大幅超汛限告警短信发送
5 files modified
282 ■■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java 39 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiUrlConstant.java 20 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java 164 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java 13 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java 46 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java
@@ -54,7 +54,7 @@
    }};
    /**
     * 水位初次超汛限告警(水库技术责任人、巡查责任人)
     * 水位初次超汛限告警
     */
    public static List<String>  waterFirstOverList = new ArrayList<String>()
    {{
@@ -65,6 +65,43 @@
    }};
    /**
     * 水位小幅超汛限告警
     */
    public static List<String>  waterSmallScaleOverList = new ArrayList<String>()
    {{
        add("town_nm");
        add("res_nm");
        add("rz");
        add("over_1h");
        add("over_z");
    }};
    /**
     * 水位大幅超汛限告警1
     */
    public static List<String>  waterBigScaleOverList1 = new ArrayList<String>()
    {{
        add("town_nm");
        add("res_nm");
        add("rz");
        add("over_1h");
        add("over_z");
        add("drp_24");
    }};
    /**
     * 水位大幅超汛限告警2
     */
    public static List<String>  waterBigScaleOverList2 = new ArrayList<String>()
    {{
        add("town_nm");
        add("res_nm");
        add("rz");
        add("over_1h");
        add("over_z");
    }};
    /**
     * 水位超设计洪水位告警处理
     */
    public static List<String>  waterMoreDesignList = new ArrayList<String>()
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiUrlConstant.java
@@ -58,11 +58,31 @@
    public static final String res_over_z_big_over_api = "/services/1234567890ABCDEFGHIJKLMN/res_over_z/big_over";
    /**
     *  水位接近设计洪水位告警
     */
    public static final String res_over_des_is_warn_api = "/services/1234567890ABCDEFGHIJKLMN/res_over_des/is_warn";
    /**
     * 水位超设计洪水位告警处理
     */
    public static final String over_des_rz_warn_api = "/services/1234567890ABCDEFGHIJKLMN/over_des_rz/warn";
    /**
     * 水位超校核洪水位告警
     */
    public static final String res_over_chec_api = "/services/1234567890ABCDEFGHIJKLMN/res_over_chec";
    /**
     * 近1h水位陡升
     */
    public static final String res_z_diff_up_api = "/services/1234567890ABCDEFGHIJKLMN/res_z_diff/up";
    /**
     * 近1h水位陡降
     */
    public static final String res_z_diff_down_api = "/services/1234567890ABCDEFGHIJKLMN/res_z_diff/down";
    /**
     * 已降大雨告警
     */
    public static final String alarm_rain_dy_api = "/services/1234567890ABCDEFGHIJKLMN/alarm/rain/dy/api";
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java
@@ -142,7 +142,7 @@
            // 遍历,拼接县水利部人员电话
            for (List<String> list : smsRequestTemplate.getTemplateContent()) {
                // 后面依次拼接 巡查责任人姓名,技术责任人姓名,
                noticeHandle.addPatrolTechnologyInfo(list);
                noticeHandle.addPatrolTechnologyInfo(list,false);
                // 拼接市县水利部人员姓名及联系方式
                noticeHandle.addCityCountyBusinessPersonInfo(list);
                // 保存告警记录信息
@@ -180,9 +180,165 @@
        if (smsRequestTemplate.getPersonVOList().size()>0) {
            for (List<String> list : smsRequestTemplate.getTemplateContent()) {
                // 依次拼接巡查责任人,技术责任人姓名
                noticeHandle.addPatrolTechnologyInfo(list);
                noticeHandle.addPatrolTechnologyInfo(list,false);
                // 拼接市县水利部人员姓名及联系方式
                noticeHandle.addCityCountyBusinessPersonInfo(list);
                // 保存告警记录信息
                AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list,alarmRule,uuid);
                if (null != alarmRecord) {
                    list.add(alarmRecord.getId().toString());
                }
            }
            // 调用短信服务
            map = smsService.sendSignMsg(smsRequestTemplate);
            return map;
        }
        return map;
    }
    /**
     * 7.1 水位小幅超汛限告警(发松给 水库技术责任人、巡查责任人)
     * @param templateId
     * @param uuid
     * @param alarmRule
     * @param adCode
     * @param isSendStation 是否发送站内信
     * @return
     */
    @Async
    public Map<String, Object> waterSmallScaleOverHandle1(String templateId, String uuid, AlarmRule alarmRule,String adCode,Boolean isSendStation) {
        Map<String, Object> map = new HashMap<>();
        // 调用中台服务接口查询数据
        JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_over_z_small_over_api);
        // 只发短信,将发短信信息组装好
        SmsRequestTemplate smsRequestTemplate
            = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterSmallScaleOverList,true,adCode,uuid,DangerEnum.ALREADY_OVER.getValue());
        smsRequestTemplate.setIsSendStation(isSendStation);
        // 拼接后面内容
        if (smsRequestTemplate.getPersonVOList().size()>0) {
            for (List<String> list : smsRequestTemplate.getTemplateContent()) {
                // 依次拼接巡查责任人,技术责任人姓名
                noticeHandle.addPatrolTechnologyInfo(list,false);
                // 拼接市县水利部人员姓名及联系方式
                noticeHandle.addCityCountyBusinessPersonInfo(list);
                // 保存告警记录信息
                AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list,alarmRule,uuid);
                if (null != alarmRecord) {
                    list.add(alarmRecord.getId().toString());
                }
            }
            // 调用短信服务
            map = smsService.sendSignMsg(smsRequestTemplate);
            return map;
        }
        return map;
    }
    /**
     * 7.2 水位小幅超汛限告警(发送给 县级水利部门有关人员、主管部门责任人)
     * @param templateId
     * @param uuid
     * @param alarmRule
     * @param adCode
     * @param isSendStation 是否发送站内信
     * @return
     */
    @Async
    public Map<String, Object> waterSmallScaleOverHandle2(String templateId, String uuid, AlarmRule alarmRule,String adCode,Boolean isSendStation) {
        Map<String, Object> map = new HashMap<>();
        // 调用中台服务接口查询数据
        JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_over_z_small_over_api);
        // 只发短信,将发短信信息组装好
        SmsRequestTemplate smsRequestTemplate
            = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterSmallScaleOverList,true,adCode,uuid,DangerEnum.ALREADY_OVER.getValue());
        smsRequestTemplate.setIsSendStation(isSendStation);
        // 拼接后面内容
        if (smsRequestTemplate.getPersonVOList().size()>0) {
            for (List<String> list : smsRequestTemplate.getTemplateContent()) {
                // 依次拼接巡查责任人,技术责任人姓名联系电话
                noticeHandle.addPatrolTechnologyInfo(list,true);
                // 拼接市县水利部人员姓名及联系方式
//                noticeHandle.addCityCountyBusinessPersonInfo(list);
                // 保存告警记录信息
                AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list,alarmRule,uuid);
                if (null != alarmRecord) {
                    list.add(alarmRecord.getId().toString());
                }
            }
            // 调用短信服务
            map = smsService.sendSignMsg(smsRequestTemplate);
            return map;
        }
        return map;
    }
    /**
     * 8.1 水位大幅超汛限告警(发松给 水库技术责任人、巡查责任人)
     * @param templateId
     * @param uuid
     * @param alarmRule
     * @param adCode
     * @param isSendStation 是否发送站内信
     * @return
     */
    @Async
    public Map<String, Object> waterBigScaleOverHandle1(String templateId, String uuid, AlarmRule alarmRule,String adCode,Boolean isSendStation) {
        Map<String, Object> map = new HashMap<>();
        // 调用中台服务接口查询数据
        JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_over_z_big_over_api);
        // 只发短信,将发短信信息组装好
        SmsRequestTemplate smsRequestTemplate
            = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterBigScaleOverList1,true,adCode,uuid,DangerEnum.ALREADY_BIG_OVER.getValue());
        smsRequestTemplate.setIsSendStation(isSendStation);
        // 拼接后面内容
        if (smsRequestTemplate.getPersonVOList().size()>0) {
            for (List<String> list : smsRequestTemplate.getTemplateContent()) {
                // 依次拼接巡查责任人,技术责任人姓名
                noticeHandle.addPatrolTechnologyInfo(list,false);
                // 拼接市县水利部人员姓名及联系方式
                noticeHandle.addCityCountyBusinessPersonInfo(list);
                // 保存告警记录信息
                AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list,alarmRule,uuid);
                if (null != alarmRecord) {
                    list.add(alarmRecord.getId().toString());
                }
            }
            // 调用短信服务
            map = smsService.sendSignMsg(smsRequestTemplate);
            return map;
        }
        return map;
    }
    /**
     * 8.2 水位大幅超汛限告警(发送给 县级水利部门有关人员、主管部门责任人)
     * @param templateId
     * @param uuid
     * @param alarmRule
     * @param adCode
     * @param isSendStation 是否发送站内信
     * @return
     */
    @Async
    public Map<String, Object> waterBigScaleOverHandle2(String templateId, String uuid, AlarmRule alarmRule,String adCode,Boolean isSendStation) {
        Map<String, Object> map = new HashMap<>();
        // 调用中台服务接口查询数据
        JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_over_z_big_over_api);
        // 只发短信,将发短信信息组装好
        SmsRequestTemplate smsRequestTemplate
            = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterBigScaleOverList2,true,adCode,uuid,DangerEnum.ALREADY_BIG_OVER.getValue());
        smsRequestTemplate.setIsSendStation(isSendStation);
        // 拼接后面内容
        if (smsRequestTemplate.getPersonVOList().size()>0) {
            for (List<String> list : smsRequestTemplate.getTemplateContent()) {
                // 依次拼接巡查责任人,技术责任人姓名联系电话
                noticeHandle.addPatrolTechnologyInfo(list,true);
                // 拼接市县水利部人员姓名及联系方式
//                noticeHandle.addCityCountyBusinessPersonInfo(list);
                // 保存告警记录信息
                AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list,alarmRule,uuid);
                if (null != alarmRecord) {
@@ -253,7 +409,7 @@
        if (smsRequestTemplate.getPersonVOList().size() > 0) {
            for (List<String> list : smsRequestTemplate.getTemplateContent()) {
                // 依次添加巡查责任人技术责任人信息姓名
                noticeHandle.addPatrolTechnologyInfo(list);
                noticeHandle.addPatrolTechnologyInfo(list,false);
                // 拼接市县水利部人员姓名及联系方式
                noticeHandle.addCityCountyBusinessPersonInfo(list);
                // 保存告警记录信息
@@ -291,7 +447,7 @@
        if (smsRequestTemplate.getPersonVOList().size() > 0) {
            for (List<String> list : smsRequestTemplate.getTemplateContent()) {
                // 依次添加巡查责任人技术责任人信息姓名
                noticeHandle.addPatrolTechnologyInfo(list);
                noticeHandle.addPatrolTechnologyInfo(list,false);
                // 拼接市县水利部人员姓名及联系方式
                noticeHandle.addCityCountyBusinessPersonInfo(list);
                // 保存告警记录信息
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java
@@ -351,10 +351,10 @@
    }
    /**
     * 依次添加巡查责任人,技术责任人信息
     * 依次添加巡查责任人,技术责任人信息(只有姓名)
     * @param list
     */
    public void addPatrolTechnologyInfo(List<String> list) {
    public void addPatrolTechnologyInfo(List<String> list,Boolean isPhone) {
        // 查询巡查责任人姓名,技术责任人姓名信息
        List<PersonVO> personVOList = attResManagePersonClient.getPersonListByResGuid(list.get(1),"4,5");
        if (personVOList.size()>0) {
@@ -362,10 +362,10 @@
            String jszrr = "-";
            for (PersonVO personVO : personVOList) {
                if (personVO.getType().equals("5")) {
                    xczrr = personVO.getName();
                    xczrr = isPhone?personVO.getName()+":"+personVO.getPhone() : personVO.getName();
                }
                if (personVO.getType().equals("4")) {
                    jszrr = personVO.getName();
                    jszrr = isPhone?personVO.getName()+":"+personVO.getPhone() : personVO.getName();
                }
            }
            // 巡查责任人姓名
@@ -379,7 +379,6 @@
            list.add("-");
        }
    }
    /**
     * 拼接市县水利部人员姓名及联系方式
@@ -543,7 +542,7 @@
        }
        // 保存告警记录详情信息
        if (smsRequestTemplate.getIsSendStation()) {
//            saveMessageRecord(messageRecordList);
            saveMessageRecord(messageRecordList);
        }
        Map<String, Object> map = new HashMap<>(2);
        // 返回
@@ -566,7 +565,7 @@
//        addSendMsgTest(messageRecordList1);
        //给app推送消息
//        pushService.pushMessageList(messageRecordList1);
        pushService.pushMessageList(messageRecordList);
//        pushService.pushMessageList(messageRecordList);
        // 保存记录
        messageClient.saveMessageRecord(messageRecordList);
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
@@ -201,8 +201,27 @@
     * @return
     */
    public String waterSmallScaleOverHandle(String arg1, String arg2) {
        // 业务逻辑处理 2...
        return "";
//        String adCode = "421303000000";
        String adCode = null;
        String templateId1 = "2431012216674";
        String templateId2 = "2431012248617";
        String uuid1 = templateId1 + UUID.randomUUID().toString();
        String uuid2 = templateId2 + UUID.randomUUID().toString();
        String[] split = arg1.split(",");
        // 查询当前策略对应的告警规则信息
        AlarmRule alarmRule1 = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", split[0]));
        AlarmRule alarmRule2 = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", split[1]));
        // 发两个不同的模板
        if (null!=alarmRule1) {
            // 短信发送
            asyncNoticeHandle.waterSmallScaleOverHandle1(templateId1, uuid1, alarmRule1,adCode,true);
        }
        if (null!=alarmRule2) {
            // 短信发送
            asyncNoticeHandle.waterSmallScaleOverHandle2(templateId2, uuid2, alarmRule2,adCode,true);
        }
        // 返回
        return "水位小幅超汛限告警";
    }
    /**
@@ -213,8 +232,27 @@
     * @return
     */
    public String waterBigScaleOverHandle(String arg1, String arg2) {
        // 业务逻辑处理 2...
        return "";
        //String adCode = "421303000000";
        String adCode = null;
        String templateId1 = "2431012248620";
        String templateId2 = "2431012248623";
        String uuid1 = templateId1 + UUID.randomUUID().toString();
        String uuid2 = templateId2 + UUID.randomUUID().toString();
        String[] split = arg1.split(",");
        // 查询当前策略对应的告警规则信息
        AlarmRule alarmRule1 = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", split[0]));
        AlarmRule alarmRule2 = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", split[1]));
        // 发两个不同的模板
        if (null!=alarmRule1) {
            // 短信发送
            asyncNoticeHandle.waterBigScaleOverHandle1(templateId1, uuid1, alarmRule1,adCode,true);
        }
        if (null!=alarmRule2) {
            // 短信发送
            asyncNoticeHandle.waterBigScaleOverHandle2(templateId2, uuid2, alarmRule2,adCode,true);
        }
        // 返回
        return "水位大幅超汛限告警";
    }
    /**