自动化立体仓库 - WMS系统
zhangc
2025-03-03 24bc9aa5888c7b98cf0a7d1bf05ec6c5624d3719
src/main/java/com/zy/common/service/AgvCommonService.java
@@ -148,7 +148,7 @@
    /**
     * 库位规则查找
     */
    public AgvLocMast getLocByLocRule(int type, int floor, String factory) {
    public synchronized AgvLocMast getLocByLocRule(int type, int floor, String factory, boolean flag) {
        try {
            EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>();
@@ -161,7 +161,7 @@
                //B是二厂,G是三厂
                switch (factory) {
                    case "B":
                        wrapper.eq("floor", floor).orderBy("lev1", false);
                        wrapper.eq("floor", floor).orderBy("lev1", false).orderBy("row1", flag);
                        break;
                    case "G":
                        wrapper.eq("floor", floor).orderBy("lev1", true);
@@ -183,6 +183,8 @@
        } catch (Exception e) {
            throw new CoolException("搜索库位时,未找到可入库库位。");
        }
    }
    /**
@@ -231,6 +233,28 @@
    }
    /*
库位规则查找
 */
    public AgvLocMast getLocByFloor(int type, int floor) {
        try {
            EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>();
            wrapper.eq("loc_sts", "O").eq("loc_type1", type);
            wrapper.eq("floor", floor).orderBy("lev1", false);
            List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(wrapper);
            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;
        } catch (Exception e) {
            return null;
        }
    }
    /*
    库位规则查找
     */
    private AgvLocMast getLocByLocCodeRule(AgvWaitPakin agvWaitPakin, int floor) {