| | |
| | | */ |
| | | @Transactional |
| | | public StartupDto getLocNo(Integer staDescId, Integer sourceStaNo, FindLocNoAttributeVo findLocNoAttributeVo, LocTypeDto locTypeDto) { |
| | | try { |
| | | // try { |
| | | Integer whsType = Utils.GetWhsType(sourceStaNo); |
| | | RowLastno rowLastno = rowLastnoService.selectById(whsType); |
| | | RowLastnoType rowLastnoType = rowLastnoTypeService.selectById(rowLastno.getTypeId()); |
| | |
| | | */ |
| | | switch (rowLastnoType.getType()) { |
| | | case 1: |
| | | Config crnSearchDetectTaskCountConfig = configService.selectConfigByCode("crnSearchDetectTaskCount"); |
| | | int crnSearchDetectTaskCount = Integer.parseInt(crnSearchDetectTaskCountConfig.getValue()); |
| | | |
| | | Config applyInTaskTotalCountConfig = configService.selectConfigByCode("applyInTaskTotalCount"); |
| | | int applyInTaskTotalCount = Integer.parseInt(applyInTaskTotalCountConfig.getValue()); |
| | | int crnNo = 6; |
| | | boolean flag = true; |
| | | List<String> data = new ArrayList<>(); |
| | | while (crnNo > 0) { |
| | | List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() |
| | | .eq("loc_sts", "O") |
| | | .eq("crn", crnNo) |
| | | .eq("whs_type", rowLastnoType.getType().longValue()) |
| | | .eq("loc_type1", locTypeDto.getLocType1()) |
| | | .eq("loc_type2", locTypeDto.getLocType2()) |
| | | ); |
| | | if (locMasts.size() <= 15) { |
| | | log.error(crnNo + "号堆垛机没有空库位!!! 尺寸规格: {}", JSON.toJSONString(locTypeDto)); |
| | | data.add(crnNo + "号没有空库位;"); |
| | | } else { |
| | | List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() |
| | | .eq("crn_no", crnNo) |
| | | .in("io_type", 1, 10, 53, 57) |
| | | ); |
| | | if (wrkMasts.size() > crnSearchDetectTaskCount) { |
| | | log.error(crnNo + "号堆垛机已达到入库控制上限!!! 任务数量: {}, 控制数量:{}", wrkMasts.size(), crnSearchDetectTaskCount); |
| | | data.add(crnNo + "号入库控制上限;"); |
| | | continue; |
| | | } |
| | | List<WrkMast> wrkMastsList = wrkMastService.selectList(new EntityWrapper<WrkMast>() |
| | | .eq("crn_no", crnNo) |
| | | .in("io_type", 1, 10, 53, 57, 101, 103, 107, 110) |
| | | ); |
| | | if (wrkMastsList.size() > applyInTaskTotalCount) { |
| | | log.error(crnNo + "号堆垛机已达到申请入库时总任务数量上限(入库、出库)!!! 任务数量: {}, 控制数量:{}", wrkMastsList.size(), applyInTaskTotalCount); |
| | | data.add(crnNo + "号申请入库时总任务数量上限;"); |
| | | continue; |
| | | } |
| | | flag = false; |
| | | break; |
| | | } |
| | | crnNo--; |
| | | } |
| | | if (!flag) { |
| | | return getLocNoRun(whsType, staDescId, sourceStaNo, findLocNoAttributeVo, 0, locTypeDto, 0); |
| | | } else { |
| | | log.info("数据:{}", data); |
| | | throw new CoolException(data.toString()); |
| | | } |
| | | case 2: |
| | | log.error("站点={} 未查询到对应的规则", sourceStaNo); |
| | | break; |
| | |
| | | break; |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | log.error("站点={} 未查询到对应的规则,{}", sourceStaNo,e.getMessage()); |
| | | } |
| | | // } catch (Exception e) { |
| | | // log.error("站点={} 未查询到对应的规则,{}", sourceStaNo, e.getMessage()); |
| | | // } |
| | | return null; |
| | | } |
| | | |
| | |
| | | ); |
| | | if (wrkMastsList.size() > applyInTaskTotalCount) { |
| | | log.error(crnNo + "号堆垛机已达到申请入库时总任务数量上限(入库、出库)!!! 任务数量: {}, 控制数量:{}", wrkMastsList.size(), applyInTaskTotalCount); |
| | | continue; |
| | | } |
| | | |
| | | rowCount = locNecessaryParameters[0]; |
| | |
| | | locMast = locMastNew; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | // 获取目标站 |