package com.shkj.wms.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.shkj.common.annotation.Excel;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 盘点计划对象 busin_stock_inv
 *
 * @author lch
 * @date 2022-06-10
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("busin_stock_inv")
public class BusinStockInv implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
     * ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    @Excel(name = "ID", width = 20)
    private Long id;


    /**
     * 盘点单号
     */
    @Excel(name = "盘点单号", width = 20)
    private String invOrderNo;


    /**
     * 仓库库位ID
     */
    @Excel(name = "仓库库位ID", width = 20)
    private Long locationId;
    /**
     * 托盘id
     */
    private Long containerId;
    /**
     * 存储id
     */
    private Long storageId;
    /**
     * 区域id
     */
    private Long areaId;


    /**
     * 磨具ID
     */
    private Long moldId;

    /**
     * 模具条形码
     */
    private String moldBarcode;


    /**
     * 模具编码
     */
    private String moldNo;


    /**
     * 库存数量
     */
    @Excel(name = "库存数量", width = 20)
    private BigDecimal qty;


    /**
     * 盘点数量
     */
    @Excel(name = "盘点数量", width = 20)
    private BigDecimal invQty;

    /**
     * 差异数量
     */
    private BigDecimal differenceQty;


    /**
     * 盘点状态
     */
    @Excel(name = "盘点状态", width = 20)
    private String invStatus;


    /**
     * 盘点类型
     */
    @Excel(name = "盘点类型", width = 20)
    private String invType;

    /**
     * 盘点方式 明盘 open 盲盘 close
     */
    //@NotBlank(message = "盘点方式不得为空")
    private String invWay;


    /**
     * 仓ID
     */
    @Excel(name = "仓ID", width = 20)
    private Long branchId;


    /**
     * 备注
     */
    @Excel(name = "备注", width = 20)
    private String remark;


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


    /**
     * 创建人
     */
    @TableField(fill = FieldFill.INSERT)
    @Excel(name = "创建人", width = 20)
    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)
    @Excel(name = "修改人", width = 20)
    private String updateBy;

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


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

    /**
     * 出库楼层
     */
    private Integer layer;


}
