feat: explain supplemental pallet counts
This commit is contained in:
+19
-18
@@ -87,7 +87,7 @@ class ContainerInboundPlanConversionCoordinatorTest {
|
||||
var ready = new ContainerInboundPlanPreviewResponse.Order(
|
||||
"200", "Customer 200", "12", "LM-12", "RK-2", "FIRST_LEG", "FBA",
|
||||
null, "ONT8", "Amazon ONT8", "ONT8", 10, BigDecimal.ONE, 1,
|
||||
null, null, null, 0, "READY", List.of());
|
||||
0, 1, 1, null, null, null, 0, "READY", List.of());
|
||||
when(plans.convertManual(request, "manual-key", "7")).thenReturn(logical);
|
||||
when(plans.sourceContainerBookingId("100", 11L)).thenReturn(BOOKING_ID);
|
||||
when(plans.previewContainer(BOOKING_ID)).thenReturn(manualPreview(List.of(resourcePendingOrder(), ready)));
|
||||
@@ -272,11 +272,11 @@ class ContainerInboundPlanConversionCoordinatorTest {
|
||||
var fba = previewOrder("100", "11", "RK-FBA", "ABE3", "ABE3");
|
||||
var overseas = previewOrder("200", "12", "RK-OVERSEAS", "US-LAX-01", null);
|
||||
var preview = new ContainerInboundPlanPreviewResponse(BOOKING_ID, "MSCU6639870", "31", "US-LAX-01",
|
||||
"Los Angeles", 7L, SNAPSHOT_HASH, 2, 2, 0, 2, 2, 0, 2, 0, true,
|
||||
"Los Angeles", 7L, SNAPSHOT_HASH, 2, 2, 0, 2, 2, 2, 0, 0, 2, 0, true,
|
||||
List.of(new ContainerInboundPlanPreviewResponse.Group("ONE_CLICK_DROPSHIP", null, "ABE3", "Amazon ABE3",
|
||||
1, 1, 1, 0, 1, 0, List.of(fba)),
|
||||
1, 1, 1, 1, 0, 0, 1, 0, List.of(fba)),
|
||||
new ContainerInboundPlanPreviewResponse.Group("ONE_CLICK_DROPSHIP", "31", "US-LAX-01", "Los Angeles",
|
||||
1, 1, 1, 0, 1, 0, List.of(overseas))));
|
||||
1, 1, 1, 1, 0, 0, 1, 0, List.of(overseas))));
|
||||
when(plans.previewContainer(BOOKING_ID)).thenReturn(preview);
|
||||
when(numbers.next(eq("INBOUND_PLAN"), any(String.class), any(Long.class)))
|
||||
.thenReturn("IP-FBA", "IP-OVERSEAS");
|
||||
@@ -305,11 +305,11 @@ class ContainerInboundPlanConversionCoordinatorTest {
|
||||
var overseas = new ContainerInboundPlanPreviewResponse.Order(
|
||||
"200", "Customer 200", "12", "LM-12", "RK-OVERSEAS", "FIRST_LEG", "FIRST_LEG",
|
||||
"31", "US-LAX-01", "Los Angeles", null, 10, BigDecimal.ONE, 2,
|
||||
null, null, null, 0, "READY", List.of());
|
||||
0, 2, 2, null, null, null, 0, "READY", List.of());
|
||||
var preview = new ContainerInboundPlanPreviewResponse(BOOKING_ID, "MSCU6639870", "31", "US-LAX-01",
|
||||
"Los Angeles", 7L, SNAPSHOT_HASH, 1, 1, 0, 2, 2, 0, 1, 0, true,
|
||||
"Los Angeles", 7L, SNAPSHOT_HASH, 1, 1, 0, 1, 2, 0, 2, 0, 1, 0, true,
|
||||
List.of(new ContainerInboundPlanPreviewResponse.Group("FIRST_LEG", "31", "US-LAX-01", "Los Angeles",
|
||||
1, 1, 2, 0, 2, 0, List.of(overseas))));
|
||||
1, 1, 2, 0, 2, 0, 2, 0, List.of(overseas))));
|
||||
when(plans.previewContainer(BOOKING_ID)).thenReturn(preview);
|
||||
when(numbers.next(eq("INBOUND_PLAN"), any(String.class), any(Long.class))).thenReturn("IP-OVERSEAS");
|
||||
when(plans.sourcePalletNos("200", 12L, "FIRST_LEG")).thenReturn(List.of());
|
||||
@@ -337,11 +337,11 @@ class ContainerInboundPlanConversionCoordinatorTest {
|
||||
var order = new ContainerInboundPlanPreviewResponse.Order(
|
||||
"100", "Customer 100", "11", "LM-11", "RK-FBA", "FIRST_LEG", "FBA",
|
||||
null, "ACY2", "Amazon ACY2", "ACY2", 20, new BigDecimal("5.8000"), 3,
|
||||
null, null, null, 0, "READY", List.of());
|
||||
2, 3, 1, null, null, null, 0, "READY", List.of());
|
||||
var preview = new ContainerInboundPlanPreviewResponse(BOOKING_ID, "MSCU6639870", "31", "US-LAX-01",
|
||||
"Los Angeles", 7L, SNAPSHOT_HASH, 1, 1, 0, 1, 3, 0, 3, 0, true,
|
||||
"Los Angeles", 7L, SNAPSHOT_HASH, 1, 1, 0, 1, 3, 2, 1, 0, 3, 0, true,
|
||||
List.of(new ContainerInboundPlanPreviewResponse.Group("FBA", null, "ACY2", "Amazon ACY2",
|
||||
1, 1, 3, 0, 3, 0, List.of(order))));
|
||||
1, 1, 3, 2, 1, 0, 3, 0, List.of(order))));
|
||||
when(plans.previewContainer(BOOKING_ID)).thenReturn(preview);
|
||||
when(numbers.next(eq("INBOUND_PLAN"), any(String.class), any(Long.class))).thenReturn("IP-ACY2");
|
||||
when(plans.sourcePalletNos("100", 11L, "FIRST_LEG")).thenReturn(List.of(
|
||||
@@ -369,11 +369,11 @@ class ContainerInboundPlanConversionCoordinatorTest {
|
||||
var order = new ContainerInboundPlanPreviewResponse.Order(
|
||||
"100", "Customer 100", "11", "LM-11", "RK-FBA", "FIRST_LEG", "FBA",
|
||||
null, "ACY2", "Amazon ACY2", "ACY2", 20, new BigDecimal("5.8000"), 3,
|
||||
3, "IP-MANUAL", "PENDING_ASSIGNMENT", 1, "RESOURCE_PENDING", List.of());
|
||||
2, 3, 1, 3, "IP-MANUAL", "PENDING_ASSIGNMENT", 1, "RESOURCE_PENDING", List.of());
|
||||
var preview = new ContainerInboundPlanPreviewResponse(BOOKING_ID, "MSCU6639870", "31", "US-LAX-01",
|
||||
"Los Angeles", 7L, SNAPSHOT_HASH, 1, 1, 0, 1, 3, 3, 3, 3, true,
|
||||
"Los Angeles", 7L, SNAPSHOT_HASH, 1, 1, 0, 1, 3, 2, 1, 3, 3, 3, true,
|
||||
List.of(new ContainerInboundPlanPreviewResponse.Group("FBA", null, "ACY2", "Amazon ACY2",
|
||||
1, 1, 3, 3, 3, 3, List.of(order))));
|
||||
1, 1, 3, 2, 1, 3, 3, 3, List.of(order))));
|
||||
when(plans.previewContainer(BOOKING_ID)).thenReturn(preview);
|
||||
when(plans.sourcePalletNos("100", 11L, "FIRST_LEG")).thenReturn(List.of(
|
||||
"MSCU6639870-101-001", "MSCU6639870-101-002"));
|
||||
@@ -404,7 +404,8 @@ class ContainerInboundPlanConversionCoordinatorTest {
|
||||
"LM-" + orderId, inboundCode, "ONE_CLICK_DROPSHIP", "ONE_CLICK_DROPSHIP",
|
||||
fbaWarehouseCode == null ? "31" : null, destinationCode,
|
||||
fbaWarehouseCode == null ? "Los Angeles" : "Amazon " + destinationCode,
|
||||
fbaWarehouseCode, 10, BigDecimal.ONE, 1, null, null, null, 0, "READY", List.of());
|
||||
fbaWarehouseCode, 10, BigDecimal.ONE, 1, 1, 1, 0,
|
||||
null, null, null, 0, "READY", List.of());
|
||||
}
|
||||
|
||||
private ManualInboundPlanRequest manualRequest() {
|
||||
@@ -416,7 +417,7 @@ class ContainerInboundPlanConversionCoordinatorTest {
|
||||
return new ContainerInboundPlanPreviewResponse.Order(
|
||||
"100", "Customer 100", "11", "LM-11", "RK-1", "FIRST_LEG", "FBA",
|
||||
null, "ACY2", "Amazon ACY2", "ACY2", 10, BigDecimal.ONE, 1,
|
||||
1, "IP-MANUAL", "PENDING_ASSIGNMENT", 1, "RESOURCE_PENDING", List.of());
|
||||
1, 1, 0, 1, "IP-MANUAL", "PENDING_ASSIGNMENT", 1, "RESOURCE_PENDING", List.of());
|
||||
}
|
||||
|
||||
private ContainerInboundPlanPreviewResponse manualPreview(
|
||||
@@ -425,9 +426,9 @@ class ContainerInboundPlanConversionCoordinatorTest {
|
||||
|| "READY".equals(order.readiness())).count();
|
||||
return new ContainerInboundPlanPreviewResponse(BOOKING_ID, "MSCU6639870", "31", "US-LAX-01",
|
||||
"Los Angeles", 7L, SNAPSHOT_HASH, orders.size(), orders.size(), 0, pending, pending,
|
||||
0, orders.size(), 1, true,
|
||||
pending, 0, 0, orders.size(), 1, true,
|
||||
List.of(new ContainerInboundPlanPreviewResponse.Group("FBA", null, "ACY2", "Amazon ACY2",
|
||||
orders.size(), pending, pending, 0, orders.size(), 1, orders)));
|
||||
orders.size(), pending, pending, pending, 0, 0, orders.size(), 1, orders)));
|
||||
}
|
||||
|
||||
private InboundPlanResponse plan(String planNo, List<InboundPlanResponse.Pallet> pallets) {
|
||||
@@ -475,6 +476,6 @@ class ContainerInboundPlanConversionCoordinatorTest {
|
||||
|
||||
private ContainerInboundPlanPreviewResponse preview(long version, String hash) {
|
||||
return new ContainerInboundPlanPreviewResponse(BOOKING_ID, "MSCU6639870", "31", "US-LAX-01",
|
||||
"Los Angeles", version, hash, 1, 1, 0, 0, 0, 1, 1, 1, true, List.of());
|
||||
"Los Angeles", version, hash, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, true, List.of());
|
||||
}
|
||||
}
|
||||
|
||||
+25
-2
@@ -57,6 +57,8 @@ class ContainerInboundPlanPreviewTest {
|
||||
assertFalse(result.ready());
|
||||
assertEquals(4, result.pendingOrderCount());
|
||||
assertEquals(7, result.pendingPalletCount());
|
||||
assertEquals(7, result.sourcePalletCount());
|
||||
assertEquals(0, result.supplementPalletCount());
|
||||
assertEquals(2, result.existingPlannedPalletCount());
|
||||
assertEquals(List.of("A-01", "B-02", "C-03", "DROPSHIP", ""), result.groups().stream()
|
||||
.map(group -> group.destinationWarehouseCode() == null ? "" : group.destinationWarehouseCode()).toList());
|
||||
@@ -74,7 +76,7 @@ class ContainerInboundPlanPreviewTest {
|
||||
new InboundPlanOrderMapper.ContainerPreviewOrderRow("100", 1L, "LM-1", "FO-1", "测试客户",
|
||||
"FIRST_LEG", "OVERSEAS", "IN-1", "PENDING_ASSIGNMENT", null, null, 0, 0,
|
||||
BigDecimal.ZERO, null, null, null, null, null, null, null, 0, false, 1,
|
||||
null, null, null, null)));
|
||||
null, null, null, null, null)));
|
||||
|
||||
var result = service.previewContainer("BOOKING-NULL");
|
||||
|
||||
@@ -118,6 +120,27 @@ class ContainerInboundPlanPreviewTest {
|
||||
assertEquals("RESOURCE_PENDING", result.groups().get(0).orders().get(0).readiness());
|
||||
}
|
||||
|
||||
@Test
|
||||
void exposesHeadLegExistingSupplementAndFinalPalletCountsWithoutBlocking() {
|
||||
when(orderMapper.containerPreviewOrders("BOOKING-SUPPLEMENT")).thenReturn(List.of(
|
||||
new InboundPlanOrderMapper.ContainerPreviewOrderRow("100", 1L, "LM-1", "FO-1",
|
||||
"测试客户", "FIRST_LEG", "FBA", "IN-1", "PENDING_ASSIGNMENT", null,
|
||||
"MSCU6639870", 2, 250, new BigDecimal("5.3000"), "31", "US-LAX-01",
|
||||
"洛杉矶仓", "ACY2", null, null, "Amazon ACY2", 0, false, 1,
|
||||
null, null, null, null, 2)));
|
||||
|
||||
var result = service.previewContainer("BOOKING-SUPPLEMENT");
|
||||
var order = result.groups().get(0).orders().get(0);
|
||||
|
||||
assertEquals(2, order.sourcePalletCount());
|
||||
assertEquals(3, order.targetPalletCount());
|
||||
assertEquals(1, order.supplementPalletCount());
|
||||
assertEquals(2, result.sourcePalletCount());
|
||||
assertEquals(1, result.supplementPalletCount());
|
||||
assertEquals(3, result.pendingPalletCount());
|
||||
assertEquals("READY", order.readiness());
|
||||
}
|
||||
|
||||
private InboundPlanOrderMapper.ContainerPreviewOrderRow row(
|
||||
long id, String orderNo, String orderType, String destinationType, String destinationCode, String destinationName,
|
||||
int recommendedPallets, String planNo, Integer plannedPallets, int version) {
|
||||
@@ -137,6 +160,6 @@ class ContainerInboundPlanPreviewTest {
|
||||
"FBA".equals(destinationType) || destinationCode == null ? null : "WH-" + id,
|
||||
"FBA".equals(destinationType) ? null : destinationCode, destinationName,
|
||||
"FBA".equals(destinationType) || destinationCode == null ? 0 : 1, false, version, planNo,
|
||||
planStatus, plannedPallets, materializedPallets);
|
||||
planStatus, plannedPallets, materializedPallets, recommendedPallets);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user