From 72026a58219a4ee7cc41a7b37204da372d16d2aa Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Fri, 27 Nov 2020 16:45:10 +0800
Subject: [PATCH] 设备掉线报警邮件发送

---
 src/main/java/com/moral/task/OffLineDevicesTask.java |   48 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/resources/mapper/DeviceMapper.xml           |    8 ++++++++
 src/main/java/com/moral/mapper/DeviceMapper.java     |    2 ++
 3 files changed, 58 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/moral/mapper/DeviceMapper.java b/src/main/java/com/moral/mapper/DeviceMapper.java
index 2ade144..006dafc 100644
--- a/src/main/java/com/moral/mapper/DeviceMapper.java
+++ b/src/main/java/com/moral/mapper/DeviceMapper.java
@@ -40,4 +40,6 @@
 
     List<Map<String, Object>> getAllByMacList(List<String> list);
 
+    List<Map<String, Object>> getOfflineDevice();
+
 }
\ No newline at end of file
diff --git a/src/main/java/com/moral/task/OffLineDevicesTask.java b/src/main/java/com/moral/task/OffLineDevicesTask.java
new file mode 100644
index 0000000..5a34490
--- /dev/null
+++ b/src/main/java/com/moral/task/OffLineDevicesTask.java
@@ -0,0 +1,48 @@
+package com.moral.task;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import com.moral.mapper.DeviceMapper;
+import com.moral.util.AlarmUtils_2;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import com.xxl.job.core.log.XxlJobLogger;
+
+@Component
+public class OffLineDevicesTask {
+    private static transient Logger logger = LoggerFactory.getLogger(OffLineAlarmTask.class);
+
+    @Resource
+    private DeviceMapper deviceMapper;
+
+    @XxlJob("OffLineDevices")
+    public ReturnT OffLineAlarm(String params) {
+        List<Map<String, Object>> devices = deviceMapper.getOfflineDevice();
+        List<String> list = new ArrayList<>();
+        for (Map<String, Object> device : devices) {
+            String name = device.get("name").toString();
+            String mac = device.get("mac").toString();
+            String s = name + "(" + mac + ")";
+            list.add(s);
+        }
+        if (list.size() != 0) {
+            try {
+                AlarmUtils_2.sendMail("276999030@qq.com", "���������������������", list.toString() + "���������������");
+                return new ReturnT(200, "���������������������������������");
+            } catch (Exception e) {
+                XxlJobLogger.log("OffLineDevices:" + e.getMessage());
+                logger.error(e.getMessage());
+                e.printStackTrace();
+            }
+        }
+        return new ReturnT(500, "���������������,���������������");
+    }
+}
diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml
index 5b8fe34..75ff790 100644
--- a/src/main/resources/mapper/DeviceMapper.xml
+++ b/src/main/resources/mapper/DeviceMapper.xml
@@ -301,4 +301,12 @@
         where mac in
         <foreach item="item" collection="list" index="index" open="(" separator="," close=")">#{item}</foreach>
     </select>
+
+    <select id="getOfflineDevice" resultType="java.util.Map">
+        SELECT name,mac
+        from device
+        WHERE state=4 and is_delete=0 and monitor_point_id in
+        (SELECT id FROM monitor_point WHERE city_code!=130900 or (city_code=130900 and  organization_id  in (60, 65, 159, 165, 166) and id!=56 and id!=83 and id!=84))
+        and mac not in (SELECT mac FROM special_device_config);
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0