| | |
| | | @Transactional |
| | | public StartupDto getLocNo(BasDevp sourceStaNo, LocTypeDto locTypeDto,int inType){ |
| | | |
| | | LocMast locMast; |
| | | LocMast locMast = null; |
| | | |
| | | // 二期入库找库位 |
| | | if (sourceStaNo.getDevNo() == 1102 || sourceStaNo.getDevNo() == 2101 || sourceStaNo.getDevNo() == 2103){ |
| | | locMast = searchLocBySecond(locTypeDto, sourceStaNo.getDevNo(), inType); |
| | | } |
| | | if (locMast != null){ |
| | | return getLocNoReturn(locMast, sourceStaNo.getDevNo(), inType); |
| | | } |
| | | |
| | | // 空托入库找库位 |
| | | locMast = searchLocByEmpty(sourceStaNo, inType); |
| | |
| | | } |
| | | |
| | | // 如果是305入库,在一号堆垛机空闲的时候应先入一号巷道,确保出库效率 |
| | | if (sourceStaNo == 305) { |
| | | if (sourceStaNo == 305 || sourceStaNo == 1202) { |
| | | // 1号巷道可用库位 |
| | | List<LocMast> collect = locMasts.stream().filter(locMast1 -> locMast1.getCrnNo().equals(1)).collect(Collectors.toList()); |
| | | List<LocMast> collect2 = locMasts.stream().filter(locMast1 -> locMast1.getCrnNo().equals(2)).collect(Collectors.toList()); |
| | | List<LocMast> collect3 = locMasts.stream().filter(locMast1 -> locMast1.getCrnNo().equals(3)).collect(Collectors.toList()); |
| | | BasCrnp crnp = basCrnpService.selectById(1); |
| | | BasCrnp crnp2 = basCrnpService.selectById(2); |
| | | if (crnp.getCrnSts() == 3 && collect.size()>10 && crnp.getCrnErr() == 0) { |
| | | locMasts = collect; |
| | | } else { |
| | | } else if (crnp2.getCrnSts() == 3 && collect2.size()>10 && crnp.getCrnErr() == 0) { |
| | | locMasts = collect2; |
| | | }else { |
| | | locMasts = collect3; |
| | | } |
| | | // BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 305)); |
| | | // if (basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("Y") && basDevp.getWrkNo() > 6000 && basDevp.getWrkNo() <= 9000) { |
| | |
| | | return locMast; |
| | | } |
| | | |
| | | private LocMast searchLocBySecond(LocTypeDto locTypeDto,int sourceStaNo, int inType) { |
| | | // 寻找到的库位 |
| | | LocMast locMast = null; |
| | | |
| | | // 不是入库 |
| | | if (inType != 1){ |
| | | return null; |
| | | } |
| | | |
| | | // 空库位集合 |
| | | List<LocMast> locMasts = new ArrayList<>(); |
| | | |
| | | locMasts = locMastMapper.selectLocToSecond(locTypeDto.getLocType2()); |
| | | |
| | | for (LocMast mast : locMasts) { |
| | | if (mast.getRow1() == 10 && mast.getBay1() <= 18){ |
| | | LocMast deep = locMastService.selectOne(new EntityWrapper<LocMast>() |
| | | .eq("row1", mast.getRow1() + 1) |
| | | .eq("bay1", mast.getBay1()) |
| | | .eq("lev1", mast.getLev1()) |
| | | .eq("crn_no", 3)); |
| | | if (deep.getLocSts().equals("O")) { |
| | | locMast = deep; |
| | | break; |
| | | } |
| | | } |
| | | locMast = mast; |
| | | break; |
| | | } |
| | | |
| | | // 预留空库位 |
| | | Integer count = locMastService.selectCount(new EntityWrapper<LocMast>() |
| | | .eq("loc_sts", "O") |
| | | .eq("crn_no", 3) |
| | | .in("row1",9, 10)); |
| | | |
| | | if (count <= 5){ |
| | | locMast = null; |
| | | } |
| | | |
| | | return locMast; |
| | | } |
| | | /** |
| | | * 检索库位号 |
| | | * |