#
zjj
2024-07-10 c13fe87d70e81d7dcb604f8f1227de8f313cbefc
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayLiftThread.java
@@ -92,8 +92,13 @@
                //----------读取提升机状态-----------
                //模式
                liftProtocol.setModel(true);
                boolean runningState = data.getInteger("runningState") == 1;
                if (!data.getInteger("completeTaskNo").equals(data.getInteger("taskNo"))) {
                    runningState = true;//工作号不一致,认为处于运行中
                }
                //运行状态
                liftProtocol.setRun(data.getInteger("runningState") == 1);
                liftProtocol.setRun(runningState);
                //就绪状态
                liftProtocol.setReady(data.getInteger("readyState") == 1);
                //有托盘
@@ -104,6 +109,8 @@
                liftProtocol.setErrorCode("0");
                //层
                liftProtocol.setLev(data.getInteger("curFloor"));
                //已完成的任务号
                liftProtocol.setCompleteTaskNo(data.getString("completeTaskNo"));
                //************补充扩展字段*************
@@ -381,7 +388,11 @@
        switch (Objects.requireNonNull(MotionCtgType.get(String.valueOf(flag)))){
            case SHUTTLE_MOVE_FROM_LIFT://穿梭车出提升机
            case SHUTTLE_MOVE_TO_LIFT://穿梭车进提升机
            case LIFT_SHUTTLE_ARRIVAL://提升机解锁
                return isIdleShuttleMoveToLift();
            case LIFT_LOCK://提升机锁定
            case LIFT_UNLOCK://提升机解锁
                return isIdleLiftLock();
        }
        return false;
@@ -409,6 +420,21 @@
        return false;
    }
    //提升机锁定-提升机状态判断
    private boolean isIdleLiftLock() {
        // 判断提升机是否自动、就绪、空闲
        if (this.liftProtocol.getModel()
                && !this.liftProtocol.getRun()
                && this.liftProtocol.getPakMk()
                && this.liftProtocol.getErrorCode().equals("0")
                && (this.liftProtocol.getProtocolStatusType().equals(LiftProtocolStatusType.IDLE)
                || this.liftProtocol.getProtocolStatusType().equals(LiftProtocolStatusType.WAITING))
        ) {
            return true;
        }
        return false;
    }
    @Override
    public boolean isDeviceIdle() {
        return isDeviceIdle(null);