fix: 按物理箱贯通一件代发履约箱数
This commit is contained in:
+15
-2
@@ -219,9 +219,22 @@ public class LoadingCompletedConsumer {
|
||||
FirstLegLoadingPlanCompletedV1.Order order = payload.orders().get(index);
|
||||
Set<String> orderCartonMarks = new HashSet<>();
|
||||
if ("ONE_CLICK_DROPSHIP".equals(order.orderType())) {
|
||||
for (FirstLegLoadingPlanCompletedV1.PalletSnapshot pallet : order.pallets()) {
|
||||
JsonNode rawPallets = rawPayload.path("orders").get(index).path("pallets");
|
||||
for (int palletIndex = 0; palletIndex < order.pallets().size(); palletIndex++) {
|
||||
FirstLegLoadingPlanCompletedV1.PalletSnapshot pallet = order.pallets().get(palletIndex);
|
||||
Set<String> palletCartonMarks = new HashSet<>();
|
||||
for (FirstLegLoadingPlanCompletedV1.SkuPackageSnapshot sku : pallet.skuPackages()) {
|
||||
requireSkuCartonMapping(sku.skuCode(), sku.packageCount(), sku.cartonMarks(), orderCartonMarks);
|
||||
requireSkuCartonMapping(sku.skuCode(), sku.packageCount(), sku.cartonMarks(), new HashSet<>());
|
||||
palletCartonMarks.addAll(sku.cartonMarks());
|
||||
}
|
||||
int manifestPackages = rawPallets.path(palletIndex).path("manifestPackageCount").asInt(-1);
|
||||
if (palletCartonMarks.size() != manifestPackages) {
|
||||
throw new IllegalArgumentException("一件代发托盘物理箱数与清单箱数不一致: " + pallet.palletNo());
|
||||
}
|
||||
for (String mark : palletCartonMarks) {
|
||||
if (!orderCartonMarks.add(mark)) {
|
||||
throw new IllegalArgumentException("一件代发物理箱不能跨托盘重复: " + mark);
|
||||
}
|
||||
}
|
||||
}
|
||||
dropshipReceivingLabels(order, rawPayload.path("orders").get(index));
|
||||
|
||||
Reference in New Issue
Block a user