From f485e99f717c8f4388dfb51010e41c0be62b62d8 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期五, 15 三月 2024 14:17:16 +0800
Subject: [PATCH] 雷达连接状态:改为0-客户端不通 1-在线 2-周扫未开

---
 src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java |   44 +++++++++++++++++++++++++++++++++-----------
 1 files changed, 33 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java b/src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java
index 131233a..cbb3b07 100644
--- a/src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java
+++ b/src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java
@@ -41,6 +41,7 @@
     public static ConcurrentHashMap<String, ArdEquipRadar> trueConnectMap = new ConcurrentHashMap();//鎴愬姛杩炴帴鐨刬p绔彛瀵瑰簲鐨勯浄杈�
     public static ConcurrentHashMap<String, MessageHandler> SucMessageHandlerMap = new ConcurrentHashMap();//鎴愬姛杩炴帴鐨刬p绔彛瀵瑰簲鐨勬姤鏂囪В鏋愬櫒
     public static ConcurrentHashMap<String, Channel> SucChannelMap = new ConcurrentHashMap();//鎴愬姛杩炴帴鐨刬p绔彛瀵瑰簲鐨刵etty閫氶亾
+    public static ConcurrentHashMap<String, Integer> aroundScanfMap = new ConcurrentHashMap();//鏄惁鍚姩鍛ㄨ
 
     /**
      * Netty鍒濆鍖栭厤缃�
@@ -74,7 +75,7 @@
                                 }
                             });
                         }
-                        Thread.sleep(10000);
+                        Thread.sleep(nettyTcpConfig.getReConnectInterval());
                     } catch (Exception e) {
                         log.error("Netty鍒濆鍖栭厤缃洃鍚湴鍧�鍑虹幇寮傚父");
                         e.printStackTrace();
@@ -135,23 +136,44 @@
     /**
      * 鐩戞祴闆疯揪杩炴帴鐘舵��
      */
-    @Scheduled(cron = "0/5 * * * * ?")
+    @Scheduled(cron = "0/3 * * * * ?")
     public void monitorConnectStatus() {
         log.debug("瀹氭椂鐩戞祴闆疯揪杩炴帴鐘舵��");
         List<ArdEquipRadar> ardEquipRadars = ardEquipRadarService.selectArdEquipRadarList(new ArdEquipRadar());
         ardEquipRadars.stream().forEach(ardEquipRadar -> {
-            if (ardEquipRadar.getState() == null || (ardEquipRadar.getState() != null && !ardEquipRadar.getState().equals("0"))) {
-                ardEquipRadar.setState("0");
-                ardEquipRadarService.updateArdEquipRadar(ardEquipRadar);
-            }
-            else
-            {
-                if (trueConnectMap.containsKey(ardEquipRadar.getIp() + ":" + ardEquipRadar.getPort())) {
-                    if (!ardEquipRadar.getState().equals("1")) {
-                        ardEquipRadar.setState("1");
+            //鍒ゆ柇涓庨浄杈惧鎴风杩炴帴鐘舵��
+            boolean online = trueConnectMap.containsKey(ardEquipRadar.getIp() + ":" + ardEquipRadar.getPort());
+            if (online) {
+                //杩炴帴闆疯揪瀹㈡埛绔垚鍔� 鍒ゆ柇鍛ㄦ壂鐘舵��
+                if (aroundScanfMap.containsKey(ardEquipRadar.getIp() + ":" + ardEquipRadar.getPort())) {
+                    Integer state = aroundScanfMap.get(ardEquipRadar.getIp() + ":" + ardEquipRadar.getPort());
+                    if (state == 1) {//1-鍛ㄦ壂鎵撳紑-杩炴帴鎴愬姛
+                        if (ardEquipRadar.getState() == null || !ardEquipRadar.getState().equals("1")) {
+                            ardEquipRadar.setState("1");
+                            ardEquipRadarService.updateArdEquipRadar(ardEquipRadar);
+                        }
+                    } else {
+                        if (ardEquipRadar.getState() == null || !ardEquipRadar.getState().equals("2")) {
+                            //2-鍛ㄦ壂鏈紑
+                            ardEquipRadar.setState("2");
+                            ardEquipRadarService.updateArdEquipRadar(ardEquipRadar);
+                        }
+
+                    }
+                } else {
+                    if (ardEquipRadar.getState() == null || !ardEquipRadar.getState().equals("2")) {
+                        //2-鍛ㄦ壂鏈紑
+                        ardEquipRadar.setState("2");
                         ardEquipRadarService.updateArdEquipRadar(ardEquipRadar);
                     }
                 }
+            } else {
+                //杩炴帴闆疯揪瀹㈡埛绔け璐�
+                if (ardEquipRadar.getState() == null || !ardEquipRadar.getState().equals("0")) {
+                    //0-瀹㈡埛绔笉閫�
+                    ardEquipRadar.setState("0");
+                    ardEquipRadarService.updateArdEquipRadar(ardEquipRadar);
+                }
             }
         });
     }

--
Gitblit v1.9.3