From 3e8e5d69378187932f574264336a287eb3e15d17 Mon Sep 17 00:00:00 2001
From: zy <zy@123>
Date: 星期四, 17 七月 2025 11:09:41 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/controller/OpenController.java        |   12 ++++++
 src/main/java/com/zy/core/thread/impl/NyShuttleThread.java      |    6 +++
 src/main/java/com/zy/core/enums/SlaveType.java                  |    1 
 src/main/java/com/zy/core/thread/fake/FakeZyForkLiftThread.java |   20 ++++++++-
 src/main/java/com/zy/core/thread/FakeThread.java                |   16 ++++++++
 src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java  |   18 ++++++++-
 src/main/java/com/zy/core/ServerBootstrap.java                  |    2 +
 7 files changed, 70 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index 9637f0a..1b617d9 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -80,9 +80,11 @@
     private void initFakeThread(){
         ThreadHandler thread = new FakeNyShuttleThread(redisUtil, gatewayPort, enableFake, enableFakeDeviceThread);
         new Thread(thread).start();
+        SlaveConnection.put(SlaveType.FakeThread, 1, thread);
 
         ThreadHandler thread2 = new FakeZyForkLiftThread(redisUtil);
         new Thread(thread2).start();
+        SlaveConnection.put(SlaveType.FakeThread, 2, thread2);
     }
 
 
diff --git a/src/main/java/com/zy/core/controller/OpenController.java b/src/main/java/com/zy/core/controller/OpenController.java
index d3aa0cd..a13d9ba 100644
--- a/src/main/java/com/zy/core/controller/OpenController.java
+++ b/src/main/java/com/zy/core/controller/OpenController.java
@@ -6,6 +6,7 @@
 import com.zy.core.model.param.AddFakeDeviceParam;
 import com.zy.core.model.param.DeleteDeviceParam;
 import com.zy.core.properties.DeviceConfig;
+import com.zy.core.thread.FakeThread;
 import com.zy.core.thread.ForkLiftThread;
 import com.zy.core.thread.ShuttleThread;
 import com.zy.core.utils.DeviceMsgUtils;
@@ -40,6 +41,17 @@
         return R.ok().add(map);
     }
 
