Files
baiyue-firstleg/lastleg-service/src/main/java/com/baiyue/lastleg/dto/LastlegOrderRequests.java
T

134 lines
4.4 KiB
Java

package com.baiyue.lastleg.dto;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.Size;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDate;
import java.util.List;
public final class LastlegOrderRequests {
private LastlegOrderRequests() {
}
public enum SailingStage { BEFORE_DEPARTURE, AFTER_DEPARTURE }
public record Query(
@Min(1) Long page,
@Min(1) @Max(200) Long size,
String orderNo,
String orderType,
String inboundCode,
String lxCode,
String sourceOrderNo,
String containerNo,
String currentStatus,
String status,
String warehouse,
String transferWarehouseCode,
Boolean abnormal,
Boolean detained,
LocalDateTime createdFrom,
LocalDateTime createdTo,
SailingStage sailingStage,
@Size(max = 64) String businessType,
@Size(max = 128) String businessOrderNo,
@Size(max = 128) String externalBookingNo
) {
public Query {
if (page == null || page == 0) page = 1L;
if (size == null || size == 0) size = 20L;
}
}
public record ContainerProgressQuery(
@Min(1) long page,
@Min(1) @Max(200) long size,
String containerNo,
LocalDateTime createdFrom,
LocalDateTime createdTo
) {
public ContainerProgressQuery {
if (page == 0) page = 1;
if (size == 0) size = 20;
}
}
public record ChangeReceivingWarehouse(
@NotNull Long overseasWarehouseId,
@NotNull @Min(0) Integer expectedVersion,
@Size(max = 500) String remark
) { }
public record ContainerArrivalTimeQuery(
@NotEmpty @Size(max = 200) List<@NotBlank @Size(max = 128) String> sourceContainerBookingIds
) { }
public record ChangeExpectedWarehouseArrival(
@NotNull LocalDateTime estimatedWarehouseArrivalAt,
@NotNull @Min(0) Integer expectedVersion,
@Size(max = 500) String remark
) { }
public record TransferDestination(
@NotEmpty @Size(max = 200) List<Long> orderIds,
@NotBlank @Size(max = 128) String warehouseId,
@NotBlank @Size(max = 128) String warehouseCode,
@NotBlank @Size(max = 255) String warehouseName,
@Size(max = 500) String remark
) {
}
public record SingleTransferDestination(
@NotBlank @Size(max = 128) String warehouseId,
@NotBlank @Size(max = 128) String warehouseCode,
@NotBlank @Size(max = 255) String warehouseName,
@Size(max = 500) String remark
) {
public TransferDestination withOrderId(long orderId) {
return new TransferDestination(List.of(orderId), warehouseId, warehouseCode, warehouseName, remark);
}
}
public record CreateFee(
@NotBlank @Size(max = 64) String feeItemCode,
@NotBlank @Size(max = 200) String feeItemName,
@NotBlank @Pattern(regexp = "RECEIVABLE|PAYABLE") String direction,
@NotBlank @Pattern(regexp = "CNY|USD") String currency,
@NotNull @DecimalMin(value = "0.01") BigDecimal amount,
@NotNull LocalDate businessDate,
@Min(1) Long supplierId,
@Size(max = 200) String supplierName,
@Size(max = 32) String supplierCategory,
@Pattern(regexp = "ON_ACCOUNT|DIRECT_PAID") String settlementMode,
LocalDateTime paidAt,
@Pattern(regexp = "ONLINE|BANK_TRANSFER|CASH|OTHER") String paymentMethod,
@Size(max = 128) String paymentReferenceNo,
@Size(max = 20) List<@NotBlank String> paymentVoucherFileIds,
@DecimalMin(value = "0.00", inclusive = false) BigDecimal chargeableQuantity,
@Size(max = 32) String quantityUnit,
@DecimalMin(value = "0.00", inclusive = false) BigDecimal unitPrice,
LocalDate periodStart,
LocalDate periodEnd
) {
}
public record SetPalletMergeRequired(
@NotNull Boolean palletMergeRequired
) {
}
public record SetPalletMergeBatch(
@NotEmpty @Size(max = 200) List<Long> orderIds,
@NotNull Boolean palletMergeRequired
) {
}
}