package cn.iocoder.yudao.module.wms.api.transaction; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.experimental.Accessors; import jakarta.validation.constraints.NotNull; import java.math.BigDecimal; import java.time.LocalDateTime; /** * 库存事务创建请求 DTO */ @Schema(description = "库存事务创建请求 DTO") @Data @Accessors(chain = true) public class WmsTransactionCreateReqDTO { @Schema(description = "事务类型(1-入库/2-出库/3-调拨移出/4-调拨移入/5-盘盈/6-盘亏)", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "事务类型不能为空") private Integer type; @Schema(description = "业务类型(110-采购入库/118-销售出库等)", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "业务类型不能为空") private Integer bizType; @Schema(description = "业务ID") private Long bizId; @Schema(description = "业务单号") private String bizCode; @Schema(description = "业务明细行ID") private Long bizLineId; @Schema(description = "物料ID", 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 = "供应商ID") private Long vendorId; @Schema(description = "事务数量(入库正数/出库负数)", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "事务数量不能为空") private BigDecimal quantity; @Schema(description = "事务时间") private LocalDateTime transactionTime; @Schema(description = "入库时间") private LocalDateTime receiptTime; @Schema(description = "关联事务ID") private Long relatedTransactionId; @Schema(description = "是否校验库存充足(默认true,出库时校验)") private Boolean checkFlag; }