| | |
| | | |
| | | /** |
| | | * 检索库位号 |
| | | * @param staDescId 路径ID |
| | | * |
| | | * @param staDescId 路径ID |
| | | * @param sourceStaNo 源站 |
| | | * @param matNos 物料号集合 |
| | | * @param matNos 物料号集合 |
| | | * @return locNo 检索到的库位号 |
| | | */ |
| | | public StartupDto getLocNo(Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto,int times) { |
| | | public StartupDto getLocNo(Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, int times) { |
| | | // 目标库位 |
| | | LocMast locMast = null; |
| | | |
| | | // 靠近摆放规则 --- 空托 |
| | | locMast = getLocNoStep4(staDescId, locTypeDto); |
| | | if (locMast != null) { |
| | | //找到库位,返回dto |
| | | return getLocNoStep6(staDescId, sourceStaNo, locMast);//返回dto |
| | | } |
| | | |
| | | //库位规则 |
| | | locMast = getLocNoStepRule(matNos, locTypeDto); |
| | |
| | | |
| | | // 靠近摆放规则 --- 相同订单号, 同天同规格物料 |
| | | locMast = getLocNoStep3(staDescId, matNos, locTypeDto); |
| | | if (locMast != null) { |
| | | //找到库位,返回dto |
| | | return getLocNoStep6(staDescId, sourceStaNo, locMast);//返回dto |
| | | } |
| | | |
| | | // 靠近摆放规则 --- 空托 |
| | | locMast = getLocNoStep4(staDescId, locTypeDto); |
| | | if (locMast != null) { |
| | | //找到库位,返回dto |
| | | return getLocNoStep6(staDescId, sourceStaNo, locMast);//返回dto |
| | |
| | | //找到库位,返回dto |
| | | return getLocNoStep6(staDescId, sourceStaNo, locMast);//返回dto |
| | | } |
| | | |
| | | if(locTypeDto.getLocType1()==1){ |
| | | locTypeDto.setLocType1((short)2); |
| | | return getLocNo(staDescId, 1, sourceStaNo, matNos, locTypeDto,0); |
| | | }else if(locTypeDto.getLocType1()==2){ |
| | | locTypeDto.setLocType1((short)3); |
| | | return getLocNo(staDescId, 1, sourceStaNo, matNos, locTypeDto,0); |
| | | } |
| | | //找不到库位,抛出异常 |
| | | throw new CoolException("没有空库位"); |
| | | } |
| | |
| | | LocMast locMast0 = locMastService.findNearloc(wrkMast.getLocNo()); |
| | | if (null != locMast0) { |
| | | // 浅库位符合尺寸检测 |
| | | if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) { |
| | | if (VersionUtils.checkLocType(locMast0, locTypeDto)) { |
| | | locMast = locMast0; |
| | | } |
| | | } |
| | |
| | | LocMast locMast0 = locMastService.findNearloc(locNo); |
| | | if (null != locMast0) { |
| | | // 浅库位符合尺寸检测 |
| | | if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) { |
| | | if (VersionUtils.checkLocType(locMast0, locTypeDto)) { |
| | | locMast = locMast0; |
| | | break; |
| | | } |
| | |
| | | LocMast locMast0 = locMastService.findNearloc(wrkMast.getLocNo()); |
| | | if (null != locMast0) { |
| | | // 浅库位符合尺寸检测 |
| | | if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) { |
| | | if (VersionUtils.checkLocType(locMast0, locTypeDto)) { |
| | | locMast = locMast0; |
| | | break; |
| | | } |
| | |
| | | } |
| | | if (Cools.isEmpty(locMast)){ |
| | | List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() |
| | | .eq("loc_sts", "D")); |
| | | .eq("loc_sts", "O")); |
| | | if (locMasts.size() > 0) { |
| | | for (LocMast loc : locMasts) { |
| | | LocMast locMast0 = locMastService.findNearloc(loc.getLocNo()); |
| | | if (null != locMast0) { |
| | | // 浅库位符合尺寸检测 |
| | | if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) { |
| | | if (VersionUtils.checkLocType(locMast0, locTypeDto)) { |
| | | locMast = locMast0; |
| | | break; |
| | | } |
| | |
| | | if (matNos.size() == 1) { |
| | | //单品 |
| | | List<LocMast> locMasts = locMastService.selectAreaEmpty(locTypeDto.getLocType1(), 2);//搜索单品库位 |
| | | |
| | | for (LocMast mast : locMasts) { |
| | | List<String> groupLoc = Utils.getGroupLoc(mast.getLocNo()); |
| | | if (!locMastService.checkAllLocEmpty(groupLoc)) { |
| | |
| | | Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() |
| | | .eq("type_no", staDescId) |
| | | .eq("stn_no", sourceStaNo) |
| | | .eq("crn_no",Utils.getLev(locNo));//借用堆垛机号字段充当楼层号 |
| | | .eq("crn_no",Utils.stnNoToLiftNo(sourceStaNo));//借用堆垛机号字段充当提升机号 |
| | | StaDesc staDesc = staDescService.selectOne(wrapper); |
| | | if (Cools.isEmpty(staDesc)) { |
| | | log.error("入库路径不存在, staDescId={}, sourceStaNo={}", staDescId, sourceStaNo); |