From 3df03c486fde77ab36b9298a94bdbb0aa065a7e2 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期二, 08 四月 2025 09:07:40 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/KernelService.java              |    5 +
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java      |   27 +-----
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java             |   61 ++++++++-------
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/MotionCtgType.java         |    2 
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java |   92 +++++++++++++++++++++-
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/LiftAction.java                 |    3 
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java           |    8 ++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java                   |    8 +-
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/LiftDispatcher.java              |    4 
 9 files changed, 148 insertions(+), 62 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/LiftAction.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/LiftAction.java
index b727735..1cf3ad3 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/LiftAction.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/LiftAction.java
@@ -104,7 +104,8 @@
             LiftCommand command = commands.get(commandStep - 1);
             if (command.getMode() == LiftCommandModeType.MOVE.id) {
                 //鎻愬崌鏈哄崌闄�
-                if (liftProtocol.getLev() == command.getTargetLev()) {
+                Integer target = liftDispatcher.getLiftLevLogic(liftThread.getDevice().getId().intValue(), command.getTargetLev());
+                if (liftProtocol.getLev() == target) {
                     command.setComplete(true);
                 }
             } else if (command.getMode() == LiftCommandModeType.MOVE_CAR.id) {
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 d15a292..b0204ad 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
@@ -153,8 +153,9 @@
                             dto.setLiftNo(transferLiftDevice.getId().intValue());
                             dto.setLev(Utils.getLev(task.getDestLoc()));
                             dto.setStaNo(Integer.parseInt(task.getDestSite()));
-                            dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満
-                        }))
+//                            dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満
+                        })),
+                        MotionCtgType.LIFT_WITH_GOODS_IN
                 ));
 
                 // 绌挎杞﹁蛋琛岃嚦鎻愬崌鏈哄簱浣�
@@ -191,6 +192,7 @@
                             dto.setShuttleDevice(shuttleDevice);
                             dto.setLiftNo(transferLiftDevice.getId().intValue());
                             dto.setLocNo(standbyLocNoTo);
+                            dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満
                         })),
                         MotionCtgType.SHUTTLE_TRANSPORT
                 ));
@@ -262,11 +264,6 @@
                 return motionList;
             }
 
-            BasConveyorSta basConveyorStaOrigin = basConveyorStaService.selectBySiteNo(task.getOriginSite());
-            if (basConveyorStaOrigin == null) {
-                return motionList;
-            }
-
             //妫�娴嬬┛姊溅鏄惁鏈変换鍔$粦瀹�
             boolean shuttleResult = Utils.checkShuttleHasBinding(shuttleDevice, task.getTaskNo());
             if (shuttleResult) {
@@ -286,22 +283,14 @@
             //绌挎杞﹁繘鎻愬崌鏈哄緟鏈轰綅搴撲綅鍙� 杈撻�佺嚎浣嶇疆
             String standbyLocNoTo = shuttleStandbyTo.getDeviceStandbyLoc();
 
-            //绌挎杞︽崲灞傛椂寰呮満浣嶇疆 浣跨敤琛ㄥ垪 memo鏁版嵁
-            String standbyLocNoMemo = shuttleStandbyTo.getMemo();
+            //绌挎杞﹀緟鏈轰綅缃� 浣跨敤琛ㄥ垪
+            String standbyLocNoList = shuttleStandbyTo.getStandbyLoc();
 
             //鑾峰彇鍑哄簱浠诲姟绫诲瀷
             TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
                     .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.OUT))
                     .eq(TaskCtg::getStatus, 1));
             if (taskCtg == null) {
-                return motionList;
-            }
-            //鑾峰彇杈撻�佺嚎璺緞
-            BasConveyorPath basConveyorPath = basConveyorPathService.getOne(new LambdaQueryWrapper<BasConveyorPath>()
-                    .eq(BasConveyorPath::getDeviceStn, task.getOriginSite())
-                    .eq(BasConveyorPath::getDeviceNo, liftProtocol.getLiftNo())
-                    .eq(BasConveyorPath::getTypeNo, taskCtg.getId()));
-            if (basConveyorPath == null) {
                 return motionList;
             }
 
@@ -371,15 +360,16 @@
                             dto.setLocNo(standbyLocNoTo);
                             dto.setStaNo(getStaByLev(Utils.getLev(task.getOriginLoc())));//杈撻�佺珯
                         })),
-                        MotionCtgType.SHUTTLE_TRANSPORT_TO_CONVEYOR
+                        MotionCtgType.SHUTTLE_TRANSPORT
                 ));
 
