自动化立体仓库 - WMS系统
#
whycq
2024-05-31 6ce49b375bba4e1bbbe75c4dd891dc95cd9ff28f
src/main/java/com/zy/common/service/AgvCommonService.java
@@ -31,6 +31,8 @@
    private MatService matService;
    @Autowired
    private LocRuleService locRuleService;
    @Autowired
    AgvBasDevpService agvBasDevpService;
    public int getWorkNo(Integer wrkMk) {
        AgvWrkLastno wrkLastno = agvWrkLastnoService.selectById(wrkMk);
@@ -109,14 +111,18 @@
//        }
        // 开始查找库位 ==============================>>
        locMast = getLocNoRule(type,floor);
        if (locMast != null) {
            return locMast;
        try{
            // 开始查找库位 ==============================>>
            locMast = getLocNoRule(type,floor);
            if (locMast != null) {
                return locMast;
            }
        }catch (Exception e){
            throw new CoolException("楼层号:"+floor+";该楼层没有空库位===>"+e.getMessage());
        }
        //找不到库位,抛出异常
        throw new CoolException("该楼层没有空库位");
        throw new CoolException("楼层号:"+floor+";该楼层没有空库位");
    }
    /*
@@ -228,11 +234,104 @@
    //随机取一个货位
    private AgvLocMast getLocNoRule(int type,int floor){
        return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>()
                .eq("loc_sts","O")
                .eq("floor",floor)
                .eq("loc_type1",type));
        try{
            List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>()
                    .eq("loc_sts", "O")
                    .eq("floor", floor)
                    .eq("loc_type1", type));
            for (AgvLocMast agvLocMast : agvLocMasts){
                AgvLocMast agvLocMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocMast.getLocNo()));
                if (agvLocMast1.getLocSts().equals("O")){
                    return agvLocMast1;
                }
            }
            throw new CoolException("搜索库位时,未找到可入库库位。");
        }catch (Exception e){
            throw new CoolException("搜索库位时,未找到可入库库位。");
        }
    }
    /**
     * 检索库位号
     * @return locNo 检索到的库位号
     */
    public AgvBasDevp getDevpNo(int type, int floor) {
        // 目标库位
        AgvBasDevp basDevp = null;
        // 开始查找库位 ==============================>>
        basDevp = getDevpNoRule(type,floor);
        if (basDevp != null) {
            return basDevp;
        }
        //找不到库位,抛出异常
        throw new CoolException("楼层号:"+floor+";该楼层没有空接驳位");
    }
    /**
     * 检索库位号
     * @return locNo 检索自动接驳位
     */
    public AgvBasDevp getDevpNo(int type, int floor, String auto) {
        // 目标库位
        AgvBasDevp basDevp = null;
        // 开始查找库位 ==============================>>
        basDevp = getDevpNoAuto(type,floor,auto);
        if (basDevp != null) {
            return basDevp;
        }
        //找不到库位,抛出异常
        throw new CoolException("楼层号:"+floor+";该楼层没有空接驳位");
    }
    /**
     * 检索库位号
     * @return locNo 检索可入接驳位
     */
    public AgvBasDevp getDevpNo(int type, int floor, String auto ,String inEable) {
        // 目标库位
        AgvBasDevp basDevp = null;
        // 开始查找库位 ==============================>>
        basDevp = getDevpNoInEable(type,floor,inEable);
        if (basDevp != null) {
            return basDevp;
        }
        //找不到库位,抛出异常
        return basDevp;
    }
    //随机取一个货位
    private AgvBasDevp getDevpNoRule(int type,int floor){
        return agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>()
                .eq("loc_sts","O")
                .eq("floor",floor)
                .eq("loc_type1",type)
                .like("dev_no","DB"));
    }
    //随机取一个货位
    private AgvBasDevp getDevpNoAuto(int type,int floor,String auto){
        return agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>()
                .eq("loc_sts","O")
                .eq("floor",floor)
                .eq("loc_type1",type)
                .eq("autoing",auto)
                .like("dev_no","DB"));
    }
    //随机取一个货位
    private AgvBasDevp getDevpNoInEable(int type,int floor,String inEable){
        return agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>()
                .eq("loc_sts","O")
                .eq("floor",floor)
                .eq("loc_type1",type)
                .eq("in_enable",inEable)
                .like("dev_no","DB"));
    }
}