aix
2024-07-23 4473911c8f1040b72fa91bfe62c7dc247376f9ff
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/AsyncNoticeHandle.java
@@ -16,6 +16,7 @@
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.time.LocalTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -165,6 +166,8 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if(!isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -508,13 +511,18 @@
      if (smsRequestTemplate.getPersonVOList().size() > 0) {
         for (List<String> list : smsRequestTemplate.getTemplateContent()) {
            // 拼接市县水利部人员姓名及联系方式
            noticeHandle.addCityCountyBusinessPersonInfo(list);
//            noticeHandle.addCityCountyBusinessPersonInfo(list);
            String remark = StringUtil.format("降雨:{}\n",
               list.get(6) + "毫米"
            );
            // 保存告警记录信息
            AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list, alarmRule, uuid);
            AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list, alarmRule, uuid, remark);
            if (null != alarmRecord) {
               list.add(alarmRecord.getId().toString());
            }
         }
         if(!isTimeSend()) return map;
         List<String> list = noticeHandle.createOutCallTaskByAlarm(smsRequestTemplate);
         map.put("list", list);
         // 调用短信服务
@@ -561,6 +569,8 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -789,6 +799,8 @@
         for (List<String> list : smsRequestTemplate.getTemplateContent()) {
            // 依次添加行巡查责任人,技术责任人信息(姓名)
            noticeHandle.addPatrolTechnologyInfo(list, false);
//            // 依次添加行巡查责任人,技术责任人信息,主管部门责任人(姓名)
//            noticeHandle.addPatrolTechnologyInfoNew(list, false);
            // 拼接市县水利部人员姓名及联系方式
            noticeHandle.addCityCountyBusinessPersonInfo(list);
@@ -986,11 +998,15 @@
      if (smsRequestTemplate.getPersonVOList().size() > 0) {
         for (List<String> list : smsRequestTemplate.getTemplateContent()) {
            // 依次添加行政责任人,主管部门责任人,技术责任人,巡查责任人信息(姓名,联系电话)
            noticeHandle.addWaterMoreDesignPatrolTechnologyInfo(list, "1,2,4,5");
//            noticeHandle.addWaterMoreDesignPatrolTechnologyInfo(list, "1,2,4,5");
            // 主管部门责任人,技术责任人,巡查责任人信息 2024-05-29修改
            noticeHandle.addWaterMoreDesignPatrolTechnologyInfoNew(list, "2,4,5");
            // 拼接市县水利部人员姓名及联系方式
            noticeHandle.addCityCountyBusinessPersonInfo(list);
            String remark = list.get(9);
            String remark = StringUtil.format("降雨:{}\n",
               list.get(6) + "毫米"
            );
            // 保存告警记录信息
            AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list, alarmRule, uuid, remark);
@@ -1084,7 +1100,7 @@
            }
         }
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day")) return map;
         if (isDay.equals("day") || !isTimeSend()) return map;
         map = smsService.sendSignMsgMergeCd(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -1113,7 +1129,7 @@
         }
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
@@ -1137,7 +1153,7 @@
            }
         }
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 需要合并水库保存站内信记录信息
         noticeHandle.saveInStationInfoMerge(smsRequestTemplate, alarmRule);
      }
@@ -1265,7 +1281,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -1340,7 +1356,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -1413,7 +1429,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -1485,7 +1501,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -1559,7 +1575,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -1665,7 +1681,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -1756,7 +1772,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -1839,7 +1855,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -1911,7 +1927,7 @@
            // 拼接市县水利部人员姓名及联系方式
            noticeHandle.addCityCountyBusinessPersonInfo(list);
            String remark = StringUtil.format("de_val:{}\ndn_val:{}\ndu_value:{}\n",
            String remark = StringUtil.format("上下游:{}\n左右岸:{}\n垂直位移:{}\n",
               list.get(13), list.get(14), list.get(15)
            );
            list.remove(13);
@@ -1924,7 +1940,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -1995,7 +2011,7 @@
            // 拼接市县水利部人员姓名及联系方式
            noticeHandle.addCityCountyBusinessPersonInfo(list);
            String remark = StringUtil.format("de_val:{}\ndn_val:{}\ndu_value:{}\n",
            String remark = StringUtil.format("上下游:{}\n左右岸:{}\n垂直位移:{}\n",
               list.get(13), list.get(14), list.get(15)
            );
            list.remove(13);
@@ -2008,7 +2024,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -2040,8 +2056,16 @@
            noticeHandle.addPatrolTechnologyInfo(list, false);
            // 拼接市县水利部人员姓名及联系方式
            noticeHandle.addCityCountyBusinessPersonInfo(list);
            String remark = StringUtil.format("上下游:{}\n左右岸:{}\n垂直位移:{}\n",
               list.get(13), list.get(14), list.get(15)
            );
            list.remove(13);
            list.remove(14);
            list.remove(15);
            // 保存告警记录信息
            AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list, alarmRule, uuid);
            AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list, alarmRule, uuid, remark);
            if (null != alarmRecord) {
               list.add(alarmRecord.getId().toString());
            }
