From 1e9099671ba9f4f7a3a4481a67261fbdd62482bc Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期六, 22 六月 2024 14:18:08 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java                 |   24 ++-
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ConveyorCommandService.java |  322 ++++++----------------------------------------
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java             |   71 ++++++++++
 3 files changed, 128 insertions(+), 289 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java
index 892c241..0dfc21b 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java
@@ -16,6 +16,7 @@
 import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
 import com.zy.asrs.wcs.rcs.entity.Device;
 import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
+import com.zy.asrs.wcs.rcs.model.enums.WorkModeType;
 import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
 import com.zy.asrs.wcs.rcs.service.DeviceService;
 import com.zy.asrs.wcs.rcs.thread.DevpThread;
@@ -58,6 +59,8 @@
     private BasLiftService basLiftService;
     @Autowired
     private BasConveyorService basConveyorService;
+    @Autowired
+    private BasConveyorStaService basConveyorStaService;
 
     //鐢熸垚鍏ュ簱浠诲姟
     @PostMapping("/createInTask")
@@ -108,6 +111,40 @@
                 return R.error("鍐呯疆璺緞涓嶅瓨鍦�");
             }
             destSite = String.valueOf(path.getDeviceStn());
+        }
+
+        //鍒ゆ柇鍑哄叆搴撴ā寮�
+        BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>()
+                .eq(BasConveyorSta::getSiteNo, destSite));
+        if (!basConveyorSta.getWorkMode().equals((int) WorkModeType.PAKIN_MODE.id)) {
+            //涓嶆槸鍏ュ簱妯″紡锛屾娴嬫槸鍚﹀彲鍒囨崲鍏ュ簱
+            //鑾峰彇鍑哄簱浠诲姟绫诲瀷
+            TaskCtg taskInCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
+                    .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.OUT))
+                    .eq(TaskCtg::getStatus, 1));
+            if (taskInCtg == null) {
+                return R.error("浠诲姟绫诲瀷寮傚父");
+            }
+            List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
+                    .eq(Task::getTaskCtg, taskInCtg.getId()));
+            if (!tasks.isEmpty()) {
+                return R.error("褰撳墠瀛樺湪鍑哄簱浠诲姟锛屾棤娉曞垏鎹㈠叆搴撴ā寮�");
+            }
+
+            BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>().eq(BasConveyor::getConveyorNo, basConveyorSta.getConveyorNo()));
+            if(basConveyor == null) {
+                return R.error("杈撻�佺嚎涓嶅瓨鍦�");
+            }
+
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue());
+            if(devpThread == null) {
+                return R.error("杈撻�佺嚎绾跨▼涓嶅瓨鍦�");
+            }
+
+            boolean result = devpThread.switchWorkMode(Integer.parseInt(destSite), WorkModeType.PAKIN_MODE.id);
+            if (!result) {
+                return R.error("妯″紡鍒囨崲澶辫触");
+            }
         }
 
         //浼樺厛绾�
@@ -211,6 +248,40 @@
             originSite = String.valueOf(originStaDto.getStaNo());
         }
 
