自动化立体仓库 - WMS系统
#
野心家
2024-12-02 4d0fb4ddb8d307088c8a41399dc436cdaa3d4d2c
src/main/java/com/zy/common/service/CommonService.java
@@ -146,41 +146,38 @@
        if (crnNo==1){
            LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>()
                    .eq("loc_sts", "F")
                    .eq("loc_type1", (short) 3));
                    .eq("loc_type1", (short) 3));//待测库位
            LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
                    .eq("loc_sts", "O")
                    .eq("loc_type1", (short) 1));
                    .eq("loc_type1", (short) 1));//测试库位
            if (!Cools.isEmpty(locMast1)||Cools.isEmpty(locMast2)){
                locMast = locMastService.queryFreeLocMast(2,(short)3);
                if (Cools.isEmpty(locMast)){
                    locMast = locMastService.queryFreeLocMast(1,(short)3);
                List<LocMast> locMasts=locMastService.selectList(new EntityWrapper<LocMast>()
                        .eq("loc_sts", "O").eq("loc_type1", (short) 3)
                        .orderBy("row1",false).orderBy("bay1",true));
                if(!Cools.isEmpty(locMasts)){
                    locMast = locMasts.get(0);
                }else{
                    throw new CoolException("没有待测库位无法入库!!!");
                }
            }
        }
        if (Cools.isEmpty(locMast)){
            // 开始查找库位 ==============================>
            int ruleId = Integer.parseInt(Parameter.get().getFindLocRule());
            if (whsType != 1) {
                locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1());
            } else if (ruleId == 1) {  //按测试设备排序,优先排满单台设备
                locMast = locMastService.queryFreeLocMast1(curRow, locTypeDto.getLocType1(), channelMax + 1);
            } else if (ruleId == 2) {  //按通道排序,均匀分配每台设备
                Short locType2 = getLocType2Small(curRow, locTypeDto.getLocType1());
                locMast = locMastService.queryFreeLocMast2(curRow, locTypeDto.getLocType1(), locType2);
            } else { //默认规则
                locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1());
            locMast = locMastService.queryFreeLocMast(1, locTypeDto.getLocType1());
//            // 开始查找库位 ==============================>
//            int ruleId = Integer.parseInt(Parameter.get().getFindLocRule());
//            if (whsType != 1) {
//                locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1());
//            } else if (ruleId == 1) {  //按测试设备排序,优先排满单台设备
//                locMast = locMastService.queryFreeLocMast1(curRow, locTypeDto.getLocType1(), channelMax + 1);
//            } else if (ruleId == 2) {  //按通道排序,均匀分配每台设备
//                Short locType2 = getLocType2Small(curRow, locTypeDto.getLocType1());
//                locMast = locMastService.queryFreeLocMast2(curRow, locTypeDto.getLocType1(), locType2);
//            } else { //默认规则
//                locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1());
//            }
            }
        }
        // 2.库位当前所属尺寸无空库位时,调整尺寸参数,向上兼容检索库位
        if (Cools.isEmpty(locMast)) {
            // 当前巷道无空库位时,递归调整至下一巷道,检索全部巷道无果后,跳出递归
            if (times < rowCount) {
                times = times + 1;
                return getLocNo(1, staDescId, sourceStaNo, matNos, locTypeDto, times);
            }
            log.error("系统没有空库位!!! 尺寸规格: {}, 轮询次数:{}", JSON.toJSONString(locTypeDto), times);
            throw new CoolException("没有空库位");
        }
        String locNo = locMast.getLocNo();