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.math.BigDecimal;
import java.util.Date;

/**
 * 发货单未合并列表VO
 */
@Data
public class DeliverUnhandledVO {

    /**
     * 订单明细ID
     */
    private Long pkId;

    /**
     * 订单ID
     */
    private Long pkOrder;


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

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

    /**
     * 会员编号
     */
    @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;

    /**
     * 销售类型
     */
    @Transaction(transactionKey = EnumsPrefixConstants.E_SALE_TYPE)
    @JsonIgnore
    private Integer isGift;
    /**
     * 销售类型显示
     */
    @Excel(name = "销售类型")
    private String isGiftVal;

    /**
     * 订单金额
     */
    @Excel(name = "订单金额")
    private BigDecimal orderAmount;

    /**
     * 收货人
     */
    @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;

    /**
     * 发货类型
     */
    @Transaction(transactionKey = EnumsPrefixConstants.E_SHIPPING_CHANNEL)
    @JsonIgnore
    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;

    /**
     * 订单状态（EOrderStatus）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.ORDER_STATUS)
    private Integer orderStatus;
    /**
     * 订单状态显示
     */
    @Excel(name = "订单状态")
    private String orderStatusVal;

    /**
     * 发货方式（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;

    /**
     * 预售状态（EPresaleStatus）
     */
    @JsonIgnore
    @Transaction(transactionKey = EnumsPrefixConstants.PRESALE_STATUS)
    private Integer preSaleStatus;
    /**
     * 预售状态显示
     */
    @Excel(name = "预售状态")
    private String preSaleStatusVal;

    /**
     * 原单号
     */
    @Excel(name = "原单号")
    private String originalOrderCode;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;

    /**
     * 隶属体系
     */
    @Excel(name = "隶属体系")
    private String vertexName;

    /**
     * 系统类型（2=新零售）
     */
//    @Excel(name = "系统类型", readConverterExp = "2=新零售")
    private Integer systemType;

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


    /**
     * 发货仓库
     */
    private Integer pkStorehouse;

}
