fix: 支持多SKU共箱整托装柜
This commit is contained in:
@@ -1368,8 +1368,7 @@ class LoadingPickServiceTest {
|
||||
var snapshot = service.inventorySnapshot(20L, 101L);
|
||||
assertThat(snapshot.units()).hasSize(2).allSatisfy(unit -> assertThat(unit.palletNo()).isEqualTo("DP-260909-0001"));
|
||||
var request = new BatchRequest(101L, 10L, 99L, 0, snapshot.snapshotToken(), List.of(
|
||||
new BatchItemRequest(30L, "PICK_PALLET", null, null, 0, null, "DP-260909-0001"),
|
||||
new BatchItemRequest(31L, "PICK_PALLET", null, null, 0, null, "DP-260909-0001")));
|
||||
new BatchItemRequest(30L, "PICK_PALLET", null, null, 0, null, "DP-260909-0001")));
|
||||
service.batch(20L, "batch-pallet", request, 9L, "operator");
|
||||
service.batch(20L, "batch-pallet", request, 9L, "operator");
|
||||
verify(repository, times(1)).pick(30L, 2, 0, 101L);
|
||||
@@ -1382,20 +1381,20 @@ class LoadingPickServiceTest {
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@ValueSource(strings = {"missing-row", "ordinary", "partial", "skip", "quantity", "wrong-code", "unsealed", "wrong-warehouse", "physical-short", "stale-item", "stale-task", "stale-snapshot"})
|
||||
@ValueSource(strings = {"missing-unit", "duplicate-pallet", "ordinary", "partial", "skip", "quantity", "wrong-code", "unsealed", "wrong-warehouse", "physical-short", "stale-item", "stale-task", "stale-snapshot"})
|
||||
void rejectsInvalidWholePalletBatchBeforeAnyWrite(String scenario) {
|
||||
var items = prepareWholePalletBatch();
|
||||
String snapshot = service.inventorySnapshot(20L, 101L).snapshotToken();
|
||||
var lines = new java.util.ArrayList<>(List.of(
|
||||
new BatchItemRequest(30L, "PICK_PALLET", null, null, 0, null, "DP-260909-0001"),
|
||||
new BatchItemRequest(31L, "PICK_PALLET", null, null, 0, null, "DP-260909-0001")));
|
||||
new BatchItemRequest(30L, "PICK_PALLET", null, null, 0, null, "DP-260909-0001")));
|
||||
switch (scenario) {
|
||||
case "missing-row" -> lines.remove(1);
|
||||
case "ordinary" -> lines.set(1, new BatchItemRequest(31L, "PICK", 2, null, 0, null, null));
|
||||
case "partial" -> lines.set(1, new BatchItemRequest(31L, "PARTIAL", null, 1, 0, null, null));
|
||||
case "skip" -> lines.set(1, new BatchItemRequest(31L, "SKIP", null, null, 0, "skip", null));
|
||||
case "quantity" -> lines.set(1, new BatchItemRequest(31L, "PICK_PALLET", 2, null, 0, null, "DP-260909-0001"));
|
||||
case "wrong-code" -> lines.set(1, new BatchItemRequest(31L, "PICK_PALLET", null, null, 0, null, "DP-260909-0999"));
|
||||
case "missing-unit" -> lines.clear();
|
||||
case "duplicate-pallet" -> lines.add(new BatchItemRequest(31L, "PICK_PALLET", null, null, 0, null, "DP-260909-0001"));
|
||||
case "ordinary" -> lines.set(0, new BatchItemRequest(30L, "PICK", 2, null, 0, null, null));
|
||||
case "partial" -> lines.set(0, new BatchItemRequest(30L, "PARTIAL", null, 1, 0, null, null));
|
||||
case "skip" -> lines.set(0, new BatchItemRequest(30L, "SKIP", null, null, 0, "skip", null));
|
||||
case "quantity" -> lines.set(0, new BatchItemRequest(30L, "PICK_PALLET", 2, null, 0, null, "DP-260909-0001"));
|
||||
case "wrong-code" -> lines.set(0, new BatchItemRequest(30L, "PICK_PALLET", null, null, 0, null, "DP-260909-0999"));
|
||||
case "unsealed" -> dropshipPallets.sealedPalletLines(801L).get(0).setPalletStatus("OPEN");
|
||||
case "wrong-warehouse" -> dropshipPallets.sealedPalletLines(801L).get(0).setWarehouseId(999L);
|
||||
case "physical-short" -> dropshipPallets.sealedPalletLines(801L).get(0).setCartonCount(1);
|
||||
|
||||
Reference in New Issue
Block a user