From 694d691291f6ee89061fdbb9fd451ecb5519b69b Mon Sep 17 00:00:00 2001
From: Van333 <van666666@foxmail.com>
Date: 星期一, 05 十二月 2022 15:35:26 +0800
Subject: [PATCH] 在线状态由map改成redis,定时保持emqx链接

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java |   45 +++++++++++++++++++++++++++------------------
 1 files changed, 27 insertions(+), 18 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java
index 714e1f3..825e07d 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java
@@ -51,7 +51,6 @@
 import java.util.*;
 import java.util.stream.Collectors;
 
-import static com.sandu.ximon.admin.localMQTT.callback.StatusMqttCallBack.localMqttConnectStatusMap;
 
 /**
  * @author chenjiantian
@@ -88,6 +87,14 @@
                 light.setLight2Percent(heartBeatDataPackage.getLight2Percent());
                 save(light);
                 log.info("鏂板璺伅");
+                Pole pole = new Pole();
+                pole.setDeviceCode(deviceName);
+                pole.setPoleName(deviceName);
+                pole.setDeviceType(0);
+                pole.setPoleCode(SpringContextHolder.getBean(PoleService.class).generatePoleCode());
+
+                boolean result = SpringContextHolder.getBean(PoleService.class).saveOrUpdate(pole);
+                log.info("鏂板鐏潌锛�"+result);
             }
             redisService.set(LightKey.REPORT_MAC.key(deviceName), 1, LightKey.REPORT_MAC.expireSeconds());
         } else {
@@ -1032,22 +1039,22 @@
     public void timeSynchronizationInitiative(String deviceCode, String lightAddress) {
         //鍗曠伅淇℃伅
         Light light = getLight(deviceCode);
-//        if (light == null) {
-//            log.error("鍗曠伅涓诲姩鍚屾鏃堕棿璇锋眰寮傚父锛屽崟鐏俊鎭笉瀛樺湪锛�");
-//            return;
-//        }
+        if (light == null) {
+            log.error("鍗曠伅涓诲姩鍚屾鏃堕棿璇锋眰寮傚父锛屽崟鐏俊鎭笉瀛樺湪锛�");
+            return;
+        }
         //鍗曠伅浠诲姟淇℃伅
-        LightTaskPoleRelation lightTaskPoleRelation = SpringContextHolder.getBean(LightTaskPoleRelationService.class)
-                .getOne(Wrappers.lambdaQuery(LightTaskPoleRelation.class)
-                        .eq(LightTaskPoleRelation::getDeviceCode, deviceCode).eq(LightTaskPoleRelation::getLightAddress, lightAddress));
+//        LightTaskPoleRelation lightTaskPoleRelation = SpringContextHolder.getBean(LightTaskPoleRelationService.class)
+//                .getOne(Wrappers.lambdaQuery(LightTaskPoleRelation.class)
+//                        .eq(LightTaskPoleRelation::getDeviceCode, deviceCode).eq(LightTaskPoleRelation::getLightAddress, lightAddress));
 
         LightTask lightTask = null;
-        //鐏ご娌℃湁浠诲姟
-        if (lightTaskPoleRelation != null) {
-            if (lightTaskPoleRelation.getDeviceScheduled() != null) {
-                lightTask = JSONObject.parseObject(lightTaskPoleRelation.getDeviceScheduled(), LightTask.class);
-            }
-        }
+//        //鐏ご娌℃湁浠诲姟
+//        if (lightTaskPoleRelation != null) {
+//            if (lightTaskPoleRelation.getDeviceScheduled() != null) {
+//                lightTask = JSONObject.parseObject(lightTaskPoleRelation.getDeviceScheduled(), LightTask.class);
+//            }
+//        }
 
         timeSynchronization(light, lightAddress, lightTask);
 
@@ -1060,16 +1067,18 @@
      * @param lightTask 鍗曠伅浠诲姟瀹炰綋锛堜负绌烘爣璇嗗崟鐏病鏈夊畾鏃朵换鍔★級
      */
     public void timeSynchronization(Light light, String lightAddress, LightTask lightTask) {
+        lightTask = null;
+        LightTask finalLightTask = lightTask;
         new Thread(new Runnable() {
             @Override
             public void run() {
                 //鑾峰彇褰撳墠鏃堕棿鏃躲�佸垎
                 Calendar cal = Calendar.getInstance();
 
-                if (lightTask != null) {
-                    String closeOrder = lightTask.getCloseOrder();
-                    String openOrder = lightTask.getOpenOrder();
-                    String controlOrder = lightTask.getControlOrder() == null ? null : lightTask.getControlOrder();
+                if (finalLightTask != null) {
+                    String closeOrder = finalLightTask.getCloseOrder();
+                    String openOrder = finalLightTask.getOpenOrder();
+                    String controlOrder = finalLightTask.getControlOrder() == null ? null : finalLightTask.getControlOrder();
 
                     List<String> timeList = new ArrayList<>();
                     timeList.add(openOrder.substring(0, 4));

--
Gitblit v1.9.3