+    @GetMapping("/getFakeThreadList")
+    public R getFakeThreadList() {
+        FakeThread fakeThread1 = (FakeThread) SlaveConnection.get(SlaveType.FakeThread, 1);
+        FakeThread fakeThread2 = (FakeThread) SlaveConnection.get(SlaveType.FakeThread, 2);
+
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("fakeNyShuttleStatusMap", fakeThread1.getFakeStatusMap());
+        map.put("fakeZyForkLiftStatusMap", fakeThread2.getFakeStatusMap());
+        return R.ok().add(map);
+    }
+
     @GetMapping("/getDeviceList")
     public R getDeviceList() {
         List<DeviceConfig> deviceList = new ArrayList<>();
diff --git a/src/main/java/com/zy/core/enums/SlaveType.java b/src/main/java/com/zy/core/enums/SlaveType.java
index 4b65625..117f89c 100644
--- a/src/main/java/com/zy/core/enums/SlaveType.java
+++ b/src/main/java/com/zy/core/enums/SlaveType.java
@@ -6,6 +6,7 @@
     Lift,
     ForkLift,
     ForkLiftMaster,
+    FakeThread,
     ;
 
     public static SlaveType findInstance(String s){
diff --git a/src/main/java/com/zy/core/thread/FakeThread.java b/src/main/java/com/zy/core/thread/FakeThread.java
new file mode 100644
index 0000000..a06d946
--- /dev/null
+++ b/src/main/java/com/zy/core/thread/FakeThread.java
@@ -0,0 +1,16 @@
+package com.zy.core.thread;
+
+import com.alibaba.fastjson.JSONObject;
+import com.zy.core.ThreadHandler;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+public interface FakeThread extends ThreadHandler {
+
+    ConcurrentHashMap<String, Thread> getFakeThreadMap();
+
+    ConcurrentHashMap<String, JSONObject> getFakeStatusMap();
+
+    ConcurrentHashMap<String, JSONObject> getFakeCommandMap();
+
+}
diff --git a/src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java b/src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java
index 54c0ba5..b49aaee 100644
--- a/src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java
@@ -6,10 +6,10 @@
 import com.zy.common.SpringUtils;
 import com.zy.common.utils.RedisUtil;
 import com.zy.core.News;
-import com.zy.core.ThreadHandler;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.properties.DeviceConfig;
+import com.zy.core.thread.FakeThread;
 import com.zy.core.thread.impl.NyShuttleThread;
 import com.zy.core.utils.FakeDeviceUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -24,7 +24,7 @@
 
 @Slf4j
 @SuppressWarnings("all")
-public class FakeNyShuttleThread implements ThreadHandler {
+public class FakeNyShuttleThread implements FakeThread {
 
     private RedisUtil redisUtil;
     private JSONObject fakeStatusDemo = JSONObject.parseObject("{\"mode\":1,\"extend\":{\"countQuantity\":400,\"suspendState\":0,\"minCellVoltage\":3279,\"chargeCycleTimes\":0,\"maxCellVoltage\":3281,\"surplusQuantity\":204,\"voltage\":5248},\"hasLift\":false,\"hasPallet\":false,\"batteryVoltage\":5248,\"runDirection\":\"2\",\"currentCode\":\"{\\\"x\\\":19,\\\"y\\\":11,\\\"z\\\":2}\",\"errorCode\":\"0\",\"hasCharge\":false,\"batteryPower\":\"51\",\"speed\":0,\"deviceStatus\":1}");
@@ -515,4 +515,18 @@
 
     }
 
+    @Override
+    public ConcurrentHashMap<String, Thread> getFakeThreadMap() {
+        return this.fakeThreadMap;
+    }
+
+    @Override
+    public ConcurrentHashMap<String, JSONObject> getFakeStatusMap() {
+        return this.fakeStatusMap;
+    }
+
+    @Override
+    public ConcurrentHashMap<String, JSONObject> getFakeCommandMap() {
+        return this.fakeCommandMap;
+    }
 }
diff --git a/src/main/java/com/zy/core/thread/fake/FakeZyForkLiftThread.java b/src/main/java/com/zy/core/thread/fake/FakeZyForkLiftThread.java
index 3e32ebf..c26e5ce 100644
--- a/src/main/java/com/zy/core/thread/fake/FakeZyForkLiftThread.java
+++ b/src/main/java/com/zy/core/thread/fake/FakeZyForkLiftThread.java
@@ -6,13 +6,13 @@
 import com.zy.common.SpringUtils;
 import com.zy.common.utils.RedisUtil;
 import com.zy.core.News;
-import com.zy.core.ThreadHandler;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.RedisKeyType;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.model.DeviceCommandMsgModel;
 import com.zy.core.model.DeviceMsgModel;
 import com.zy.core.properties.DeviceConfig;
+import com.zy.core.thread.FakeThread;
 import com.zy.core.thread.impl.ZyForkLiftThread;
 import com.zy.core.utils.DeviceMsgUtils;
 import com.zy.core.utils.FakeDeviceUtils;
@@ -24,7 +24,7 @@
 
 @Slf4j
 @SuppressWarnings("all")
-public class FakeZyForkLiftThread implements ThreadHandler {
+public class FakeZyForkLiftThread implements FakeThread {
 
     private RedisUtil redisUtil;
     private JSONObject fakeStatusDemo = JSONObject.parseObject("{\"model\":2,\"wrkNo\":0,\"lev\":1,\"protocolStatus\":0,\"taskMode\":0,\"pick\":0,\"put\":0,\"iOMode\":0,\"errorCode\":0,\"trayList\":[0,0,0,0],\"carList\":[0,0,0,0]}");
@@ -115,7 +115,7 @@
 
 
             // init
-            ThreadHandler thread = new ZyForkLiftThread(device, redisUtil);;
+            ZyForkLiftThread thread = new ZyForkLiftThread(device, redisUtil);;
             new Thread(thread).start();
             SlaveConnection.put(SlaveType.ForkLift, device.getDeviceNo(), thread);
         }
@@ -362,4 +362,18 @@
 
     }
 
+    @Override
+    public ConcurrentHashMap<String, Thread> getFakeThreadMap() {
+        return this.fakeThreadMap;
+    }
+
+    @Override
+    public ConcurrentHashMap<String, JSONObject> getFakeStatusMap() {
+        return this.fakeStatusMap;
+    }
+
+    @Override
+    public ConcurrentHashMap<String, JSONObject> getFakeCommandMap() {
+        return this.fakeCommandMap;
+    }
 }
diff --git a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
index 2544c14..ccaffca 100644
--- a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
@@ -34,6 +34,7 @@
     private Socket socket;
     private boolean stopThread = false;
     private HashMap<Integer, String> resultKeyMap = new HashMap<Integer, String>();
+    private long lastConnectTime = System.currentTimeMillis();
 
     public NyShuttleThread(DeviceConfig deviceConfig, RedisUtil redisUtil) {
         this.deviceConfig = deviceConfig;
@@ -275,6 +276,10 @@
                 return true;
             }
 
+            if(System.currentTimeMillis() - lastConnectTime < 1000 * 10) {
+                return false;
+            }
+
             if(this.deviceConfig.getFake()) {
                 return fakeConnect();
             }else {
@@ -284,6 +289,7 @@
                     deviceSocket.setSoTimeout(10000);
                     deviceSocket.setKeepAlive(true);
                     this.socket = deviceSocket;
+                    this.lastConnectTime = System.currentTimeMillis();
                     log.info(MessageFormat.format("銆恵0}銆戝洓鍚戠┛姊溅Socket閾炬帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort()));
                 }
             }

--
Gitblit v1.9.1