xieb
2023-07-06 89b536fd773275be935979b643206b955eab2bb3
Merge remote-tracking branch 'origin/jtdev' into jtdev
3 files modified
98 ■■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java 41 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java 28 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java 29 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java
@@ -25,15 +25,52 @@
    @Autowired
    private SmsService smsService;
    /**
     * 异步发送告警信息
     * 水位初次超汛限告警 处理
     * @param templateId
     * @param uuid
     * @param alarmRule
     * @param adCode
     * @return
     */
    @Async
    public Map<String, Object> waterFirstOverHandle(String templateId, String uuid, AlarmRule alarmRule,String adCode) {
        Map<String, Object> map = new HashMap<>();
        // 调用中台服务接口查询数据
        JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.over_z_res_api);
        // 只发短信,将发短信信息组装好
        SmsRequestTemplate smsRequestTemplate
            = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterFirstOverList,true,adCode);
        // 拼接后面内容
        if (smsRequestTemplate.getPersonVOList().size()>0) {
            for (List<String> list : smsRequestTemplate.getTemplateContent()) {
                // 依次拼接巡查责任人,技术责任人姓名
                noticeHandle.addPatrolTechnologyInfo(list);
                // 拼接市县水利部人员姓名及联系方式
                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;
    }
    /**
     * 水位超设计洪水位告警处理
     * @param templateId
     * @param uuid
     * @param alarmRule
     * @return
     */
    @Async
    public Map<String, Object> handleAlarmInfo(String templateId, String uuid, AlarmRule alarmRule) {
    public Map<String, Object> waterMoreDesignHandle(String templateId, String uuid, AlarmRule alarmRule) {
        Map<String, Object> map = new HashMap<>();
        // 调用中台服务接口查询数据
        JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.over_des_rz_warn_api);
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java
@@ -131,6 +131,8 @@
    private void jointData(JSONArray jsonArray, List<String> columnsList, AlarmRule alarmRule, Boolean flag, List<PersonVO> personLists, List<List<String>> lists, int i) {
        // 根据水库编号,所在区域查询需要发送的人员手机号及设置
        String res_cd = jsonArray.getJSONObject(i).getString("res_cd");
        // 取出测站编码
        String stcd = jsonArray.getJSONObject(i).getString("stcd");
        // 判断时间是否存在
        String tm = jsonArray.getJSONObject(i).getString("tm");
        String day = "";
@@ -146,7 +148,7 @@
            flag = false;
        }
        // 获取告警人员信息
        getAlarmPersonList(jsonArray, columnsList, alarmRule, flag, personLists, lists, i, res_cd, day, hour, minute);
        getAlarmPersonList(jsonArray, columnsList, alarmRule, flag, personLists, lists, i, res_cd, day, hour, minute,stcd);
    }
    /**
@@ -158,10 +160,11 @@
     * @param personLists
     * @param lists
     * @param i
     * @param res_cd
     * @param day
     * @param hour
     * @param minute
     * @param res_cd 水库编码
     * @param day 日期
     * @param hour 小时
     * @param minute 分钟
     * @param stcd 测站编码
     */
    private void getAlarmPersonList(JSONArray jsonArray,
                                    List<String> columnsList,
@@ -173,12 +176,14 @@
                                    String res_cd,
                                    String day,
                                    String hour,
                                    String minute) {
                                    String minute,
                                    String stcd) {
        // 查询告警人员信息
        List<PersonVO> personVOList = getPersonListByResGuid(res_cd, alarmRule);
        if (personVOList.size() > 0) {
            for (PersonVO personVO : personVOList) {
                List<String> list = new ArrayList<>();
                list.add(stcd);
                list.add(res_cd);
                list.add(personVO.getPhone());
                if (flag) {
@@ -220,12 +225,15 @@
            AlarmRecord alarm = new AlarmRecord();
            // 设置相关信息
            alarm.setAlarmRuleId(alarmRule.getId().toString());
            alarm.setReservoirNumber(list.get(0));
            // 分别设置测站编号和水库编码
            alarm.setAlarmSurveyStationCode(list.get(0));
            alarm.setReservoirNumber(list.get(1));
            alarm.setAlarmCondition(alarmRule.getRuleRemark());
            alarm.setTempCode(uuid);
            // 新增
            boolean save = alarmRecordService.save(alarm);
            // 删除测站编号
            list.remove(0);
            if (save) {
                return alarm;
            }
@@ -276,8 +284,8 @@
        // 查询巡查责任人姓名,技术责任人姓名信息
        List<PersonVO> personVOList = attResManagePersonClient.getPersonListByResGuid(list.get(0),"4,5");
        if (personVOList.size()>0) {
            String xczrr = "";
            String jszrr = "";
            String xczrr = "-";
            String jszrr = "-";
            for (PersonVO personVO : personVOList) {
                if (personVO.getType().equals("5")) {
                    xczrr = personVO.getName();
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
@@ -241,30 +241,9 @@
        // 查询当前策略对应的告警规则信息
        AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
        if (null!=alarmRule) {
            // 调用中台服务接口查询数据
            JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.over_z_res_api);
            // 只发短信,将发短信信息组装好
            SmsRequestTemplate smsRequestTemplate
                = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterFirstOverList,true,adCode);
            // 拼接后面内容
            if (smsRequestTemplate.getPersonVOList().size()>0) {
                for (List<String> list : smsRequestTemplate.getTemplateContent()) {
                    // 依次拼接巡查责任人,技术责任人姓名
                    noticeHandle.addPatrolTechnologyInfo(list);
                    // 拼接市县水利部人员姓名及联系方式
                    noticeHandle.addCityCountyBusinessPersonInfo(list);
                    // 保存告警记录信息
                    AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list,alarmRule,uuid);
                    if (null != alarmRecord) {
                        list.add(alarmRecord.getId().toString());
//                        list.add("999");
                    }
                }
                // 调用短信服务
                Map<String, Object> map = smsService.sendSignMsg(smsRequestTemplate);
                // 返回
                return "本次-水位初次超汛限告警短信成功通知数量:" + map.get("smsRecord");
            }
            asyncNoticeHandle.waterFirstOverHandle(templateId, uuid, alarmRule,adCode);
            // 返回
            return "水位初次超汛限告警";
        }
        // 返回
        return "水位初次超汛限告警";
@@ -321,7 +300,7 @@
        AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
        if (null!=alarmRule) {
            // 异步处理,暂时解决超时重置问题
            Map<String, Object> map = asyncNoticeHandle.handleAlarmInfo(templateId, uuid, alarmRule);
            Map<String, Object> map = asyncNoticeHandle.waterMoreDesignHandle(templateId, uuid, alarmRule);
            // 返回
            return "水位超设计洪水位告警";
        }