package com.fs.oms.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fs.common.annotation.Excel;
import com.fs.common.core.domain.BaseEntity;
import lombok.Data;

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

@Data
public class OmsPurchaseOrderDTO implements Serializable
{

    /** id */
    private Long id;

    /** 采购单号 */
    @Excel(name = "采购单号")
    private String code;

    /** 采购申请单id */
    @Excel(name = "采购申请单id")
    private Long applyId;

    /** 供应商id */
    @Excel(name = "供应商id")
    private Long supplierId;

    /** 要求收货仓库id */
    @Excel(name = "要求收货仓库id")
    private Long warehouseId;

    /** 预计到货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计到货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expectedTime;

    /** 采购类型 0:普通采购  1:赠品采购 */
    @Excel(name = "采购类型 0:普通采购  1:赠品采购")
    private Long type;

    /** 采购员ID */
    @Excel(name = "采购员ID")
    private Long purchaseUserId;

    /** 溢装比例 */
    @Excel(name = "溢装比例")
    private BigDecimal overfillRate;

    /** 采购商品信息 */
    @Excel(name = "采购商品信息")
    private String products;

    /** 总金额 */
    @Excel(name = "总金额")
    private BigDecimal amount;

    /** 发票类型 0无 1电子发票 2增值税普通发票 3增值税专用发票 */
    @Excel(name = "发票类型 0无 1电子发票 2增值税普通发票 3增值税专用发票")
    private Long invoiceType;

    /** 是否含包装 0否  1是 */
    @Excel(name = "是否含包装 0否  1是")
    private Long packagingFlag;

    /** 是否包邮 0否  1是 */
    @Excel(name = "是否包邮 0否  1是")
    private Long shippingFlag;

    /** 已下采购数量/入库数量 */
    @Excel(name = "已下采购数量/入库数量")
    private Long alreadyNum;

    /** 未下采购数量/未入库数量 */
    @Excel(name = "未下采购数量/未入库数量")
    private Long waitNum;

    /** 采购数量 */
    @Excel(name = "采购数量")
    private Long planNum;

    /** 审核人ID */
    @Excel(name = "审核人ID")
    private Long auditUserId;

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

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

    /** 状态 0待审核  1已审核待入库 2已完成 3已取消 4待通知WMS 5通知WMS失败 */
    @Excel(name = "状态 0待审核  1已审核待入库 2已完成 3已取消 4待通知WMS 5通知WMS失败")
    private Long status;

    /** 入库状态 0未入库  1部分入库 2整单入库 3超收入库 */
    @Excel(name = "入库状态 0未入库  1部分入库 2整单入库 3超收入库")
    private Long stockinStatus;

    /** 停止等待数量 */
    @Excel(name = "停止等待数量")
    private Long cancelNum;

    /** 物流id */
    @Excel(name = "物流id")
    private Long logisticsId;

    /** 结算方式 */
    @Excel(name = "结算方式")
    private String paymentType;

    /** 创建人ID */
    @Excel(name = "创建人ID")
    private Long createUserId;

    /** 更新人ID */
    @Excel(name = "更新人ID")
    private Long updateUserId;

    private String applyCode;

    /** 物流公司 */
    private String logisticsBn;

    /** 运单号 */
    private Long logisticsNo;

    /** 运费*/
    private Long logisticsAmount;

    //收货人
    private String userName;

    //收货手机
    private String userPhone;

    //省市
    private String cityIds;

    //详情地址
    private String address;


}
