From 5eeac9f272d1228a328cdae46961834f168f5086 Mon Sep 17 00:00:00 2001 From: huangzhen <867217663@qq.com> Date: 星期四, 22 二月 2024 16:57:05 +0800 Subject: [PATCH] 增加设备异常短信接收人 --- src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/DataReceiveServiceImpl.java | 38 ++++++++++++++++++++++++-------------- 1 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/DataReceiveServiceImpl.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/DataReceiveServiceImpl.java index 5ed0334..1d21ddf 100644 --- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/DataReceiveServiceImpl.java +++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/DataReceiveServiceImpl.java @@ -40,10 +40,7 @@ import java.text.MessageFormat; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.locks.ReentrantLock; import java.util.stream.Collectors; @@ -121,6 +118,8 @@ private static final DateTimeFormatter warnLogFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"); + @Value("${sms.send.deviceExcReceiver}") + private static final String[] DEVICE_EXC_RECEIVER = {"17625323889","18019908965"}; @PostConstruct public void init() { @@ -206,24 +205,35 @@ logger.info("【警告】设备异常提醒推送>>>>>>>>>>>>>>>>>>失败"); } if (push){ - //todo 线上环境还是异常才向前端推送 - //String message = JSON.toJSONString(reqDTO); - //try { - // GasDeviceExcWebsocketServer.sendInfo(message,null); - //} catch (IOException e) { - // logger.info("【警告】设备异常提醒推送>>>>>>>>>>>>>>>>>>失败"); - //} + DeviceExceptionLog lastLog = deviceExceptionLogService.getLastLog(); + LocalDateTime now = LocalDateTime.now(); + if (lastLog == null || now.compareTo(lastLog.getTime().plusHours(1)) >= 0) { + Map<String, String> mesMap = new HashMap<>(); + mesMap.put("message","数据异常,无法进行监测"); + mesMap.put(" level","设备离线"); + //// TODO: 2024/2/22 + List<String> deviceExcReceiver = Arrays.asList(DEVICE_EXC_RECEIVER); + if (!CollectionUtils.isEmpty(deviceExcReceiver)) { + List<String> distinctPhone = deviceExcReceiver.stream().distinct().collect(Collectors.toList()); + logger.info("【气体浓度异常短信发送】-----发送内容:" + "数据异常,无法进行监测 气体浓度连续超标,系统判断为设备离线,请相关负责人及时检查处置。" + + " 发送时间: " + LocalDateTime.now()+ " 接收人手机号:" + distinctPhone); + if (!org.springframework.util.StringUtils.isEmpty(smsSendEnabledStatus) && "true".equals(smsSendEnabledStatus)) { + sendMessageUtil.sendMessageCheck(deviceExcReceiver.toArray(new String[deviceExcReceiver.size()]), mesMap); + } + } + } String execInfo = JSON.toJSONString(descs); logger.info("【警告】设备异常,异常原因: "+ execInfo); DeviceExceptionLog log = new DeviceExceptionLog(); - LocalDateTime now = LocalDateTime.now(); String content = MessageFormat.format(deviceExcLogFormat,deviceExcLogFormatter.format(now)); log.setContent(content); log.setTime(now); log.setExecDesc(execInfo); DeviceExceptionLog save = deviceExceptionLogService.save(log); - if (save == null) + if (save == null) { logger.info("【警告】设备异常日志保存>>>>>>>>>>>>>>>>>>失败"); + } + } return ForeignResult.success(); } @@ -360,7 +370,7 @@ throw new DataReceiveException(this.getClass(), ForeignResultCode.SYSTEM_ERROR_DATABASE_FAIL.getCode(),"预警异常短信接收人保存失败"); Map<String, String> mesMap = new HashMap<>(); mesMap.put("message",warnTime+" "+gasCategory.getName()); - mesMap.put("level",warnThresholdName); + mesMap.put(" level",warnThresholdName); //todo if (!CollectionUtils.isEmpty(phone)) { List<String> distinctPhone = phone.stream().distinct().collect(Collectors.toList()); -- Gitblit v1.9.2