999
zhangc
2025-04-20 6dea42fd8f806807982866c1821a66da725eabca
src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java
@@ -60,14 +60,16 @@
    @Autowired
    private LiftAction liftAction;
    @Autowired
    private MainServiceImpl mainService;
    /**
     * 从没有提升机侧出库,有两种情况,一种1,5库到同层,一种非1,5库到1,5,则需要提升机
     * @param wrkMast
     */
    public void shuttleMoveExecute(WrkMast wrkMast) {
    public void shuttleMoveExecute(WrkMast wrkMast, Integer staNo, Integer lev) {
        //判断目标库位是否在1层或5层
        if (Utils.getLev(wrkMast.getSourceLocNo()) == 1 || Utils.getLev(wrkMast.getSourceLocNo()) == 5) {
        if ((lev == 1 & staNo == 1013) || (lev == 5 && staNo == 1024)) {
            boolean stepMoveSta = this.shuttleMoveExecuteTransportLiftStepCallShuttle2(wrkMast);//呼叫小车至取货点
            if (!stepMoveSta) {
                return;
@@ -145,12 +147,11 @@
            WrkMast wrkMast1 = wrkMastService.selectByWorkNo(wrkMast.getMainWrkNo());
            if (wrkMast1 != null) {
                StaProtocol staProtocol2 = devpThread.getStation().get(wrkMast1.getStaNo());
                if (!staProtocol2.isOutEnable()) {
                if (!mainService.isOutEnable(devpThread, wrkMast1.getStaNo())) {
                    News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线不可出111", wrkMast.getWrkNo(), wrkMast1.getStaNo());
                    return false;
                }
                StaProtocol staProtocol = devpThread.getStation().get(wrkMast1.getStaNo() + 1);
                StaProtocol staProtocol = devpThread.getStation().get(wrkMast1.getStaNo() + 2);
                if (staProtocol.isLoading()) {
                    News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线有物111", wrkMast.getWrkNo(), wrkMast1.getStaNo() + 1);
                    return false;
@@ -396,42 +397,32 @@
            //获取四向穿梭车线程
            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
            if (shuttleThread == null) {
                News.info("{}任务,{}号小车,小车线程不存在,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo());
                News.info("{}任务,{}号小车,小车线程不存在,禁止派发", wrkMast.getWrkNo(), wrkMast.getShuttleNo());
                return false;
            }
            ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
            if (shuttleProtocol == null) {
                News.info("{}任务,{}号小车,小车对象不存在,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo());
                News.info("{}任务,{}号小车,小车对象不存在,禁止派发", wrkMast.getWrkNo(), wrkMast.getShuttleNo());
                return false;
            }
            if (wrkMast.getLiftNo() == null) {
                News.info("{}任务,未绑定提升机,禁止派发", wrkMast.getWrkNo());
                return false;
            }
            LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, wrkMast.getLiftNo());
            if (liftThread == null) {
                News.info("{}号提升机不存在", wrkMast.getLiftNo());
                return false;
            }
            LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, 1);
            LiftProtocol liftProtocol = liftThread.getStatus();
            if (liftProtocol == null) {
                News.info("{}号提升机对象不存在", wrkMast.getLiftNo());
                News.info("{}号提升机对象不存在", 1);
                return false;
            }
            //判断提升机是否有其他任务
            WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(wrkMast.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo());
            if (liftWrkMast != null) {
                News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo());
                News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), 1);
                return false;//当前提升机存在未完成任务,等待下一次轮询
            }
            if (!liftThread.isIdle()) {
                News.info("{}任务,{}号提升机,提升机忙碌中,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo());
                News.info("{}任务,{}号提升机,提升机忙碌中,禁止派发", wrkMast.getWrkNo(), 1);
                return false;
            }
@@ -831,12 +822,11 @@
            }
            WrkMast wrkMast1 = wrkMastService.selectByWorkNo(wrkMast.getMainWrkNo());
            if (wrkMast1 != null) {
                StaProtocol staProtocol2 = devpThread.getStation().get(wrkMast1.getStaNo());
                if (!staProtocol2.isOutEnable()) {
                if (!mainService.isOutEnable(devpThread, wrkMast1.getStaNo())) {
                    News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线不可出222", wrkMast.getWrkNo(), wrkMast1.getStaNo());
                    return false;
                }
                StaProtocol staProtocol = devpThread.getStation().get(wrkMast1.getStaNo() + 1);
                StaProtocol staProtocol = devpThread.getStation().get(wrkMast1.getStaNo() + 2);
                if (staProtocol.isLoading()) {
                    News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线有物222", wrkMast.getWrkNo(), wrkMast1.getStaNo());
                    return false;