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/newnova/utils/NovaAPIUtil.java                    |   56 ++++----
 ximon-admin/src/main/resources/application-xm_local.yml                                           |   19 ++-
 ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/BaseInvokeSyncService.java       |   11 +
 ximon-admin/src/main/resources/application.yml                                                    |    2 
 ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/client/MqttClientCreate.java            |    7 
 ximon-admin/src/main/resources/application-xm_lj.yml                                              |   25 ++-
 ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/callback/StatusMqttCallBack.java        |   16 +-
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java                         |   45 ++++---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java                          |   16 --
 ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/client/KeepEMQXClient.java              |   60 ++++++++++
 sandu-common/src/main/resources/logback-spring.xml                                                |    4 
 ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/controller/localMQTTTestController.java |   66 +++++++---
 12 files changed, 210 insertions(+), 117 deletions(-)

diff --git a/sandu-common/src/main/resources/logback-spring.xml b/sandu-common/src/main/resources/logback-spring.xml
index ddde766..664d1f9 100644
--- a/sandu-common/src/main/resources/logback-spring.xml
+++ b/sandu-common/src/main/resources/logback-spring.xml
@@ -74,13 +74,13 @@
         </root>
     </springProfile>
 
-    <springProfile name="xm">
+    <springProfile name="xm_local">
         <root level="info" >
             <appender-ref ref="STDOUT"/>
         </root>
     </springProfile>
     <!-- 鐢熶骇鐜. 鏃ュ織绾у埆涓篧ARN涓斿啓鏃ュ織鏂囦欢-->
-    <springProfile name="prod,docker">
+    <springProfile name="prod,docker,xm_lj">
         <root level="warn">
             <appender-ref ref="STDOUT"/>
             <appender-ref ref="ASYNC"/>
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/callback/StatusMqttCallBack.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/callback/StatusMqttCallBack.java
index f3cf820..3653e53 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/callback/StatusMqttCallBack.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/callback/StatusMqttCallBack.java
@@ -10,6 +10,7 @@
 import com.sandu.ximon.admin.manager.iot.amqp.processor.c3ChargingProcessor;
 import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
 import com.sandu.ximon.admin.manager.iot.rrpc.enums.A5OrderEnum;
+import com.sandu.ximon.admin.utils.RedisUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.eclipse.paho.client.mqttv3.MqttClient;
 import org.springframework.stereotype.Component;
@@ -34,7 +35,8 @@
 
     private static final String localMqttConnectStatusDisconnected = "disconnected";
 
