zrj
2024-09-02 13a2488a1c825da7e2404f5f1036a42b6c44c849
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
@@ -204,16 +204,49 @@
   @Override
   public Map<String, Object> sendSignMsg(SmsRequestTemplate smsRequestTemplate) {
      // 取出数据
      SMSSendRequest request = new SMSSendRequest();
      SmsTemplate smsTemplate = smsRequestTemplate.getSmsTemplate();
      request.setTemplateId(smsTemplate.getTemplateId());
      // 合并
      SmsTemplate smsTemplateMerge = smsRequestTemplate.getSmsTemplateMerge();
      // 告警内容
      List<List<String>> templateContent = smsRequestTemplate.getTemplateContent();
      // 合并水库告警内容
      List<List<String>> templateTemplateMergeContent = smsRequestTemplate.getTemplateMergeContent();
      // 获取告警规则
      AlarmRule alarmRule = smsRequestTemplate.getAlarmRule();
      // 是否同时发送站内信
      Boolean isSendStation = false;
      if (null!=smsRequestTemplate.getIsSendStation()){
         isSendStation = smsRequestTemplate.getIsSendStation();
      }
      Map<String, Object> map = new HashMap<>(2);
      // 发送消息处理
      Map<String, Object> params = sendSmsReturnStringObjectMap(smsTemplate, templateContent, alarmRule, isSendStation);
      // 发送合并水库消息处理
      Map<String, Object> mergeParams = sendSmsReturnStringObjectMap(smsTemplateMerge, templateTemplateMergeContent, alarmRule, isSendStation);
      // 合并返回数据
      map.put("oneMap",params);
      map.put("moreMap",mergeParams);
      // 返回
      return map;
   }
   /**
    * 发送消息处理
    * @param smsTemplate
    * @param templateContent
    * @param alarmRule
    * @param isSendStation
    * @return
    */
   @NotNull
   private Map<String, Object> sendSmsReturnStringObjectMap(SmsTemplate smsTemplate,
                                              List<List<String>> templateContent,
                                              AlarmRule alarmRule,
                                              Boolean isSendStation) {
      if (null!=smsTemplate) {
         // 取出数据
         SMSSendRequest request = new SMSSendRequest();
         request.setTemplateId(smsTemplate.getTemplateId());
      // 判断 templateContent 个数,个数超过1000 需要分段发送短信
      List<List<List<String>>> lists = Lists.partition(templateContent, 1000);
      int number = 0;
@@ -221,22 +254,22 @@
         // 临时保存告警记录用
         List<List<String>> templateList = getAlarmList(list);
         // 批量发送短信
         Map<String, Object> map = batchSendAlertsSms(smsRequestTemplate.getSmsTemplate(), list);
//         int count = Integer.parseInt(map.get("errCount").toString());
//         ComResult<DynSMSSendDataResult> resultComResult =(ComResult<DynSMSSendDataResult>) map.get("resultComResult");
//         // 保存短信结果记录
//         SmsResult smsResult = saveSendResult(alarmRule.getId(),resultComResult.getCode().toString(),resultComResult.getMsg(),request, list.size() - count);
//         // 保存详情记录(短信详情,告警详情)
//         List<SmsRecord> smsRecordList = saveAlertsAndSmsDetail(smsResult,resultComResult,smsRequestTemplate.getSmsTemplate(),
//            templateList,request,smsRequestTemplate.getAlarmRule(),isSendStation);
//         // number 累加
//         number += smsRecordList.size();
            Map<String, Object> map = batchSendAlertsSms(smsTemplate, list);
            int count = Integer.parseInt(map.get("errCount").toString());
            ComResult<DynSMSSendDataResult> resultComResult = (ComResult<DynSMSSendDataResult>) map.get("resultComResult");
            // 保存短信结果记录
            SmsResult smsResult = saveSendResult(alarmRule.getId(), resultComResult.getCode().toString(), resultComResult.getMsg(), request, list.size() - count);
            // 保存详情记录(短信详情,告警详情)
            List<SmsRecord> smsRecordList = saveAlertsAndSmsDetail(smsResult, resultComResult, smsTemplate,
               templateList, request, alarmRule, isSendStation);
            // number 累加
            number += smsRecordList.size();
      }
      // 设置返回数据
      Map<String, Object> params = new HashMap<>(1);
      params.put("sendNumber",number);
      // 返回
      return params;
      }
      return null;
   }
   /**