+        //鍒ゆ柇鍑哄叆搴撴ā寮�
+        BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>()
+                .eq(BasConveyorSta::getSiteNo, originSite));
+        if (!basConveyorSta.getWorkMode().equals((int) WorkModeType.PAKOUT_MODE.id)) {
+            //涓嶆槸鍑哄簱妯″紡锛屾娴嬫槸鍚﹀彲鍒囨崲鍑哄簱
+            //鑾峰彇鍏ュ簱浠诲姟绫诲瀷
+            TaskCtg taskInCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
+                    .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.IN))
+                    .eq(TaskCtg::getStatus, 1));
+            if (taskInCtg == null) {
+                return R.error("浠诲姟绫诲瀷寮傚父");
+            }
+            List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
+                    .eq(Task::getTaskCtg, taskInCtg.getId()));
+            if (!tasks.isEmpty()) {
+                return R.error("褰撳墠瀛樺湪鍏ュ簱浠诲姟锛屾棤娉曞垏鎹㈠嚭搴撴ā寮�");
+            }
+
+            BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>().eq(BasConveyor::getConveyorNo, basConveyorSta.getConveyorNo()));
+            if(basConveyor == null) {
+                return R.error("杈撻�佺嚎涓嶅瓨鍦�");
+            }
+
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue());
+            if(devpThread == null) {
+                return R.error("杈撻�佺嚎绾跨▼涓嶅瓨鍦�");
+            }
+
+            boolean result = devpThread.switchWorkMode(Integer.parseInt(originSite), WorkModeType.PAKOUT_MODE.id);
+            if (!result) {
+                return R.error("妯″紡鍒囨崲澶辫触");
+            }
+        }
+
         //浼樺厛绾�
         Integer priority = 10;
         if (param.getPriority() != null) {
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 43aae13..f3d9b42 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
@@ -2,27 +2,23 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.common.R;
 import com.zy.asrs.wcs.core.domain.dto.MotionDto;
-import com.zy.asrs.wcs.core.entity.BasConveyorPath;
-import com.zy.asrs.wcs.core.entity.ShuttleStandby;
-import com.zy.asrs.wcs.core.entity.Task;
+import com.zy.asrs.wcs.core.entity.*;
 import com.zy.asrs.wcs.core.model.enums.DeviceCtgType;
 import com.zy.asrs.wcs.core.model.enums.MotionCtgType;
+import com.zy.asrs.wcs.core.model.enums.TaskCtgType;
 import com.zy.asrs.wcs.core.model.enums.TaskStsType;
-import com.zy.asrs.wcs.core.service.BasConveyorPathService;
-import com.zy.asrs.wcs.core.service.ShuttleStandbyService;
-import com.zy.asrs.wcs.core.service.TaskService;
+import com.zy.asrs.wcs.core.service.*;
 import com.zy.asrs.wcs.core.utils.ConveyorDispatcher;
 import com.zy.asrs.wcs.core.utils.LiftDispatcher;
 import com.zy.asrs.wcs.core.utils.ShuttleDispatcher;
 import com.zy.asrs.wcs.core.utils.Utils;
 import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
-import com.zy.asrs.wcs.core.entity.Motion;
 import com.zy.asrs.wcs.rcs.entity.Device;
 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.ShuttleProtocol;
-import com.zy.asrs.wcs.core.service.MotionService;
 import com.zy.asrs.wcs.rcs.service.DeviceService;
 import com.zy.asrs.wcs.rcs.thread.LiftThread;
 import com.zy.asrs.wcs.rcs.thread.ShuttleThread;
@@ -57,6 +53,8 @@
     private ShuttleStandbyService shuttleStandbyService;
     @Autowired
     private BasConveyorPathService basConveyorPathService;
+    @Autowired
+    private TaskCtgService taskCtgService;
 
     public List<Motion> generateMotion(Task task) {
         List<Motion> motionList = new ArrayList<>();
@@ -496,10 +494,18 @@
             //绌挎杞﹀嚭鎻愬崌鏈哄悗灏忚溅寰呮満浣�
             String shuttleFromLiftStandbyLoc = shuttleStandbyFrom.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::getDeviceNo, liftProtocol.getLiftNo())
+                    .eq(BasConveyorPath::getTypeNo, taskCtg.getId()));
             if (basConveyorPath == null) {
                 return motionList;
             }
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ConveyorCommandService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ConveyorCommandService.java
index 13fd2bd..fa26255 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ConveyorCommandService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ConveyorCommandService.java
@@ -1,10 +1,16 @@
 package com.zy.asrs.wcs.core.kernel.command;
 
 import com.zy.asrs.wcs.core.entity.Motion;
+import com.zy.asrs.wcs.core.model.enums.MotionCtgType;
 import com.zy.asrs.wcs.core.utils.ConveyorDispatcher;
