#
luxiaotao1123
2022-11-01 f50a514a639c95145794a70969b096d141fd4bb6
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2487,6 +2487,9 @@
     */
    @SuppressWarnings("serial")
    public synchronized void loopSteCharge() {
        if (null != wrkChargeService.selectWorking(null, "reset")) {
            return;
        }
        SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
        for (SteSlave ste : slaveProperties.getSte()) {
            SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId());
@@ -2553,6 +2556,7 @@
                    wrkCharge.setIoPri((double) 10);
                    wrkCharge.setLocNo(chargeLocNo);
                    wrkCharge.setMemo("charge");
                    wrkCharge.setAppeTime(new Date());
                    if (!wrkChargeService.insert(wrkCharge)) {
                        log.error("保存{}号穿梭车充电任务失败!!!", ste.getId());
                        continue;
@@ -2715,9 +2719,9 @@
    }
    /**
     * 小车从充电桩 至 待机库位
     * 轮询充电桩是否有空闲小车
     */
    public synchronized void steFromChargeToIdleLoc() {
    public synchronized void queryChargeLocOfComplete() {
        // 与充电任务不同步进行
        if (null != wrkChargeService.selectWorking(null, "charge")) { return; }
        SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
@@ -2756,7 +2760,7 @@
                    continue;
                }
                WrkCharge wrkCharge = wrkChargeService.selectWorking(null, "reset");
                WrkCharge wrkCharge = wrkChargeService.selectWorking(steNo, "reset");
                if (wrkCharge == null) {
                    // 开始穿梭车复位任务
@@ -2769,12 +2773,26 @@
                    wrkCharge.setSourceLocNo(value.locNo);
                    wrkCharge.setLocNo(basSte.getIdleLoc());
                    wrkCharge.setMemo("reset");
                    wrkCharge.setAppeTime(new Date());
                    if (!wrkChargeService.insert(wrkCharge)) {
                        log.error("保存{}号穿梭车复位任务失败!!!", steNo);
                        continue;
                    }
                }
            }
                    }
                }
    /**
     * 小车从充电桩 至 待机库位
     */
    public synchronized void steFromChargeToIdleLoc() {
        WrkCharge wrkCharge = wrkChargeService.selectWorking(null, "reset");
        SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, wrkCharge.getSteNo());
        SteProtocol steProtocol = steThread.getSteProtocol();
        BasSte basSte = basSteService.selectById(wrkCharge.getSteNo());
        if (Cools.isEmpty(steProtocol, basSte)) {
            return;
        }
                // 搬运至固定通道
                if (wrkCharge.getWrkSts() == 41L) {
                    // 搬小车至小车走向通道
@@ -2858,7 +2876,7 @@
                    } else {
                        CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkCharge.getCrnNo());
                        CrnProtocol crnProtocol = crnThread.getCrnProtocol();
                        if (crnProtocol == null) { continue; }
                if (crnProtocol == null) { return; }
                        // 只有当堆垛机空闲 并且 无任务时才继续执行
                        if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
                            // 堆垛机命令下发区 --------------------------------------------------------------------------
@@ -2889,8 +2907,6 @@
                            }
                        }
                    }
                }
            }
        }
    }