#
Junjie
2024-09-21 e1b28ee09836787555448083bf9a6b59477ad330
#
2个文件已修改
45 ■■■■■ 已修改文件
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java
@@ -1,5 +1,6 @@
package com.zy.asrs.wcs.core.timer;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wcs.core.entity.Task;
import com.zy.asrs.wcs.core.kernel.command.*;
@@ -50,6 +51,14 @@
            if (executingMotion != null) {//存在正在执行的motion
                if (executingMotion.getSync() == 1) {//当前执行中的动作是同步动作,等待执行完成后再执行下一个动作
                    continue;
                }
                //异步动作,只允许下一条动作被执行
                Motion nextMotion = motionService.getOne(new LambdaQueryWrapper<Motion>().eq(Motion::getUuid, executingMotion.getUuid()).eq(Motion::getPriority, executingMotion.getPriority() - 1));
                if (nextMotion != null) {
                    if (!(nextMotion.getMotionSts() == MotionStsType.INIT.val() || nextMotion.getMotionSts() == MotionStsType.WAITING.val())) {
                        continue;//下一条动作已经被执行,不允许再执行后续动作
                    }
                }
            }
@@ -117,6 +126,14 @@
                if (executingMotion.getSync() == 1) {//当前执行中的动作是同步动作,等待执行完成后再执行下一个动作
                    continue;
                }
                //异步动作,只允许下一条动作被执行
                Motion nextMotion = motionService.getOne(new LambdaQueryWrapper<Motion>().eq(Motion::getUuid, executingMotion.getUuid()).eq(Motion::getPriority, executingMotion.getPriority() - 1));
                if (nextMotion != null) {
                    if (!(nextMotion.getMotionSts() == MotionStsType.INIT.val() || nextMotion.getMotionSts() == MotionStsType.WAITING.val())) {
                        continue;//下一条动作已经被执行,不允许再执行后续动作
                    }
                }
            }
            Motion motion = motionService.selectOfTop1(taskCharge.getUuid(), MotionStsType.INIT.val(), taskCharge.getHostId());
@@ -182,6 +199,14 @@
                if (executingMotion.getSync() == 1) {//当前执行中的动作是同步动作,等待执行完成后再执行下一个动作
                    continue;
                }
                //异步动作,只允许下一条动作被执行
                Motion nextMotion = motionService.getOne(new LambdaQueryWrapper<Motion>().eq(Motion::getUuid, executingMotion.getUuid()).eq(Motion::getPriority, executingMotion.getPriority() - 1));
                if (nextMotion != null) {
                    if (!(nextMotion.getMotionSts() == MotionStsType.INIT.val() || nextMotion.getMotionSts() == MotionStsType.WAITING.val())) {
                        continue;//下一条动作已经被执行,不允许再执行后续动作
                    }
                }
            }
            Motion motion = motionService.selectOfTop1(taskCharge.getUuid(), MotionStsType.INIT.val(), taskCharge.getHostId());
@@ -241,6 +266,14 @@
                if (executingMotion.getSync() == 1) {//当前执行中的动作是同步动作,等待执行完成后再执行下一个动作
                    continue;
                }
                //异步动作,只允许下一条动作被执行
                Motion nextMotion = motionService.getOne(new LambdaQueryWrapper<Motion>().eq(Motion::getUuid, executingMotion.getUuid()).eq(Motion::getPriority, executingMotion.getPriority() - 1));
                if (nextMotion != null) {
                    if (!(nextMotion.getMotionSts() == MotionStsType.INIT.val() || nextMotion.getMotionSts() == MotionStsType.WAITING.val())) {
                        continue;//下一条动作已经被执行,不允许再执行后续动作
                    }
                }
            }
            Motion motion = motionService.selectOfTop1(task.getUuid(), MotionStsType.INIT.val(), task.getHostId());
@@ -300,6 +333,14 @@
                if (executingMotion.getSync() == 1) {//当前执行中的动作是同步动作,等待执行完成后再执行下一个动作
                    continue;
                }
                //异步动作,只允许下一条动作被执行
                Motion nextMotion = motionService.getOne(new LambdaQueryWrapper<Motion>().eq(Motion::getUuid, executingMotion.getUuid()).eq(Motion::getPriority, executingMotion.getPriority() - 1));
                if (nextMotion != null) {
                    if (!(nextMotion.getMotionSts() == MotionStsType.INIT.val() || nextMotion.getMotionSts() == MotionStsType.WAITING.val())) {
                        continue;//下一条动作已经被执行,不允许再执行后续动作
                    }
                }
            }
            Motion motion = motionService.selectOfTop1(task.getUuid(), MotionStsType.INIT.val(), task.getHostId());
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java
@@ -646,6 +646,10 @@
            case SHUTTLE_MOVE_DOWN_PALLET://穿梭车移动并托盘下降
            case SHUTTLE_MOVE_FROM_LIFT://出提升机
            case SHUTTLE_MOVE_TO_LIFT://进提升机
            case SHUTTLE_PALLET_LIFT://托盘顶升
            case SHUTTLE_PALLET_DOWN://托盘下降
            case SHUTTLE_CHARGE_ON://充电开
            case SHUTTLE_CHARGE_OFF://充电关
                return deviceTaskNo;
            default:
                return taskNo;