package com.zbf.system.domain.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zbf.common.annotation.Excel;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@Data
public class TMiStockVo {
    private static final long serialVersionUID = 1L;

    /**
     * 库存编号
     */
    @TableId(value = "id", type = IdType.AUTO)
    private String id;

    /**
     * 仓库编号
     */
    @Excel(name = "仓库编号")
    private String storageId;

    /**
     * 库区编号
     */
    @Excel(name = "库区编号")
    private String storageAreaId;

    /**
     * 库位编号
     */
    @Excel(name = "库位编号")
    private String locationId;

    /**
     * 物料编号
     */
    @Excel(name = "物料编号")
    private String goodsId;

    /**
     * 数量
     */
    @Excel(name = "数量")
    private BigDecimal shelvesNum;

    /**
     * 版本号
     */
    @Excel(name = "版本号")
    private String version;

    /**
     * 入库类型
     */
    @Excel(name = "入库类型")
    private String storageMode;

    /**
     * 中标供应商
     */
    @Excel(name = "中标供应商")
    private String providerId;

    /**
     * 生产日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date productionDate;

    /**
     * 入库时间
     */
    @Excel(name = "入库时间")
    private String wareDate;

    /**
     * 单据编号
     */
    @Excel(name = "单据编号")
    private String doctNumber;

    /**
     * 商品体积
     */
    @Excel(name = "商品体积")
    private BigDecimal goodsVolume;

    /**
     * 已占用数量
     */
    @Excel(name = "已占用数量")
    private BigDecimal occupyNum;

    /**
     * 通知单号
     */
    @Excel(name = "通知单号")
    private String noticeId;

    /**
     * 图号
     */
    @Excel(name = "图号")
    private String oriBill;

    /**
     * 占用容器
     */
    @Excel(name = "占用容器")
    private String ctl;

    /**
     * 条形码
     */
    @Excel(name = "条形码")
    private String barcode;

    /**
     * 宽
     */
    @Excel(name = "宽")
    private String wgh;

    /**
     * 高
     */
    @Excel(name = "高")
    private String high;

    /**
     * 物料名称
     */
    @Excel(name = "物料名称 ")
    private String goodsName;

    /**
     * 状态（0：正常 1： 冻结）
     */
    @Excel(name = "状态", readConverterExp = "0=：正常,1=：,冻=结")
    private String status;

    /**
     * 招标员
     */
    @Excel(name = "招标员 ")
    private String customerId;

    /**
     * 生产批号
     */
    @Excel(name = "生产批号")
    private String batchNo;

    /**
     * 过期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "过期时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dueDate;

    /**
     * 检查时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "检查时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date checkDate;

    /**
     * 标准
     */
    @Excel(name = "标准")
    private String standard;

    /**
     * 标注过期
     */
    @Excel(name = "标注过期")
    private String flag;

    /**
     * 过期天数
     */
    @Excel(name = "过期天数")
    private String mark;

    /**
     * 订单数量
     */
    @Excel(name = "订单数量")
    private String orderNum;

    /**
     * 物料问题
     */
    @Excel(name = "物料问题")
    private String problem;

    /**
     * 计划单价（含税）
     */
    @Excel(name = "计划单价", readConverterExp = "含=税")
    private String price;

    /**
     * 出库数量
     */
    @Excel(name = "出库数量")
    private BigDecimal packingNum;

    /**
     * 料箱类型
     */
    @Excel(name = "料箱类型")
    private String boxType;

    /**
     * 测量单位
     */
    @Excel(name = "测量单位")
    private String scaleUnit;

    /**
     * 物料SKU
     */
    @Excel(name = "物料SKU")
    private String goodsSku;

    /**
     * 工厂ID
     */
    @Excel(name = "工厂ID")
    private String factoryId;

    /**
     * 销售订单
     */
    @Excel(name = "销售订单")
    private String salesOrderNo;

    /**
     * 子需求编号
     */
    @Excel(name = "子需求编号")
    private String salesOrderNumber;

    /**
     * 申请部门
     */
    @Excel(name = "申请部门 ")
    private String supplier;

    /**
     * 在途数量
     */
    @Excel(name = "在途数量")
    private Long onOrder;

    /**
     * 操作人
     */
    @Excel(name = "操作人")
    private String recordPerson;