+import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
+import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
+import com.zy.asrs.wcs.rcs.thread.DevpThread;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.Objects;
 
 /**
  * Created by vincent on 2023/10/23
@@ -17,290 +23,46 @@
     private ConveyorDispatcher conveyorDispatcher;
 
     public Boolean accept(Motion motion) {
-//        Integer deviceNo = Integer.parseInt(motion.getDevice());
-//        SiemensDevpThread devpThread;
-//        StaProtocol staProtocol;
-//        BasDevp staDetl;
-//        StaProtocol clone;
-//        SiemensLiftThread liftThread;
-//        LiftProtocol liftProtocol;
-//        switch (Objects.requireNonNull(MotionCtgType.get(motion.getMotionCtgEl()))){
-//            // 杈撻�佺嚎鎸囦护涓嬪彂
-//            case CONVEYOR_INBOUND:
-//                devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, deviceNo);
-//
-//                staProtocol = devpThread.getStation().get(Integer.parseInt(motion.getOrigin()));
-//                if (staProtocol == null) {
-//                    return false;
-//                }
-//                // 鏌ヨ绔欑偣璇︾粏淇℃伅
-//                staDetl = basDevpService.selectById(staProtocol.getSiteId());
-//                if (staDetl == null || Cools.isEmpty(staDetl.getCanining()) || !"Y".equals(staDetl.getCanining())) {
-//                    News.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", staProtocol.getSiteId());
-//                    return false;
-//                }
-//                if (!staProtocol.isAutoing()
-//                        || !staProtocol.isLoading()
-//                        || !staProtocol.isInEnable()
-//                        || !(staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() < 9990)) {
-//                    return false;
-//                }
-//
-//                if (!staProtocol.getWorkNo().equals(motion.getWrkNo().shortValue())) {
-//                    return false;
-//                }
-//
-//                clone = staProtocol.clone();
-//
-//                clone.setWorkNo(motion.getWrkNo().shortValue());
-//                clone.setStaNo(Short.parseShort(motion.getTarget()));
-//
-//                devpThread.setPakMk(staProtocol.getSiteId(), false);
-//
-//                return MessageQueue.offer(SlaveType.Devp, deviceNo, new Task(2, clone));
-//
-//            case CONVEYOR_INBOUND_TO_LIFT:
-//                // 杈撻�佺嚎 -----------------------------------------------
-//                devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, deviceNo);
-//
-//                staProtocol = devpThread.getStation().get(Integer.parseInt(motion.getOrigin()));
-//                if (staProtocol == null) {
-//                    return false;
-//                }
-//                // 鏌ヨ绔欑偣璇︾粏淇℃伅
-//                staDetl = basDevpService.selectById(staProtocol.getSiteId());
-//                if (staDetl == null || Cools.isEmpty(staDetl.getCanining()) || !"Y".equals(staDetl.getCanining())) {
-//                    News.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", staProtocol.getSiteId());
-//                    return false;
-//                }
-//                if (!staProtocol.isAutoing()
-//                        || !staProtocol.isLoading()
-////                        || !staProtocol.isInEnable()
-//                        || (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() < 9991)
-//                        || !staProtocol.isPakMk()) {
-//                    return false;
-//                }
-//
-//                // 鎻愬崌鏈哄垽鏂� -----------------------------------------------
-//                liftThread = (SiemensLiftThread) SlaveConnection.get(SlaveType.Lift, Integer.parseInt(motion.getDockNo()));
-//                liftProtocol = liftThread.getLiftProtocol();
-//                if (null == liftProtocol) {
-//                    return false;
-//                }
-//                DevpSlave.Sta inSta = devpThread.getSlave().queryInSta(staProtocol.getSiteId());
-//                if (!(liftProtocol.getMode()
-//                        || liftProtocol.getReady()
-//                        || !liftProtocol.getRunning()
-//                        || !liftProtocol.getLev().equals(Short.parseShort(motion.getTarget())))) {
-//                    return false;
-//                }
-//
-//                // 涓嬪彂鍛戒护 -----------------------------------------------
-//
-//                // 1.椹卞姩鎻愬崌鏈虹數鏈�
-//                LiftCommand liftCommand = new LiftCommand();
-//
-//                LiftInteractiveModeType liftInteractiveModeType = null;
-//                switch (Integer.parseInt(motion.getOrigin())) {
-//                    case 2:
-//                        liftInteractiveModeType = LiftInteractiveModeType.ENGINE_EMPTY_TURN;
-//                        break;
-//                    case 7:
-//                        liftInteractiveModeType = LiftInteractiveModeType.ENGINE_EMPTY_TURN;
-//                        break;
-//                    case 9:
-//                    case 10:
-//                    case 11:
-//                        liftInteractiveModeType = LiftInteractiveModeType.ENGINE_EMPTY_TURN;
-//                        break;
-//                    default:
-//                        break;
-//                }
-//
-//                if (liftInteractiveModeType == null) {
-//                    return false;
-//                }
-//                liftCommand = liftThread.getLiftTurnCommand(liftInteractiveModeType.id);
-//                liftCommand.setLiftNo(liftProtocol.getLiftNo());
-//                liftCommand.setTaskNo(motion.getWrkNo().shortValue());
-//                if (!liftThread.assignWork(liftCommand)) {
-//                    return false;
-//                }
-//
-//                try {
-//                    Thread.sleep(1000);
-//                } catch (Exception e) {
-//                    e.printStackTrace();
-//                }
-//
-//                // 2.涓嬪彂杈撻�佺嚎浠诲姟
-//                clone = staProtocol.clone();
-//                // 鍒ゆ柇鏄惁瀛樺湪鎻愬崌鏈轰唬鐞嗙珯鐐�
-//                ConveyorProxyType conveyorProxyType = ConveyorProxyType.queryByLift(Integer.parseInt(motion.getDockNo()), true);
-//                clone.setWorkNo(motion.getWrkNo().shortValue());
-//                clone.setStaNo(conveyorProxyType.liftProxyStaNo.shortValue());
-//                devpThread.setPakMk(staProtocol.getSiteId(), false);
-//                return MessageQueue.offer(SlaveType.Devp, deviceNo, new Task(2, clone));
-//
-//            case CONVEYOR_OUTBOUND:
-//                devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, deviceNo);
-//
-//                staProtocol = devpThread.getStation().get(Integer.parseInt(motion.getOrigin()));
-//                if (staProtocol == null) {
-//                    return false;
-//                }
-//                if (!staProtocol.isAutoing()
-//                        || !staProtocol.isLoading()
-//                        || staProtocol.getWorkNo() != 0
-//                        || !staProtocol.isPakMk()) {
-//                    return false;
-//                }
-//
-//                // 涓嬪彂鍛戒护 -----------------------------------------------
-//                clone = staProtocol.clone();
-//                clone.setWorkNo(motion.getWrkNo().shortValue());
-//                clone.setStaNo(Short.parseShort(motion.getTarget()));
-//
-//                devpThread.setPakMk(clone.getSiteId(), false);
-//
-//                return MessageQueue.offer(SlaveType.Devp, deviceNo, new Task(2, clone));
-//
-////            case CONVEYOR_OUTBOUND_FROM_LIFT:
-////                Integer liftNo = Integer.parseInt(motion.getDockNo());
-////
-////                LiftNeighborType.query(liftNo, )
-////
-////                // 杈撻�佺嚎 -----------------------------------------------
-////                devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, deviceNo);
-////
-////                staProtocol = devpThread.getStation().get(Integer.parseInt(motion.getTarget()));
-////                if (staProtocol == null) {
-////                    return false;
-////                }
-////                // 鏌ヨ绔欑偣璇︾粏淇℃伅
-////                staDetl = basDevpService.selectById(staProtocol.getSiteId());
-////                if (staDetl == null || Cools.isEmpty(staDetl.getCanouting()) || !"Y".equals(staDetl.getCanouting())) {
-////                    News.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", staProtocol.getSiteId());
-////                    return false;
-////                }
-////                if (!staProtocol.isAutoing()
-////                        || !staProtocol.isLoading()
-////                        || !staProtocol.isInEnable()
-////                        || !(staProtocol.getWorkNo() >= 9991 && staProtocol.getWorkNo() <= 9999)) {
-////                    return false;
-////                }
-////                if (!staProtocol.getWorkNo().equals(motion.getWrkNo().shortValue())) {
-////                    return false;
-////                }
-////
-////                // 鎻愬崌鏈哄垽鏂� -----------------------------------------------
-////                liftThread = (SiemensLiftThread) SlaveConnection.get(SlaveType.Lift, liftNo);
-////                liftProtocol = liftThread.getLiftProtocol();
-////                if (null == liftProtocol) {
-////                    return false;
-////                }
-////                DevpSlave.Sta inSta = devpThread.getSlave().queryOutSta(staProtocol.getSiteId());
-////                if (liftProtocol.getMode() != 1
-////                        || liftProtocol.getAlarm() != 2
-////                        || liftProtocol.getLoadingByGoods() != 1
-////                        || liftProtocol.getPos() != inSta.getLiftLev().shortValue()) {
-////                    return false;
-////                }
-//
-//
-//            default:
-//                break;
-//        }
+        Integer deviceNo = Integer.parseInt(motion.getDevice());
+        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, deviceNo);
+        if (devpThread == null) {
+            return false;
+        }
+
+        switch (Objects.requireNonNull(MotionCtgType.get(motion.getMotionCtgEl()))){
+            // 杈撻�佺嚎鎸囦护涓嬪彂
+            case CONVEYOR_INBOUND://杈撻�佺嚎鍏ュ簱
+                break;
+            case CONVEYOR_INBOUND_TO_LIFT://杈撻�佺嚎鍏ュ簱鑷虫彁鍗囨満
+                break;
+            case CONVEYOR_OUTBOUND://杈撻�佺嚎鍑哄簱
+                boolean result = devpThread.writeWorkSta(Integer.parseInt(motion.getOrigin()), motion.getTaskNo().shortValue(), Short.parseShort(motion.getTarget()));
+                if (!result) {
+                    return false;
+                }
+                break;
+            default:
+                break;
+        }
         return Boolean.TRUE;
     }
 
     public Boolean finish(Motion motion) {
-//        Integer deviceNo = Integer.parseInt(motion.getDevice());
-//        SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, deviceNo);
-//        StaProtocol staProtocol;
-//        switch (Objects.requireNonNull(MotionCtgType.get(motion.getMotionCtgEl()))){
-//            case CONVEYOR_INBOUND:
-//                staProtocol = devpThread.getStation().get(Integer.parseInt(motion.getTarget()));
-//                if (staProtocol == null) {
-//                    return false;
-//                }
-//                if (!staProtocol.isAutoing() || !staProtocol.isLoading() || !(staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() < 9990)) {
-//                    return false;
-//                }
-//                if (!staProtocol.getWorkNo().equals(motion.getWrkNo().shortValue())) {
-//                    return false;
-//                }
-//                break;
-//            case CONVEYOR_OUTBOUND:
-//                // todo:luxiaotao 鍑哄簱鍒扮洰鏍囩珯鏄惁闇�瑕佽窡韪�
-////                staProtocol = devpThread.getStation().get(Integer.parseInt(motion.getTarget()));
-////                if (staProtocol == null) {
-////                    return false;
-////                }
-////                if (!staProtocol.isAutoing() || !staProtocol.isLoading() || !(staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() < 9990)) {
-////                    return false;
-////                }
-////                if (!staProtocol.getWorkNo().equals(motion.getWrkNo().shortValue())) {
-////                    return false;
-////                }
-//                break;
-//            case CONVEYOR_INBOUND_TO_LIFT:
-//                // 鍒ゆ柇鎻愬崌鏈虹姸鎬�
-//                SiemensLiftThread liftThread = (SiemensLiftThread) SlaveConnection.get(SlaveType.Lift, Integer.parseInt(motion.getDockNo()));
-//                LiftProtocol liftProtocol = liftThread.getLiftProtocol();
-//                if (null == liftProtocol) {
-//                    return false;
-//                }
-//
-//                DevpSlave.Sta inSta = devpThread.getSlave().queryInSta(Integer.parseInt(motion.getOrigin()));
-//                if (!(liftProtocol.getMode()
-//                        || liftProtocol.getReady()
-//                        || !liftProtocol.getRunning()
-//                        || liftProtocol.getLev() != Short.parseShort(motion.getTarget()))) {
-//                    return false;
-//                }
-//
-//                //璐х墿宸茬粡杩涘叆鎻愬崌鏈�
-//                if (!(liftProtocol.getLineFrontHasStock() && liftProtocol.getLineEndHasStock())) {
-//                    return false;
-//                }
-//
-//                //娓呯┖鎻愬崌鏈哄伐浣滃彿
-//                if (liftProtocol.getTaskNo().intValue() == motion.getWrkNo()) {
-//                    liftThread.setTaskNo(0);
-//                }
-//
-//                // 鍒ゆ柇杈撻�佺嚎鐘舵��
-//                int originSta = Integer.parseInt(motion.getOrigin());
-//                if (originSta == 6) {
-//                    originSta = 7;
-//                }
-//                staProtocol = devpThread.getStation().get(originSta);
-//
-//                // 鍋滄杈撻�佺嚎鐢垫満
-//                int times = 0;boolean staProtocolMotorRes = false;
-//                while (times < 5) {
-//                    if (staProtocol.getStaMotorType().equals(StaMotorType.STANDBY)) {
-//                        staProtocolMotorRes = true;
-//                        break;
-//                    }
-//                    if (!devpThread.controlMotor(originSta, StaMotorType.REQ_STOP)) {
-//                        continue;
-//                    }
-//                    try {
-//                        Thread.sleep(500);
-//                    } catch (InterruptedException ignore) {}
-//                    times++;
-//                }
-//                if (!staProtocolMotorRes) {
-//                    return false;
-//                }
-//
-//                break;
-//            default:
-//                break;
-//        }
-
+        Integer deviceNo = Integer.parseInt(motion.getDevice());
+        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, deviceNo);
+        if (devpThread == null) {
+            return false;
+        }
+        switch (Objects.requireNonNull(MotionCtgType.get(motion.getMotionCtgEl()))){
+            case CONVEYOR_INBOUND:
+                break;
+            case CONVEYOR_OUTBOUND:
+                break;
+            case CONVEYOR_INBOUND_TO_LIFT:
+                break;
+            default:
+                break;
+        }
         return true;
     }
 

--
Gitblit v1.9.1