From 4108fd24ac888934a23e9b9129c4392baa2ffb94 Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Tue, 23 Nov 2021 15:27:43 +0800 Subject: [PATCH] 设备掉线,小时和昨日邮件发送 --- src/main/java/com/moral/task/OffLineDevicesTask.java | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 60 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/moral/task/OffLineDevicesTask.java b/src/main/java/com/moral/task/OffLineDevicesTask.java index 4f559c3..a202f90 100644 --- a/src/main/java/com/moral/task/OffLineDevicesTask.java +++ b/src/main/java/com/moral/task/OffLineDevicesTask.java @@ -1,16 +1,23 @@ package com.moral.task; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import javax.annotation.Resource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import org.springframework.util.ObjectUtils; +import com.alibaba.fastjson.JSON; import com.moral.mapper.DeviceMapper; +import com.moral.mapper.HistoryHourlyMapper; import com.moral.util.AlarmUtils_2; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.annotation.XxlJob; @@ -22,6 +29,9 @@ @Resource private DeviceMapper deviceMapper; + + @Resource + private HistoryHourlyMapper historyHourlyMapper; @XxlJob("OffLineDevices") public ReturnT OffLineAlarm(String params) { @@ -69,4 +79,54 @@ } return new ReturnT(500, "���������������,���������������"); } + + @XxlJob("hourOffLine") + public ReturnT hourOffLine(String params) { + //������������ + Map<String, Object> map = JSON.parseObject(params, Map.class); + for (Map.Entry<String, Object> entry : map.entrySet()) { + String orgId = entry.getKey(); + List<String> emails = (List<String>) entry.getValue(); + //������������������������������ + List<Map<String, Object>> devices = deviceMapper.getOfflineDeviceOfDiseaseCenter(orgId); + List<String> devicesInfo = devices.stream() + .map(device -> device.get("name").toString()) + .collect(Collectors.toList()); + if (!ObjectUtils.isEmpty(devicesInfo)) { + emails.forEach(email -> AlarmUtils_2.sendMail(email, "������-���������������������������", devicesInfo + "���������������")); + } + } + return new ReturnT(200, "���������������������������������"); + } + + @XxlJob("dayOffLine") + public ReturnT dayOffLine(String params) { + LocalDateTime now = LocalDateTime.now(); + LocalDateTime end = now.truncatedTo(ChronoUnit.DAYS); + LocalDateTime start = now.minusDays(1); + Map<String, Object> hashMap = new HashMap<>(); + hashMap.put("start", start); + hashMap.put("end", end); + //������������ + Map<String, Object> map = JSON.parseObject(params, Map.class); + for (Map.Entry<String, Object> entry : map.entrySet()) { + String orgId = entry.getKey(); + List<String> emails = (List<String>) entry.getValue(); + //������������������������������ + List<Map<String, Object>> devices = deviceMapper.getAllDeviceByOrg(orgId); + List<String> devicesInfo = new ArrayList<>(); + devices.forEach(device -> { + hashMap.put("mac", device.get("mac").toString()); + int count = historyHourlyMapper.selectCountByMac(hashMap); + if (count == 0) { + devicesInfo.add(device.get("name").toString()); + } + }); + + if (!ObjectUtils.isEmpty(devicesInfo)) { + emails.forEach(email -> AlarmUtils_2.sendMail(email, "������-���������������������������", devicesInfo + "���������������")); + } + } + return new ReturnT(200, "���������������������������������"); + } } -- Gitblit v1.8.0