From b058b8c8be2267c2a0ba4e3916871ede64f53c47 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期一, 15 七月 2024 19:09:32 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java        |   33 ++++++++++++++--
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyorSta.java             |   11 +++++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/KernelService.java              |    1 
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java             |    4 ++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java |   16 ++++++++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/ShuttleThread.java               |    2 
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java             |   11 +++++
 7 files changed, 73 insertions(+), 5 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyorSta.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyorSta.java
index 22fc0a3..fa3cf6d 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyorSta.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyorSta.java
@@ -359,4 +359,15 @@
         return siteStatus.toLowerCase().replaceAll("_", "-");
     }
 
+    public Long getConveyorDeviceId() {
+        if (null == this.conveyorId){ return null; }
+        BasConveyorService basConveyorService = SpringUtils.getBean(BasConveyorService.class);
+        BasConveyor basConveyor = basConveyorService.getById(this.conveyorId);
+        if (basConveyor == null) {
+            return null;
+        }
+        return basConveyor.getDeviceId();
+    }
+
+
 }
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java
index 9a2e59d..edde4cb 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java
@@ -54,6 +54,8 @@
     @Autowired
     private BasConveyorStaService basConveyorStaService;
     @Autowired
+    private BasConveyorService basConveyorService;
+    @Autowired
     private TaskCtgService taskCtgService;
 
     public List<Motion> generateMotion(Task task) {
@@ -1409,6 +1411,7 @@
             if(basConveyorStaOrigin == null || basConveyorStaDest == null) {
                 return motionList;
             }
+
             // 鎻愬崌鏈虹Щ鍔ㄦ墭鐩�
             motionList.addAll(kernelService.liftMoveGoods(
                     MotionDto.build((dto -> {
@@ -1419,6 +1422,7 @@
                     , MotionDto.build((dto -> {
                         dto.setLiftNo(device.getId().intValue());
                         dto.setLev(Utils.getLev(basConveyorStaDest.getLocNo()));
+                        dto.setDevpNo(basConveyorStaDest.getConveyorDeviceId().intValue());
                         dto.setStaNo(Integer.parseInt(task.getDestSite()));
                     }))
             ));
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/KernelService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/KernelService.java
index db4c697..540dfe4 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/KernelService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/KernelService.java
@@ -86,6 +86,7 @@
             }
             motion.setTarget(String.valueOf(liftDispatcher.getLiftLevOffset(target.getLiftNo(), target.getLev())));
             motion.setTarDrt(target.getStaNo());//鐩爣绔�
+            motion.setDockNo(String.valueOf(target.getDevpNo()));//杈撻�佺嚎ID
 
             if (target.getSync() != null) {
                 motion.setSync(target.getSync());
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java
index 5b05c7e..9789394 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java
@@ -17,6 +17,8 @@
 import com.zy.asrs.wcs.rcs.model.enums.LiftProtocolStatusType;
 import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
 import com.zy.asrs.wcs.rcs.model.protocol.LiftProtocol;
+import com.zy.asrs.wcs.rcs.model.protocol.StaProtocol;
+import com.zy.asrs.wcs.rcs.thread.DevpThread;
 import com.zy.asrs.wcs.rcs.thread.LiftThread;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -227,6 +229,20 @@
                     return false;
                 }
 
+                //鍒ゆ柇鐩爣绔欐槸鍚︽湁鎵樼洏
+                Integer conveyorDeviceId = Integer.parseInt(motion.getDockNo());
+                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, conveyorDeviceId);
+                if (devpThread == null) {
+                    return false;
+                }
+                StaProtocol staProtocol = devpThread.getStation().get(motion.getTarDrt());
+                if(staProtocol == null) {
+                    return false;
+                }
+                if (!staProtocol.isLoading()) {
+                    return false;
+                }
+
                 if (motion.getReleaseLift() == 1) {//閲婃斁鎻愬崌鏈�
                     task.setLiftNo(0);
                     task.setUpdateTime(new Date());
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java
index d27a157..09c3188 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java
@@ -136,6 +136,17 @@
                     mapNode.setNo(object.getString("row") + "-" + object.getString("bay"));
                     mapNode.setXBase(object.getInteger("refx"));
                     mapNode.setYBase(object.getInteger("refy"));
+
+                    if(mapNode.getValue() == MapNodeType.CONVEYOR.id) {
+                        //杈撻�佺嚎,鍒ゆ柇灏忚溅鏄惁鍙蛋
+                        if (object.containsKey("conveyorHasGo")) {
+                            if(object.getBoolean("conveyorHasGo")) {
+                                //灏忚溅鍙蛋
+                                mapNode.setValue(MapNodeType.CONVEYOR_CAR_GO.id);
+                            }
+                        }
+                    }
+
                     nodes.add(mapNode);
                 }
 
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/ShuttleThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/ShuttleThread.java
index 9a2ceb0..b93fe2d 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/ShuttleThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/ShuttleThread.java
@@ -29,7 +29,7 @@
 
     boolean reset(ShuttleCommand command);//澶嶄綅寮�鍏�
 
-    boolean updateLocation(ShuttleCommand param);//鏇存柊鍧愭爣
+    boolean updateLocation(ShuttleCommand command);//鏇存柊鍧愭爣
 
     boolean isIdle();
 
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java
index 76c9550..a8a9ae9 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java
@@ -216,7 +216,7 @@
                 //鏄惁鏈夋墭鐩�
                 shuttleProtocol.setHasPallet(data.getInteger("loadState") == 1 ? true : false);
                 //琛岄┒鏂瑰悜
-                shuttleProtocol.setRunDirection(data.getString("runDir") == null ? "none" : data.getString("direction"));
+                shuttleProtocol.setRunDirection(data.getString("runDir") == null ? "none" : data.getString("runDir"));
                 //鏄惁涓哄厖鐢电姸鎬�
                 shuttleProtocol.setHasCharge(data.getInteger("chargState") == 1 ? true : false);
 
@@ -458,8 +458,19 @@
     }
 
     @Override
-    public boolean updateLocation(ShuttleCommand param) {
-        return true;//杩樻病绉绘杩囨潵
+    public boolean updateLocation(ShuttleCommand command) {
+        try {
+            //鍙戝嚭璇锋眰
+            NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class);
+            JSONObject result = requestCommand(httpCommand);
+            if (result == null) {
+                return false;//璇锋眰澶辫触
+            }
+            this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿
+            return true;
+        } catch (IOException e) {
+            return false;
+        }
     }
 
     @Override
@@ -804,7 +815,21 @@
 
     @Override
     public ShuttleCommand getUpdateLocationCommand(Integer taskNo, String locNo) {
-        return null;//杩樻病绉绘杩囨潵
+        NyShuttleHttpCommand httpStandard = getHttpStandard(Integer.parseInt(device.getDeviceNo()), taskNo);
+        NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
+
+        HashMap<String, Object> body = new HashMap<>();
+        body.put("requestType", "updateFloor");//鏇存柊灞俍
+        body.put("z", Utils.getLev(locNo));//鍧愭爣Z
+        request.setBody(body);
+
+        httpStandard.setRequest(request);
+
+        ShuttleCommand command = new ShuttleCommand();
+        command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo()));
+        command.setBody(JSON.toJSONString(httpStandard));
+        command.setMode(ShuttleCommandModeType.UPDATE_LOCATION.id);
+        return command;
     }
 
     //鑾峰彇灏忚溅澶嶄綅鍝嶅簲鍛戒护

--
Gitblit v1.9.1