package com.jkcredit.invoice.model.entity.invoice;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.jkcredit.invoice.model.vo.CodeAndNumVo;

import java.util.List;


/**
 * 运单发票对象
 * @author mumuxigua
 */
public class BillInvoice {
    private Long id;
    /**
     * 公司编码
     */
    private String companyNum;

    /**
     * 客户名称
     */
    private String customerName;

    /**
     * 公司名称
     */
    private String companyName;
    /**
     * 发票代码
     */
    @Excel(name = "发票代码")
    private String invoiceNum;

    private List<CodeAndNumVo> codeAndNumVos;
    /**
     * 发票号码
     */
    @Excel(name = "发票号码")
    private String invoiceCode;

    /**
     * 开票时间
     */
    private String invoiceMakeTime;

    private String invoiceMakeStart;

    private String invoiceMakeEnd;
    /**
     * 发票url
     */
    private String invoiceUrl;
    /**
     * 发票板式文件url
     */
    private String invoiceHtmlUrl;
    /**
     * 入口收费站
     */
    private String enStation;
    /**
     * 出口收费站
     */
    private String exStation;
    /**
     * 交易时间
     */
    private String exTime;
    /**
     * 交易金额
     */
    private long fee;
    /**
     * 税额（可抵扣金额）
     */
    private long totalTaxAmount;
    /**
     * 车牌号
     */
    private String plateNum;
    /**
     * 车型 见附录8.3
     */
    private Integer vehicleType;
    /**
     * 销方名称
     */
    private String sellerName;
    /**
     * 销方税号
     */
    private String sellerTaxpayerCode;
    /**
     * 运单编号
     */
    @Excel(name = "运单编号")
    private String waybillNum;

    private String waybillNumAct;

    private List<String> waybillNums;

    private List<String> plateNums;
    /**
     * 运单状态  未结束	1
     * 开票中	2
     * 开票完成	3
     * 超时作废	4
     */
    private Integer waybillStatus;
    /**
     * 运单开始时间
     */
    private String waybillStartTime;
    /**
     * 运单结束时间
     */
    private String waybillEndTime;
    /**
     * 价税合计
     */
    private long totalAmount;
    /**
     * 税率
     */
    private double taxRate;
    /**
     * 发票种类
     */
    private String invoiceType;
    /**
     * 金额
     */
    private long amount;
    /**
     * 交易ID
     */
    private String transactionId;
    /**
     * 交易匹配时间
     */
    private String tradeMatchTime;
    /**
     * 购方名称
     */
    private String buyerName;
    /**
     * 购方税号
     */
    private String buyerTaxpayerCode;

    /**
     * 运单状态
     */
    private String billStatus;

    /**
     * 计费时间
     */
    private String calculateTime;

    private String calculateTimeStart;

    private String calculateTimeEnd;

    /**
     * 发票状态
     * 待开票	1
     * 开票中	2
     * 开票完成	3
     */
    private Integer invoiceStatus;

    /**
     * 发票状态信息
     */
    private String msg;

    /**
     * 对接方式 0 接口 1平台
     */
    private Integer interType = 1;

    public Integer getInterType() {
        return interType;
    }

    public void setInterType(Integer interType) {
        this.interType = interType;
    }


    public String getInvoiceNum() {
        return invoiceNum;
    }

    public void setInvoiceNum(String invoiceNum) {
        this.invoiceNum = invoiceNum;
    }

    public String getInvoiceCode() {
        return invoiceCode;
    }

    public void setInvoiceCode(String invoiceCode) {
        this.invoiceCode = invoiceCode;
    }

    public String getInvoiceMakeTime() {
        return invoiceMakeTime;
    }

    public void setInvoiceMakeTime(String invoiceMakeTime) {
        this.invoiceMakeTime = invoiceMakeTime;
    }

    public String getInvoiceUrl() {
        return invoiceUrl;
    }

    public void setInvoiceUrl(String invoiceUrl) {
        this.invoiceUrl = invoiceUrl;
    }

    public String getInvoiceHtmlUrl() {
        return invoiceHtmlUrl;
    }

