feat: generate dispatch BOL PDFs

This commit is contained in:
2026-09-11 10:09:06 +08:00
parent 81f4f9163c
commit 220d159cec
16 changed files with 484 additions and 4 deletions
@@ -0,0 +1,28 @@
package com.baiyue.lastleg.client;
import java.math.BigDecimal;
import java.util.List;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
@FeignClient(name = "print-service", contextId = "lastlegPrintPdfClient",
url = "${baiyue.clients.print.url:}", path = "/internal/print/v1/pdfs")
public interface PrintPdfClient {
@PostMapping(value = "/dispatch-bol-documents", consumes = "application/json")
ResponseEntity<byte[]> generateDispatchBol(
@RequestHeader("X-Internal-Service-Token") String token,
@RequestHeader(value = "X-Request-Id", required = false) String requestId,
@RequestBody Request request);
record Request(String templateCode, PageSpec pageSpec, String downloadFileName, List<Document> documents) {}
record PageSpec(BigDecimal widthMm, BigDecimal heightMm) {}
record Document(String shipFromName, String shipFromAddress, String carrierName, String isaNumber,
String appointmentTime, String trailerNumber, String sealNumber, String fbaWarehouseCode,
String shipToName, String shipToAddress, String dispatchNo, String fbaShipmentIds,
String poReferenceNos, int totalPackages, int pageNumber, int pageCount, List<CargoRow> cargoRows) {}
record CargoRow(String containerNo, String palletNo, String fbaWarehouseCode, String warehouseNo,
String fbaShipmentId, String poReferenceNo, int packageCount) {}
}