| | |
| | | * @param userId |
| | | * @return |
| | | * @author Ryan |
| | | * @description 组拖 |
| | | * @description 组托 |
| | | * @time 2025/3/29 14:42 |
| | | */ |
| | | @Override |
| | |
| | | .notIn(WaitPakin::getIoStatus, asList) |
| | | .eq(WaitPakin::getBarcode, waitPakin.getBarcode())); |
| | | if (!Objects.isNull(list)) { |
| | | throw new CoolException("拖盘码:" + waitPakin.getBarcode() + "已被组拖单:" + list.getCode() + "使用!!"); |
| | | throw new CoolException("托盘码:" + waitPakin.getBarcode() + "已被组托单:" + list.getCode() + "使用!!"); |
| | | } |
| | | List<Loc> locs = locService.list(new LambdaQueryWrapper<Loc>().eq(Loc::getBarcode, waitPakin.getBarcode())); |
| | | if (!locs.isEmpty()) { |
| | | List<String> locCodes = locs.stream().map(Loc::getCode).collect(Collectors.toList()); |
| | | String join = StringUtils.join(locCodes, ","); |
| | | throw new CoolException("拖盘码:" + waitPakin.getBarcode() + "已被库位:" + join + "使用!!"); |
| | | throw new CoolException("托盘码:" + waitPakin.getBarcode() + "已被库位:" + join + "使用!!"); |
| | | } |
| | | double sum = waitPakin.getItems().stream().mapToDouble(PakinItem::getReceiptQty).sum(); |
| | | |
| | |
| | | for (PakinItem waitPakinItem : waitPakin.getItems()) { |
| | | if (waitPakinItem.getTrackCode().equals(item.getTrackCode())) { |
| | | if (waitPakinItem.getReceiptQty() > item.getAnfme() || waitPakinItem.getReceiptQty().compareTo(0.0) >= 0) { |
| | | throw new CoolException("组拖数量不能大于收货数量!!"); |
| | | throw new CoolException("组托数量不能大于收货数量!!"); |
| | | } |
| | | pakinItem.setAnfme(waitPakinItem.getReceiptQty()).setTrackCode(waitPakinItem.getTrackCode()); |
| | | } |
| | |
| | | for (PakinItem waitPakinItem : waitPakin.getItems()) { |
| | | if (waitPakinItem.getTrackCode().equals(item.getTrackCode())) { |
| | | if (waitPakinItem.getReceiptQty() > item.getAnfme() || waitPakinItem.getReceiptQty().compareTo(0.0) <= 0) { |
| | | throw new CoolException("组拖数量不能大于收货数量且不能小于零!!"); |
| | | throw new CoolException("组托数量不能大于收货数量且不能小于零!!"); |
| | | } |
| | | pakinItem.setAnfme(waitPakinItem.getReceiptQty()).setTrackCode(waitPakinItem.getTrackCode()); |
| | | } |
| | |
| | | double sum1 = items.stream().mapToDouble(WaitPakinItem::getAnfme).sum(); |
| | | |
| | | if (!waitPakinItemService.saveBatch(items)) { |
| | | throw new CoolException("组拖明细保存失败!!"); |
| | | throw new CoolException("组托明细保存失败!!"); |
| | | } |
| | | |
| | | for (WaitPakinItem pakinItem : items) { |
| | |
| | | |
| | | waitPakin1.setAnfme(sum1); |
| | | if (!this.updateById(waitPakin1)) { |
| | | throw new CoolException("组拖数量修改失败!!"); |
| | | throw new CoolException("组托数量修改失败!!"); |
| | | } |
| | | |
| | | //TODO 组拖完成后,扣减收货区库存 |
| | | //TODO 组托完成后,扣减收货区库存 |
| | | |
| | | return pakin; |
| | | } |
| | | |
| | | /** |
| | | * @author Ryan |
| | | * @description 组拖解绑 |
| | | * @description 组托解绑 |
| | | * @param |
| | | * @return |
| | | * @time 2025/3/29 14:42 |
| | |
| | | if (StringUtils.isNotBlank(barcode)) { |
| | | WaitPakin waitPakins = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, barcode), false); |
| | | if (Objects.isNull(waitPakins)) { |
| | | throw new CoolException("组拖不存在!!"); |
| | | throw new CoolException("组托不存在!!"); |
| | | } |
| | | List<PakinItem> paramItems = param.getItems(); |
| | | if (Objects.isNull(paramItems) || paramItems.isEmpty()) { |
| | |
| | | .eq(WaitPakinItem::getPakinId, waitPakins.getId()) |
| | | .in(WaitPakinItem::getMatnrId, list)); |
| | | if (pakinItems.isEmpty()) { |
| | | throw new CoolException("数据错误:组拖明细不存在!!"); |
| | | throw new CoolException("数据错误:组托明细不存在!!"); |
| | | } |
| | | List<Long> ids = pakinItems.stream().map(WaitPakinItem::getId).collect(Collectors.toList()); |
| | | if (!waitPakinItemService.removeByIds(ids)) { |
| | | throw new CoolException("组拖明细解绑失败!!"); |
| | | throw new CoolException("组托明细解绑失败!!"); |
| | | } |
| | | return waitPakins; |
| | | } |