自动化立体仓库 - WMS系统
#
zyx
2023-10-31 bd261458eee547abe546aa02b66a35ab511f59a1
src/main/java/com/zy/common/service/AgvCommonService.java
@@ -27,6 +27,8 @@
    private AgvLocRuleService agvLocRuleService;
    @Autowired
    private AgvLocMastService agvLocMastService;
    @Autowired
    private MatService matService;
    public int getWorkNo(Integer wrkMk) {
        AgvWrkLastno wrkLastno = agvWrkLastnoService.selectById(wrkMk);
@@ -72,9 +74,11 @@
        AgvLocMast locMast = null;
        //库位规则
        locMast = getLocByLocRule(agvWaitPakinList.get(0),floor);
        if(!Cools.isEmpty(locMast)){
            return locMast;
        if(!Cools.isEmpty(agvWaitPakinList)){
            locMast = getLocByLocRule(agvWaitPakinList.get(0),floor);
            if(!Cools.isEmpty(locMast)){
                return locMast;
            }
        }
        // 靠近摆放规则 --- 相同订单号, 同天同规格物料
@@ -83,6 +87,15 @@
            //找到库位,返回dto
            //return getLocNoStep6(staDescId, sourceStaNo, locMast);//返回dto
        }
        //根据物料频率搜索库位,频率高则搜索离缓存货架最近库位,频率低则搜索最远库位
        Mat mat = matService.selectByMatnr(agvWaitPakinList.get(0).getMatnr());
        if(true){
        }else {
        }
//
//        // 靠近摆放规则 --- 空托
//        locMast = getLocNoStep4(staDescId, locTypeDto);
@@ -139,12 +152,45 @@
    /*
    靠近摆放规则
     */
    private AgvLocMast getLocByProximityRule(){
        //to do
        return null;
    }
    /*
    根据物料频率查找
     */
    private AgvLocMast getLocByFre(int fre, int floor){
        if(floor == 1){
            if(fre == 1){
                return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>()
                        .eq("floor",floor)
                        .eq("loc_sts","O")
                        .orderBy("bay1",false));
            }else{
                return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>()
                        .eq("floor",floor)
                        .eq("loc_sts","O")
                        .orderBy("bay1"));
            }
        }
        if(floor == 3){
            if(fre == 1){
                return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>()
                        .eq("floor",floor)
                        .eq("loc_sts","O")
                        .orderBy("row1",false));
            }else{
                return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>()
                        .eq("floor",floor)
                        .eq("loc_sts","O")
                        .orderBy("row1"));
            }
        }
        throw new CoolException("搜索库位时,楼层出错。");
    }
    //随机取一个货位
    private AgvLocMast getLocNoRule(int floor){
        return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>()