feat: support mixed-SKU dropship cartons

This commit is contained in:
2026-09-11 15:38:19 +08:00
parent 0db11517db
commit cc7c2f0954
42 changed files with 1263 additions and 128 deletions
@@ -42,13 +42,31 @@ class InboundCartonLabelPrintServiceTest {
Pallet open = dropshipPallet("OPEN");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_PDF);
when(print.generateInboundMarks(org.mockito.ArgumentMatchers.anyString(),
when(print.generateDropshipPalletA4Documents(org.mockito.ArgumentMatchers.anyString(),
org.mockito.ArgumentMatchers.eq("request-open"), org.mockito.ArgumentMatchers.any()))
.thenReturn(new ResponseEntity<>(new byte[] {7, 8, 9}, headers,
org.springframework.http.HttpStatus.OK));
ResponseEntity<byte[]> response = service.generateDropshipPallet(open, "PCHK2608040174", "request-open");
assertThat(response.getBody()).containsExactly(7, 8, 9);
ArgumentCaptor<PrintPdfClient.DropshipPalletA4PdfRequest> request =
ArgumentCaptor.forClass(PrintPdfClient.DropshipPalletA4PdfRequest.class);
verify(print).generateDropshipPalletA4Documents(org.mockito.ArgumentMatchers.eq("internal-token"),
org.mockito.ArgumentMatchers.eq("request-open"), request.capture());
assertThat(request.getValue().templateCode()).isEqualTo("DROPSHIP_PALLET_A4_V1");
assertThat(request.getValue().pageSpec().widthMm()).isEqualByComparingTo("210");
assertThat(request.getValue().pageSpec().heightMm()).isEqualByComparingTo("297");
assertThat(request.getValue().documents()).singleElement().satisfies(document -> {
assertThat(document.palletNo()).isEqualTo("DP-260911-0001");
assertThat(document.inboundCodes()).isEqualTo("PCHK2608040174");
assertThat(document.skuRows()).singleElement().satisfies(row -> {
assertThat(row.skuCode()).isEqualTo("SKU-1");
assertThat(row.cargoName()).isEqualTo("音箱");
assertThat(row.cartonCount()).isEqualTo(1);
assertThat(row.skuQuantity()).isEqualTo(19);
});
});
}
@Test