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 WmsPurchaseInboundReqDTO { @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 vendorId; @Schema(description = "入库时间") private LocalDateTime receiptTime; @Schema(description = "入库明细", requiredMode = Schema.RequiredMode.REQUIRED) @Valid @NotEmpty(message = "入库明细不能为空") private List 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; } }