    public void setInvoiceHtmlUrl(String invoiceHtmlUrl) {
        this.invoiceHtmlUrl = invoiceHtmlUrl;
    }

    public String getEnStation() {
        return enStation;
    }

    public void setEnStation(String enStation) {
        this.enStation = enStation;
    }

    public String getExStation() {
        return exStation;
    }

    public void setExStation(String exStation) {
        this.exStation = exStation;
    }

    public String getExTime() {
        return exTime;
    }

    public void setExTime(String exTime) {
        this.exTime = exTime;
    }

    public long getFee() {
        return fee;
    }

    public void setFee(long fee) {
        this.fee = fee;
    }

    public long getTotalTaxAmount() {
        return totalTaxAmount;
    }

    public void setTotalTaxAmount(long totalTaxAmount) {
        this.totalTaxAmount = totalTaxAmount;
    }

    public String getPlateNum() {
        return plateNum;
    }

    public void setPlateNum(String plateNum) {
        this.plateNum = plateNum;
    }

    public Integer getVehicleType() {
        return vehicleType;
    }

    public void setVehicleType(Integer vehicleType) {
        this.vehicleType = vehicleType;
    }

    public String getSellerName() {
        return sellerName;
    }

    public void setSellerName(String sellerName) {
        this.sellerName = sellerName;
    }

    public String getSellerTaxpayerCode() {
        return sellerTaxpayerCode;
    }

    public void setSellerTaxpayerCode(String sellerTaxpayerCode) {
        this.sellerTaxpayerCode = sellerTaxpayerCode;
    }

    public String getWaybillNum() {
        return waybillNum;
    }

    public void setWaybillNum(String waybillNum) {
        this.waybillNum = waybillNum;
    }

    public Integer getWaybillStatus() {
        return waybillStatus;
    }

    public void setWaybillStatus(Integer waybillStatus) {
        this.waybillStatus = waybillStatus;
    }

    public String getWaybillStartTime() {
        return waybillStartTime;
    }

    public void setWaybillStartTime(String waybillStartTime) {
        this.waybillStartTime = waybillStartTime;
    }

    public String getWaybillEndTime() {
        return waybillEndTime;
    }

    public void setWaybillEndTime(String waybillEndTime) {
        this.waybillEndTime = waybillEndTime;
    }

    public long getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(long totalAmount) {
        this.totalAmount = totalAmount;
    }

    public double getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(double taxRate) {
        this.taxRate = taxRate;
    }

    public String getInvoiceType() {
        return invoiceType;
    }

    public void setInvoiceType(String invoiceType) {
        this.invoiceType = invoiceType;
    }

    public long getAmount() {
        return amount;
    }

    public void setAmount(long amount) {
        this.amount = amount;
    }

    public String getTransactionId() {
        return transactionId;
    }

    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    public String getTradeMatchTime() {
        return tradeMatchTime;
    }

    public void setTradeMatchTime(String tradeMatchTime) {
        this.tradeMatchTime = tradeMatchTime;
    }

    public String getBuyerName() {
        return buyerName;
    }

    public void setBuyerName(String buyerName) {
        this.buyerName = buyerName;
    }

    public String getBuyerTaxpayerCode() {
        return buyerTaxpayerCode;
    }

