package com.wms_main.model.po;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 数据库Stock表映射
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "t_app_stock", autoResultMap = true)
public class TAppStock {
    /**
     * 库存编号
     */
    @TableId(value = "stock_id")
    private String stockId;
    /**
     * 载具号
     */
    @TableField(value = "vehicle_id")
    private String vehicleId;
    /**
     * 库位号
     */
    @TableField(value = "location_id")
    private String locationId;
    /**
     * 库存状态
     */
    @TableField(value = "stock_status")
    private Integer stockStatus;
    /**
     * 物料编号
     */
    @TableField(value = "goods_id")
    private String goodsId;
    /**
     * 物料状态
     */
    @TableField(value = "goods_status")
    private Integer goodsStatus;
    /**
     * 初次入库时间
     */
    @TableField(value = "first_in_time")
    private LocalDateTime firstInTime;
    /**
     * 初次入库用户
     */
    @TableField(value = "first_in_user")
    private String firstInUser;
    /**
     * 上次更新时间
     */
    @TableField(value = "last_update_time")
    private LocalDateTime lastUpdateTime;
    /**
     * 上次更新用户
     */
    @TableField(value = "last_update_user")
    private String lastUpdateUser;
    /**
     * 入库总量
     */
    @TableField(value = "total_num")
    private Integer totalNum;
    /**
     * 剩余数量
     */
    @TableField(value = "remain_num")
    private Integer remainNum;
    /**
     * 实际数量
     */
    @TableField(value = "real_num")
    private Integer realNum;
    /**
     * 物料描述
     */
    @TableField(value = "goods_desc")
    private String goodsDesc;
    /**
     * 有效期
     */
    @TableField(value = "expire_date")
    private LocalDate expireDate;
    /**
     * sled 天数
     */
    @TableField(value = "sled")
    private Integer sled;
    /**
     * 上次盘点任务号
     */
    @TableField(value = "last_inventory_id")
    private String lastInventoryId;
    /**
     * 上次盘点时间
     */
    @TableField(value = "last_inventory_time")
    private LocalDateTime lastInventoryTime;

    /**
     * 单据号
     */
    @TableField(value = "bill_no")
    private String billNo;

    /**
     * 单据类型
     */
    @TableField(value = "bill_type")
    private String billType;
    /**
     * 任务单号
     */
    @TableField(value = "task_no")
    private String taskNo;           // 任务单号，不可重复（to+toItem）

    /**
     * 任务单状态
     */
    @TableField(value = "order_no")
    private String orderNo;          // 客户原始单号，必填（po+poItem或者woNo）

    /**
     * 单据类型
     */
    @TableField(value = "order_type")
    private String orderType;        // 单据类型

    /**
     * 对应商品基础资料的 ME INH
     */
    @TableField(value = "sku_unit")
    private String skuUnit;

    /**
     * 备注
     */
    @TableField(value = "remark")
    private String remark;           // 备注

    /**
     * 特殊库存（E,K,Q)
     */
    @TableField(value = "special_stock")
    private String specialStock;     // 特殊库存（E,K,Q)

     /**
     * so单号与供应商编号，出库指定SO号或者供应商编号出库
     */
    @TableField(value = "special_stock_no")
    private String specialStockNo;

     /**
     * 物殊库存item号
     */
    @TableField(value = "special_stock_item_no")
    private String specialStockItemNo; // 物殊库存item号

     /**
     * 批次号
     */
     @TableField(value = "batch_no")
    private String batchNo;          // 批次号
}
