120 lines
7.3 KiB
Java
120 lines
7.3 KiB
Java
package com.baiyue.common.event;
|
|
|
|
import java.math.BigDecimal;
|
|
import java.util.List;
|
|
|
|
/** 头程装柜完成后交给海外尾程的不可变 V1 快照。 */
|
|
public record FirstLegLoadingPlanCompletedV1(
|
|
String loadingPlanId, String planNo, String containerBookingId,
|
|
String containerNo, String cabinetNo, String warehouseId, String warehouseName,
|
|
String estimatedPortArrivalAt, String actualPortArrivalAt, String estimatedWarehouseArrivalAt,
|
|
List<Order> orders) {
|
|
public FirstLegLoadingPlanCompletedV1(String loadingPlanId, String planNo, String containerBookingId,
|
|
String containerNo, String cabinetNo, String warehouseId,
|
|
String warehouseName, List<Order> orders) {
|
|
this(loadingPlanId, planNo, containerBookingId, containerNo, cabinetNo, warehouseId,
|
|
warehouseName, null, null, null, orders);
|
|
}
|
|
|
|
public record Order(
|
|
String sourceInboundId, String rootInboundId,
|
|
String sourceOrderId, String sourceOrderNo, String rootOrderId,
|
|
String inboundCode, String destinationWarehouseId,
|
|
String destinationWarehouseCode, String destinationWarehouseName,
|
|
int packageCount, Integer productQuantity, Integer palletCount,
|
|
BigDecimal grossWeightKg, BigDecimal netWeightKg, BigDecimal volumeCbm,
|
|
BigDecimal volumeWeightKg,
|
|
List<Item> items, String customerId, String customerName, String orderType, List<PalletSnapshot> pallets,
|
|
String destinationType, String lxCode) {
|
|
public Order {
|
|
items = items == null ? List.of() : items;
|
|
if (customerId == null || customerId.isBlank()) {
|
|
throw new IllegalArgumentException("customerId is required");
|
|
}
|
|
if (customerName == null || customerName.isBlank()) {
|
|
throw new IllegalArgumentException("customerName is required");
|
|
}
|
|
orderType = orderType == null || orderType.isBlank() ? "FIRST_LEG" : orderType;
|
|
pallets = pallets == null ? List.of() : pallets;
|
|
}
|
|
public Order(String sourceInboundId, String rootInboundId,
|
|
String sourceOrderId, String sourceOrderNo, String rootOrderId,
|
|
String inboundCode, String destinationWarehouseId,
|
|
String destinationWarehouseCode, String destinationWarehouseName,
|
|
int packageCount, Integer productQuantity, Integer palletCount,
|
|
BigDecimal grossWeightKg, BigDecimal netWeightKg, BigDecimal volumeCbm,
|
|
List<Item> items, String customerId, String customerName,
|
|
String orderType, List<PalletSnapshot> pallets) {
|
|
this(sourceInboundId, rootInboundId, sourceOrderId, sourceOrderNo, rootOrderId,
|
|
inboundCode, destinationWarehouseId, destinationWarehouseCode,
|
|
destinationWarehouseName, packageCount, productQuantity, palletCount,
|
|
grossWeightKg, netWeightKg, volumeCbm, null, items, customerId, customerName,
|
|
orderType, pallets, null, null);
|
|
}
|
|
public Order(String sourceInboundId, String rootInboundId,
|
|
String sourceOrderId, String sourceOrderNo, String rootOrderId,
|
|
String inboundCode, String destinationWarehouseId,
|
|
String destinationWarehouseCode, String destinationWarehouseName,
|
|
int packageCount, Integer productQuantity, Integer palletCount,
|
|
BigDecimal grossWeightKg, BigDecimal netWeightKg, BigDecimal volumeCbm,
|
|
List<Item> items, String customerId, String customerName,
|
|
String orderType, List<PalletSnapshot> pallets, String destinationType) {
|
|
this(sourceInboundId, rootInboundId, sourceOrderId, sourceOrderNo, rootOrderId,
|
|
inboundCode, destinationWarehouseId, destinationWarehouseCode,
|
|
destinationWarehouseName, packageCount, productQuantity, palletCount,
|
|
grossWeightKg, netWeightKg, volumeCbm, null, items, customerId, customerName,
|
|
orderType, pallets, destinationType, null);
|
|
}
|
|
|
|
public Order(String sourceInboundId, String rootInboundId,
|
|
String sourceOrderId, String sourceOrderNo, String rootOrderId,
|
|
String inboundCode, String destinationWarehouseId,
|
|
String destinationWarehouseCode, String destinationWarehouseName,
|
|
int packageCount, Integer productQuantity, Integer palletCount,
|
|
BigDecimal grossWeightKg, BigDecimal netWeightKg, BigDecimal volumeCbm,
|
|
BigDecimal volumeWeightKg, List<Item> items, String customerId, String customerName,
|
|
String orderType, List<PalletSnapshot> pallets, String destinationType) {
|
|
this(sourceInboundId, rootInboundId, sourceOrderId, sourceOrderNo, rootOrderId,
|
|
inboundCode, destinationWarehouseId, destinationWarehouseCode, destinationWarehouseName,
|
|
packageCount, productQuantity, palletCount, grossWeightKg, netWeightKg, volumeCbm,
|
|
volumeWeightKg, items, customerId, customerName, orderType, pallets, destinationType, null);
|
|
}
|
|
}
|
|
|
|
public record Item(
|
|
String sourceInboundDetailId, String skuCode,
|
|
String productNameZh, String productNameEn,
|
|
int packageCount, Integer productQuantity, Integer palletCount,
|
|
BigDecimal grossWeightKg, BigDecimal netWeightKg,
|
|
BigDecimal dimensionalWeightKg, BigDecimal volumeCbm,
|
|
String destinationWarehouseId, String destinationWarehouseCode,
|
|
String destinationWarehouseName, String fbaTrackingNo,
|
|
String shipmentNo, String shippingMark, String palletNo, List<String> cartonMarks) {
|
|
public Item {
|
|
cartonMarks = cartonMarks == null ? List.of() : cartonMarks;
|
|
}
|
|
public Item(String sourceInboundDetailId, String skuCode,
|
|
String productNameZh, String productNameEn,
|
|
int packageCount, Integer productQuantity, Integer palletCount,
|
|
BigDecimal grossWeightKg, BigDecimal netWeightKg,
|
|
BigDecimal dimensionalWeightKg, BigDecimal volumeCbm,
|
|
String destinationWarehouseId, String destinationWarehouseCode,
|
|
String destinationWarehouseName, String fbaTrackingNo,
|
|
String shipmentNo, String shippingMark) {
|
|
this(sourceInboundDetailId, skuCode, productNameZh, productNameEn, packageCount,
|
|
productQuantity, palletCount, grossWeightKg, netWeightKg,
|
|
dimensionalWeightKg, volumeCbm, destinationWarehouseId,
|
|
destinationWarehouseCode, destinationWarehouseName, fbaTrackingNo,
|
|
shipmentNo, shippingMark, null, List.of());
|
|
}
|
|
}
|
|
|
|
/** 一键代发入仓单的托盘冻结快照。 */
|
|
public record PalletSnapshot(String palletNo, List<SkuPackageSnapshot> skuPackages) {}
|
|
|
|
/** 托盘下 SKU、箱数、数量及箱唛冻结快照。 */
|
|
public record SkuPackageSnapshot(String skuCode, String productName,
|
|
int packageCount, int productQuantity,
|
|
List<String> cartonMarks) {}
|
|
}
|