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.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * @Description: 发货订单VO
 * @Author: jiang chao
 * @Time: 2022/10/25 17:53
 * @Classname: DeliverItemVO
 * @PackageName: com.hzs.sale.deliver.vo
 */
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class DeliverItemVO {

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

    /**
     * 收货人
     */
    @Excel(name = "收货人")
    private String recName;
    /**
     * 收货电话
     */
    @Excel(name = "发货电话")
    private String recPhone;

    /**
     * 收货省
     */
    @JsonIgnore
    private Integer recProvince;
    /**
     * 省名称
     */
    private String recProvinceVal;
    /**
     * 收货市
     */
    @JsonIgnore
    private Integer recCity;
    /**
     * 市名称
     */
    private String recCityVal;
    /**
     * 收货县
     */
    @JsonIgnore
    private Integer recCounty;
    /**
     * 县名称
     */
    private String recCountyVal;
    /**
     * 收货地址
     */
    @Excel(name = "收货地址")
    private String recAddress;

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

    /**
     * 发货状态(1=未发货,2=已发货,3=部分发货,4=已收货，5=已退货)
     */
    @Transaction(transactionKey = EnumsPrefixConstants.DELIVERY_STATUS)
    @JsonIgnore
    private Integer deliverStatus;
    /**
     * 发货状态翻译
     */
    @Excel(name = "发货状态")
    private String deliverStatusVal;

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

    /**
     * 打印状态（0=未打印，1=已打印）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.E_PRINT_STATUS)
    @JsonIgnore
    private Integer printStatus;
    /**
     * 打印状态翻译
     */
    @Excel(name = "打印状态")
    private String printStatusVal;

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

}