    public void setBuyerTaxpayerCode(String buyerTaxpayerCode) {
        this.buyerTaxpayerCode = buyerTaxpayerCode;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getCompanyNum() {
        return companyNum;
    }

    public void setCompanyNum(String companyNum) {
        this.companyNum = companyNum;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getInvoiceMakeStart() {
        return invoiceMakeStart;
    }

    public void setInvoiceMakeStart(String invoiceMakeStart) {
        this.invoiceMakeStart = invoiceMakeStart;
    }

    public String getInvoiceMakeEnd() {
        return invoiceMakeEnd;
    }

    public void setInvoiceMakeEnd(String invoiceMakeEnd) {
        this.invoiceMakeEnd = invoiceMakeEnd;
    }

    public String getBillStatus() {
        return billStatus;
    }

    public void setBillStatus(String billStatus) {
        this.billStatus = billStatus;
    }

    public String getCalculateTime() {
        return calculateTime;
    }

    public void setCalculateTime(String calculateTime) {
        this.calculateTime = calculateTime;
    }

    public String getCalculateTimeStart() {
        return calculateTimeStart;
    }

    public void setCalculateTimeStart(String calculateTimeStart) {
        this.calculateTimeStart = calculateTimeStart;
    }

    public String getCalculateTimeEnd() {
        return calculateTimeEnd;
    }

    public void setCalculateTimeEnd(String calculateTimeEnd) {
        this.calculateTimeEnd = calculateTimeEnd;
    }

    public List<CodeAndNumVo> getCodeAndNumVos() {
        return codeAndNumVos;
    }

    public void setCodeAndNumVos(List<CodeAndNumVo> codeAndNumVos) {
        this.codeAndNumVos = codeAndNumVos;
    }

    public List<String> getWaybillNums() {
        return waybillNums;
    }

    public void setWaybillNums(List<String> waybillNums) {
        this.waybillNums = waybillNums;
    }

    public Integer getInvoiceStatus() {
        return invoiceStatus;
    }

    public void setInvoiceStatus(Integer invoiceStatus) {
        this.invoiceStatus = invoiceStatus;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public List<String> getPlateNums() {
        return plateNums;
    }

    public void setPlateNums(List<String> plateNums) {
        this.plateNums = plateNums;
    }

    public String getWaybillNumAct() {
        return waybillNumAct;
    }

    public void setWaybillNumAct(String waybillNumAct) {
        this.waybillNumAct = waybillNumAct;
    }

    @Override
    public String toString() {
        return "BillInvoice{" +
                "id=" + id +
                ", companyNum='" + companyNum + '\'' +
                ", customerName='" + customerName + '\'' +
                ", companyName='" + companyName + '\'' +
                ", invoiceNum='" + invoiceNum + '\'' +
                ", codeAndNumVos=" + codeAndNumVos +
                ", invoiceCode='" + invoiceCode + '\'' +
                ", invoiceMakeTime='" + invoiceMakeTime + '\'' +
                ", invoiceMakeStart='" + invoiceMakeStart + '\'' +
                ", invoiceMakeEnd='" + invoiceMakeEnd + '\'' +
                ", invoiceUrl='" + invoiceUrl + '\'' +
                ", invoiceHtmlUrl='" + invoiceHtmlUrl + '\'' +
                ", enStation='" + enStation + '\'' +
                ", exStation='" + exStation + '\'' +
                ", exTime='" + exTime + '\'' +
                ", fee=" + fee +
                ", totalTaxAmount=" + totalTaxAmount +
                ", plateNum='" + plateNum + '\'' +
                ", vehicleType=" + vehicleType +
                ", sellerName='" + sellerName + '\'' +
                ", sellerTaxpayerCode='" + sellerTaxpayerCode + '\'' +
                ", waybillNum='" + waybillNum + '\'' +
                ", waybillNums=" + waybillNums +
                ", waybillStatus=" + waybillStatus +
                ", waybillStartTime='" + waybillStartTime + '\'' +
                ", waybillEndTime='" + waybillEndTime + '\'' +
                ", totalAmount=" + totalAmount +
                ", taxRate=" + taxRate +
                ", invoiceType='" + invoiceType + '\'' +
                ", amount=" + amount +
                ", transactionId='" + transactionId + '\'' +
                ", tradeMatchTime='" + tradeMatchTime + '\'' +
                ", buyerName='" + buyerName + '\'' +
                ", buyerTaxpayerCode='" + buyerTaxpayerCode + '\'' +
                ", billStatus='" + billStatus + '\'' +
                ", calculateTime='" + calculateTime + '\'' +
                ", calculateTimeStart='" + calculateTimeStart + '\'' +
                ", calculateTimeEnd='" + calculateTimeEnd + '\'' +
                ", invoiceStatus=" + invoiceStatus +
                ", msg='" + msg + '\'' +
                ", interType=" + interType +
                '}';
    }
}
