自动化立体仓库 - WMS系统
#
zjj
2025-03-26 80baf88fae7bb8ba8dc8be9919e51b817726e394
src/main/java/com/zy/common/service/CommonService.java
@@ -208,7 +208,7 @@
        }
        //此程序用于优化堆垛机异常时的运行时间
        for (int i = times; i < crnNumber*2; i++) {
        for (int i = times; i <= crnNumber*2; i++) {
            int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRow, crnNumber,whsType);
            curRow = locNecessaryParameters[1];
            crnNo = locNecessaryParameters[2];
@@ -450,12 +450,12 @@
                times = times + 1;
                return getLocNoRun(whsType, staDescId, sourceStaNo, matnr, batch, grade,moveCrnNo, locTypeDto, times);
            }
//            // 2.库位当前所属尺寸无空库位时,调整尺寸参数,向上兼容检索库位
//            if (locTypeDto.getLocType1() < 2) {
//                int i = locTypeDto.getLocType1() + 1;
//                locTypeDto.setLocType1((short)i);
//                return getLocNo(1, staDescId, sourceStaNo, matnr,batch,grade, locTypeDto, 0);
//            }
            // 2.库位当前所属尺寸无空库位时,调整尺寸参数,向上兼容检索库位
            if (locTypeDto.getLocType1() < 3) {
                int i = locTypeDto.getLocType1() + 1;
                locTypeDto.setLocType1((short)i);
                return getLocNoRun(whsType,staDescId,sourceStaNo,matnr,batch,grade,0,locTypeDto,0);
            }
            log.error("系统没有空库位!!! 尺寸规格: {}, 轮询次数:{}", JSON.toJSONString(locTypeDto), times);
            throw new CoolException("没有空库位");
        }
@@ -570,46 +570,62 @@
        if (Cools.isEmpty(locMast) && crnNo != 0) {
            List<LocMast> locMasts = new ArrayList<>();
            int floor = 0;
            if (locTypeDto.getLocType1() == 1){
                int F1count = locMastService.selectCount(new EntityWrapper<LocMast>()
                        .in("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
                        .eq("crn_no", 7)
                        .eq("loc_type1", locTypeDto.getLocType1())
                        .eq("lev1", 1));
                if (F1count <= 10) {
                    int F2count = locMastService.selectCount(new EntityWrapper<LocMast>()
            if (locTypeDto.getLev1() == null){
                if (locTypeDto.getLocType1() == 1){
                    int F1count = locMastService.selectCount(new EntityWrapper<LocMast>()
                            .in("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
                            .eq("crn_no", 7)
                            .eq("loc_type1", locTypeDto.getLocType1())
                            .eq("lev1", 2));
                    if (F2count <= 10) {
                        throw new CoolException("库位不足");
                            .eq("lev1", 1));
                    if (F1count <= 10) {
                        int F2count = locMastService.selectCount(new EntityWrapper<LocMast>()
                                .in("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
                                .eq("crn_no", 7)
                                .eq("loc_type1", locTypeDto.getLocType1())
                                .eq("lev1", 2));
                        if (F2count <= 10) {
                            throw new CoolException("库位不足");
                        }else {
                            floor = 2;
                        }
                    }else {
                        floor = 2;
                        floor = 1;
                    }
                }else {
                    floor = 1;
                }
            }else if (locTypeDto.getLocType1() == 2){
                int F3count = locMastService.selectCount(new EntityWrapper<LocMast>()
                        .in("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
                        .eq("crn_no", 7)
                        .eq("loc_type1", locTypeDto.getLocType1())
                        .eq("lev1", 3));
                if (F3count <= 10) {
                    throw new CoolException("库位不足");
                }else if (locTypeDto.getLocType1() == 2){
                    int F3count = locMastService.selectCount(new EntityWrapper<LocMast>()
                            .in("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
                            .eq("crn_no", 7)
                            .eq("loc_type1", locTypeDto.getLocType1())
                            .eq("lev1", 3));
                    if (F3count <= 10) {
                        throw new CoolException("库位不足");
                    }
                    floor = 3;
                }else {
                    throw new CoolException("库位高度数据异常");
                }
                floor = 3;
            }else {
                throw new CoolException("库位高度数据异常");
            }
            locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                    .eq("bay1", nearRow)
                    .in("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue())
                    .eq("crn_no",7)
                    .eq("loc_type1",locTypeDto.getLocType1())
                    .eq("lev1",floor).orderBy("row1",false));//最浅库位
            if (locTypeDto.getLev1() != null){
                locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                        .eq("bay1", nearRow)
                        .in("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue())
                        .eq("crn_no",7)
                        .eq("loc_type1",locTypeDto.getLocType1())
                        .eq("lev1",locTypeDto.getLev1()).orderBy("row1",false));//最浅库位
            }else {
                if (floor == 0){
                    throw new CoolException("库位已满");
                }
                locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                        .eq("bay1", nearRow)
                        .in("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue())
                        .eq("crn_no",7)
                        .eq("loc_type1",locTypeDto.getLocType1())
                        .eq("lev1",floor).orderBy("row1",false));//最浅库位
            }
            for (LocMast locMast1 : locMasts) {
                if (locMast != null){
@@ -636,7 +652,7 @@
                    continue;
                }
                for (LocMast locMastGro1 : locMasts1) {
                    if (locMastGro1.getLocSts().equals("P") || locMastGro1.getLocSts().equals("Q") || locMastGro1.getLocSts().equals("R")) {
                    if (locMastGro1.getLocSts().equals("P") || locMastGro1.getLocSts().equals("Q") || locMastGro1.getLocSts().equals("R") || locMastGro1.getLocSts().equals("X")) {
                        break;
                    }
                    if (locMastGro1.getLocSts().equals("O")){