package com.klp.domain.bo; import com.klp.common.core.domain.BaseEntity; import com.klp.common.core.validate.AddGroup; import com.klp.common.core.validate.EditGroup; import lombok.Data; import lombok.EqualsAndHashCode; import javax.validation.constraints.*; import java.math.BigDecimal; /** * 出入库单明细业务对象 wms_stock_io_detail * * @author Joshi * @date 2025-07-18 */ @Data @EqualsAndHashCode(callSuper = true) public class WmsStockIoDetailBo extends BaseEntity { /** * 明细ID */ private Long detailId; /** * 出入库单ID */ @NotNull(message = "出入库单ID不能为空", groups = { AddGroup.class, EditGroup.class }) private Long stockIoId; /** * 库区/库位ID */ @NotNull(message = "库区/库位ID不能为空", groups = { AddGroup.class, EditGroup.class }) private Long warehouseId; /** * 物品类型(raw_material/product) */ @NotBlank(message = "物品类型(raw_material/product)不能为空", groups = { AddGroup.class, EditGroup.class }) private String itemType; /** * 物品ID */ @NotNull(message = "物品ID不能为空", groups = { AddGroup.class, EditGroup.class }) private Long itemId; /** * 数量 */ @NotNull(message = "数量不能为空", groups = { AddGroup.class, EditGroup.class }) private BigDecimal quantity; /** * 单位 */ @NotBlank(message = "单位不能为空", groups = { AddGroup.class, EditGroup.class }) private String unit; /** * 批次号 */ @NotBlank(message = "批次号不能为空", groups = { AddGroup.class, EditGroup.class }) private String batchNo; /** * 备注 */ private String remark; /** * 源库位ID(移库时使用) */ private Long fromWarehouseId; }