提交
This commit is contained in:
+8
-2
@@ -190,7 +190,9 @@ public class WarehouseTransferService {
|
|||||||
private List<WarehouseTransferResponses.SourceCarton> unreservedSourceCartons(String customerId,
|
private List<WarehouseTransferResponses.SourceCarton> unreservedSourceCartons(String customerId,
|
||||||
String warehouseId, String source, List<WarehouseTransferResponses.SourceCarton> cartons) {
|
String warehouseId, String source, List<WarehouseTransferResponses.SourceCarton> cartons) {
|
||||||
if (inventorySources == null) return cartons;
|
if (inventorySources == null) return cartons;
|
||||||
Set<String> occupied = inventorySources.occupiedMarks(customerId, warehouseId, source).stream()
|
var occupiedMarks = inventorySources.occupiedMarks(customerId, warehouseId, source);
|
||||||
|
if (occupiedMarks == null || occupiedMarks.isEmpty()) return cartons;
|
||||||
|
Set<String> occupied = occupiedMarks.stream()
|
||||||
.filter(StringUtils::hasText).map(mark -> mark.trim().toUpperCase(java.util.Locale.ROOT))
|
.filter(StringUtils::hasText).map(mark -> mark.trim().toUpperCase(java.util.Locale.ROOT))
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
return cartons.stream().filter(box -> !occupied.contains(box.cartonMark().trim()
|
return cartons.stream().filter(box -> !occupied.contains(box.cartonMark().trim()
|
||||||
@@ -483,7 +485,6 @@ public class WarehouseTransferService {
|
|||||||
// 所有同源提交锁定同一入仓记录;取锁后按最新可用箱校验并保存逐箱占用快照。
|
// 所有同源提交锁定同一入仓记录;取锁后按最新可用箱校验并保存逐箱占用快照。
|
||||||
if (inventorySources != null && inventorySources.lockSource(customerId, transfer.getInboundOrderId()) == null)
|
if (inventorySources != null && inventorySources.lockSource(customerId, transfer.getInboundOrderId()) == null)
|
||||||
throw conflict("库存来源已失效,请重新选择来源单");
|
throw conflict("库存来源已失效,请重新选择来源单");
|
||||||
if (inventorySources != null) reserveSourceCartons(customerId, transfer);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Boolean.TRUE.equals(transfer.getNeedRelabel())) {
|
if (Boolean.TRUE.equals(transfer.getNeedRelabel())) {
|
||||||
@@ -499,6 +500,11 @@ public class WarehouseTransferService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 来源箱归属校验通过后再写入占用快照,保证错误箱号返回明确提示。
|
||||||
|
if (!transfer.getTransferNo().equals(transfer.getInboundCode()) && inventorySources != null) {
|
||||||
|
reserveSourceCartons(customerId, transfer);
|
||||||
|
}
|
||||||
|
|
||||||
LastlegOrder order = requireTailOrder(customerId, transfer);
|
LastlegOrder order = requireTailOrder(customerId, transfer);
|
||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
transfer.setStatus(PENDING_REVIEW);
|
transfer.setStatus(PENDING_REVIEW);
|
||||||
|
|||||||
Reference in New Issue
Block a user