fix: reclaim newly added container plans
This commit is contained in:
+4
-2
@@ -150,6 +150,9 @@ public class ReceivingContainerService {
|
|||||||
requireSessionWarehouse(active, overseasWarehouseId);
|
requireSessionWarehouse(active, overseasWarehouseId);
|
||||||
if (active != null) {
|
if (active != null) {
|
||||||
if (!containerNo.equals(active.getContainerNo())) throw conflict("Finish the current container before selecting another one");
|
if (!containerNo.equals(active.getContainerNo())) throw conflict("Finish the current container before selecting another one");
|
||||||
|
WarehouseResourceGateway.WarehouseReference receivingWarehouse =
|
||||||
|
warehouse.requireActiveSharedWarehouse(overseasWarehouseId);
|
||||||
|
claimReceivingWarehouse(customerId, containerPlans, receivingWarehouse);
|
||||||
ReceivingContainerResponses.Session result = snapshot(active, containerPlans);
|
ReceivingContainerResponses.Session result = snapshot(active, containerPlans);
|
||||||
save(active, "PREPARE", request.idempotencyKey(), command, result); return result;
|
save(active, "PREPARE", request.idempotencyKey(), command, result); return result;
|
||||||
}
|
}
|
||||||
@@ -727,8 +730,7 @@ public class ReceivingContainerService {
|
|||||||
private boolean warehouseEligible(List<InboundPlan> containerPlans, long overseasWarehouseId) {
|
private boolean warehouseEligible(List<InboundPlan> containerPlans, long overseasWarehouseId) {
|
||||||
Set<Long> assigned = containerPlans.stream().map(InboundPlan::getOverseasWarehouseId)
|
Set<Long> assigned = containerPlans.stream().map(InboundPlan::getOverseasWarehouseId)
|
||||||
.filter(Objects::nonNull).collect(Collectors.toSet());
|
.filter(Objects::nonNull).collect(Collectors.toSet());
|
||||||
if (assigned.size() > 1 || (!assigned.isEmpty() && containerPlans.stream()
|
if (assigned.size() > 1) {
|
||||||
.anyMatch(plan -> plan.getOverseasWarehouseId() == null))) {
|
|
||||||
throw conflict("Container plans have inconsistent receiving warehouse assignments");
|
throw conflict("Container plans have inconsistent receiving warehouse assignments");
|
||||||
}
|
}
|
||||||
return assigned.isEmpty() || assigned.contains(overseasWarehouseId);
|
return assigned.isEmpty() || assigned.contains(overseasWarehouseId);
|
||||||
|
|||||||
Reference in New Issue
Block a user