| | |
| | | List<WaitPakinItem> items = new ArrayList<>(); |
| | | for (PakinItem pakinItem1 : waitPakin.getItems()) { |
| | | //不良标签组托 |
| | | if (!Objects.isNull(waitPakin.getType()) && waitPakin.getType().equals("defective")) { |
| | | List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().in(AsnOrderItem::getAsnCode, pakinItem1.getAsnCode())); |
| | | if (Objects.isNull(orderItems) || orderItems.isEmpty()) { |
| | | throw new CoolException("单据不存在!!"); |
| | | } |
| | | for (AsnOrderItem item : orderItems) { |
| | | WaitPakinItem pakinItem = new WaitPakinItem(); |
| | | pakinItem.setAnfme(item.getAnfme()) |
| | | .setPakinId(waitPakin1.getId()) |
| | | .setAsnId(item.getAsnId()) |
| | | .setAsnCode(item.getAsnCode()) |
| | | .setAsnItemId(item.getId()) |
| | | .setBatch(item.getSplrBatch()) |
| | | .setUnit(item.getStockUnit()) |
| | | .setFieldsIndex(item.getFieldsIndex()) |
| | | .setMatnrId(item.getMatnrId()) |
| | | .setMaktx(item.getMaktx()) |
| | | .setUpdateBy(userId) |
| | | .setCreateBy(userId) |
| | | .setMatnrCode(item.getMatnrCode()); |
| | | AsnOrder order = asnOrderService.getById(item.getAsnId()); |
| | | if (!Objects.isNull(order)) { |
| | | pakinItem.setType(null == order.getType() ? null :order.getType()) |
| | | .setWkType(null == order.getWkType() ? null : Short.parseShort(order.getWkType()) ); |
| | | } |
| | | 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("组托数量不能大于收货数量!!"); |
| | | } |
| | | pakinItem.setAnfme(waitPakinItem.getReceiptQty()).setTrackCode(waitPakinItem.getTrackCode()); |
| | | } |
| | | } |
| | | items.add(pakinItem); |
| | | } |
| | | } else { |
| | | WarehouseAreasItem warehouseAreasItems = warehouseAreasItemService.getById(pakinItem1.getId()); |
| | | if (null == warehouseAreasItems) { |
| | | throw new CoolException("物料未送至收货区!!"); |
| | | } |
| | | WaitPakinItem pakinItem = new WaitPakinItem(); |
| | | pakinItem.setAnfme(warehouseAreasItems.getAnfme()) |
| | | .setPakinId(waitPakin1.getId()) |
| | | .setSource(warehouseAreasItems.getId()) |
| | | .setAsnId(warehouseAreasItems.getAsnId()) |
| | | .setAsnCode(warehouseAreasItems.getAsnCode()) |
| | | .setAsnItemId(warehouseAreasItems.getId()) |
| | | .setBatch(warehouseAreasItems.getSplrBatch()) |
| | | .setUnit(warehouseAreasItems.getStockUnit()) |
| | | .setFieldsIndex(warehouseAreasItems.getFieldsIndex()) |
| | | .setMatnrId(warehouseAreasItems.getMatnrId()) |
| | | .setMaktx(warehouseAreasItems.getMaktx()) |
| | | .setUpdateBy(userId) |
| | | .setCreateBy(userId) |
| | | .setMatnrCode(warehouseAreasItems.getMatnrCode()); |
| | | AsnOrder order = asnOrderService.getById(warehouseAreasItems.getAsnId()); |
| | | if (!Objects.isNull(order)) { |
| | | pakinItem.setType(null == order.getType() ? null :order.getType()) |
| | | .setWkType(null == order.getWkType() ? null : Short.parseShort(order.getWkType()) ); |
| | | } |
| | | |
| | | for (PakinItem waitPakinItem : waitPakin.getItems()) { |
| | | if (waitPakinItem.getTrackCode().equals(warehouseAreasItems.getTrackCode())) { |
| | | if (waitPakinItem.getReceiptQty() > warehouseAreasItems.getAnfme() || waitPakinItem.getReceiptQty().compareTo(0.0) <= 0) { |
| | | throw new CoolException("组托数量不能大于收货数量且不能小于零!!"); |
| | | } |
| | | pakinItem.setAnfme(waitPakinItem.getReceiptQty()).setTrackCode(waitPakinItem.getTrackCode()); |
| | | } |
| | | } |
| | | items.add(pakinItem); |
| | | |
| | | WarehouseAreasItem warehouseAreasItems = warehouseAreasItemService.getById(pakinItem1.getId()); |
| | | if (null == warehouseAreasItems) { |
| | | throw new CoolException("物料未送至收货区!!"); |
| | | } |
| | | WaitPakinItem pakinItem = new WaitPakinItem(); |
| | | pakinItem.setAnfme(warehouseAreasItems.getAnfme()) |
| | | .setPakinId(waitPakin1.getId()) |
| | | .setSource(warehouseAreasItems.getId()) |
| | | .setAsnId(warehouseAreasItems.getAsnId()) |
| | | .setAsnCode(warehouseAreasItems.getAsnCode()) |
| | | .setAsnItemId(warehouseAreasItems.getAsnItemId()) |
| | | .setIsptResult(warehouseAreasItems.getIsptResult()) |
| | | .setBatch(warehouseAreasItems.getSplrBatch()) |
| | | .setUnit(warehouseAreasItems.getStockUnit()) |
| | | .setFieldsIndex(warehouseAreasItems.getFieldsIndex()) |
| | | .setMatnrId(warehouseAreasItems.getMatnrId()) |
| | | .setMaktx(warehouseAreasItems.getMaktx()) |
| | | .setUpdateBy(userId) |
| | | .setCreateBy(userId) |
| | | .setMatnrCode(warehouseAreasItems.getMatnrCode()); |
| | | AsnOrder order = asnOrderService.getById(warehouseAreasItems.getAsnId()); |
| | | if (!Objects.isNull(order)) { |
| | | pakinItem.setType(null == order.getType() ? null : order.getType()) |
| | | .setWkType(null == order.getWkType() ? null : Short.parseShort(order.getWkType())); |
| | | } |
| | | |
| | | for (PakinItem waitPakinItem : waitPakin.getItems()) { |
| | | if (waitPakinItem.getId().equals(warehouseAreasItems.getId())) { |
| | | if (waitPakinItem.getReceiptQty() > warehouseAreasItems.getAnfme() || waitPakinItem.getReceiptQty().compareTo(0.0) <= 0) { |
| | | throw new CoolException("组托数量不能大于收货数量且不能小于零!!"); |
| | | } |
| | | pakinItem.setAnfme(waitPakinItem.getReceiptQty()) |
| | | .setTrackCode(waitPakinItem.getTrackCode()); |
| | | } |
| | | } |
| | | items.add(pakinItem); |
| | | |
| | | } |
| | | |
| | | double sum1 = items.stream().mapToDouble(WaitPakinItem::getAnfme).sum(); |
| | | |
| | | if (!waitPakinItemService.saveBatch(items)) { |
| | |
| | | |
| | | for (WaitPakinItem pakinItem : items) { |
| | | WarehouseAreasItem one = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>() |
| | | .eq(WarehouseAreasItem::getTrackCode, pakinItem.getTrackCode()) |
| | | .eq(!Cools.isEmpty(pakinItem.getBatch()),WarehouseAreasItem::getSplrBatch, pakinItem.getBatch())); |
| | | .eq(WarehouseAreasItem::getId, pakinItem.getSource())); |
| | | if (Objects.isNull(one)) { |
| | | throw new CoolException("收货区数据错误!!"); |
| | | } |
| | | // one.setAnfme(one.getAnfme() - pakinItem.getAnfme()) |
| | | one.setWorkQty(one.getWorkQty() + pakinItem.getAnfme() + one.getQty()) ; |
| | | one.setWorkQty(one.getWorkQty() + pakinItem.getAnfme() + one.getQty()); |
| | | if (one.getWorkQty() > one.getAnfme()) { |
| | | throw new CoolException("组托数量不能大于收货数量!!"); |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * @author Ryan |
| | | * @description 组托解绑 |
| | | * @param |
| | | * @return |
| | | * @author Ryan |
| | | * @description 组托解绑 |
| | | * @time 2025/3/29 14:42 |
| | | */ |
| | | @Override |
| | |
| | | Map<Long, List<WaitPakinItem>> listMap = pakinItems.stream().collect(Collectors.groupingBy(WaitPakinItem::getSource)); |
| | | for (WarehouseAreasItem item : areasItems) { |
| | | List<WaitPakinItem> pakin = listMap.get(item.getId()); |
| | | if (Objects.isNull(pakin)) {continue;} |
| | | if (Objects.isNull(pakin)) { |
| | | continue; |
| | | } |
| | | double sum = pakin.stream().mapToDouble(WaitPakinItem::getAnfme).sum(); |
| | | item.setWorkQty(item.getWorkQty() - sum) |
| | | .setAnfme(item.getAnfme() + sum); |