package com.zbf.system.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.zbf.common.annotation.Excel;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class TRkWareNoticeTabVo {

    private static final long serialVersionUID = 1L;

    /**
     * 主表ID
     */
    @JsonProperty("orderNum")
    private String noticeId;

    /**
     * 主键
     */
    @Excel(name = "WMS明细编号", type = Excel.Type.EXPORT)
    @JsonProperty("orderItem")
    private String id;
    /**
     * 交货单号
     */
    @Excel(name = "*来源单号", required = true)
    @JsonProperty("orderKeyThird")
    private String deliveryId;

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

    /**
     * 订单类型
     */
    @Excel(name = "*订单类型", required = true)
    @NotNull(message = "订单类型为空")
    private String orderType;

    /**
     * 物料编号
     */
    @Excel(name = "*物料编号", required = true)
    @NotNull(message = "物料编码为空")
    @JsonProperty("matCode")
    private String goodsId;

    /**
     * 物料名称
     */
    @Excel(name = "*物料名称", required = true)
    @NotNull(message = "物料名称为空")
    @JsonProperty("matCode")
    private String goodsName;

    /**
     * 单位
     */
    @Excel(name = "*单位", required = true, comboDictType = "goods_unit")
    @NotNull(message = "物料单位为空")
    private String unit;

    /**
     * 规格型号
     */
    @Excel(name = "*规格型号", required = true)
    @NotNull(message = "规格型号为空")
    private String specification;

    /**
     * 物料描述
     */
    @Excel(name = "*物料描述", required = true)
    @NotNull(message = "物料描述为空")
    private String recoil;

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

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

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

    /**
     * 到货数量
     */
    @Excel(name = "*到货数量", required = true)
    private BigDecimal arraMount;

    /**
     * 签收数量
     */
    @Excel(name = "签收数量")
    @JsonProperty("matQty")
    private BigDecimal recNum;

    /**
     * 工程项目
     */
    @Excel(name = "工程项目")
    private String project;

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

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

    /**
     * 测量单位
     */
    private String scaleUnit;

    /**
     * 总量
     */
    private BigDecimal totalVolume;

    /**
     * 毛重
     */
    private BigDecimal totalRoughWeight;

    /**
     * 净重
     */
    private BigDecimal totalNetWeigh;

    /**
     * 数量
     */
    private BigDecimal amount;

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

    /**
     * 仓库ID
     */
    @JsonProperty("whCode")
    private String storageId;

    /**
     * 库区
     */
    private String storageAreaId;

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

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

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

    /**
     * 重量
     */
    private BigDecimal goodsVolume;

    /**
     * 打印状态
     */
    private String printSts;

    /**
     * 打印次数
     */
    private Long printCs;

    /**
     * 净重
     */
    private BigDecimal netWeigh;

    /**
     * 冻结数量
     */
    private Long kindNum;

    /**
     * 需求时间
     */
    private String expiryDate;

    /**
     * 创建时间
     */
    private Date operateDate;

    /**
     * 物料状态
     */
    private String productStatus;

    /**
     * 收货状态
     */
    private String receivingStatus;

    /**
     * 内部状态
     */
    private String inStatus;

    /**
     * 托盘号
     */
    @JsonProperty("traceCode")
    private String ctl;

    /**
     * 质检日期
     */
    private String qualityInspectionDate;

    /**
     * 状态
     */
//    @Excel(name = "状态")
    private String status;

    /**
     * 累计入库数量
     */
    private Long acceNum;

    /**
     * 质检状态
     */
    private String qualityInspecStatus;


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

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

    /**
     * 是否合格
     */
    private String qualified;

    /**
     * 计划日期
     */
    private String planDate;

    /**
     * 计划时间
     */
    private String planTime;

    /**
     * 需求周期
     */
    private BigDecimal needCycle;

    /**
     * 需求类型
     */
    private String needType;

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

    /**
     * 上报时间
     */
    private Date reportTime;

    /**
     * 编辑状态
     */
    private boolean editFlg = false;

    /**
     * 是否新追加
     */
    private boolean addFlg = false;


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

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

    /**
     * 发货单号
     */
    @Excel(name = "发货单号")
    private String purchaseId;

    /**
     * 发货组织
     */
    @Excel(name = "发货组织")
    private String shippingDept;

    /**
     * 联系人
     */
    @Excel(name = "联系人")
    private String contact;

    /**
     * 联系方式
     */
    @Excel(name = "联系方式")
    private String telephone;

    /**
     * 收货地址
     */
    @Excel(name = "收货地址")
    private String receiveAddr;

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

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

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

    /**
     * 使用单位收货人
     */
    @Excel(name = "使用单位收货人")
    private String useReceiver;

    /**
     * 使用单位保管员
     */
    @Excel(name = "使用单位保管员")
    private String useCustodian;

    /**
     * 使用单位主管
     */
    @Excel(name = "使用单位主管")
    private String useLeader;

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


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

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

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

    /**
     * ABC分类
     */
    @Excel(name = "ABC分类")
    private String abc;

    /**
     * 1:一级库 2：二级库
     */
    @Excel(name = "仓库类别", dictType = "storage_classification")
    private String levelType;


    /**
     * 库位
     */
    @JsonProperty("binCode")
    private String storageLocation;

    /**
     * 本次接收数量
     */
    private BigDecimal recNumNow;
}
