From 74ce1358ae1fa3ebde25ea01ddcb06d022207e80 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Mon, 10 Aug 2026 12:24:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/baiyue/order/dto/OrderSplitDtos.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 order/src/main/java/com/baiyue/order/dto/OrderSplitDtos.java diff --git a/order/src/main/java/com/baiyue/order/dto/OrderSplitDtos.java b/order/src/main/java/com/baiyue/order/dto/OrderSplitDtos.java new file mode 100644 index 000000000..e374e63b1 --- /dev/null +++ b/order/src/main/java/com/baiyue/order/dto/OrderSplitDtos.java @@ -0,0 +1,47 @@ +package com.baiyue.order.dto; + +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Positive; + +import java.time.LocalDateTime; +import java.util.List; + +/** Order-domain contract consumed by Firstleg when a container pick is settled. */ +public final class OrderSplitDtos { + private OrderSplitDtos() {} + + public record CreateRequest( + @Positive Long tenantId, + @Positive Long parentOrderId, + @Positive Long sourceOrderId, + @Positive Long loadingPlanId, + @Positive Long containerBookingId, + @NotNull @Min(1) Integer sourcePackageCount, + @NotNull @Min(1) Integer loadedPackageCount, + @NotNull @Min(0) Integer remainingPackageCount, + @NotNull @Min(0) Integer expectedParentVersion, + @NotBlank String idempotencyKey, + String operationId, + List lines, + String operatorName + ) {} + + public record QuantityLine(@Positive Long sourceDetailId, @NotNull @Min(1) Integer packageCount) {} + + public record Response( + Long parentOrderId, String parentOrderNo, Integer parentVersion, + Child loadedChild, Child remainderChild, Integer sourcePackageCount, + Integer loadedPackageCount, Integer remainingPackageCount, + Long loadingPlanId, Long containerBookingId, String idempotencyKey, + LocalDateTime createdAt + ) {} + + public record Child(Long orderId, String orderNo, Integer splitSequence, + String splitRole, Integer packageCount) {} + + public record Tree(Long parentOrderId, String parentOrderNo, Integer parentVersion, + List children, Integer allocatedPackageCount, + Integer remainingPackageCount) {} +}