From 37733cc39c04b863a0b997c7fa3d9ac6a24e08be Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期三, 19 六月 2024 15:58:19 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java |   54 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 51 insertions(+), 3 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 32d18d7..c0adf3c 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
@@ -10,6 +10,7 @@
 import com.zy.asrs.framework.common.SpringUtils;
 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.BasShuttle;
 import com.zy.asrs.wcs.core.entity.Loc;
 import com.zy.asrs.wcs.core.model.NavigateNode;
@@ -45,7 +46,7 @@
 @SuppressWarnings("all")
 public class SurayShuttleThread implements ShuttleThread {
 
-    private static final String API_URL = "http://127.0.0.1:8082";
+    private static String API_URL = "http://127.0.0.1:8082";
 
     private Device device;
     private RedisUtil redisUtil;
@@ -54,6 +55,7 @@
     public SurayShuttleThread(Device device,RedisUtil redisUtil) {
         this.device = device;
         this.redisUtil = redisUtil;
+        API_URL = "http://" + device.getIp() + ":" + device.getPort();
     }
 
     @Override
@@ -184,6 +186,7 @@
                     basShuttle.setStatus(1);
                     basShuttle.setDeleted(0);
                     basShuttle.setHostId(device.getHostId());
+                    basShuttle.setDeviceId(device.getId().intValue());
                     shuttleService.save(basShuttle);
                 }
                 //浠诲姟鍙�
@@ -217,10 +220,15 @@
 
     @Override
     public ShuttleProtocol getStatus() {
+        return getStatus(true);
+    }
+
+    @Override
+    public ShuttleProtocol getStatus(boolean clone) {
         if (this.shuttleProtocol == null) {
             return null;
         }
-        return this.shuttleProtocol.clone();
+        return clone ? this.shuttleProtocol.clone() : this.shuttleProtocol;
     }
 
     @Override
@@ -231,6 +239,16 @@
     @Override
     public synchronized boolean movePath(List<NavigateNode> nodes, Integer taskNo) {
         try {
+            //榛樿鍦板浘姣嶈建鏂瑰悜x
+            String mapDirection = "x";
+            DictService dictService = SpringUtils.getBean(DictService.class);
+            Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>()
+                    .eq(Dict::getFlag, "direction_map")
+                    .eq(Dict::getStatus, 1));
+            if (dict != null) {
+                mapDirection = dict.getValue();
+            }
+
             String loginToken = requestLoginToken();
             if (loginToken == null) {
                 return false;
@@ -255,7 +273,7 @@
                 NavigateNode startPath = sectionNodes.get(0);
                 //缁撴潫璺緞
                 NavigateNode targetPath = sectionNodes.get(sectionNodes.size() - 1);
-                if (ShuttleRunDirection.get(startPath.getDirection()) == ShuttleRunDirection.LEFT
+                if (mapDirection.equals("y") && ShuttleRunDirection.get(startPath.getDirection()) == ShuttleRunDirection.LEFT
                         || ShuttleRunDirection.get(startPath.getDirection()) == ShuttleRunDirection.RIGHT) {
                     //姣嶈建鏂瑰悜
                     oper = 5;
@@ -299,7 +317,11 @@
                     .doPost();
             JSONObject jsonObject = JSON.parseObject(response);
             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;
             }
         } catch (Exception e) {
@@ -329,6 +351,7 @@
                     .doPost();
             JSONObject jsonObject = JSON.parseObject(response);
             Integer code = jsonObject.getInteger("code");
+            System.out.println(JSON.toJSONString(command.getBody()));
             if (code.equals(200)) {
                 this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿
                 return true;
@@ -405,6 +428,7 @@
     public synchronized boolean reset(ShuttleCommand command) {
         setSyncTaskNo(0);
         setProtocolStatus(ShuttleProtocolStatusType.IDLE);
+        enableMoveLoc(null, false);
         return true;
     }
 
@@ -608,6 +632,30 @@
     }
 
     @Override
+    public boolean enableMoveLoc(ShuttleMoveLocParam param, boolean enable) {
+        if (enable) {
+            shuttleProtocol.setMoveLoc(true);//寮�鍚窇搴�
+            shuttleProtocol.setMoveType(param.getMoveType());
+            shuttleProtocol.setXStart(param.getStartX());
+            shuttleProtocol.setXTarget(param.getTargetX());
+            shuttleProtocol.setXCurrent(param.getStartX());
+            shuttleProtocol.setYStart(param.getStartY());
+            shuttleProtocol.setYTarget(param.getTargetY());
+            shuttleProtocol.setYCurrent(param.getStartY());
+        }else {
+            shuttleProtocol.setMoveLoc(false);
+            shuttleProtocol.setMoveType(0);
+            shuttleProtocol.setXStart(0);
+            shuttleProtocol.setXTarget(0);
+            shuttleProtocol.setXCurrent(0);
+            shuttleProtocol.setYStart(0);
+            shuttleProtocol.setYTarget(0);
+            shuttleProtocol.setYCurrent(0);
+        }
+        return true;
+    }
+
+    @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");

--
Gitblit v1.9.1