自动化立体仓库 - WMS系统
1
zhangc
2025-03-24 002f10f7d38dc6791d26a69d061e6b17f9980fd0
src/main/java/com/zy/common/service/AgvCommonService.java
@@ -178,14 +178,23 @@
                num = Integer.parseInt(config.getValue());
            }
            agvLocMasts = agvLocMastService.selectList(wrapper);
            int er = 0;
            for (AgvLocMast agvLocMast : agvLocMasts) {
                if (agvLocMast.getLev1() == 2) {
                    er++;
                }
            }
            for (AgvLocMast agvLocMast : agvLocMasts) {
                AgvLocMast agvLocMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocMast.getLocNo()));
                if (agvLocMast1.getLocSts().equals("O")) {
                    return agvLocMast1;
                    if (agvLocMast1.getLev1() == 2) {
                        if (er > num) {
                            return agvLocMast1;
                        }
                    } else {
                        return agvLocMast1;
                    }
                }
            }
            throw new CoolException("搜索库位时,未找到可入库库位。");
@@ -396,6 +405,31 @@
        return null;
    }
    public AgvLocMast getLocNoOnXiSuer20(int type, int floor) {
        EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>();
        wrapper.eq("loc_sts", "O").eq("loc_type1", type);
        wrapper.eq("floor", floor).eq("lev1", 2);
        List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(wrapper);
        if (Cools.isEmpty(agvLocMasts)) {
            return null;
        } else {
            int num = 15;
            Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "LOC_6_NUM"));
            if (config != null && !Cools.isEmpty(config.getValue())) {
                num = Integer.parseInt(config.getValue());
            }
            if (agvLocMasts.size()>num){
                for (AgvLocMast agvLocMast : agvLocMasts) {
                    AgvLocMast agvLocMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocMast.getLocNo()));
                    if (agvLocMast1.getLocSts().equals("O")) {
                        return agvLocMast1;
                    }
                }
            }
        }
        return null;
    }
    //随机取一个货位
    private AgvLocMast getLocNoRule(int type, int floor, boolean isEmpty, boolean isCurrLev) {