package cn.iocoder.yudao.module.mes.controller.admin.wm.materialstock.vo;
|
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.Positive;
|
import lombok.Data;
|
import org.springframework.format.annotation.DateTimeFormat;
|
|
import java.math.BigDecimal;
|
import java.time.LocalDate;
|
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
|
|
/**
|
* 库存调整(自定义出入库)Request VO
|
*/
|
@Schema(description = "管理后台 - 库存调整 Request VO")
|
@Data
|
public class MesWmMaterialStockAdjustReqVO {
|
|
@Schema(description = "物料ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
@NotNull(message = "物料ID不能为空")
|
private Long itemId;
|
|
@Schema(description = "仓库ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
@NotNull(message = "仓库ID不能为空")
|
private Long warehouseId;
|
|
@Schema(description = "库区ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
@NotNull(message = "库区ID不能为空")
|
private Long locationId;
|
|
@Schema(description = "库位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
@NotNull(message = "库位ID不能为空")
|
private Long areaId;
|
|
// ========== 批次相关字段 ==========
|
|
@Schema(description = "批次ID(选择已有批次时传入)", example = "1")
|
private Long batchId;
|
|
@Schema(description = "批次号(新建批次时传入,系统自动创建批次记录)", example = "BATCH001")
|
private String batchCode;
|
|
@Schema(description = "生产日期(新建批次时传入)", example = "2025-01-01")
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
|
@JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY)
|
private LocalDate produceDate;
|
|
@Schema(description = "有效期(新建批次时传入)", example = "2026-01-01")
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
|
@JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY)
|
private LocalDate expireDate;
|
|
@Schema(description = "供应商ID", example = "1")
|
private Long vendorId;
|
|
@Schema(description = "生产批号", example = "LOT001")
|
private String lotNumber;
|
|
@Schema(description = "质量状态(0-待检验 1-合格 2-不合格,支持数字或字符串)", example = "1")
|
private Object qualityStatus;
|
|
// ========== 其他字段 ==========
|
|
@Schema(description = "数量(必须大于0)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
|
@NotNull(message = "数量不能为空")
|
@Positive(message = "数量必须大于0")
|
private BigDecimal quantity;
|
|
@Schema(description = "原因", example = "盘点调整")
|
private String reason;
|
|
}
|