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

102 lines
3.0 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.util.List;
public final class LastlegOrderRequests {
private LastlegOrderRequests() {
}
public record Query(
@Min(1) Long page,
@Min(1) @Max(200) Long size,
String orderNo,
String orderType,
String inboundCode,
String sourceOrderNo,
String containerNo,
String currentStatus,
String status,
String warehouse,
String transferWarehouseCode,
Boolean abnormal,
Boolean detained,
LocalDateTime createdFrom,
LocalDateTime createdTo
) {
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 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 = 128) String feeItem,
@NotBlank @Pattern(regexp = "[A-Z]{3}") String currency,
@NotNull @DecimalMin(value = "0.01") BigDecimal amount,
@NotBlank @Pattern(regexp = "PENDING_REVIEW|APPROVED|REJECTED") String status,
@Size(max = 500) String supplierDescription
) {
}
public record SetDetained(
@NotNull Boolean detained,
@NotBlank @Size(max = 500) String remark
) {
}
public record SetPalletMergeRequired(
@NotNull Boolean palletMergeRequired
) {
}
public record SetPalletMergeBatch(
@NotEmpty @Size(max = 200) List<Long> orderIds,
@NotNull Boolean palletMergeRequired
) {
}
}