huangzhen
2024-02-22 5eeac9f272d1228a328cdae46961834f168f5086
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,25 +205,36 @@
            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();
    }