+                Integer liftLevLogic = liftDispatcher.getLiftLevOffset(transferLiftDevice.getId().intValue(), Utils.getLev(originLoc));
                 // 鎻愬崌鏈虹┖杞界Щ鍔ㄥ埌鍑哄簱灞�
                 motionList.addAll(kernelService.liftMove(
                         null
                         , MotionDto.build((dto -> {
                             dto.setLiftNo(transferLiftDevice.getId().intValue());
-                            dto.setLev(Utils.getLev(originLoc));
+                            dto.setLev(liftLevLogic);
                         }))
                 ));
 
@@ -415,8 +405,8 @@
                         MotionDto.build((dto -> {
                             dto.setShuttleNo(shuttleDevice.getId().intValue());
                             dto.setShuttleDevice(shuttleDevice);
-                            dto.setLocNo(standbyLocNoTo);
-                            dto.setSync(0);//寮傛鎵ц
+                            dto.setLocNo(standbyLocNoList);
+//                            dto.setSync(0);//寮傛鎵ц
                             dto.setReleaseShuttle(1);//鎵ц瀹屾垚鍚庨噴鏀惧皬杞�
                         })),
                         MotionCtgType.SHUTTLE_MOVE_STANDBY
@@ -432,9 +422,9 @@
                         , MotionDto.build((dto -> {
                             dto.setLiftNo(transferLiftDevice.getId().intValue());
                             dto.setStaNo(Integer.parseInt(task.getDestSite()));//鍑哄簱绔欑偣
-                            dto.setDevpNo(basConveyorStaOrigin.getConveyorDeviceId().intValue());
                             dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満
-                        }))
+                        })),
+                        MotionCtgType.LIFT_WITH_GOODS_OUT
                 ));
 
             }
@@ -597,6 +587,14 @@
                 return motionList;//鏈垎鏋愭垚鍔�
             }
 
