From d56b8093dc9e3e75f8efe1a0f1aa6d821c9c3dfb Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期二, 15 四月 2025 13:30:35 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java |   96 +++++++++++++++++++++++++++++++----------------
 1 files changed, 63 insertions(+), 33 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java
index 65ca812..aa74579 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java
@@ -28,6 +28,7 @@
 import com.zy.asrs.wcs.rcs.cache.OutputQueue;
 import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant;
 import com.zy.asrs.wcs.rcs.entity.DeviceDataLog;
+import com.zy.asrs.wcs.rcs.model.CommandResponse;
 import com.zy.asrs.wcs.rcs.model.enums.ShuttleProtocolStatusType;
 import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
 import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
@@ -240,8 +241,10 @@
     }
 
     @Override
-    public synchronized boolean movePath(List<NavigateNode> nodes, Integer taskNo) {
+    public synchronized CommandResponse movePath(List<NavigateNode> nodes, Integer taskNo) {
+        CommandResponse response = new CommandResponse(false);
         try {
+            NavigateUtils navigateUtils = SpringUtils.getBean(NavigateUtils.class);
             //榛樿鍦板浘姣嶈建鏂瑰悜x
             String mapDirection = "x";
             DictService dictService = SpringUtils.getBean(DictService.class);
@@ -254,7 +257,7 @@
 
             String loginToken = requestLoginToken();
             if (loginToken == null) {
-                return false;
+                return response;
             }
 
             HashMap<String, Object> headers = new HashMap<>();
@@ -262,7 +265,7 @@
 
             ArrayList<HashMap<String, Object>> modes = new ArrayList<>();
             //鑾峰彇鍒嗘璺緞
-            ArrayList<ArrayList<NavigateNode>> data = NavigateUtils.getSectionPath(nodes);
+            ArrayList<ArrayList<NavigateNode>> data = navigateUtils.getSectionPath(nodes);
             for (int idx = 0; idx < data.size(); idx++) {
                 ArrayList<NavigateNode> sectionNodes = data.get(idx);
                 boolean isRemoveFooterNode = false;//鏄惁鍓旈櫎灏捐妭鐐�
@@ -310,7 +313,7 @@
             param.put("taskId", taskNo);
             param.put("nodeNum", nodes.size());
             param.put("modes", modes);
-            String response = new HttpHandler.Builder()
+            String responseStr = new HttpHandler.Builder()
                     .setUri(API_URL)
                     .setPath("/RDS/runRoute")
                     .setHeaders(headers)
@@ -318,33 +321,36 @@
                     .setTimeout(60, TimeUnit.SECONDS)
                     .build()
                     .doPost();
-            JSONObject jsonObject = JSON.parseObject(response);
+            JSONObject jsonObject = JSON.parseObject(responseStr);
             Integer code = jsonObject.getInteger("code");
             System.out.println("璺緞涓嬪彂" + taskNo);
             System.out.println(JSON.toJSONString(jsonObject));
             System.out.println(JSON.toJSONString(param));
             if (code.equals(200)) {
                 System.out.println("璺緞涓嬪彂" + taskNo);
-                return true;
+                response.setResult(true);
+                response.setMessage(responseStr);
+                return response;
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
-        return false;
+        return response;
     }
 
     @Override
-    public synchronized boolean move(ShuttleCommand command) {
+    public synchronized CommandResponse move(ShuttleCommand command) {
+        CommandResponse response = new CommandResponse(false);
         try {
             String loginToken = requestLoginToken();
             if (loginToken == null) {
-                return false;
+                return response;
             }
 
             HashMap<String, Object> headers = new HashMap<>();
             headers.put("Authorization", "Bearer " + loginToken);
 
-            String response = new HttpHandler.Builder()
+            String responseStr = new HttpHandler.Builder()
                     .setUri(API_URL)
                     .setPath("/RDS/runOrder")
                     .setHeaders(headers)
@@ -352,31 +358,34 @@
                     .setTimeout(60, TimeUnit.SECONDS)
                     .build()
                     .doPost();
-            JSONObject jsonObject = JSON.parseObject(response);
+            JSONObject jsonObject = JSON.parseObject(responseStr);
             Integer code = jsonObject.getInteger("code");
             System.out.println(JSON.toJSONString(command.getBody()));
             if (code.equals(200)) {
                 this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿
-                return true;
+                response.setResult(true);
+                response.setMessage(responseStr);
+                return response;
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
-        return false;
+        return response;
     }
 
     @Override
-    public synchronized boolean lift(ShuttleCommand command) {
+    public synchronized CommandResponse lift(ShuttleCommand command) {
+        CommandResponse response = new CommandResponse(false);
         try {
             String loginToken = requestLoginToken();
             if (loginToken == null) {
-                return false;
+                return response;
             }
 
             HashMap<String, Object> headers = new HashMap<>();
             headers.put("Authorization", "Bearer " + loginToken);
 
-            String response = new HttpHandler.Builder()
+            String responseStr = new HttpHandler.Builder()
                     .setUri(API_URL)
                     .setPath("/RDS/actionOrder")
                     .setHeaders(headers)
@@ -384,30 +393,33 @@
                     .setTimeout(60, TimeUnit.SECONDS)
                     .build()
                     .doPost();
-            JSONObject jsonObject = JSON.parseObject(response);
+            JSONObject jsonObject = JSON.parseObject(responseStr);
             Integer code = jsonObject.getInteger("code");
             if (code.equals(200)) {
                 this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿
-                return true;
+                response.setResult(true);
+                response.setMessage(responseStr);
+                return response;
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
-        return false;
+        return response;
     }
 
     @Override
-    public synchronized boolean charge(ShuttleCommand command) {
+    public synchronized CommandResponse charge(ShuttleCommand command) {
+        CommandResponse response = new CommandResponse(false);
         try {
             String loginToken = requestLoginToken();
             if (loginToken == null) {
-                return false;
+                return response;
             }
 
             HashMap<String, Object> headers = new HashMap<>();
             headers.put("Authorization", "Bearer " + loginToken);
 
-            String response = new HttpHandler.Builder()
+            String responseStr = new HttpHandler.Builder()
                     .setUri(API_URL)
                     .setPath("/RDS/actionOrder")
                     .setHeaders(headers)
@@ -415,38 +427,41 @@
                     .setTimeout(60, TimeUnit.SECONDS)
                     .build()
                     .doPost();
-            JSONObject jsonObject = JSON.parseObject(response);
+            JSONObject jsonObject = JSON.parseObject(responseStr);
             Integer code = jsonObject.getInteger("code");
             if (code.equals(200)) {
                 this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿
-                return true;
+                response.setResult(true);
+                response.setMessage(responseStr);
+                return response;
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
-        return false;
+        return response;
     }
 
     @Override
-    public synchronized boolean reset(ShuttleCommand command) {
+    public synchronized CommandResponse reset(ShuttleCommand command) {
         setSyncTaskNo(0);
         setProtocolStatus(ShuttleProtocolStatusType.IDLE);
         enableMoveLoc(null, false);
-        return true;
+        return new CommandResponse(true, JSON.toJSONString(command));
     }
 
     @Override
-    public boolean updateLocation(ShuttleCommand command) {
+    public CommandResponse updateLocation(ShuttleCommand command) {
+        CommandResponse response = new CommandResponse(false);
         try {
             String loginToken = requestLoginToken();
             if (loginToken == null) {
-                return false;
+                return response;
             }
 
             HashMap<String, Object> headers = new HashMap<>();
             headers.put("Authorization", "Bearer " + loginToken);
 
-            String response = new HttpHandler.Builder()
+            String responseStr = new HttpHandler.Builder()
                     .setUri(API_URL)
                     .setPath("/RDS/changeLocation")
                     .setHeaders(headers)
@@ -454,16 +469,18 @@
                     .setTimeout(60, TimeUnit.SECONDS)
                     .build()
                     .doPost();
-            JSONObject jsonObject = JSON.parseObject(response);
+            JSONObject jsonObject = JSON.parseObject(responseStr);
             Integer code = jsonObject.getInteger("code");
             if (code.equals(200)) {
                 this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿
-                return true;
+                response.setResult(true);
+                response.setMessage(responseStr);
+                return response;
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
-        return false;
+        return response;
     }
 
     @Override
@@ -690,6 +707,15 @@
     }
 
     @Override
+    public boolean requestWaiting() {
+        if (this.shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.IDLE)) {
+            this.shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.WAITING);
+            return true;
+        }
+        return false;
+    }
+
+    @Override
     public ShuttleCommand getMoveCommand(Integer taskNo, String startCodeNum, String distCodeNum, Integer allDistance, Integer runDirection, Integer runSpeed, List<NavigateNode> nodes) {
         HashMap<String, Object> body = new HashMap<>();
         body.put("messageName", "runOrder");
@@ -724,6 +750,7 @@
         command.setBody(JSON.toJSONString(body));
         command.setMode(ShuttleCommandModeType.MOVE.id);
         command.setTargetLocNo(loc.getLocNo());
+        command.setTaskNo(taskNo);
         return command;
     }
 
@@ -740,6 +767,7 @@
         command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo()));
         command.setBody(JSON.toJSONString(body));
         command.setMode(lift ? ShuttleCommandModeType.PALLET_LIFT.id : ShuttleCommandModeType.PALLET_DOWN.id);
+        command.setTaskNo(taskNo);
         return command;
     }
 
@@ -756,6 +784,7 @@
         command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo()));
         command.setBody(JSON.toJSONString(body));
         command.setMode(charge ? ShuttleCommandModeType.CHARGE_OPEN.id : ShuttleCommandModeType.CHARGE_CLOSE.id);
+        command.setTaskNo(taskNo);
         return command;
     }
 
@@ -773,6 +802,7 @@
         command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo()));
         command.setBody(JSON.toJSONString(body));
         command.setMode(ShuttleCommandModeType.UPDATE_LOCATION.id);
+        command.setTaskNo(taskNo);
         return command;
     }
 

--
Gitblit v1.9.1