自动化立体仓库 - WMS系统
zhang
2025-06-11 5701eb6693c654d53f1bba460eb3a417d495b344
src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
@@ -66,7 +66,7 @@
     * ioType 108.自动调拨
     * crnNo :2目标楼层
     */
    @Scheduled(cron = "0/1 * * * * ? ")
    @Scheduled(cron = "0/10 * * * * ? ")
    private synchronized void execute2() {
        List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("wrk_sts", 22).andNew().eq("io_type", 108).andNew().eq("crn_no", 2).or().eq("crn_no", 3).orderBy("io_pri", false).orderBy("appe_time", true));
        if (agvWrkMastList.isEmpty()) {
@@ -110,7 +110,7 @@
     * wrkSts 22.调拨待分配
     * ioType 111.手动调拨
     */
    @Scheduled(cron = "0/2 * * * * ? ")
    @Scheduled(cron = "0/10 * * * * ? ")
    private void execute3() {
        List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("wrk_sts", 22).andNew().eq("io_type", 111).orderBy("io_pri", false).orderBy("appe_time", true));
        if (agvWrkMastList.isEmpty()) {
@@ -222,13 +222,13 @@
            return;
        }
        Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "RETURN_3_TIME"));
        for (AgvLocMast agvLocMast : agvLocMasts) {
            if (agvLocMast.getLocNo().contains("02F1")) {
                Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "RETURN_3_TIME"));
                boolean flag = false;
                if (config != null && !Cools.isEmpty(config.getValue())) {
                    try {
                        // 判断是否在执行时间内
                        ProcesTimeData procesTimeData = JSONObject.parseObject(config.getValue(), ProcesTimeData.class);
                        if (procesTimeData != null && config.getStatus() == 1 && TimeUtils.between(procesTimeData)) {
@@ -243,14 +243,14 @@
                    try {
                        autoMoveHandler.autoEmptyBack4(agvLocMast);
                    } catch (Exception e) {
                        log.error("库位号" + agvLocMast.getLocNo() + "空板自动回库 库位-接驳点  库位-吸塑车间,处理失败:===》异常原因:" + e.getMessage());
                        //log.error("库位号" + agvLocMast.getLocNo() + "空板自动回库 库位-接驳点  库位-吸塑车间,处理失败:===》异常原因:" + e.getMessage());
                    }
                }
            } else {
                try {
                    autoMoveHandler.autoEmptyBack4(agvLocMast);
                } catch (Exception e) {
                    log.error("库位号" + agvLocMast.getLocNo() + "空板自动回库 库位-接驳点  库位-吸塑车间,处理失败:===》异常原因:" + e.getMessage());
                    //log.error("库位号" + agvLocMast.getLocNo() + "空板自动回库 库位-接驳点  库位-吸塑车间,处理失败:===》异常原因:" + e.getMessage());
                }
            }
@@ -264,8 +264,24 @@
     * 将二厂的6类型的空货架调拨回吸塑二楼
     */
    // TODO 四期
    @Scheduled(cron = "0/30 * * * * ? ")
    @Scheduled(cron = "0/10 * * * * ? ")
    private void autoEmptyBackSiqi() {
        Config config2 = configService.selectOne(new EntityWrapper<Config>().eq("code", "RETURN_6_EMPTY"));
        //先判断空库位数了
        List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>().eq("loc_type1", 6).eq("floor", 1).eq("lev1", 2).eq("loc_sts", "O"));
        int size = 0;
        if (agvLocMasts != null) {
            size = agvLocMasts.size();
        }
        if (config2 != null && config2.getStatus() == 1 && !Cools.isEmpty(config2.getValue())) {
            if (size < Integer.parseInt(config2.getValue())) {
                return;
            }
        } else {
            if (size < 20) {
                return;
            }
        }
        // 查询6类型空货架返回的执行时间点
        Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "RETURN_6_TIME"));
        if (config != null && !Cools.isEmpty(config.getValue())) {
@@ -292,7 +308,7 @@
    private void executeLocType6() {
        // 查询 二厂的的半成品箱壳类型的空货架
        List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>().eq("loc_sts", "D").eq("loc_type1", 6).eq("floor", 2));
        List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>().eq("loc_sts", "D").eq("loc_type1", 6).eq("floor", 2).orderBy("bay1",false));
        if (agvLocMasts.isEmpty()) {
            return;
        }