#
luxiaotao1123
2022-11-01 f50a514a639c95145794a70969b096d141fd4bb6
#
3个文件已修改
37 ■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/MainProcess.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkChargeMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 @@
                            }
                        }
                    }
                }
            }
        }
    }
src/main/java/com/zy/core/MainProcess.java
@@ -32,7 +32,7 @@
                try {
                    // 间隔
                    Thread.sleep(500);
                    Thread.sleep(300);
                    // 系统运行状态判断
                    if (!SystemProperties.WCS_RUNNING_STATUS.get()) {
@@ -70,7 +70,10 @@
                    mainService.ledReset();
                    // 穿梭车 ===>> 小车电量检测充电
                    mainService.loopSteCharge();
                    // 间隔
                    Thread.sleep(200);
                    // 穿梭车 ===>> 小车复位至待机库位
                    mainService.queryChargeLocOfComplete();
                    mainService.steFromChargeToIdleLoc();
                } catch (Exception e) {
src/main/resources/mapper/WrkChargeMapper.xml
@@ -38,6 +38,7 @@
        </if>
        and wrk_sts &lt; 30
        and memo = 'charge'
        order by appe_time desc
    </select>
    <select id="selectWorkingOfReset" resultMap="BaseResultMap">
@@ -49,6 +50,7 @@
        </if>
        and wrk_sts &lt; 47
        and memo = 'reset'
        order by appe_time desc
    </select>
</mapper>