zhongrj
2023-07-05 2a8f13fe78fbf4b74bd93bd43ae7b7e3e9211e79
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
@@ -51,10 +51,10 @@
   private AlarmRuleService alarmRuleService;
   @Autowired
   private RestTemplate restTemplate;
   private NoticeHandle noticeHandle;
   @Autowired
   private NoticeHandle noticeHandle;
   private AsyncNoticeHandle asyncNoticeHandle;
@@ -85,7 +85,7 @@
      AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
      if (null!=alarmRule) {
         // 调用中台服务接口查询数据
         JSONArray ztData = getZtData("", ZtApiUrlConstant.res_z_null_api);
         JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_z_null_api);
         // 只发短信,将发短信信息组装好
         SmsRequestTemplate smsRequestTemplate = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterInfoNotList,false,null);
         // 拼接内容后面的联系方式,当前模板拼接平台服务电话
@@ -118,7 +118,7 @@
      AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
      if (null!=alarmRule) {
         // 调用中台服务接口查询数据
         JSONArray ztData = getZtData("", ZtApiUrlConstant.res_z_not_normal_api);
         JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_z_not_normal_api);
         // 只发短信,将发短信信息组装好
         SmsRequestTemplate smsRequestTemplate
            = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterDataExcList,false,null);
@@ -151,7 +151,7 @@
      AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
      if (null!=alarmRule) {
         // 调用中台服务接口查询数据
         JSONArray ztData = getZtData("", ZtApiUrlConstant.res_diff_dead_z_api);
         JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_diff_dead_z_api);
         // 只发短信,将发短信信息组装好
         SmsRequestTemplate smsRequestTemplate = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterLessDeadList,true,null);
         // 拼接内容后面的联系方式,当前模板县水利部人员姓名电话
@@ -166,13 +166,15 @@
            }
         }
         // 调用短信服务
         Map<String,Object> map = smsService.sendSignMsg(smsRequestTemplate);
         Map<String, Object> map = smsService.sendSignMsg(smsRequestTemplate);
         // 返回
         return "本次-水位初次超汛限告警短信成功通知数量:" + map.get("smsRecord");
      }
      // 返回
      return "水位超低于死水位";
   }
   /**
    * 策略4: 水位高于死水位,低于旱警水位
@@ -200,7 +202,7 @@
      AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
      if (null!=alarmRule) {
         // 调用中台服务接口查询数据
         JSONArray ztData = getZtData("", ZtApiUrlConstant.res_diff_dead_z_api);
         JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_diff_dead_z_api);
         // 只发送站内信
         SmsRequestTemplate smsRequestTemplate = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterLessDeadList,true,null);
         // 拼接内容后面的联系方式,当前模板县水利部人员姓名电话
@@ -240,7 +242,7 @@
      AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
      if (null!=alarmRule) {
         // 调用中台服务接口查询数据
         JSONArray ztData = getZtData("", ZtApiUrlConstant.over_z_res_api);
         JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.over_z_res_api);
         // 只发短信,将发短信信息组装好
         SmsRequestTemplate smsRequestTemplate
            = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterFirstOverList,true,adCode);
@@ -318,29 +320,10 @@
      // 查询当前策略对应的告警规则信息
      AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
      if (null!=alarmRule) {
         // 调用中台服务接口查询数据
         JSONArray ztData = getZtData("", ZtApiUrlConstant.over_des_rz_warn_api);
         // 只发短信,将发短信信息组装好
         SmsRequestTemplate smsRequestTemplate
            = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterMoreDesignList,true,null);
         // 拼接后面内容
         if (smsRequestTemplate.getPersonVOList().size()>0) {
            for (List<String> list : smsRequestTemplate.getTemplateContent()) {
               // 依次添加行政责任人,主管部门责任人,技术责任人,巡查责任人信息(姓名,联系电话)
               noticeHandle.addWaterMoreDesignPatrolTechnologyInfo(list,"1,2,4,5");
               // 拼接市县水利部人员姓名及联系方式
               noticeHandle.addCityCountyBusinessPersonInfo(list);
               // 保存告警记录信息
               AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list,alarmRule,uuid);
               if (null != alarmRecord) {
                  list.add(alarmRecord.getId().toString());
               }
            }
            // 调用短信服务
            Map<String, Object> map = smsService.sendSignMsg(smsRequestTemplate);
            // 返回
            return "本次-水位初次超汛限告警短信成功通知数量:" + map.get("smsRecord");
         }
         // 异步处理,暂时解决超时重置问题
         Map<String, Object> map = asyncNoticeHandle.handleAlarmInfo(templateId, uuid, alarmRule);
         // 返回
         return "水位超设计洪水位告警";
      }
      // 返回
      return "水位超设计洪水位告警";
@@ -442,40 +425,4 @@
      return "";
   }
   /**
    * 调用中台接口查询数据
    *
    * @param params
    * @param url
    * @return
    */
   private JSONArray getZtData(String params, String url) {
      // 获取环境
      String activeProfile = SpringContextUtil.getActiveProfile();
      if (activeProfile.equals("dev")){
         url = ZtApiUrlConstant.url_prefix_dev + url;
      }
      if (activeProfile.equals("prod")){
         url = ZtApiUrlConstant.url_prefix_prod + url;
      }
      //设置请求头
      HttpHeaders headers = new HttpHeaders();
      headers.add(ZtConfigConstant.header_key, ZtConfigConstant.header_value);
      //封装请求头
      HttpEntity<MultiValueMap<String, Object>> formEntity = new HttpEntity<MultiValueMap<String, Object>>(headers);
      try {
         //有请求头,有参数请求
         ResponseEntity<String> responseEntity =
            restTemplate.exchange(url + params,
               HttpMethod.GET,
               formEntity,
               String.class);
         JSONObject jsonObject = JSON.parseObject(responseEntity.getBody());
         // 返回
         return JSONArray.parseArray(jsonObject.get("data").toString());
      } catch (Exception e) {
         e.printStackTrace();
      }
      return null;
   }
}