自动化立体仓库 - WCS系统
999
zhangc
9 天以前 7990946c72ea48638718cf638c1fb743b239f93e
src/main/java/com/zy/asrs/service/impl/NoLiftInServiceImpl.java
@@ -66,13 +66,13 @@
     * 从没有提升机侧入库,有两种情况,一种入库到同层,一种入库到不同层,则需要提升机
     * @param wrkMast
     */
    public void shuttleMoveExecute(WrkMast wrkMast) {
    public void shuttleMoveExecute(WrkMast wrkMast, Integer staNo) {
        boolean stepMoveSta = this.shuttleMoveExecuteTransportLiftStepCallShuttle(wrkMast);//小车迁移-呼叫小车至取货点
        if (!stepMoveSta) {
            return;
        }
        //判断目标库位是否在1层或5层
        if (Utils.getLev(wrkMast.getLocNo()) == 1 || Utils.getLev(wrkMast.getLocNo()) == 5) {
        if ((Utils.getLev(wrkMast.getSourceLocNo()) == 1 && staNo == 1015) || (Utils.getLev(wrkMast.getSourceLocNo()) == 5 && staNo == 1026)) {
            //直接入库
            boolean stepMoveLoc = this.shuttleMoveExecuteStepMoveLoc(wrkMast);//小车移动到目标库位中
            if (!stepMoveLoc) {
@@ -133,17 +133,18 @@
            if (devpThread == null) {
                return false;
            }
            StaProtocol staProtocol = devpThread.getStation().get(Utils.getLev(wrkMast.getSourceLocNo()) == 1 ? 1015 : 1026);
            if (!staProtocol.isLoading() || !staProtocol.isAutoing()) {
                log.info("{}任务,{}号输送线无物", wrkMast.getWrkNo(), wrkMast.getSourceStaNo());
                News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线无物", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
                return false;
            }
            WrkMast wrkMast1 = wrkMastService.selectByWorkNo(wrkMast.getMainWrkNo());
            if (wrkMast1 != null) {
                StaProtocol staProtocol = devpThread.getStation().get(wrkMast1.getStaNo());
                if (!staProtocol.isLoading() || !staProtocol.isAutoing()) {
                    News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线无物或非自动", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
                    return false;
                }
            if (!staProtocol.getFinishWorkNo().equals(wrkMast.getWrkNo())) {
                            log.info( "{}任务,{}号输送线的工作号和工作档不匹配", wrkMast.getWrkNo(), wrkMast.getSourceStaNo());
                News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线的工作号和工作档不匹配", wrkMast.getWrkNo(), wrkMast.getSourceStaNo());
                return false;
                if (staProtocol.getFinishWorkNo() != null && staProtocol.getFinishWorkNo().intValue() != wrkMast.getMainWrkNo()) {
                    News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线的工作号和工作档不匹配", wrkMast.getWrkNo(), wrkMast.getSourceStaNo());
                    return false;
                }
            }
            //小车处于空闲状态
            if (!shuttleThread.isIdle()) {
@@ -305,7 +306,7 @@
                }
                //判断提升机是否有其他任务(该任务需要换层必须提前独占提升机)
                WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(liftProtocol.getLiftNo(),wrkMast.getWrkNo(),wrkMast.getMainWrkNo());
                WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(liftProtocol.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo());
                if (liftWrkMast != null) {
                    if (liftWrkMast != null && !wrkMast.getMainWrkNo().equals(liftWrkMast.getWrkNo())) {
                        News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
@@ -333,7 +334,7 @@
            }
            //判断提升机是否有其他任务
            WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(liftProtocol.getLiftNo(),wrkMast.getWrkNo(),wrkMast.getMainWrkNo());
            WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(liftProtocol.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo());
            if (liftWrkMast != null) {
                if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//提升机任务和当前任务不相同
                    News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo());
@@ -439,7 +440,7 @@
            }
            //判断提升机是否有其他任务
            WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(liftProtocol.getLiftNo(),wrkMast.getWrkNo(),wrkMast.getMainWrkNo());
            WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(liftProtocol.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo());
            if (liftWrkMast != null) {
                if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//提升机任务和当前任务不相同
                    News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo());
@@ -541,7 +542,7 @@
            }
            //判断提升机是否有其他任务
            WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(liftProtocol.getLiftNo(),wrkMast.getWrkNo(),wrkMast.getMainWrkNo());
            WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(liftProtocol.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo());
            if (liftWrkMast != null) {
                if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//提升机任务和当前任务不相同
                    News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo());
@@ -632,7 +633,7 @@
            }
            //判断提升机是否有其他任务
            WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(1,wrkMast.getWrkNo(),wrkMast.getMainWrkNo());
            WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(1, wrkMast.getWrkNo(), wrkMast.getMainWrkNo());
            if (liftWrkMast != null) {
                if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//提升机任务和当前任务不相同
                    News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo());
@@ -837,12 +838,12 @@
            }
            StaProtocol staProtocol = devpThread.getStation().get(Utils.getLev(wrkMast.getSourceLocNo()) == 1 ? 1015 : 1026);
            if (!staProtocol.isLoading()) {
                log.error("{}任务,{}号输送线无物", wrkMast.getWrkNo(), wrkMast.getSourceStaNo());
                News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线无物", wrkMast.getWrkNo(), wrkMast.getSourceStaNo());
                //log.error("{}任务,{}号输送线无物", wrkMast.getWrkNo(), wrkMast.getSourceStaNo());
                News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线无物或非自动", wrkMast.getWrkNo(), wrkMast.getSourceStaNo());
                return false;
            }
            if (!staProtocol.getFinishWorkNo().equals(wrkMast.getWrkNo())) {
                log.error("{}任务,{}号输送线的工作号和工作档不匹配", wrkMast.getWrkNo(), wrkMast.getSourceStaNo());
            if (staProtocol.getFinishWorkNo() != null && staProtocol.getFinishWorkNo().intValue() != wrkMast.getMainWrkNo()) {
                //log.error("{}任务,{}号输送线的工作号和工作档不匹配", wrkMast.getWrkNo(), wrkMast.getSourceStaNo());
                News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线的工作号和工作档不匹配", wrkMast.getWrkNo(), wrkMast.getSourceStaNo());
                return false;
            }