package cn.iocoder.yudao.module.wms.api.dto;
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
import lombok.Data;
|
import lombok.experimental.Accessors;
|
|
import jakarta.validation.Valid;
|
import jakarta.validation.constraints.NotEmpty;
|
import jakarta.validation.constraints.NotNull;
|
import java.math.BigDecimal;
|
import java.time.LocalDateTime;
|
import java.util.List;
|
|
/**
|
* 销售出库请求 DTO
|
*/
|
@Schema(description = "销售出库请求 DTO")
|
@Data
|
@Accessors(chain = true)
|
public class WmsSalesOutboundReqDTO {
|
|
@Schema(description = "业务ID(销售出库单ID)", requiredMode = Schema.RequiredMode.REQUIRED)
|
@NotNull(message = "业务ID不能为空")
|
private Long bizId;
|
|
@Schema(description = "业务单号", requiredMode = Schema.RequiredMode.REQUIRED)
|
@NotEmpty(message = "业务单号不能为空")
|
private String bizCode;
|
|
@Schema(description = "客户ID")
|
private Long clientId;
|
|
@Schema(description = "出库时间")
|
private LocalDateTime outboundTime;
|
|
@Schema(description = "出库明细", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Valid
|
@NotEmpty(message = "出库明细不能为空")
|
private List<Item> items;
|
|
@Schema(description = "出库明细项")
|
@Data
|
@Accessors(chain = true)
|
public static class Item {
|
|
@Schema(description = "物料ID(MES物料)", requiredMode = Schema.RequiredMode.REQUIRED)
|
@NotNull(message = "物料ID不能为空")
|
private Long itemId;
|
|
@Schema(description = "仓库ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
@NotNull(message = "仓库ID不能为空")
|
private Long warehouseId;
|
|
@Schema(description = "库区ID")
|
private Long locationId;
|
|
@Schema(description = "库位ID")
|
private Long areaId;
|
|
@Schema(description = "批次ID")
|
private Long batchId;
|
|
@Schema(description = "批次编码")
|
private String batchCode;
|
|
@Schema(description = "出库数量(负数)", requiredMode = Schema.RequiredMode.REQUIRED)
|
@NotNull(message = "出库数量不能为空")
|
private BigDecimal quantity;
|
|
@Schema(description = "明细行ID")
|
private Long bizLineId;
|
}
|
}
|