-    public static final Map<String, Integer> localMqttConnectStatusMap = new ConcurrentHashMap<>();
+    public static final String localMqttConnectStatus = "localMqttConnectStatus.";
+
 
 
     protected final static ExecutorService EXECUTOR_SERVICE = new ThreadPoolExecutor(
@@ -56,7 +58,7 @@
     protected void handleReceiveMessage(String topic, String message) {
         EXECUTOR_SERVICE.submit(() -> processMessage(topic,message));
 
-        log.info("鎺ユ敹鍒版秷鎭�---StatusMqttCallBack:topic={},message={}", topic, message);
+//        log.info("鎺ユ敹鍒版秷鎭�---StatusMqttCallBack:topic={},message={}", topic, message);
     }
 
 
@@ -69,17 +71,15 @@
             String mac = topic.split("/")[4];
             String status = topic.split("/")[5];
 
-            System.out.println("----------------------");
-            System.out.println(mac);
-            System.out.println(status);
             if (status.equals(localMqttConnectStatusConnected)){
                 // 璁惧鏁版嵁涓婃姤
-                localMqttConnectStatusMap.put(mac,1);
+                boolean set = RedisUtils.getBean().set(localMqttConnectStatus + mac, 1);
+                log.error("璁惧涓婄嚎------锛宮ac:{},涓婄嚎,{}",mac,set);
             }
             else if (status.equals(localMqttConnectStatusDisconnected)){
-                localMqttConnectStatusMap.put(mac,0);
+                boolean set = RedisUtils.getBean().set(localMqttConnectStatus+mac,0);
+                log.error("璁惧涓嬬嚎------锛宮ac:{},涓嬬嚎.{}",mac,set);
             }
-
 
         } catch (Exception e) {
             e.printStackTrace();
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/client/KeepEMQXClient.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/client/KeepEMQXClient.java
new file mode 100644
index 0000000..1f6c002
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/client/KeepEMQXClient.java
@@ -0,0 +1,60 @@
+package com.sandu.ximon.admin.localMQTT.client;
+
+import com.sandu.ximon.admin.localMQTT.config.MqttConfig;
+import com.sandu.ximon.admin.localMQTT.model.MqttClientVO;
+import lombok.extern.slf4j.Slf4j;
+import org.eclipse.paho.client.mqttv3.MqttClient;
+import org.eclipse.paho.client.mqttv3.MqttException;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @author van
+ * @version 1.0
+ * msg锛�
+ * @date 2022/11/29 13:46
+ */
+@Slf4j
+@EnableScheduling
+@Component
+public class KeepEMQXClient {
+
+    @Autowired
+    private MqttConfig mqttConfig;
+
+    @Resource
+    private MqttClientManager mqttClientManager;
+
+    @Scheduled(cron = "*/30 * * * * * ")
+    public void keepClient()  {
+
+        List<MqttClientVO> mqttClientList = mqttConfig.getClientList();
+        for (MqttClientVO mqttClientVO : mqttClientList) {
+            //鍒涘缓瀹㈡埛绔紝瀹㈡埛绔疘D锛歞emo锛屽洖璋冪被璺熷鎴风ID涓�鑷�
+            MqttClient mqttClient = MqttClientManager.getInstance().getMqttClientById(mqttClientVO.getClientId());
+
+            if (null == mqttClient) {
+                log.error("Not exist mqttClient where it's clientId is {}", mqttClientVO.getClientId());
+                mqttClientManager.createMqttClient(mqttClientVO.getClientId(), mqttClientVO.getSubscribeTopic(), mqttClientVO.getUserName(), mqttClientVO.getPassword());
+                System.out.println(mqttClient.getClientId() + "閲嶆柊鍒涘缓瀹屾垚");
+
+            }
+            else {
+                try {
+                    mqttClient.publish("v1/devices/keepAlive", new MqttMessage() );
+                } catch (MqttException e) {
+                    log.error("mqttClient.getClientId()..鍙戦�佹秷鎭け璐�...........");
+                    mqttClientManager.createMqttClient(mqttClientVO.getClientId(), mqttClientVO.getSubscribeTopic(), mqttClientVO.getUserName(), mqttClientVO.getPassword());
+                    log.error("鍒涘缓."+mqttClient.getClientId()+".鎴愬姛...........");
+                }
+            }
+        }}
+
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/client/MqttClientCreate.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/client/MqttClientCreate.java
index 93cd4fd..68ed918 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/client/MqttClientCreate.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/client/MqttClientCreate.java
@@ -34,18 +34,19 @@
      */
     public static final Map<String, MqttClient> MQTT_CLIENT_MAP = new ConcurrentHashMap<>();
 
+
     /**
      * 鍒涘缓MQTT瀹㈡埛绔�
      */
     @PostConstruct
     public void createMqttClient() {
-        System.out.println("createMqttClient");
         List<MqttClientVO> mqttClientList = mqttConfig.getClientList();
-
         for (MqttClientVO mqttClient : mqttClientList) {
             //鍒涘缓瀹㈡埛绔紝瀹㈡埛绔疘D锛歞emo锛屽洖璋冪被璺熷鎴风ID涓�鑷�
-            System.out.println(mqttClient.getClientId());
             mqttClientManager.createMqttClient(mqttClient.getClientId(), mqttClient.getSubscribeTopic(), mqttClient.getUserName(), mqttClient.getPassword());
+            System.out.println(mqttClient.getClientId()+"鍒涘缓瀹屾垚");
+
         }
     }
+
 }
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/controller/localMQTTTestController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/controller/localMQTTTestController.java
index b417ffa..cc8661a 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/controller/localMQTTTestController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/localMQTT/controller/localMQTTTestController.java
@@ -1,12 +1,13 @@
 package com.sandu.ximon.admin.localMQTT.controller;
 
 import com.sandu.ximon.admin.localMQTT.util.MqttClientUtil;
+import com.sandu.ximon.admin.utils.RedisUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import static com.sandu.ximon.admin.localMQTT.callback.StatusMqttCallBack.localMqttConnectStatusMap;
+import static com.sandu.ximon.admin.localMQTT.callback.StatusMqttCallBack.localMqttConnectStatus;
 import static java.lang.Thread.sleep;
 
 /**
@@ -24,7 +25,7 @@
     @RequestMapping("/test")
     public String localMQTT() throws InterruptedException {
 
-        for (int i = 0; i < 100; i++) {
+        for (int i = 0; i < 1000; i++) {
 
             /*
             * 寮�鐏�100
@@ -40,29 +41,48 @@
             * 5鍒嗛挓
             * FEA501000CFE210004FFFF012C4A7824285825CB53
             * */
-//            寮�10
-            String result1 = MqttClientUtil.sendMqttMsg("363832544e5008ff3a32ffff",
-                            "FEA501000BFE010003FFFF0AA542FD69D4E6194E");
-            log.info("寮�鐏繑鍥炵粨鏋�:"+result1);
-            sleep(5000);
-//            鍏�
-            String result2 = MqttClientUtil.sendMqttMsg("363832544e5008ff3a32ffff",
-                    "FEA501000BFE0100030001007130ECA9150640E6");
-            log.info("鍏崇伅杩斿洖缁撴灉:"+result2);
-            sleep(5000);
+////            寮�10
+//            String result1 = MqttClientUtil.sendMqttMsg("363832544e5008ff3a32ffff",
+//                            "FEA501000BFE010003FFFF0AA542FD69D4E6194E");
+//            log.info("寮�鐏繑鍥炵粨鏋�:"+result1);
+//            sleep(5000);
+////            鍏�
+//            String result2 = MqttClientUtil.sendMqttMsg("363832544e5008ff3a32ffff",
+//                    "FEA501000BFE0100030001007130ECA9150640E6");
+//            log.info("鍏崇伅杩斿洖缁撴灉:"+result2);
+//            sleep(5000);
 ////            蹇冭烦鏌ヨ
-            String result3 = MqttClientUtil.sendMqttMsg("363832544e5008ff3a32ffff",
-                    "FEA501000AFE110002FFFF26008FBE3DAC7C0D");
-            log.info("蹇冭烦鏌ヨ杩斿洖缁撴灉:"+result3);
-            sleep(3000);
-            String result4 = MqttClientUtil.sendMqttMsg("363832544e5008ff3a32ffff",
-                    "FEA501001AFE230012FE23000A00017F1019647F111E005428F600EC64EC194EA28A7C");
-            log.info("瀹氭椂浠诲姟杩斿洖缁撴灉:"+result4);
-            sleep(3000);
+//            String result3 = MqttClientUtil.sendMqttMsg("363832544e5008ff4734ffff",
+//                    "FEA501000AFE110002FFFF26008FBE3DAC7C0D");
+//            log.info("蹇冭烦鏌ヨ杩斿洖缁撴灉:"+result3);
+//            sleep(1000);
+//            String result = MqttClientUtil.sendMqttMsg("363832544e5008ff4734ffff",
+//                    "FEA501000CFE210004FFFF001E9BB444E9C75BDB49");
+//            log.info("蹇冭烦璁剧疆杩斿洖缁撴灉:"+result);
+//            sleep(1000);
+////            璁剧疆蹇冭烦30绉�
+//            String result4 = MqttClientUtil.sendMqttMsg("363832544e5008ff4734ffff",
+//                    "FEA501000AFE110002FFFF26008FBE3DAC7C0D");
+//            log.info("蹇冭烦鏌ヨ杩斿洖缁撴灉:"+result4);
+//            sleep(1000);
+//            String result5 = MqttClientUtil.sendMqttMsg("363832544e5008ff4734ffff",
+//                    "FEA501000CFE210004FFFF001E9BB444E9C75BDB49");
+//            log.info("蹇冭烦鏌ヨ杩斿洖缁撴灉:"+result5);
+//            sleep(1000);
+//            String result4 = MqttClientUtil.sendMqttMsg("363832544e5008ff3a32ffff",
+//                    "FEA501001AFE230012FE23000A00017F1019647F111E005428F600EC64EC194EA28A7C");
+//            log.info("瀹氭椂浠诲姟杩斿洖缁撴灉:"+result4);
+//            sleep(3000);
 
-            System.out.println("閾炬帴鐘舵�侊細---"+i+"---:");
-            System.out.println(localMqttConnectStatusMap.get("363832544e5008ff3a32ffff"));
-            sleep(3000);
+            boolean set = RedisUtils.getBean().set(localMqttConnectStatus+"363832544e5008ff4734ffff",0);
+            System.out.println(set);
+            System.out.println(RedisUtils.getBean().get(localMqttConnectStatus+"363832544e5008ff4734ffff"));
+            System.out.println("1".equals(RedisUtils.getBean().get(localMqttConnectStatus+"363832544e5008ff4734ffff")));
+            System.out.println("------------");
+
+//            System.out.println("閾炬帴鐘舵�侊細---"+i+"---:");
+//            System.out.println(RedisUtils.getBean().get(localMqttConnectStatus+"363832544e5008ff4734ffff"));
+            sleep(1000);
 
         }
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/BaseInvokeSyncService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/BaseInvokeSyncService.java
index 5104a94..6d23785 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/BaseInvokeSyncService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/BaseInvokeSyncService.java
@@ -18,6 +18,7 @@
 import com.sandu.ximon.admin.manager.iot.rrpc.topic.IBaseTopic;
 import com.sandu.ximon.admin.manager.iot.rrpc.topic.ICustomizeTopic;
 import com.sandu.ximon.admin.manager.iot.rrpc.util.FrameUtils;
