From 1c8d100cbf2916b797de1a0fde5c29d132ead593 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Fri, 20 Nov 2020 18:00:15 +0800
Subject: [PATCH] 增加自动修补数据定时任务

---
 src/main/java/com/moral/task/RabbitMQInsertTask.java |   90 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 79 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/moral/task/RabbitMQInsertTask.java b/src/main/java/com/moral/task/RabbitMQInsertTask.java
index 5e2cac5..6ee61ff 100644
--- a/src/main/java/com/moral/task/RabbitMQInsertTask.java
+++ b/src/main/java/com/moral/task/RabbitMQInsertTask.java
@@ -3,15 +3,12 @@
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.time.temporal.ChronoUnit;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 
+import com.moral.util.AlarmUtils_2;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.amqp.core.TopicExchange;
@@ -32,7 +29,7 @@
 import com.xxl.job.core.handler.annotation.XxlJob;
 import com.xxl.job.core.log.XxlJobLogger;
 
-//@Component
+@Component
 public class RabbitMQInsertTask {
     private static transient Logger logger = LoggerFactory.getLogger(RabbitMQInsertTask.class);
 
@@ -61,11 +58,24 @@
     @Qualifier("organization_data")
     private TopicExchange organization_data;
 
-    //@XxlJob("RabbitMQRealtimeMinutely")
+    @XxlJob("RabbitMQRealtimeMinutely")
     public ReturnT insertRabbitMQRealtimeMinutely(String params) {
         LocalDateTime time = LocalDateTime.now();
         int year = time.getYear();
         int month = time.getMonthValue();
+        int day = time.getDayOfMonth();
+        int hour = time.getHour();
+        int minute = time.getMinute();
+        if (day == 1) {
+            if (hour == 0 && minute == 0) {
+                if (month == 1) {
+                    month = 12;
+                    year = year - 1;
+                } else {
+                    month = month - 1;
+                }
+            }
+        }
         String monthStr = month < 10 ? ("0" + month) : month + "";
         String yearAndMonth = year + monthStr;
         Map organizationIdMap = JSON.parseObject(params);
@@ -122,11 +132,24 @@
         return returnT;
     }
 
-    //@XxlJob("RabbitMQRealtimeEveryFiveMinutes")
+    @XxlJob("RabbitMQRealtimeEveryFiveMinutes")
     public ReturnT insertRabbitMQRealtimeEveryFiveMinutes(String params) {
         LocalDateTime time = LocalDateTime.now();
         int year = time.getYear();
         int month = time.getMonthValue();
+        int day = time.getDayOfMonth();
+        int hour = time.getHour();
+        int minute = time.getMinute();
+        if (day == 1) {
+            if (hour == 0 && minute == 0) {
+                if (month == 1) {
+                    month = 12;
+                    year = year - 1;
+                } else {
+                    month = month - 1;
+                }
+            }
+        }
         String monthStr = month < 10 ? ("0" + month) : month + "";
         String yearAndMonth = year + monthStr;
         Map organizationIdMap = JSON.parseObject(params);
@@ -183,11 +206,24 @@
         return returnT;
     }
 
-    //@XxlJob("RabbitMQMinutely")
+    @XxlJob("RabbitMQMinutely")
     public ReturnT insertRabbitMQMinutely(String params) {
         LocalDateTime time = LocalDateTime.now();
         int year = time.getYear();
         int month = time.getMonthValue();
+        int day = time.getDayOfMonth();
+        int hour = time.getHour();
+        int minute = time.getMinute();
+        if (day == 1) {
+            if (hour == 0 && minute == 0) {
+                if (month == 1) {
+                    month = 12;
+                    year = year - 1;
+                } else {
+                    month = month - 1;
+                }
+            }
+        }
         String monthStr = month < 10 ? ("0" + month) : month + "";
         String yearAndMonth = year + monthStr;
         Map organizationIdMap = JSON.parseObject(params);
@@ -245,7 +281,7 @@
         return returnT;
     }
 
-    //@XxlJob("RabbitMQHourly")
+    @XxlJob("RabbitMQHourly")
     public ReturnT insertRabbitMQHourly(String params) {
         LocalDateTime time = LocalDateTime.now();
         Map organizationIdMap = JSON.parseObject(params);
@@ -269,6 +305,35 @@
             List<Map<String, Object>> hourlyDataList = historyHourlyService.getHourlySensorData(devices);
             XxlJobLogger.log("RabbitMQHourlyData:" + hourlyDataList.size());
             if (!CollectionUtils.isEmpty(hourlyDataList)) {
+                if(!(hourlyDataList.size()==macList.size())){
+                    List<String> macList_copy = macList;
+                    if (hourlyDataList.size()<macList.size()){
+                        for (Map hourData: hourlyDataList) {
+                            for (int k=0;k<macList_copy.size();k++){
+                                if (hourData.get("mac").equals(macList_copy.get(k))){
+                                    macList_copy.remove(k);
+                                }
+                            }
+                        }
+                    }
+                    List<String> ignoreMacList = new ArrayList();
+                    ignoreMacList.add("p5dnd7a0392130");
+                    for (String ignoreMac:ignoreMacList) {
+                        for (int d=0;d<macList_copy.size();d++){
+                            if (macList_copy.get(d).equals(ignoreMac)){
+                                macList_copy.remove(d);
+                            }
+                        }
+                    }
+                    if (macList_copy.size()!=0){
+                        List<Map<String, Object>> deviceList = deviceService.getAllByMacList(macList_copy);
+                        List<String> de = new ArrayList<>();
+                        for (Map deviceMap:deviceList) {
+                            de.add(deviceMap.get("name").toString());
+                        }
+                        AlarmUtils_2.sendMail("276999030@qq.com,1vv_zkk6ji3kln@dingtalk.com,liumiao_love@126.com","������������",de.toString()+"���������������������");
+                    }
+                }
                 for (Map<String, Object> deviceData : hourlyDataList) {
                     if (!ObjectUtils.isEmpty(deviceData)) {
                         Map<String, Object> hourlyData = new LinkedHashMap<>();
@@ -302,7 +367,7 @@
         return returnT;
     }
 
-    //@XxlJob("RabbitMQDaily")
+    @XxlJob("RabbitMQDaily")
     public ReturnT insertRabbitMQDaily(String params) {
         LocalDateTime time = LocalDateTime.now();
         Map organizationIdMap = JSON.parseObject(params);
@@ -358,4 +423,7 @@
         ReturnT returnT = new ReturnT(500, "RabbitMQ���������������������");
         return returnT;
     }
+
 }
+
+

--
Gitblit v1.8.0