#
luxiaotao1123
2023-02-15 e3bf21cf9206197ab78ae1483af0fdad1f57fd38
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -952,36 +952,36 @@
                wrkMastMapper.updateById(wrkMast);
                // 双深库位且浅库位有货,则需先对浅库位进行库位移转
                if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
                    LocMast shallowLoc = locMastService.selectById(shallowLocNo);
                    // O.空库位、Q.拣料/盘点/并板再入库、S.入库预约、X.禁用 直接搬!
                    if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
                        WrkMast waitWrkMast = wrkMastMapper.selectBySourceLocNo(shallowLocNo);
                        if (null == waitWrkMast) {
                            News.error("{}库位异常,未检索到相应工作档!", shallowLocNo);
                        } else {
                            if(waitWrkMast.getWrkSts() == 11) {
                                waitWrkMast.setIoPri(wrkMast.getIoPri() + 1);
                                waitWrkMast.setModiTime(new Date());
                                if (wrkMastMapper.updateById(waitWrkMast) == 0) {
                                    News.error("调整工作档优先级失败!工作号={}", waitWrkMast.getWrkNo());
                                }
                            }
                            continue;
                        }
                    } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
                        // 此标记避免多次执行移库任务
                        if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
                            wrkMast.setUpdMk("Y");
                            wrkMastMapper.updateById(wrkMast);
                            // 生成工作档、改变浅库位的源库/目标库 库位状态、下发堆垛机命令(立马执行)
                            moveLocForDeepLoc(slave, shallowLoc);
                        }
                        News.error("{}任务出库失败,浅库位堵塞!", wrkMast.getWrkNo());
                        continue;
                    }
                }
//                if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
//                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
//                    LocMast shallowLoc = locMastService.selectById(shallowLocNo);
//                    // O.空库位、Q.拣料/盘点/并板再入库、S.入库预约、X.禁用 直接搬!
//                    if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
//                        WrkMast waitWrkMast = wrkMastMapper.selectBySourceLocNo(shallowLocNo);
//                        if (null == waitWrkMast) {
//                            News.error("{}库位异常,未检索到相应工作档!", shallowLocNo);
//                        } else {
//                            if(waitWrkMast.getWrkSts() == 11) {
//                                waitWrkMast.setIoPri(wrkMast.getIoPri() + 1);
//                                waitWrkMast.setModiTime(new Date());
//                                if (wrkMastMapper.updateById(waitWrkMast) == 0) {
//                                    News.error("调整工作档优先级失败!工作号={}", waitWrkMast.getWrkNo());
//                                }
//                            }
//                            continue;
//                        }
//                    } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
//                        // 此标记避免多次执行移库任务
//                        if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
//                            wrkMast.setUpdMk("Y");
//                            wrkMastMapper.updateById(wrkMast);
//                            // 生成工作档、改变浅库位的源库/目标库 库位状态、下发堆垛机命令(立马执行)
//                            moveLocForDeepLoc(slave, shallowLoc);
//                        }
//                        News.error("{}任务出库失败,浅库位堵塞!", wrkMast.getWrkNo());
//                        continue;
//                    }
//                }
                // 已经存在吊车执行任务时,则过滤
                if (wrkMastMapper.selectWorking(slave.getId()) != null) {
@@ -2561,24 +2561,24 @@
                                break;
                            }
                        }
                        if (!devpThread.charge1) {
                            SteChargeType second = SteChargeType.SECOND;
                            locNo = second.locNo;
                            if (basSteService.hasCarOfLocNo(locNo) == null
                                && wrkChargeService.selectWorkingOfCharge(second.ssbm) == null) {
                                steCharge = second;
                                break;
                            }
                        }
                        if (!devpThread.charge2) {
                            SteChargeType third = SteChargeType.THIRD;
                            locNo = third.locNo;
                            if (basSteService.hasCarOfLocNo(locNo) == null
                                && wrkChargeService.selectWorkingOfCharge(third.ssbm) == null) {
                                steCharge = third;
                                break;
                            }
                        }
//                        if (!devpThread.charge1) {
//                            SteChargeType second = SteChargeType.SECOND;
//                            locNo = second.locNo;
//                            if (basSteService.hasCarOfLocNo(locNo) == null
//                                && wrkChargeService.selectWorkingOfCharge(second.ssbm) == null) {
//                                steCharge = second;
//                                break;
//                            }
//                        }
//                        if (!devpThread.charge2) {
//                            SteChargeType third = SteChargeType.THIRD;
//                            locNo = third.locNo;
//                            if (basSteService.hasCarOfLocNo(locNo) == null
//                                && wrkChargeService.selectWorkingOfCharge(third.ssbm) == null) {
//                                steCharge = third;
//                                break;
//                            }
//                        }
                        break;
                    } while (false);
@@ -2839,6 +2839,7 @@
    /**
     * 轮询充电桩是否有空闲小车
     */
    @Deprecated
    public synchronized void queryChargeLocOfComplete() {
        // 与充电任务不同步进行
        if (null != wrkChargeService.selectWorking(null, WrkChargeType.charge)) { return; }
@@ -2915,6 +2916,7 @@
    /**
     * 小车从充电桩 至 待机库位
     */
    @Deprecated
    public synchronized void steFromChargeToIdleLoc() {
        WrkCharge wrkCharge = wrkChargeService.selectWorking(null, WrkChargeType.reset);
        if (wrkCharge == null) { return; }