From d8310f6bc609440fa352c0e5a9436c7c78caa287 Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Mon, 29 Nov 2021 11:09:48 +0800
Subject: [PATCH] Merge branch 'master' of http://blit.7drlb.com:8888/r/screen_job

---
 src/main/java/com/moral/task/OffLineDevicesTask.java |   62 ++++++++++++++++++++++++++++++
 1 files changed, 61 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/moral/task/OffLineDevicesTask.java b/src/main/java/com/moral/task/OffLineDevicesTask.java
index 3fc979a..31928d2 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) {
@@ -59,7 +69,7 @@
         }
         if (list.size() != 0) {
             try {
-                AlarmUtils_2.sendMail("lili@nieh.chinacdc.cn", "���������������������", list.toString() + ",���" + list.size() + "������������������");
+                AlarmUtils_2.sendMail("vliliv@163.com", "���������������������", list.toString() + ",���" + list.size() + "������������������");
                 return new ReturnT(200, "���������������������������������" + list.size());
             } catch (Exception e) {
                 XxlJobLogger.log("OffLineDevices:" + e.getMessage());
@@ -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 = end.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