+import com.sandu.ximon.admin.utils.RedisUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 
@@ -26,7 +27,8 @@
 import java.util.List;
 import java.util.Map;
 
-import static com.sandu.ximon.admin.localMQTT.callback.StatusMqttCallBack.localMqttConnectStatusMap;
+import static com.sandu.ximon.admin.localMQTT.callback.StatusMqttCallBack.localMqttConnectStatus;
+
 
 /**
  * @author chenjiantian
@@ -195,11 +197,10 @@
             BatchGetDeviceStateResponse.DeviceStatus deviceStatus = new BatchGetDeviceStateResponse.DeviceStatus();
                     deviceStatus.setDeviceName(l);
 
-            if (localMqttConnectStatusMap.get(l)!=null &&
-                    localMqttConnectStatusMap.get(l)== 0){
-                deviceStatus.setStatus("OFFLINE");
-            }else {
+            if ("1".equals(RedisUtils.getBean().get(localMqttConnectStatus+l))){
                 deviceStatus.setStatus("ONLINE");
+            }else {
+                deviceStatus.setStatus("OFFLINE");
             }
             statusList.add(deviceStatus);
         });
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/NovaAPIUtil.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/NovaAPIUtil.java
index 356ccc3..0c9ff5a 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/NovaAPIUtil.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/NovaAPIUtil.java
@@ -53,7 +53,28 @@
         System.out.println("nvInit(sdk 鍒濆鍖�):");
         System.out.println(instance.nvInit(rootDir, companyInfo));
 
+        StatusVO searchVO = new StatusVO();
+        System.out.println("ViplexCore Demo nvSearchTerminalAsync(鎼滅储) begin... ");
 
+        CountDownLatch countDownLatch1 = new CountDownLatch(1);
+        instance.nvSearchTerminalAsync(new ViplexCore.CallBack() {
+
+            @Override
+            public void dataCallBack(int code, String data) {
+                searchVO.setStatusCode(code);
+                searchVO.setStatusData(data);
+                loginInfo = data;
+                System.out.println("\nViplexCore 鎼滅储 code:" + code);
+                System.out.println("\nViplexCore 鎼滅储 data:" + data);
+                countDownLatch1.countDown();
+            }
+        });
+
+        try {
+            countDownLatch1.await(10000, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
 //        login("MZVA51930N2113017308");
     }
 
@@ -78,28 +99,6 @@
      * 5锛氬叕缃慡DK鐧诲綍
      */
     public StatusVO login(String sn, Integer loginType) {
-
-        StatusVO searchVO = new StatusVO();
-        System.out.println("ViplexCore Demo nvSearchTerminalAsync(鎼滅储) begin... ");
-
-        CountDownLatch countDownLatch1 = new CountDownLatch(1);
-        instance.nvSearchTerminalAsync(new ViplexCore.CallBack() {
-
-            @Override
-            public void dataCallBack(int code, String data) {
-                searchVO.setStatusCode(code);
-                searchVO.setStatusData(data);
-                loginInfo = data;
-                System.out.println("\nViplexCore 鎼滅储 code:" + code);
-                System.out.println("\nViplexCore 鎼滅储 data:" + data);
-                countDownLatch1.countDown();
-            }
-        });
-        try {
-            countDownLatch1.await(10000, TimeUnit.MILLISECONDS);
-        } catch (InterruptedException e) {
-            throw new RuntimeException(e);
-        }
 
         if (loginSn.get(sn) != null && loginSn.get(sn) && loginType == 0) {
             return new StatusVO(0);
@@ -945,15 +944,18 @@
                         newNova.setScreenShot(data);
                     }
                     countDownLatch.countDown();
+
+                    try {
+                        countDownLatch.await(5000, TimeUnit.MILLISECONDS);
+                    } catch (InterruptedException ex) {
+                        throw new RuntimeException(ex);
+                    }
+
                 }
