package com.shkj.wms.bo;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 出入库计划对象
 *
 * @author lch
 * @date 2023-06-02
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class BusinOutInPlanEditBo implements Serializable {

private static final long serialVersionUID=1L;


    /**
     * $column.columnComment
     */
    @NotNull(message = "${column.columnComment}不得为空")
    private Long id;


    /**
     * 订单号
     */
    @NotBlank(message = "订单号不得为空")
    private String orderNo;


    /**
     * 模具条码
     */
    @NotBlank(message = "模具条码不得为空")
    private String moldBarcode;


    /**
     * 磨具id
     */
    @NotNull(message = "模具id不得为空")
    private Long moldId;


    /**
     * 磨具编码
     */
    @NotBlank(message = "磨具编码不得为空")
    private String moldNo;


    /**
     * 托盘编号
     */
    @NotNull(message = "托盘编号不得为空")
    private Long containerId;


    /**
     * 托盘编码
     */
    @NotBlank(message = "托盘编码不得为空")
    private String containerCode;


    /**
     * 出入库类型 in=入库 出库=out
     */
    @NotBlank(message = "出入库类型 in=入库 出库=out不得为空")
    private String type;


    /**
     * 出入库状态 状态 0 待入(出)库 1 入(出)库中  2已入(出)库   3已取消 -1异常
     */
    @NotBlank(message = "出入库状态 状态 0 待入(出)库 1 入(出)库中  2已入(出)库   3已取消 -1异常不得为空")
    private String planStatus;


    /**
     * 分配货位
     */
    @NotNull(message = "分配货位不得为空")
    private Long locationId;


    /**
     * 异常信息
     */
    @NotBlank(message = "异常信息不得为空")
    private String errorMsg;


    /**
     * 数量
     */
    @NotNull(message = "数量不得为空")
    private BigDecimal qty;


    /**
     * 仓ID
     */
    @NotNull(message = "仓ID不得为空")
    private Long branchId;


    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+7")
    private Date createTime;


    /**
     * 创建人
     */
    @TableField(fill = FieldFill.INSERT)
    @NotBlank(message = "创建人不得为空")
    private String createBy;


    /**
     * 修改时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+7")
    private Date updateTime;


    /**
     * 修改人
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @NotBlank(message = "修改人不得为空")
    private String updateBy;


}