@@ -2078,13 +2102,21 @@
            noticeHandle.addPatrolTechnologyInfo(list, false);
            // 拼接市县水利部人员姓名及联系方式
            noticeHandle.addCityCountyBusinessPersonInfo(list);
            String remark = StringUtil.format("上下游:{}\n左右岸:{}\n垂直位移:{}\n",
               list.get(13), list.get(14), list.get(15)
            );
            list.remove(13);
            list.remove(14);
            list.remove(15);
            // 保存告警记录信息
            AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list, alarmRule, uuid);
            AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list, alarmRule, uuid, remark);
            if (null != alarmRecord) {
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -2164,7 +2196,7 @@
            }
         }
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -2250,7 +2282,7 @@
            }
         }
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -2282,7 +2314,7 @@
            }
         }
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfoMergeNoCd(smsRequestTemplate, alarmRule);
      }
@@ -2316,7 +2348,7 @@
         }
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfoMergeVideo(smsRequestTemplate, alarmRule);
      }
@@ -2371,4 +2403,74 @@
      }
      return map;
   }
   /**
    * 策略42 站内信----- 超防洪高水位告警
    *
    * @param alarmRule       告警规则
    * @param alarmRuleDetail 告警规则详情
    * @param ztData            中台数据
    * @param columnList      需要展示的数据字段
    * @param flag            是否显示日期
    * @param adCode          行政区划
    * @param isSendStation   是否站内信
    * @param uuid            随机生成id
    * @return
    */
   public void topLevOfFloAlertHandleStation(AlarmRule alarmRule,
                                   AlarmRuleDetail alarmRuleDetail,
                                   JSONArray data,
                                   List<String> columnList,
                                   boolean flag,
                                   String adCode,
                                   boolean isSendStation,
                                   String uuid,
                                   String isDay
   ) {
      SmsRequestTemplate smsRequestTemplate
         = noticeHandle.getSendSmsTemplate(data, alarmRule, alarmRuleDetail, columnList, flag, adCode, uuid, isSendStation);
      // 拼接后面内容
      if (smsRequestTemplate.getPersonVOList().size() > 0) {
         for (List<String> list : smsRequestTemplate.getTemplateContent()) {
            String remark = StringUtil.format("水位:{}\n防洪高水位:{}米\n超防洪高水位:{}米\n",
               list.get(9), list.get(13), String.format("%.2f", Double.valueOf(list.get(9).replace("米", "")) - Double.valueOf(list.get(13)))
            );
            list.remove(13);
            System.out.println(remark);
            // 依次添加行政责任人,主管部门责任人,技术责任人,巡查责任人信息(姓名,联系电话)
            noticeHandle.addWaterMoreDesignPatrolTechnologyInfo(list, "1,2,4,5");
            // 拼接市县水利部人员姓名及联系方式
            noticeHandle.addCityCountyBusinessPersonInfo(list);
            // 保存告警记录信息
            AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list, alarmRule, uuid,remark);
            if (null != alarmRecord) {
               list.add(alarmRecord.getId().toString());
            }
         }
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
   }
   /**
    * 是否在时间范围内发送
    * @return
    */
   private boolean isTimeSend(){
      boolean flag = false;
      // 判断时间范围
      // 开始时间
      LocalTime startTime = LocalTime.parse("08:00");
      // 结束时间
      LocalTime endTime = LocalTime.parse("22:00");
      // 当前时间
      LocalTime now = LocalTime.now();
      // 比较
      flag = !now.isBefore(startTime) && !now.isAfter(endTime);
      // 返回
      return flag;
   }
}