package com.hzs.sale.deliver.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.hzs.common.core.annotation.Excel;
import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.Data;

import java.util.Date;

/**
 * @Description: 立即发货返回VO
 * @Author: jiang chao
 * @Time: 2022/11/8 9:58
 * @Classname: DeliverVO
 * @PackageName: com.hzs.sale.deliver.vo
 */
@Data
public class DeliverVO {

    /**
     * 发货单ID
     */
    private Long pkId;

    /**
     * 发货单明细ID
     */
    private Long deliverItemsId;

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

    /**
     * 订单编号
     */
    @Excel(name = "订单编号")
    private String orderCode;

    /**
     * 订单类型（EOrderType）
     */
    @JsonIgnore
    @Transaction(transactionKey = EnumsPrefixConstants.ORDER_TYPE)
    private Integer orderType;
    /**
     * 订单类型显示
     */
    @Excel(name = "订单类型")
    private String orderTypeVal;


    /**
     * 发货单状态（EDeliveryStatus）
     */
    @JsonIgnore
    @Transaction(transactionKey = EnumsPrefixConstants.DELIVERY_STATUS)
    private Integer deliverStatus;
    /**
     * 发货单状态显示
     */
    @Excel(name = "发货状态")
    private String deliverStatusVal;

    /**
     * 会员编号
     */
    @Excel(name = "会员编号")
    private String memberCode;
    /**
     * 会员名称
     */
    @Excel(name = "会员姓名")
    private String memberName;
    /**
     * 联系方式
     */
    @Excel(name = "联系方式")
    private String phone;

    /**
     * 产品编号
     */
    @Excel(name = "产品编号")
    private String productCode;
    /**
     * 产品名称
     */
    @Excel(name = "产品名称")
    private String productName;

    /**
     * 产品规格
     */
    @Excel(name = "产品规格")
    private String specsName;
    /**
     * 产品单位
     */
    @Excel(name = "产品单位")
    private String unitName;
    /**
     * 产品数量
     */
    @Excel(name = "产品数量")
    private Integer quantity;

    /**
     * 是否追溯（0=是，1=否）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.YES_NO)
    private Integer isBarCode;
    /**
     * 是否追溯显示
     */
    @Excel(name = "是否追溯")
    private String isBarCodeVal;

    /**
     * 追溯编号
     */
    @Excel(name = "追溯编号")
    private String barCode;

    /**
     * 收货人
     */
    @Excel(name = "收货人")
    private String recName;
    /**
     * 收货电话
     */
    @Excel(name = "收货电话")
    private String recPhone;
    /**
     * 省
     */
    @JsonIgnore
    private Integer recProvince;
    /**
     * 省显示
     */
    @Excel(name = "省")
    private String recProvinceVal;
    /**
     * 市
     */
    @JsonIgnore
    private Integer recCity;
    /**
     * 市显示
     */
    @Excel(name = "市")
    private String recCityVal;
    /**
     * 县
     */
    @JsonIgnore
    private Integer recCounty;
    /**
     * 县显示
     */
    @Excel(name = "区/县")
    private String recCountyVal;
    /**
     * 收货地址
     */
    @Excel(name = "详细地址")
    private String recAddress;

    /**
     * 物流公司
     */
    @Excel(name = "物流公司")
    private String logisticsCompany;
    /**
     * 物流单号
     */
    @Excel(name = "快递单号")
    private String logisticsCode;

    /**
     * 发货类型
     */
    @Transaction(transactionKey = EnumsPrefixConstants.E_SHIPPING_CHANNEL)
    private Integer shippingChannel;
    /**
     * 发货类型
     */
    @Excel(name = "发货类型")
    private String shippingChannelVal;
    /**
     * 发货仓库
     */
    @Excel(name = "发货仓库")
    private String storehouseName;

    /**
     * 支付时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付日期", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;
    /**
     * 发货时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发货日期", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date deliverTime;

    /**
     * 发货方式（EDelivery）
     */
    @JsonIgnore
    @Transaction(transactionKey = EnumsPrefixConstants.DELIVERY)
    private Integer deliveryWay;
    /**
     * 发货方式显示
     */
    @Excel(name = "发货方式")
    private String deliveryWayVal;

    /**
     * 供应方式（ESupplyWay）
     */
    @JsonIgnore
    @Transaction(transactionKey = EnumsPrefixConstants.SUPPLY_WAY)
    private Integer operateScope;
    /**
     * 供应方式显示
     */
    @Excel(name = "供应方式")
    private String operateScopeVal;

    /**
     * 运输方式（ETransportType）
     */
    @JsonIgnore
    @Transaction(transactionKey = EnumsPrefixConstants.ENU_TRA)
    private Integer tranType;
    /**
     * 运输方式显示
     */
    @Excel(name = "运输方式")
    private String tranTypeVal;


    /**
     * 是否二次发货（0=是，1=否）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.DEALER_YES_NO)
    private Integer secondDeliver;
    /**
     * 是否二次发货显示
     */
    @Excel(name = "二次发货")
    private String secondDeliverVal;

    /**
     * 打印时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "打印日期", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date printTime;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建日期", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;

}