    /**
     * 入库任务ID
     */
    @Excel(name = "入库任务ID")
    private String lotId;

    /**
     * 堆垛机编号
     */
    @Excel(name = "堆垛机编号")
    private String decid;

    /**
     * 单位
     */
    @Excel(name = "单位 ")
    private String unit;

    /**
     * 规格
     */
    @Excel(name = "规格")
    private String specification;

    /**
     * 库龄
     */
    @Excel(name = "库龄")
    private Long goodsAge;

    /**
     * 需求数量
     */
    @Excel(name = "需求数量")
    private BigDecimal arraMount;

    /**
     * 物料描述
     */
    @Excel(name = "物料描述")
    private String recoil;

    /**
     * 需求组织
     */
    @Excel(name = "需求组织")
    private String operatorId;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date operateDate;

    /**
     * 申请单号
     */
    @Excel(name = "申请单号")
    private String purchaseId;

    /**
     * 申请人
     */
    @Excel(name = "申请人")
    private String applicant;

    /**
     * 主管部门
     */
    @Excel(name = "主管部门")
    private String respDept;

    /**
     * 计划日期
     */
    @Excel(name = "计划日期")
    private String planDate;

    /**
     * 计划时间
     */
    @Excel(name = "计划时间")
    private String planTime;

    /**
     * 需求周期
     */
    @Excel(name = "需求周期")
    private BigDecimal needCycle;

    /**
     * 需求类型
     */
    @Excel(name = "需求类型")
    private String needType;

    /**
     * 物料分类
     */
    @Excel(name = "物料分类")
    private String goodsTypeId;

    /**
     * 品牌
     */
    @Excel(name = "品牌")
    private String brand;

    /**
     * 计划金额
     */
    @Excel(name = "计划金额")
    private BigDecimal totalMoney;

    /**
     * 需求时间
     */
    @Excel(name = "需求时间")
    private String expiryDate;

    /**
     * 建议供应商名称
     */
    @Excel(name = "建议供应商名称")
    private String providerName;

    /**
     * 收货人
     */
    @Excel(name = "收货人")
    private String receiver;

    /**
     * 需求部门
     */
    @Excel(name = "需求部门")
    private String needDept;

    /**
     * 采购组织
     */
    @Excel(name = "采购组织")
    private String purchaseDept;

    /**
     * 收货组织
     */
    @Excel(name = "收货组织")
    private String produclotId;

    /**
     * 收货人部门
     */
    @Excel(name = "收货人部门")
    private String receiverDept;

    /**
     * 送货区域
     */
    @Excel(name = "送货区域")
    private String receivingArea;

    /**
     * 技术需求附件
     */
    @Excel(name = "技术需求附件")
    private String packageId;

    /**
     * 用途
     */
    @Excel(name = "用途")
    private String useType;

    /**
     * 中标供应商联系方式
     */
    @Excel(name = "中标供应商联系方式")
    private String telephone;

    /**
     * 总重量
     */
    @Excel(name = "总重量")
    private BigDecimal totalVolume;

    /**
     * 毛重
     */
    @Excel(name = "毛重")
    private BigDecimal totalRoughWeight;

    /**
     * 净重
     */
    @Excel(name = "净重")
    private BigDecimal totalNetWeigh;

    /**
     * 默认存储库区
     */
    @Excel(name = "默认存储库区")
    private String defaultStorageAreaId;

    /**
     * 质检状态
     */
    @Excel(name = "质检状态")
    private String qualityInspecStatus;

    /**
     * 保质期单位
     */
    @Excel(name = "保质期单位")
    private String periodUnit;

    /**
     * 保质期
     */
    @Excel(name = "保质期")
    private BigDecimal period;

    /**
     * 上报时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上报时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reportTime;

    /**
     * 特殊标志 空：一般库存、E 销售订单库存、K 寄售库存
     */
    @Excel(name = "特殊标志 空：一般库存、E 销售订单库存、K 寄售库存")
    private String consignment;

    /**超期呆滞日期*/
    @TableField(exist = false)
    private String overdueDate;


    @TableField(exist = false)
    private String levelType;

    //1.零捡 2：全量 3移库
    private String ckType;


    @TableField(exist = false)
    private BigDecimal transferQuantity;


    @TableField(exist = false)
    private String  dates;

    @TableField(exist = false)
    private String  noup;
}