+
             });
 
         });
-        try {
-            countDownLatch.await(30000, TimeUnit.MILLISECONDS);
-        } catch (InterruptedException e) {
-            throw new RuntimeException(e);
-        }
 
         return param.getScreenShotList();
     }
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));
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
index 0de67ea..b5a37f6 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
@@ -60,7 +60,6 @@
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
-import static com.sandu.ximon.admin.localMQTT.callback.StatusMqttCallBack.localMqttConnectStatusMap;
 
 /**
  * 鐏潌鐩稿叧
@@ -1066,20 +1065,7 @@
                 }
             }
         }
-//        List<DeviceStatus> statusList = new ArrayList<>();
-//
-//        deviceCodeList.forEach(l -> {
-//                    DeviceStatus deviceStatus = new DeviceStatus();
-//                    deviceStatus.setDeviceCode(l);
-//
-//            if (localMqttConnectStatusMap.get(l)!=null &&
-//                    localMqttConnectStatusMap.get(l)== 1){
-//                deviceStatus.setStatus(1);
-//            }else {
-//                deviceStatus.setStatus(0);
-//            }
-//            statusList.add(deviceStatus);
-//        });
+
 
         return statusList;
     }
diff --git a/ximon-admin/src/main/resources/application-xm.yml b/ximon-admin/src/main/resources/application-xm_lj.yml
similarity index 81%
copy from ximon-admin/src/main/resources/application-xm.yml
copy to ximon-admin/src/main/resources/application-xm_lj.yml
index a582ce5..787d883 100644
--- a/ximon-admin/src/main/resources/application-xm.yml
+++ b/ximon-admin/src/main/resources/application-xm_lj.yml
@@ -1,16 +1,17 @@
 spring:
+#  涓芥睙鏈湴閮ㄧ讲椤圭洰
   datasource:
     # 鏁版嵁搴撶敤鎴峰悕
     username: root
     # 鏁版嵁搴撳瘑鐮�
     password: zhxm2512209
-    url: jdbc:mysql://39.103.154.108:2512/xm_dev?useUnicode=true&autoReconnect=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://127.0.0.1:2512/xm?useUnicode=true&autoReconnect=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai
     type: com.alibaba.druid.pool.DruidDataSource
     druid:
       connection-init-sqls: set names utf8mb4
       driver-class-name: com.mysql.cj.jdbc.Driver
   redis:
-    host: 39.103.154.108
+    host: 127.0.0.1
     password: zhxm2512209
     port: 6379
     database: 0
@@ -32,7 +33,7 @@
     #************************鏈湴涓婁紶鏂囦欢閰嶇疆************************
   upload:
     #鏂囦欢鏈嶅姟鍣ㄨ矾寰�
-    upload-root-path: E:\file\novafile
+    upload-root-path: D:\project20000\file\
     storage: local
     #鏈嶅姟鍣ㄦ枃浠跺墠缂�
     real-url: http://localhost/
@@ -45,7 +46,7 @@
   isOpen: false
 
 minio:
-  endpoint: 47.106.172.9
+  endpoint: 10.10.1.100
   port: 9000
   accessKey: minioadmin
   secretKey: zhxm2512209
@@ -85,15 +86,20 @@
 #鏂拌鐡�
 new-nova:
   #渚濊禆鍦板潃
-  string-path: C:\Users\Administrator\Desktop\novaWin\bin\viplexcore.dll
-
+  string-path: D:\project20000\file\novaWin\bin\viplexcore.dll
+  #鑺傜洰鐢熸垚璺緞
+  out-put-path: D:\project20000\file\temp
 new-nova-file:
   upload:
     #鏂囦欢鏈嶅姟鍣ㄨ矾寰�
-    upload-root-path: E:\file\novafile
+    upload-root-path: D:\project20000\file\
     storage: local
     #鏈嶅姟鍣ㄦ枃浠跺墠缂�
-    real-url: http://localhost/
+    file-url: http://10.10.1.100:20017/file/
+    #璇虹摝鎴睆瀛樻斁璺緞   鏂囦欢澶瑰繀椤诲瓨鍦�  涓旀槸鏈嶅姟鍣ㄦ枃浠惰矾寰�(upload-root-path)涓嬬殑瀛愭枃浠跺す
+    screen-shot-path: D:\project20000\file\screenShot\
+
+
 
 customer:
   mqtt:
@@ -109,7 +115,7 @@
         password: zhxm2512209
         #涓嬪彂涓婚
         publishTopic: v1/devices/request/
-#鐩戝惉涓婁笅绾�
+      #鐩戝惉涓婁笅绾�
       - clientId: java_server_status
         #鐩戝惉涓婚
         subscribeTopic: $SYS/brokers/+/clients/#
@@ -119,3 +125,4 @@
         password: zhxm2512209
         #涓嬪彂涓婚
         publishTopic: v1/devices/request/
+
diff --git a/ximon-admin/src/main/resources/application-xm.yml b/ximon-admin/src/main/resources/application-xm_local.yml
similarity index 88%
rename from ximon-admin/src/main/resources/application-xm.yml
rename to ximon-admin/src/main/resources/application-xm_local.yml
index a582ce5..1c67683 100644
--- a/ximon-admin/src/main/resources/application-xm.yml
+++ b/ximon-admin/src/main/resources/application-xm_local.yml
@@ -1,4 +1,5 @@
 spring:
+#  甯屾ⅵ鏈湴寮�鍙�
   datasource:
     # 鏁版嵁搴撶敤鎴峰悕
     username: root
@@ -32,7 +33,7 @@
     #************************鏈湴涓婁紶鏂囦欢閰嶇疆************************
   upload:
     #鏂囦欢鏈嶅姟鍣ㄨ矾寰�
-    upload-root-path: E:\file\novafile
+    upload-root-path: D:\file\
     storage: local
     #鏈嶅姟鍣ㄦ枃浠跺墠缂�
     real-url: http://localhost/
@@ -85,15 +86,20 @@
 #鏂拌鐡�
 new-nova:
   #渚濊禆鍦板潃
-  string-path: C:\Users\Administrator\Desktop\novaWin\bin\viplexcore.dll
-
+  string-path: D:\file\novaWin\bin\viplexcore.dll
+  #鑺傜洰鐢熸垚璺緞
+  out-put-path: D:\file\temp
 new-nova-file:
   upload:
     #鏂囦欢鏈嶅姟鍣ㄨ矾寰�
-    upload-root-path: E:\file\novafile
+    upload-root-path: D:\file\
     storage: local
     #鏈嶅姟鍣ㄦ枃浠跺墠缂�
-    real-url: http://localhost/
+    file-url: http://192.168.0.12:20017/file/
+    #璇虹摝鎴睆瀛樻斁璺緞   鏂囦欢澶瑰繀椤诲瓨鍦�  涓旀槸鏈嶅姟鍣ㄦ枃浠惰矾寰�(upload-root-path)涓嬬殑瀛愭枃浠跺す
+    screen-shot-path: D:\file\screenShot\
+
+
 
 customer:
   mqtt:
@@ -109,7 +115,7 @@
         password: zhxm2512209
         #涓嬪彂涓婚
         publishTopic: v1/devices/request/
-#鐩戝惉涓婁笅绾�
+      #鐩戝惉涓婁笅绾�
       - clientId: java_server_status
         #鐩戝惉涓婚
         subscribeTopic: $SYS/brokers/+/clients/#
@@ -119,3 +125,4 @@
         password: zhxm2512209
         #涓嬪彂涓婚
         publishTopic: v1/devices/request/
+
diff --git a/ximon-admin/src/main/resources/application.yml b/ximon-admin/src/main/resources/application.yml
index c1e7fa6..48faa3b 100644
--- a/ximon-admin/src/main/resources/application.yml
+++ b/ximon-admin/src/main/resources/application.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: xm
+    active: xm_local
   jackson:
     date-format: yyyy-MM-dd HH:mm:ss
     time-zone: GMT+8

--
Gitblit v1.9.3