zrj
2024-09-02 13a2488a1c825da7e2404f5f1036a42b6c44c849
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java
@@ -119,6 +119,12 @@
      if (null != smsTemplate) {
         // 创建消息发送对象
         SmsRequestTemplate smsRequestTemplate = new SmsRequestTemplate();
         // 通过模板id 查询模板相关信息(外呼对应的模板id则为场景id)
         SmsTemplate mergeSmsTemplate
            = smsTemplateService.getOne(new QueryWrapper<SmsTemplate>().eq("id", alarmRuleDetail.getMergeTemplateId()).eq("is_deleted", 0));
         if (null!=mergeSmsTemplate){
            smsRequestTemplate.setSmsTemplateMerge(mergeSmsTemplate);
         }
         // 设置是否发送站内信
         smsRequestTemplate.setIsSendStation(isSendStation);
         // 设置告警信息
@@ -227,6 +233,7 @@
      // 设置信息
      smsRequestTemplate.setPersonVOList(personLists);
      smsRequestTemplate.setTemplateContent(lists);
      smsRequestTemplate.setTemplateMergeContent(moreLists);
   }
   /**
@@ -283,7 +290,9 @@
            //日期处理
            flag = timeHandle(jsonArray, alarmRuleDetail, flag, i, list);
            // 合并水库名称
            boolean isMerge = mergeResName(jsonArray, columnsList, lists, i, personVO,list.size());
            boolean isMerge = Strings.isBlank(alarmRuleDetail.getMergeTemplateId())?
               mergeResName(jsonArray, columnsList,lists, i, personVO,list.size()):
               mergeResName(jsonArray,list, mergeColumnsList,lists,moreLists, i, personVO,list.size());
            if (isMerge){
               break;
            }
@@ -437,6 +446,65 @@
                  }
               }
            }
            break;
         }
      }
      return isMerge;
   }
   /**
    * 合并水库名称内容--暂不启用
    * @param jsonArray 告警数据
    * @param list 当前告警内容
    * @param columnsList 告警列(合并)
    * @param lists 告警内容
    * @param moreLists 合并告警内容
    * @param i 集合索引
    * @param personVO 人员信息
    * @param index 索引
    * @return
    */
   private boolean mergeResName(JSONArray jsonArray,
                         List<String> list,
                         List<String> columnsList,
                         List<List<String>> lists,
                         List<List<String>> moreLists,
                         int i,
                         PersonVO personVO,
                         int index) {
      boolean isMerge = false;
      for (List<String> listStr : lists) {
         // 如果告警人员已经存在,则需要按规则判断是否合并水库名称,将当前人员告警内容中的水库名称合并
         if (listStr.contains(personVO.getPhone())) {
            isMerge = true;
            // 判断合并的水库名称是否超过3个,超过3个则不在合并,直接舍弃
            String resNames = listStr.get(index);
            int length = resNames.split("、").length;
            if (length>2){
               break;
            }
            // 变量将值放入集合中
            for (String column : columnsList) {
               String[] split = column.split(",");
               String format = "";
               String lastString = split[split.length-1];
               if (lastString.equals("1")) {
                  // 需要合并数据,目前只会合并乡镇水库名称,其他情况不处理
                  for (String s : split) {
                     // 乡镇水库拼接
                     format = format + jsonArray.getJSONObject(i).getString(s);
                  }
                  format = format.replaceAll("null","");
                  // 合并水库名称信息,2個以上拼接等
                  if (length==2){
                     list.add(listStr.get(index) + "、" + format + "等");
                  }else {
                     list.add(listStr.get(index) + "、" + format);
                  }
               }
            }
            // 加入合并的集合
            moreLists.add(list);
            break;
         }
      }
@@ -805,12 +873,12 @@
         //删除测值
         list.remove(3);
         // 新增
//         boolean save = alarmRecordService.save(alarm);
//         // 删除测站编号
         boolean save = alarmRecordService.save(alarm);
         // 删除测站编号
         list.remove(0);
//         if (save) {
//            return alarm;
//         }
         if (save) {
            return alarm;
         }
      }
      // 返回
      return null;