#1
czkh
7 天以前 511d4ceb774ce6ccc1827545a205ba55a0ff26c0
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -60,7 +60,6 @@
 */
@Slf4j
@Service("mainService")
@Transactional
public class MainServiceImpl {
    public static final long COMMAND_TIMEOUT = 5 * 1000;
@@ -864,7 +863,14 @@
//            }
            // 只有当堆垛机空闲 并且 无任务时才继续执行
            if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getModeType() == CrnModeType.AUTO && crnProtocol.getForkPos() == 0 && crnProtocol.getTaskNo() == 0 && crnProtocol.getTaskNoTwo() == 0) {
            if (
                    crnProtocol.getStatusType() == CrnStatusType.IDLE
                    && crnProtocol.getModeType() == CrnModeType.AUTO
                    && crnProtocol.getForkPos() == 0
                    && crnProtocol.getTaskNo() == 0
                    && crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE
                    && crnProtocol.getForkPosTwo() == 0
                    && crnProtocol.getTaskNoTwo() == 0) {
                News.warnNoLog("" + mark + " - 0" + " - 开始执行堆垛机入出库作业下发");
                if (crnProtocol.getLoaded() == 0 && crnProtocol.getLoadedTwo() == 0) {
                    //News.error("工位1无物,工位2无物");
@@ -1206,6 +1212,15 @@
                if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("P")) {
                    News.error("" + mark + " - 2" + " - 2" + " - 出库操作库位状态不符合--状态, 库位号={},库位状态={}", wrkMast.getLocNo(), sourceSta.getLocSts());
                    continue;
                }
                //获取浅库位信息
                if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
                    String shallowLoc1 = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
                    LocMast locMast = locMastService.selectById(shallowLoc1);
                    if (shallowLoc1 != null && (locMast.getLocSts().equals("P") || locMast.getLocSts().equals("Q") || locMast.getLocSts().equals("R") || locMast.getLocSts().equals("S"))) {
                        News.error(wrkMast.getSourceLocNo() + "对应的浅库位为P/Q/R/S,暂时不出深库位");
                        continue;
                    }
                }
                // 获取堆垛机出库站信息
                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
@@ -2006,11 +2021,6 @@
            return;
        }
        // 堆垛机控制过滤
        if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
            return;
        }
        // 已经存在吊车执行任务时,则过滤
        if (wrkMastMapper.selectWorking(slave.getId()) != null) {
            return;
@@ -2042,7 +2052,20 @@
            }
        }
        if (crnStation == 0) {
            return;
        }else if(crnStation == 1) {
            // 堆垛机控制过滤
            if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
                return;
            }
        }else if(crnStation == 2) {
            // 堆垛机控制过滤
            if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) {
                return;
            }
        }else {
            }
        News.warnNoLog("" + mark + " - 3" + " - 3" + " - 命令下发 : 工作号={},源排={},源列={},源层={},目标排={},目标列={},目标层={}", wrkMast.getWrkNo().shortValue(), sourceSta.getRow1().shortValue(), sourceSta.getBay1().shortValue(), sourceSta.getLev1().shortValue(), sta.getRow1().shortValue(), sta.getBay1().shortValue(), sta.getLev1().shortValue());
@@ -2093,16 +2116,21 @@
            }
            //  状态:等待确认 并且  任务完成位 = 1
            if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
                if ((System.currentTimeMillis() - crnProtocol.getLastCommandTime()) < 1000 * 60) {
                if (crnProtocol.getTaskNo() == 9999) {
                    crnThread.setResetFlag(true);
                    continue;
                }
                if ((System.currentTimeMillis() - crnProtocol.getLastCommandTime()) < 1000 * 6) {
                    News.error("" + mark + " - 0" + " - 堆垛机指令等待确认完成过快异常,任务号:" + crnProtocol.getTaskNo());
                    continue;
                }
                News.warnNoLog("" + mark + " - 0" + " - 开始执行对工作档的完成操作,任务号:" + crnProtocol.getTaskNo());
                if (crnProtocol.getTaskNo() == 9999) {
                    crnThread.setResetFlag(true);
                    continue;
                }
//                if (crnProtocol.getTaskNo() == 9999) {
//                    crnThread.setResetFlag(true);
//                    continue;
//                }
                // 获取入库待确认工作档
                WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
                if (wrkMast == null) {