From c13fe87d70e81d7dcb604f8f1227de8f313cbefc Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期三, 10 七月 2024 09:26:51 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java |   64 +++++++++++++++++++++++++++++++
 1 files changed, 63 insertions(+), 1 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 c0adf3c..b652a28 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
@@ -11,14 +11,17 @@
 import com.zy.asrs.framework.exception.CoolException;
 import com.zy.asrs.wcs.common.ExecuteSupport;
 import com.zy.asrs.wcs.core.domain.param.ShuttleMoveLocParam;
+import com.zy.asrs.wcs.core.entity.BasLift;
 import com.zy.asrs.wcs.core.entity.BasShuttle;
 import com.zy.asrs.wcs.core.entity.Loc;
 import com.zy.asrs.wcs.core.model.NavigateNode;
 import com.zy.asrs.wcs.core.model.command.ShuttleCommand;
 import com.zy.asrs.wcs.core.model.command.ShuttleRedisCommand;
 import com.zy.asrs.wcs.core.model.enums.*;
+import com.zy.asrs.wcs.core.service.BasLiftService;
 import com.zy.asrs.wcs.core.service.BasShuttleService;
 import com.zy.asrs.wcs.core.service.LocService;
+import com.zy.asrs.wcs.core.utils.LiftDispatcher;
 import com.zy.asrs.wcs.core.utils.NavigateUtils;
 import com.zy.asrs.wcs.core.utils.Utils;
 import com.zy.asrs.wcs.rcs.News;
@@ -433,6 +436,37 @@
     }
 
     @Override
+    public boolean updateLocation(ShuttleCommand command) {
+        try {
+            String loginToken = requestLoginToken();
+            if (loginToken == null) {
+                return false;
+            }
+
+            HashMap<String, Object> headers = new HashMap<>();
+            headers.put("Authorization", "Bearer " + loginToken);
+
+            String response = new HttpHandler.Builder()
+                    .setUri(API_URL)
+                    .setPath("/RDS/changeLocation")
+                    .setHeaders(headers)
+                    .setJson(command.getBody())
+                    .setTimeout(60, TimeUnit.SECONDS)
+                    .build()
+                    .doPost();
+            JSONObject jsonObject = JSON.parseObject(response);
+            Integer code = jsonObject.getInteger("code");
+            if (code.equals(200)) {
+                this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿
+                return true;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return false;
+    }
+
+    @Override
     public boolean isIdle() {
         return this.isIdle(null);
     }
@@ -515,7 +549,7 @@
                 if (shuttleService == null) {
                     return false;
                 }
-                BasShuttle basShuttle = shuttleService.getById(this.device.getDeviceNo());
+                BasShuttle basShuttle = shuttleService.getOne(new LambdaQueryWrapper<BasShuttle>().eq(BasShuttle::getDeviceId, this.device.getId()));
                 if (basShuttle == null) {
                     return false;
                 }
@@ -674,6 +708,17 @@
         body.put("nodeY", loc.getBay());
         body.put("nodeZ", loc.getLev());
 
+        //妫�娴嬬洰鏍囩偣鏄惁涓烘彁鍗囨満
+        BasLiftService basLiftService = SpringUtils.getBean(BasLiftService.class);
+        BasLift basLift = basLiftService.getOne(new LambdaQueryWrapper<BasLift>().eq(BasLift::getRow, loc.getRow())
+                .eq(BasLift::getBay, loc.getBay())
+                .eq(BasLift::getHostId, this.device.getHostId()));
+        if (basLift != null) {
+            LiftDispatcher liftDispatcher = SpringUtils.getBean(LiftDispatcher.class);
+            Integer realLev = liftDispatcher.getLiftLevOffset(basLift.getDeviceId().intValue(), loc.getLev());
+            body.put("nodeZ", realLev);
+        }
+
         ShuttleCommand command = new ShuttleCommand();
         command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo()));
         command.setBody(JSON.toJSONString(body));
@@ -714,6 +759,23 @@
         return command;
     }
 
+    @Override
+    public ShuttleCommand getUpdateLocationCommand(Integer taskNo, String locNo) {
+        HashMap<String, Object> body = new HashMap<>();
+        body.put("messageName", "runOrder");
+        body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+        body.put("deviceNo", Integer.parseInt(this.device.getDeviceNo()));
+
+        String coord = "(" + Utils.getRow(locNo) + "," + Utils.getBay(locNo) + "," + Utils.getLev(locNo) + ")";
+        body.put("coord", coord);
+
+        ShuttleCommand command = new ShuttleCommand();
+        command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo()));
+        command.setBody(JSON.toJSONString(body));
+        command.setMode(ShuttleCommandModeType.UPDATE_LOCATION.id);
+        return command;
+    }
+
     //***************璁惧灞傞�氳-涓嶅悓鍘傚晢璁惧閫氳鏂规涓嶄竴鑷�***************
 
     //璇锋眰鐧诲綍

--
Gitblit v1.9.1