zrj
2024-08-22 4fa63d4db1e87adabe5b40a4d5fb4e8b10276def
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;
@@ -63,6 +64,9 @@
            list.add(alarmRecord.getId().toString());
         }
      }
      if (!isTimeSend()) return;
      // 调用短信服务
      smsService.sendMergeSignMsg(smsRequestTemplate);
   }
@@ -113,6 +117,8 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return map;
         // 调用短信服务
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 返回
@@ -165,6 +171,8 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if(!isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -215,6 +223,9 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return map;
         // 调用短信服务
         map = smsService.sendSignMsg(smsRequestTemplate);
         return map;
@@ -269,6 +280,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return map;
         // 调用短信服务
         map = smsService.sendSignMsg(smsRequestTemplate);
         return map;
@@ -322,6 +334,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return map;
         // 调用短信服务
         map = smsService.sendSignMsg(smsRequestTemplate);
         return map;
@@ -375,6 +388,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return map;
         // 调用短信服务
         map = smsService.sendSignMsg(smsRequestTemplate);
         return map;
@@ -426,6 +440,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return map;
         // 调用短信服务
//         map = smsService.sendSignMsg(smsRequestTemplate);
         return map;
@@ -472,6 +487,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -508,13 +524,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 +582,8 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -613,6 +636,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -657,6 +681,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -709,6 +734,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -752,6 +778,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -789,6 +816,8 @@
         for (List<String> list : smsRequestTemplate.getTemplateContent()) {
            // 依次添加行巡查责任人,技术责任人信息(姓名)
            noticeHandle.addPatrolTechnologyInfo(list, false);
//            // 依次添加行巡查责任人,技术责任人信息,主管部门责任人(姓名)
//            noticeHandle.addPatrolTechnologyInfoNew(list, false);
            // 拼接市县水利部人员姓名及联系方式
            noticeHandle.addCityCountyBusinessPersonInfo(list);
@@ -802,6 +831,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -853,6 +883,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -901,6 +932,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -950,6 +982,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -986,11 +1019,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);
@@ -998,6 +1035,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -1041,6 +1079,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (!isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -1084,7 +1123,7 @@
            }
         }
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day")) return map;
         if (isDay.equals("day") || !isTimeSend()) return map;
         map = smsService.sendSignMsgMergeCd(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -1113,7 +1152,7 @@
         }
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
@@ -1137,7 +1176,7 @@
            }
         }
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 需要合并水库保存站内信记录信息
         noticeHandle.saveInStationInfoMerge(smsRequestTemplate, alarmRule);
      }
@@ -1161,7 +1200,7 @@
            }
         }
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day")) return map;
         if (isDay.equals("day") || !isTimeSend()) return map;
         map = smsService.sendSignMsgMergeCd(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -1187,7 +1226,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return map;
         if (isDay.equals("day") || !isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -1227,7 +1266,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return map;
         if (isDay.equals("day") || !isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -1265,7 +1304,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -1303,7 +1342,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return map;
         if (isDay.equals("day") || !isTimeSend()) return map;
//         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -1340,7 +1379,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -1373,7 +1412,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return map;
         if (isDay.equals("day") || !isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -1413,7 +1452,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -1447,7 +1486,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return map;
         if (isDay.equals("day") || !isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -1485,7 +1524,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -1519,7 +1558,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return map;
         if (isDay.equals("day") || !isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -1559,7 +1598,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -1604,7 +1643,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return map;
         if (isDay.equals("day") || !isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -1665,7 +1704,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -1703,7 +1742,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return map;
         if (isDay.equals("day") || !isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -1756,7 +1795,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -1794,7 +1833,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return map;
         if (isDay.equals("day") || !isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -1839,7 +1878,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -1877,7 +1916,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return map;
         if (isDay.equals("day") || !isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -1911,7 +1950,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 +1963,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -1962,7 +2001,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return map;
         if (isDay.equals("day") || !isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -1995,7 +2034,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 +2047,7 @@
               list.add(alarmRecord.getId().toString());
            }
         }
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -2040,13 +2079,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 map;
         if (isDay.equals("day") || !isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -2078,13 +2125,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);
      }
@@ -2125,7 +2180,7 @@
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day")) return map;
         if (isDay.equals("day") || !isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -2164,7 +2219,7 @@
            }
         }
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -2204,7 +2259,7 @@
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day")) return map;
         if (isDay.equals("day") || !isTimeSend()) return map;
         map = smsService.sendSignMsg(smsRequestTemplate);
         // 调用短信服务
         return map;
@@ -2250,7 +2305,7 @@
            }
         }
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfo(smsRequestTemplate, alarmRule);
      }
@@ -2282,7 +2337,7 @@
            }
         }
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfoMergeNoCd(smsRequestTemplate, alarmRule);
      }
@@ -2316,7 +2371,7 @@
         }
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day")) return;
         if (isDay.equals("day") || !isTimeSend()) return;
         // 保存站内信记录信息
         noticeHandle.saveInStationInfoMergeVideo(smsRequestTemplate, alarmRule);
      }
@@ -2336,7 +2391,7 @@
      }
      //如果参数是day,表示是每天生成告警,不需要发信息
      if (isDay.equals("day")) return;
      if (isDay.equals("day") || !isTimeSend()) return;
      // 调用短信服务
      smsService.sendMergeSignMsg(smsRequestTemplate);
   }
@@ -2364,11 +2419,81 @@
            }
         }
         //如果参数是day,表示是每天生成告警,不需要发信息
         if (isDay.equals("day")) return map;
         if (isDay.equals("day") || !isTimeSend()) return map;
         map = smsService.sendSignMsgMergeCdVideo(smsRequestTemplate);
         // 调用短信服务
         return map;
      }
      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;
   }
}