From ce511a3d55e5f349b1647172e562c1659bbc8172 Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期五, 09 一月 2026 15:27:27 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java |   94 ++++++++++++++++++----------------------------
 1 files changed, 37 insertions(+), 57 deletions(-)

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 3aa424b..f93f317 100644
--- a/src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java
@@ -172,6 +172,10 @@
                     }
                     List<DeviceConfig> deviceConfigs = fakeDeviceUtils.getFakeDeviceConfig();
                     for (DeviceConfig device : deviceConfigs) {
+                        if (!device.getDeviceType().equals(String.valueOf(SlaveType.Shuttle))) {
+                            continue;
+                        }
+
                         excuteFakeCommand(String.valueOf(SlaveType.Shuttle) + device.getDeviceNo(), device);
                     }
                 }catch (Exception e){
@@ -353,26 +357,22 @@
                     fakeStatus.put("currentCode", JSON.toJSONString(point));
                     fakeStatus.put("deviceStatus", 1);//璁惧绌洪棽
                     fakeStatusMap.put(key, fakeStatus);
-                } else if (commandType.equals("move")) {
-                    boolean firstMove = true;
-
+                } else if (commandType.equals("move") || commandType.equals("intoLift") || commandType.equals("outLift")) {
                     String baseCommandKey = RedisKeyType.FAKE_SHUTTLE_MOVE_EXECUTE_COMMAND_LIST.key + deviceConfig.getDeviceNo() + "_";
-                    Set<String> keys = redisUtil.searchKeys(baseCommandKey);
-
-                    if (!keys.isEmpty()) {
-                        firstMove = false;
+                    while (true) {
+                        Set<String> keys = redisUtil.searchKeys(baseCommandKey);
+                        if (keys.isEmpty()) {
+                            break;
+                        }
                     }
-
-                    JSONObject body = command.getJSONObject("commandBody");
-                    String pathList = body.getString("path");
-                    List<JSONObject> list = JSON.parseArray(pathList, JSONObject.class);
 
                     String finalKey = baseCommandKey + System.currentTimeMillis();
-                    redisUtil.set(finalKey, list);
+                    redisUtil.set(finalKey, true, 60 * 2);
 
-                    if(!firstMove) {
-                        return;
-                    }
+                    JSONObject body = command.getJSONObject("commandBody");
+                    String requestType = body.getString("requestType");
+                    String pathList = body.getString("path");
+                    List<JSONObject> executePathList = JSON.parseArray(pathList, JSONObject.class);
 
                     fakeStatus.put("deviceStatus", 0);//璁惧蹇欑
                     fakeStatusMap.put(key, fakeStatus);
@@ -384,57 +384,37 @@
                         break;
                     }
 
-                    while (true) {
-                        Set<String> searchKeys = redisUtil.searchKeys(baseCommandKey);
-                        if(searchKeys.isEmpty()) {
+                    for (JSONObject path : executePathList) {
+                        while (true) {
+                            JSONObject realFakeStatus = fakeStatusMap.get(key);
+                            Integer errorCode = realFakeStatus.getInteger("errorCode");
+                            if (errorCode > 0) {
+                                continue;
+                            }
                             break;
                         }
 
-                        TreeSet<String> treeSet = new TreeSet<>();
-                        for (String tmpKey : searchKeys) {
-                            treeSet.add(tmpKey);
-                        }
-
-                        String first = treeSet.first();
-
-                        Object object = redisUtil.get(first);
-                        if(object == null) {
+                        while (true) {
+                            if((System.currentTimeMillis() - startTime) < 1000 * 1) {
+                                continue;
+                            }
                             break;
                         }
 
-                        List<JSONObject> executePathList = (List<JSONObject>) object;
-                        for (JSONObject path : executePathList) {
-                            while (true) {
-                                JSONObject realFakeStatus = fakeStatusMap.get(key);
-                                Integer errorCode = realFakeStatus.getInteger("errorCode");
-                                if (errorCode > 0) {
-                                    continue;
-                                }
-                                break;
-                            }
-
-                            while (true) {
-                                if((System.currentTimeMillis() - startTime) < 1000 * 1) {
-                                    continue;
-                                }
-                                break;
-                            }
-
-                            String currentCode = fakeStatus.getString("currentCode");
-                            JSONObject point = JSON.parseObject(currentCode);
-                            point.put("x", path.getInteger("xp"));
-                            point.put("y", path.getInteger("yp"));
-                            point.put("z", path.getInteger("z"));
-                            fakeStatus.put("currentCode", JSON.toJSONString(point));
-                            fakeStatus.put("deviceStatus", 0);//璁惧蹇欑
-                            fakeStatusMap.put(key, fakeStatus);
-                            startTime = System.currentTimeMillis();
-                        }
-                        redisUtil.del(first);
+                        String currentCode = fakeStatus.getString("currentCode");
+                        JSONObject point = JSON.parseObject(currentCode);
+                        point.put("x", path.getInteger("xp"));
+                        point.put("y", path.getInteger("yp"));
+                        point.put("z", path.getInteger("z"));
+                        fakeStatus.put("currentCode", JSON.toJSONString(point));
+                        fakeStatus.put("deviceStatus", 0);//璁惧蹇欑
+                        fakeStatusMap.put(key, fakeStatus);
+                        startTime = System.currentTimeMillis();
                     }
 
                     fakeStatus.put("deviceStatus", 1);//璁惧绌洪棽
                     fakeStatusMap.put(key, fakeStatus);
+                    redisUtil.del(finalKey);
                 }
             } catch (Exception e) {
                 e.printStackTrace();
@@ -517,7 +497,7 @@
         } else if (requestType.equals("updateFloor")) {
             fakeCommandMap.put(String.valueOf(SlaveType.Shuttle) + device.getDeviceNo(), fakeCommand);
             response = genereateFakeCommandResponse(requestId, taskId, requestType);
-        } else if (requestType.equals("move")) {
+        } else if (requestType.equals("move") || requestType.equals("intoLift") || requestType.equals("outLift")) {
             fakeCommandMap.put(String.valueOf(SlaveType.Shuttle) + device.getDeviceNo(), fakeCommand);
             response = genereateFakeCommandResponse(requestId, taskId, requestType);
         } else if (requestType.equals("readState")) {

--
Gitblit v1.9.1