| | |
| | | AsnOrder order = new AsnOrder(); |
| | | BeanUtils.copyProperties(delivery, order); |
| | | String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_OUT_STOCK_CODE, order); |
| | | if (Objects.isNull(ruleCode) || StringUtils.isBlank(ruleCode)) { |
| | | if (StringUtils.isBlank(ruleCode)) { |
| | | throw new CoolException("编码规则错误:请检查 「SYS_OUT_STOCK_CODE」编码是否设置成功"); |
| | | } |
| | | order.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val) |
| | |
| | | ); |
| | | locItemQueryWrapper.apply(applySql); |
| | | List<LocItem> locItems = locItemService.list(locItemQueryWrapper); |
| | | locItems.sort(Comparator |
| | | .comparing((LocItem item) -> !LocUtils.isShallowLoc(item.getLocCode())) |
| | | ); |
| | | locItems.sort(Comparator.comparing((LocItem item) -> !LocUtils.isShallowLoc(item.getLocCode()))); |
| | | return locItems; |
| | | } |
| | | |
| | |
| | | continue; |
| | | } |
| | | List<LocItem> locItems = null; |
| | | if (WaveRuleType.Efficiency_First.type.equals(waveRule.getType())) { |
| | | locItems = getEfficiencyFirstItemList(asnOrderItem); |
| | | } else if (WaveRuleType.First_In_First_Out.type.equals(waveRule.getType())) { |
| | | locItems = getFirstInFirstOutItemList(asnOrderItem); |
| | | } else { |
| | | locItems = getFirstInFirstOutItemList(asnOrderItem); |
| | | List<LocItem> items = locItemService.list(new LambdaQueryWrapper<LocItem>() |
| | | .eq(StringUtils.isNotBlank(asnOrderItem.getSplrBatch()), LocItem::getBatch, asnOrderItem.getSplrBatch()) |
| | | .eq(StringUtils.isNotBlank(asnOrderItem.getFieldsIndex()), LocItem::getFieldsIndex, asnOrderItem.getFieldsIndex()) |
| | | .eq(StringUtils.isNotBlank(asnOrderItem.getPlatOrderCode()), LocItem::getPlatOrderCode, asnOrderItem.getPlatOrderCode()) |
| | | .eq(LocItem::getAnfme, asnOrderItem.getAnfme()) |
| | | .eq(LocItem::getMatnrId, asnOrderItem.getMatnrId())); |
| | | if (!items.isEmpty()) { |
| | | for (LocItem item : items) { |
| | | if (LocUtils.isShallowLoc(item.getLocCode())) { |
| | | locItems.add(item); |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (Objects.isNull(locItems) || locItems.isEmpty()) { |
| | | if (WaveRuleType.Efficiency_First.type.equals(waveRule.getType())) { |
| | | locItems = getEfficiencyFirstItemList(asnOrderItem); |
| | | } else if (WaveRuleType.First_In_First_Out.type.equals(waveRule.getType())) { |
| | | locItems = getFirstInFirstOutItemList(asnOrderItem); |
| | | } else { |
| | | locItems = getFirstInFirstOutItemList(asnOrderItem); |
| | | } |
| | | } |
| | | |
| | | for (LocItem locItem : locItems) { |
| | | Loc loc = locService.getById(locItem.getLocId()); |
| | | List<LocItem> itemList = locItemService.list(new LambdaQueryWrapper<LocItem>().eq(LocItem::getLocCode, locItem.getLocCode())); |