+            //鑾峰彇灏忚溅寰呮満搴撲綅 ==> 杩涙彁鍗囨満
+            ShuttleStandby shuttleStandbyTo = shuttleStandbyService.getOne(new LambdaQueryWrapper<ShuttleStandby>()
+                    .eq(ShuttleStandby::getDeviceLev, Utils.getLev(shuttleLocNo))
+                    .eq(ShuttleStandby::getStatus, 1));
+
+            //绌挎杞﹀緟鏈轰綅缃� 浣跨敤琛ㄥ垪
+            String standbyLocNoList = shuttleStandbyTo.getStandbyLoc();
+
             String standbyLocNo;
             if (originSite == 1015) {
                 standbyLocNo = "1200101";
@@ -686,8 +684,8 @@
                         MotionDto.build((dto -> {
                             dto.setShuttleNo(shuttleDevice.getId().intValue());
                             dto.setShuttleDevice(shuttleDevice);
-                            dto.setLocNo(standbyLocNo);
-                            dto.setSync(0);//寮傛鎵ц
+                            dto.setLocNo(standbyLocNoList);
+//                            dto.setSync(0);//寮傛鎵ц
                             dto.setReleaseShuttle(1);//鎵ц瀹屾垚鍚庨噴鏀惧皬杞�
                         })),
                         MotionCtgType.SHUTTLE_MOVE_STANDBY
@@ -1213,12 +1211,13 @@
         if (destSite.equals("move")) {
             //鎻愬崌鏈哄崌闄嶆ゼ灞�
 
+            Integer liftLevLogic = liftDispatcher.getLiftLevOffset(device.getId().intValue(), Integer.parseInt(task.getDestLoc()));
             // 鎻愬崌鏈虹┖杞界Щ鍔ㄥ埌绌挎杞﹀眰
             motionList.addAll(kernelService.liftMove(
                     null
                     , MotionDto.build((dto -> {
                         dto.setLiftNo(device.getId().intValue());
-                        dto.setLev(Integer.parseInt(task.getDestLoc()));
+                        dto.setLev(liftLevLogic);
                     }))
             ));
 
@@ -1230,19 +1229,23 @@
                 return motionList;
             }
 
+            Integer originLev = liftDispatcher.getLiftLevOffset(device.getId().intValue(), Utils.getLev(basConveyorStaOrigin.getLocNo()));
+            Integer targetLev = liftDispatcher.getLiftLevOffset(device.getId().intValue(), Utils.getLev(basConveyorStaDest.getLocNo()));
+
             // 鎻愬崌鏈虹Щ鍔ㄦ墭鐩�
             motionList.addAll(kernelService.liftMoveGoods(
                     MotionDto.build((dto -> {
                         dto.setLiftNo(device.getId().intValue());
-                        dto.setLev(Utils.getLev(basConveyorStaOrigin.getLocNo()));
+                        dto.setLev(originLev);
                         dto.setStaNo(Integer.parseInt(task.getOriginSite()));
                     }))
                     , MotionDto.build((dto -> {
                         dto.setLiftNo(device.getId().intValue());
-                        dto.setLev(Utils.getLev(basConveyorStaDest.getLocNo()));
+                        dto.setLev(targetLev);
                         dto.setDevpNo(basConveyorStaDest.getConveyorDeviceId().intValue());
                         dto.setStaNo(Integer.parseInt(task.getDestSite()));
-                    }))
+                    })),
+                    MotionCtgType.LIFT_WITH_GOODS
             ));
 
         } else if (destSite.equals("lock")) {
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 ef67e16..678014a 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
@@ -85,7 +85,7 @@
     /**
      * 鎻愬崌鏈鸿浇璐хЩ鍔�
      */
-    public List<Motion> liftMoveGoods(MotionDto origin, MotionDto target) {
+    public List<Motion> liftMoveGoods(MotionDto origin, MotionDto target, MotionCtgType type) {
         List<Motion> motionList = new ArrayList<>();
 
         motionList.add(Motion.build(motion -> {
@@ -93,6 +93,9 @@
             motion.setDevice(String.valueOf(target.getLiftNo()));
 
             motion.setMotionCtg(MotionCtgType.LIFT_WITH_GOODS.val());
+            if (type != null) {
+                motion.setMotionCtg(type.val());
+            }
 
             if (null != origin) {
 //                motion.setOrigin(String.valueOf(liftDispatcher.getLiftLevOffset(target.getLiftNo(), origin.getLev())));
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 63e1026..6eb80b9 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
@@ -140,6 +140,40 @@
                 motionService.updateById(motion);
 
                 return liftAction.assignWork(liftThread.getDevice(), assignCommand);
+            case LIFT_WITH_GOODS_IN:
+                //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
+                if (!liftThread.isIdle()) {
+                    return false;
+                }
+                if (liftProtocol.getHasTray()) {
+                    return false;
+                }
+
+                command = liftThread.getPalletInOutCommand(assignCommand.getDeviceTaskNo(), Integer.parseInt(motion.getOrigin()), Integer.parseInt(motion.getTarget()), motion.getOriDrt(), motion.getTarDrt(), task.getTaskSts() < 100 ? LiftCommandModeType.PALLET_IN : LiftCommandModeType.PALLET_OUT);
+                list.addAll(command);
+
+                motion.setTemp(String.valueOf(assignCommand.getDeviceTaskNo()));
+                motion.setUpdateTime(new Date());
+                motionService.updateById(motion);
+
+                return liftAction.assignWork(liftThread.getDevice(), assignCommand);
+            case LIFT_WITH_GOODS_OUT:
+                //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
+                if (!liftThread.isIdle()) {
+                    return false;
+                }
+                if (!liftProtocol.getHasTray()) {
+                    return false;
+                }
+
+                command = liftThread.getPalletInOutCommand(assignCommand.getDeviceTaskNo(), Integer.parseInt(motion.getOrigin()), Integer.parseInt(motion.getTarget()), motion.getOriDrt(), motion.getTarDrt(), task.getTaskSts() < 100 ? LiftCommandModeType.PALLET_IN : LiftCommandModeType.PALLET_OUT);
+                list.addAll(command);
+
+                motion.setTemp(String.valueOf(assignCommand.getDeviceTaskNo()));
+                motion.setUpdateTime(new Date());
+                motionService.updateById(motion);
+
+                return liftAction.assignWork(liftThread.getDevice(), assignCommand);
             case LIFT_WITH_SHUTTLE:
                 //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
                 if (!liftThread.isIdle()) {
@@ -226,7 +260,7 @@
                     return false;
                 }
 
-                if (!liftProtocol.getLev().equals(Integer.valueOf(motion.getTarget()))) {
+                if (!liftProtocol.getLev().equals(liftDispatcher.getLiftLevLogic(liftThread.getDevice().getId().intValue(), Integer.valueOf(motion.getTarget())))) {
                     return false;
                 }
 
@@ -250,10 +284,10 @@
                     return false;
                 }
 
-                //鍒ゆ柇鎻愬崌鏈烘墭鐩樻槸鍚﹀瓨鍦�
-                if (!liftProtocol.getHasTray()) {
-                    return false;
-                }
+//                //鍒ゆ柇鎻愬崌鏈烘墭鐩樻槸鍚﹀瓨鍦�
+//                if (!liftProtocol.getHasTray()) {
+//                    return false;
+//                }
 
 //                //鍒ゆ柇鐩爣绔欐槸鍚︽湁鎵樼洏
 //                Integer conveyorDeviceId = Integer.parseInt(motion.getDockNo());
@@ -293,6 +327,54 @@
                 }
 
                 break;
+            case LIFT_WITH_GOODS_IN:
+                // 鍒ゆ柇鎻愬崌鏈烘槸鍚︾┖闂�
+                if (!liftThread.isIdle()) {
+                    return false;
+                }
+
+                if (!liftProtocol.getLev().equals(liftDispatcher.getLiftLevLogic(liftThread.getDevice().getId().intValue(), Integer.valueOf(motion.getTarget())))) {
+                    return false;
+                }
+
+                //鍒ゆ柇鎻愬崌鏈烘墭鐩樻槸鍚﹀瓨鍦�
+                if (!liftProtocol.getHasTray()) {
+                    return false;
+                }
+
+                if (motion.getReleaseLift() == 1) {//閲婃斁鎻愬崌鏈�
+                    task.setLiftNo(0);
+                    task.setUpdateTime(new Date());
+                    if (!taskService.updateById(task)) {
+                        return false;
+                    }
+                }
+
+                break;
+            case LIFT_WITH_GOODS_OUT:
+                // 鍒ゆ柇鎻愬崌鏈烘槸鍚︾┖闂�
+                if (!liftThread.isIdle()) {
+                    return false;
+                }
+
+                if (!liftProtocol.getLev().equals(liftDispatcher.getLiftLevLogic(liftThread.getDevice().getId().intValue(), Integer.valueOf(motion.getTarget())))) {
+                    return false;
+                }
+
+                //鍒ゆ柇鎻愬崌鏈烘墭鐩樻槸鍚﹀瓨鍦�
+                if (liftProtocol.getHasTray()) {
+                    return false;
+                }
+
+                if (motion.getReleaseLift() == 1) {//閲婃斁鎻愬崌鏈�
+                    task.setLiftNo(0);
+                    task.setUpdateTime(new Date());
+                    if (!taskService.updateById(task)) {
+                        return false;
+                    }
+                }
+
+                break;
             case LIFT_WITH_SHUTTLE:
                 // 鍒ゆ柇鎻愬崌鏈烘槸鍚︾┖闂�
                 if (!liftThread.isIdle()) {
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/MotionCtgType.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/MotionCtgType.java
index 97dbb55..4dd4818 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/MotionCtgType.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/MotionCtgType.java
@@ -23,6 +23,8 @@
     // 鎻愬崌鏈� --------------------------------------------
     LIFT_MOVE(LIFT),
     LIFT_WITH_GOODS(LIFT),
+    LIFT_WITH_GOODS_IN(LIFT),
+    LIFT_WITH_GOODS_OUT(LIFT),
     LIFT_WITH_SHUTTLE(LIFT),
     LIFT_WITH_GOODS_AND_SHUTTLE(LIFT),
     LIFT_TRANSPORT_TO_CONVEYOR(LIFT),
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
index cbc2831..ce2f0fd 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
@@ -489,9 +489,10 @@
 
                     // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
                     if (staProtocol.isAutoing()
+                            && staProtocol.isLoading()
                             && staProtocol.isInEnable()
                             && (workNo >= 0)
-                            && staProtocol.isPakMk()
+//                            && staProtocol.isPakMk()
                     ) {
 
                         Task task = taskService.getOne(new LambdaQueryWrapper<Task>()
@@ -671,40 +672,26 @@
         }
 
         for (Task task : tasks) {
-            BasConveyorSta originStaObj = basConveyorStaService.selectBySiteNo(task.getOriginSite());//鑾峰彇婧愮珯
-            if (originStaObj == null) {
+            BasConveyorSta destStaObj = basConveyorStaService.selectBySiteNo(task.getDestSite());//鑾峰彇鐩爣绔�
+            if (destStaObj == null) {
                 continue;
             }
 
-            BasConveyor basConveyor = basConveyorService.getById(originStaObj.getConveyorId());
+            BasConveyor basConveyor = basConveyorService.getById(destStaObj.getConveyorId());
             if(basConveyor == null) {
                 continue;
             }
 
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue());
-            StaProtocol staProtocol = devpThread.getStation().get(Integer.parseInt(task.getOriginSite()));//婧愮珯
-//            StaProtocol staProtocol1 = devpThread.getStation().get(Integer.parseInt(task.getDestSite()));//鐩爣绔�
+            StaProtocol staProtocol = devpThread.getStation().get(Integer.parseInt(task.getDestSite()));//鐩爣绔�
             if (staProtocol == null) {
                 continue;
             } else {
                 staProtocol = staProtocol.clone();
-//                staProtocol1 = staProtocol1.clone();
             }
 
             // 鍒ゆ柇鍑哄簱绔欑姸鎬�
             if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
-//                if (!(staProtocol1.isAutoing() && !staProtocol1.isLoading() && staProtocol1.getWorkNo() == 0 && staProtocol1.isOutEnable())) {
-//                    continue;
-//                }
-
-//                //鍚屽簱浣嶇粍鏍¢獙
-//                List<String> outerLoc = Utils.getGroupOuterLoc(wrkMast.getSourceLocNo());
-//                List<LocMast> outerLocMasts = locMastService.selectNotEmptyLocNos(outerLoc);
-//                if (!outerLocMasts.isEmpty()) {
-//                    News.info("{}浠诲姟锛屾祬搴撲綅瀛樺湪璐х墿锛岀郴缁熺瓑寰呬腑", wrkMast.getWrkNo());
-//                    continue;//娴呭簱浣嶅瓨鍦ㄦ湭鎵ц浠诲姟
-//                }
-
                 if (Cools.isEmpty(task.getShuttleNo())) {
                     //鍒嗛厤灏忚溅
                     //鎼滅储绌洪棽杞�
@@ -725,7 +712,7 @@
                 // generate motion list
                 List<Motion> motionList = analyzeService.generateMotion(task);
                 if (Cools.isEmpty(motionList)) {
-                    log.error("鍑哄簱 ===>> 鏆傛椂娌℃湁绌洪棽灏忚溅, 浠诲姟鍙�={}", task.getTaskNo());
+                    log.error("鍑哄簱 ===>> 浠诲姟瑙f瀽澶辫触, 浠诲姟鍙�={}", task.getTaskNo());
                     continue;
                 }
                 motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java
index 0012067..7f898b7 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java
@@ -102,10 +102,10 @@
                 if(task.getTaskSts().equals(TaskStsType.COMPLETE_INBOUND.sts)
                         || task.getTaskSts().equals(TaskStsType.COMPLETE_OUTBOUND.sts)
                         || task.getTaskSts().equals(TaskStsType.COMPLETE_LADEN_MOVE.sts)){
-                    boolean httpRequest = doHttpRequest(task, wmsUrl, "/open/asrs/wrkMast/finish/v1");
-                    if (!httpRequest) {
-                        continue;
-                    }
+//                    boolean httpRequest = doHttpRequest(task, wmsUrl, "/open/asrs/wrkMast/finish/v1");
+//                    if (!httpRequest) {
+//                        continue;
+//                    }
                 }
             }
 
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/LiftDispatcher.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/LiftDispatcher.java
index 3489ab7..c50a28b 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/LiftDispatcher.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/LiftDispatcher.java
@@ -216,7 +216,7 @@
             }
             List<BasLiftLevOffsetDto> levOffsetDtos = JSON.parseArray(basLift.getLevOffset(), BasLiftLevOffsetDto.class);
             for (BasLiftLevOffsetDto offsetDto : levOffsetDtos) {
-                if (lev == offsetDto.getLogicLev()) {
+                if (lev.equals(offsetDto.getLogicLev())) {
                     return offsetDto.getRealLev();
                 }
             }
@@ -232,7 +232,7 @@
             }
             List<BasLiftLevOffsetDto> levOffsetDtos = JSON.parseArray(basLift.getLevOffset(), BasLiftLevOffsetDto.class);
             for (BasLiftLevOffsetDto offsetDto : levOffsetDtos) {
-                if (lev == offsetDto.getRealLev()) {
+                if (lev.equals(offsetDto.getRealLev())) {
                     return offsetDto.getLogicLev();
                 }
             }
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java
index 4bc441c..f8964a1 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java
@@ -112,6 +112,10 @@
         }
 
         if (resThread != null) {
+            if (resThread.getStatus().getCurrentLocNo().equals(locNo)) {
+                return resThread.getDevice();
+            }
+
             Task result = generateMoveTask(resThread.getDevice(), locNo);
             if (result != null) {
                 return resThread.getDevice();
@@ -142,6 +146,10 @@
                 continue;
             }
 
+            if (shuttleProtocol.getCurrentLocNo() == null) {
+                continue;
+            }
+
             int shuttleLev = Utils.getLev(shuttleProtocol.getCurrentLocNo());
             if (shuttleLev == lev) {
                 currentLevDevices.add(device);

--
Gitblit v1.9.1