#
luxiaotao1123
2022-10-27 5875bad1254965cbb921e0c64776043d344f5548
#
1个文件已修改
56 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -95,7 +95,6 @@
     * 组托
     * 入库站,根据条码扫描生成入库工作档,工作状态 2
     */
    @Async
    public void generateStoreWrkFile() {
        // 根据输送线plc遍历
        for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -226,7 +225,6 @@
     * wms入库
     * 入库站,根据条码扫描生成入库工作档,工作状态 1 ==>> 2
     */
    @Async
    public void generateStoreWrkFile0() {
        // 根据输送线plc遍历
        for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -1268,6 +1266,37 @@
    }
    /**
     * 当前库位组是否存在其他小车
     */
    public Integer existOtherSte(String locNo, Integer steNo) {
        Integer otherSteNo = null;
        for (SteSlave ste : slaveProperties.getSte()) {
            if (ste.getId().equals(steNo)) { continue; }
            // 获取堆垛机信息
            SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId());
            SteProtocol steProtocol = steThread.getSteProtocol();
            if (steProtocol == null) { continue; }
            if (steProtocol.isEnable()) {
                BasSte basSte = basSteService.selectById(ste.getId());
                if (basSte != null) {
                    if ((Utils.getGroupRow(locNo, true).equals(Utils.getGroupRow(basSte.getRow(), true))
                            && basSte.getBay() == Utils.getBay(locNo)
                            && basSte.getLev() == Utils.getLev(locNo))
                        ||
                        (Utils.getGroupRow(locNo, true).equals(Utils.getGroupRow(steProtocol.getRow().intValue(), true))
                                && steProtocol.getBay() == Utils.getBay(locNo)
                                && steProtocol.getLev() == Utils.getLev(locNo))
                    ) {
                        otherSteNo = ste.getId();
                        break;
                    }
                }
            }
        }
        return otherSteNo;
    }
    /**
     * 当前库位组是否存在空闲小车
     */
    public Integer hasCarOfIdle(String locNo) {
@@ -1468,6 +1497,14 @@
                LocMast locMast;
                // 入库搬
                if (wrkMast.getWrkSts() <= 10) {
                    // 判断被移库位是否存在其他小车
                    Integer otherSte = existOtherSte(wrkMast.getLocNo(), steNo);
                    if (otherSte != null) {
                        log.warn("{}号小车移入{}库位组失败,原因:存在{}号穿梭车!", steNo, wrkMast.getLocNo(), otherSte);
                        return;
                    }
                    locMast = locMastService.selectById(wrkMast.getLocNo());
                    // 堆垛机命令下发区 --------------------------------------------------------------------------
                    CrnCommand crnCommand = new CrnCommand();
@@ -1497,6 +1534,13 @@
                    }
                // 出库搬
                } else {
                    // 判断被移库位是否存在其他小车
                    Integer otherSte = existOtherSte(wrkMast.getSourceLocNo(), steNo);
                    if (otherSte != null) {
                        log.warn("{}号小车移入{}库位组失败,原因:存在{}号穿梭车!", steNo, wrkMast.getSourceLocNo(), otherSte);
                        return;
                    }
                    locMast = locMastService.selectById(wrkMast.getSourceLocNo());
                    // 堆垛机命令下发区 --------------------------------------------------------------------------
                    CrnCommand crnCommand = new CrnCommand();
@@ -1548,8 +1592,16 @@
                    log.error("{}号穿梭车在数据库不存在!!!", steNo);
                    return;
                }
                String idleLocNo = basSte.getIdleLoc();
                // 判断被移库位是否存在其他小车
                Integer otherSte = existOtherSte(idleLocNo, steNo);
                if (otherSte != null) {
                    log.warn("{}号小车移入{}库位组失败,原因:存在{}号穿梭车!", steNo, idleLocNo, otherSte);
                    return;
                }
                // 堆垛机命令下发区 --------------------------------------------------------------------------
                CrnCommand crnCommand = new CrnCommand();
                crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 堆垛机编号