自动化立体仓库 - WCS系统
#
luxiaotao1123
2022-03-09 d715a67f1a857fa6bc34611f2293f862474bf347
#
1个文件已修改
60 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -565,7 +565,7 @@
                continue;
            }
            // todo:小车迁入出
            // 最外层库位
            // 目标库位 ===>> 最外层库位
            if (locMastService.isOutMost(wrkMast.getLocNo())) {
                // 判断小车是否在最外层库位,如果是则搬走,如果不是,则直接堆垛机入库
                Integer steNo = this.hasCarOfIdle(wrkMast.getLocNo());
@@ -609,7 +609,7 @@
                    }
                }
            // 非最外层库位
            // 目标库位 ===>> 非最外层库位
            } else {
                // 判断小车是否在当前组库位,如果是则堆垛机将货物放置小车上,如果不是,则直接堆垛机搬移小车至当前组的最外层库位
@@ -653,29 +653,27 @@
     *  等待堆垛机搬运
     */
    public void letCarBeReady(WrkMast wrkMast, Integer steNo) {
        for (SteSlave ste : slaveProperties.getSte()) {
            // 获取堆垛机信息
            SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId());
            SteProtocol steProtocol = steThread.getSteProtocol();
            if (steProtocol == null) { continue; }
            if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
        // 获取穿梭车信息
        SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
        SteProtocol steProtocol = steThread.getSteProtocol();
        if (steProtocol == null) { return; }
        if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
                // 命令下发区 --------------------------------------------------------------------------
                SteCommand steCommand = new SteCommand();
                steCommand.setSteNo(steNo); // 穿梭车编号
                steCommand.setTaskNo(wrkMast.getWrkNo()); // 工作号
                steCommand.setTaskMode(SteTaskModeType.TO_B); // 任务模式:  去近点 等待堆垛机叉取
                if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
                    log.error("穿梭车命令下发失败,穿梭车号={},任务数据={}", steNo, JSON.toJSON(steCommand));
                } else {
                    // 修改工作档状态 2.设备上走 => 3.小车待搬
                    Date now = new Date();
                    wrkMast.setWrkSts(3L);
                    wrkMast.setCrnStrTime(now);
                    wrkMast.setModiTime(now);
                    if (wrkMastMapper.updateById(wrkMast) == 0) {
                        log.error("修改工作档状态 2.设备上走 => 3.小车待搬 失败!!,工作号={}", wrkMast.getWrkNo());
                    }
            // 命令下发区 --------------------------------------------------------------------------
            SteCommand steCommand = new SteCommand();
            steCommand.setSteNo(steNo); // 穿梭车编号
            steCommand.setTaskNo(wrkMast.getWrkNo()); // 工作号
            steCommand.setTaskMode(SteTaskModeType.TO_B); // 任务模式:  去近点 等待堆垛机叉取
            if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
                log.error("穿梭车命令下发失败,穿梭车号={},任务数据={}", steNo, JSON.toJSON(steCommand));
            } else {
                // 修改工作档状态 2.设备上走 => 3.小车待搬
                Date now = new Date();
                wrkMast.setWrkSts(3L);
                wrkMast.setCrnStrTime(now);
                wrkMast.setModiTime(now);
                if (wrkMastMapper.updateById(wrkMast) == 0) {
                    log.error("修改工作档状态 2.设备上走 => 3.小车待搬 失败!!,工作号={}", wrkMast.getWrkNo());
                }
            }
        }
@@ -704,16 +702,12 @@
     * 入库  ===>>  堆垛机搬出小车
     */
    public void carMoveOut(WrkMast wrkMast, Integer steNo) {
        for (SteSlave ste : slaveProperties.getSte()) {
            // 获取堆垛机信息
            SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
            SteProtocol steProtocol = steThread.getSteProtocol();
            if (steProtocol == null) { continue; }
            if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
        // 获取穿梭车信息
        SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
        SteProtocol steProtocol = steThread.getSteProtocol();
        if (steProtocol == null) { return; }
        if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
            }
        }