#
zjj
2024-06-21 9372f61dcb41eeb2e09871caefce0f764d6ab021
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java
@@ -52,11 +52,6 @@
            return false;
        }
        //判断提升机是否自动
        if (!liftThread.isIdle()) {
            return false;
        }
        if (motionService.count(new LambdaQueryWrapper<Motion>()
                .eq(Motion::getDeviceCtg, DeviceCtgType.LIFT.val())
                .eq(Motion::getDevice, motion.getDevice())
@@ -83,6 +78,11 @@
        List<LiftCommand> command = new ArrayList<>();
        switch (Objects.requireNonNull(MotionCtgType.get(motion.getMotionCtgEl()))){
            case LIFT_MOVE:
                //判断提升机是否自动
                if (!liftThread.isIdle()) {
                    return false;
                }
                // 如果已经在目标层,那边层过滤
                if (liftProtocol.getLev().equals(Integer.valueOf(motion.getTarget()))) {
                    liftThread.setSyncTaskNo(motion.getTaskNo());
@@ -93,6 +93,10 @@
                list.addAll(command);
                return liftAction.assignWork(liftThread.getDevice(), assignCommand);
            case LIFT_WITH_GOODS:
                //判断提升机是否自动
                if (!liftThread.isIdle()) {
                    return false;
                }
//                if (liftProtocol.getHasTray()) {
//                    return false;
//                }
@@ -101,6 +105,11 @@
                list.addAll(command);
                return liftAction.assignWork(liftThread.getDevice(), assignCommand);
            case LIFT_WITH_SHUTTLE:
                //判断提升机是否自动
                if (!liftThread.isIdle()) {
                    return false;
                }
                if (!liftProtocol.getHasCar()) {
                    return false;
                }
@@ -109,30 +118,46 @@
                list.addAll(command);
                return liftAction.assignWork(liftThread.getDevice(), assignCommand);
            case LIFT_WITH_GOODS_AND_SHUTTLE:
                //判断提升机是否自动
                if (!liftThread.isIdle()) {
                    return false;
                }
                return false;
//                if (!liftProtocol.getPlatShuttleCheck()) {
//                    return false;
//                }
//
//                command = liftThread.getLiftUpDownCommand(Integer.parseInt(motion.getTarget()));
//                command.setLiftNo(deviceNo.shortValue());
//                command.setTaskNo(motion.getWrkNo().shortValue());
//                return liftThread.assignWork(command);
            case LIFT_TRANSPORT_TO_CONVEYOR:
                return false;
            case LIFT_LOCK:
                //锁定提升机
                //判断提升机是否自动
                if (!liftThread.isIdle(MotionCtgType.LIFT_LOCK)) {
                    return false;
                }
                command = liftThread.getLockCommand(motion.getTaskNo(), true);//获取提升机锁定命令
                list.addAll(command);
                return liftAction.assignWork(liftThread.getDevice(), assignCommand);
            case LIFT_UNLOCK:
                //锁定提升机
                //解锁提升机
                //判断提升机是否自动
                if (!liftThread.isIdle(MotionCtgType.LIFT_UNLOCK)) {
                    return false;
                }
                command = liftThread.getLockCommand(motion.getTaskNo(), false);//获取提升机解定命令
                list.addAll(command);
                return liftAction.assignWork(liftThread.getDevice(), assignCommand);
            case LIFT_SHUTTLE_ARRIVAL:
                //提升机-小车已到位
                //判断提升机是否自动
                if (!liftThread.isIdle(MotionCtgType.LIFT_SHUTTLE_ARRIVAL)) {
                    return false;
                }
                command = liftThread.getShuttleSignalCommand(motion.getTaskNo(), true);//获取小车已到位命令
                list.addAll(command);
                return liftAction.assignWork(liftThread.getDevice(), assignCommand);
            default:
                break;
        }
        return Boolean.TRUE;
@@ -223,6 +248,9 @@
                    return false;
                }
                break;
            case LIFT_SHUTTLE_ARRIVAL:
                break;
            default:
                return false;
        }