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

import cn.afterturn.easypoi.excel.annotation.Excel;

import java.util.Date;
import java.util.List;

/**
 * 无车实体类
 * @author mumuxigua
 */
public class NoCarWayBill implements Cloneable {
    /**
     * 客户名称
     */
    public String customerName;
    /**
     * id
     */
    private Long id;
    /**
     * 公司名称
     */
    private String companyName;

    /**
     * 运单编号
     */
    @Excel(name = "运单编号")
    private String billNum;

    /**
     * 用于批量查询
     */
    private List<String> billNums;
    /**
     * 车牌号
     */
    @Excel(name = "车牌号码")
    private String plateNum;

    /**
     * 车辆颜色
     */
    @Excel(name = "车牌颜色")
    private String plateColor;

    /**
     * 运单开始时间
     */
    private String startTime;

    @Excel(name = "运单开始时间", format = "yyyy-MM-dd HH:mm:ss", databaseFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startTimeDate;
    /**
     * 运单开始地址
     */
    @Excel(name = "运单开始地址")
    private String sourceAddr;

    /**
     * 运单目的地址
     */
    @Excel(name = "运单目的地址")
    private String destAddr;

    /**
     * 运单预计完成时间
     */
    private String predictEndTime;

    /**
     * 存储开始运单的目的地址，在结束运单上传后这个值才有意义，转储作用
     */
    private String destAddrPre;
    /**
     * 存储开始运单的结束时间，在结束运单上传后这个值才有意义，转储作用
     */
    private String preEndTime;

    @Excel(name = "运单预计完成时间", format = "yyyy-MM-dd HH:mm:ss", databaseFormat = "yyyy-MM-dd HH:mm:ss")
    private Date predictEndTimeDate;

    @Excel(name = "运单实际结束时间", format = "yyyy-MM-dd HH:mm:ss", databaseFormat = "yyyy-MM-dd HH:mm:ss")
    private Date actEndTimeDate;

    /**
     * 运单费用 分
     */
    private Long fee;

    @Excel(name = "运单费用")
    private Double feeD;

    /**
     * 发票抬头类型 1-默认发票抬头 2-自定义发票抬头
     */
    private Integer titleType;

    /**
     * 税号
     */
    @Excel(name = "税号")
    private String taxplayerCode;

    /**
     * 接口开始时间
     */
    private String intfaceStartTime;

    /**
     * 接口结束时间
     */
    private String interfaceEndTime;

    /**
     * 最后一次运单更新时间
     */
    private String updateTime;

    /**
     * 运单转态
     * -1-导入
     * -2上传失败
     * -3 结束指令上传失败
     * 0 - 运单上传成功，原始运单协议上传失败
     * 1-指令开始
     * 2-开票中
     * 3-开票完成
     * 4 超时作废
     */
    private int billwayStatus;

    /**
     * 运单类型 0-实时运单 1-历史运单
     */
    private Integer hisFlag;

    /**
     * 行云公司编号
     */
    private String companyNum;

    /**
     * 公司地址
     */
    private String companyAdress;

    /**
     * 开户行
     */
    private String companyBank;

    /**
     * 开户行账号
     */
    private String companyBankAcc;

    /**
     * 文件批次号
     */
    private String fileBatchNum;
    /**
     * 协议名称
     */
    private String waybillFileName;

    /**
     * base64文件流
     */
    private String base64Str;

    /**
     * 协议类型
     */
    private Integer contractType=1;

    /**
     * 平台操作批次号
     */
    private String batchNum;

    /**
     * 平台操作结束批次号
     */
    private String batchNumEnd;

    /**
     * 单位电话
     */
    private String companyTel;

    /**
     * 失败原因
     */
    private String failReason;
    /***下边数据查询使用***/
    private String startBegin;

    private String startEnd;

    private String endBegin;

    private String endEnd;

    private String days;

    /**
     * 1 - 成功 2-失败
     */
    private String success;


    /**
     * 类型 0 接口 1平台 4 迁移取票完成
     */
    private Integer interType = 1;

    /**
     * 是否是拆分记录 0-否 1-是
     */
    private byte splitFlag = 0;

    public static final byte SPLIT_FALG_TRUE = 1;

    public Integer getInterType() {
        return interType;
    }

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

    public Long getId() {
        return id;
    }

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

    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 getBillNum() {
        return billNum;
    }

    public void setBillNum(String billNum) {
        this.billNum = billNum;
    }

    public String getPlateNum() {
        return plateNum;
    }

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

    public String getPlateColor() {
        return plateColor;
    }

    public void setPlateColor(String plateColor) {
        this.plateColor = plateColor;
    }

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getSourceAddr() {
        return sourceAddr;
    }

    public void setSourceAddr(String sourceAddr) {
        this.sourceAddr = sourceAddr;
    }

    public String getDestAddr() {
        return destAddr;
    }

    public void setDestAddr(String destAddr) {
        this.destAddr = destAddr;
    }

    public String getPredictEndTime() {
        return predictEndTime;
    }

    public void setPredictEndTime(String predictEndTime) {
        this.predictEndTime = predictEndTime;
    }

    public Long getFee() {
        return fee;
    }

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

    public Integer getTitleType() {
        return titleType;
    }

    public void setTitleType(Integer titleType) {
        this.titleType = titleType;
    }

    public String getTaxplayerCode() {
        return taxplayerCode;
    }

    public void setTaxplayerCode(String taxplayerCode) {
        this.taxplayerCode = taxplayerCode;
    }

    public String getIntfaceStartTime() {
        return intfaceStartTime;
    }

    public void setIntfaceStartTime(String intfaceStartTime) {
        this.intfaceStartTime = intfaceStartTime;
    }

    public String getInterfaceEndTime() {
        return interfaceEndTime;
    }

    public void setInterfaceEndTime(String interfaceEndTime) {
        this.interfaceEndTime = interfaceEndTime;
    }

    public int getBillwayStatus() {
        return billwayStatus;
    }

    public void setBillwayStatus(int billwayStatus) {
        this.billwayStatus = billwayStatus;
    }

    public Integer getHisFlag() {
        return hisFlag;
    }

    public void setHisFlag(Integer hisFlag) {
        this.hisFlag = hisFlag;
    }

    public String getCompanyNum() {
        return companyNum;
    }

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

    public String getCompanyAdress() {
        return companyAdress;
    }

    public void setCompanyAdress(String companyAdress) {
        this.companyAdress = companyAdress;
    }

    public String getCompanyBank() {
        return companyBank;
    }

    public void setCompanyBank(String companyBank) {
        this.companyBank = companyBank;
    }

    public String getCompanyBankAcc() {
        return companyBankAcc;
    }

    public void setCompanyBankAcc(String companyBankAcc) {
        this.companyBankAcc = companyBankAcc;
    }

    public String getCompanyTel() {
        return companyTel;
    }

    public void setCompanyTel(String companyTel) {
        this.companyTel = companyTel;
    }

    public String getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(String updateTime) {
        this.updateTime = updateTime;
    }

    public String getStartBegin() {
        return startBegin;
    }

    public void setStartBegin(String startBegin) {
        this.startBegin = startBegin;
    }

    public String getStartEnd() {
        return startEnd;
    }

    public void setStartEnd(String startEnd) {
        this.startEnd = startEnd;
    }

    public String getEndBegin() {
        return endBegin;
    }

    public void setEndBegin(String endBegin) {
        this.endBegin = endBegin;
    }

    public String getEndEnd() {
        return endEnd;
    }

    public void setEndEnd(String endEnd) {
        this.endEnd = endEnd;
    }

    public String getBatchNum() {
        return batchNum;
    }

    public void setBatchNum(String batchNum) {
        this.batchNum = batchNum;
    }

    public Date getStartTimeDate() {
        return startTimeDate;
    }

    public void setStartTimeDate(Date startTimeDate) {
        this.startTimeDate = startTimeDate;
    }

    public Date getPredictEndTimeDate() {
        return predictEndTimeDate;
    }

    public void setPredictEndTimeDate(Date predictEndTimeDate) {
        this.predictEndTimeDate = predictEndTimeDate;
    }

    public Double getFeeD() {
        return feeD;
    }

    public void setFeeD(Double feeD) {
        this.feeD = feeD;
    }

    public String getBatchNumEnd() {
        return batchNumEnd;
    }

    public void setBatchNumEnd(String batchNumEnd) {
        this.batchNumEnd = batchNumEnd;
    }

    public Date getActEndTimeDate() {
        return actEndTimeDate;
    }

    public void setActEndTimeDate(Date actEndTimeDate) {
        this.actEndTimeDate = actEndTimeDate;
    }

    public String getFailReason() {
        return failReason;
    }

    public void setFailReason(String failReason) {
        this.failReason = failReason;
    }

    public String getDays() {
        return days;
    }

    public void setDays(String days) {
        this.days = days;
    }

    public String getSuccess() {
        return success;
    }

    public void setSuccess(String success) {
        this.success = success;
    }

    @Override
    public NoCarWayBill clone() throws CloneNotSupportedException {
        return (NoCarWayBill) super.clone();
    }

    public String getDestAddrPre() {
        return destAddrPre;
    }

    public void setDestAddrPre(String destAddrPre) {
        this.destAddrPre = destAddrPre;
    }

    public String getPreEndTime() {
        return preEndTime;
    }

    public void setPreEndTime(String preEndTime) {
        this.preEndTime = preEndTime;
    }

    public List<String> getBillNums() {
        return billNums;
    }

    public void setBillNums(List<String> billNums) {
        this.billNums = billNums;
    }
    public byte getSplitFlag() {
        return splitFlag;
    }

    public String getWaybillFileName() {
        return waybillFileName;
    }

    public void setWaybillFileName(String waybillFileName) {
        this.waybillFileName = waybillFileName;
    }

    public String getBase64Str() {
        return base64Str;
    }

    public void setBase64Str(String base64Str) {
        this.base64Str = base64Str;
    }

    public Integer getContractType() {
        return contractType;
    }

    public void setContractType(Integer contractType) {
        this.contractType = contractType;
    }

    public String getFileBatchNum() {
        return fileBatchNum;
    }

    public void setFileBatchNum(String fileBatchNum) {
        this.fileBatchNum = fileBatchNum;
    }

    public void setSplitFlag(byte splitFlag) {
        this.splitFlag = splitFlag;
    }
    @Override
    public String toString() {
        return "NoCarWayBill{" +
                "id=" + id +
                ", customerName='" + customerName + '\'' +
                ", companyName='" + companyName + '\'' +
                ", billNum='" + billNum + '\'' +
                ", plateNum='" + plateNum + '\'' +
                ", plateColor='" + plateColor + '\'' +
                ", startTime='" + startTime + '\'' +
                ", startTimeDate=" + startTimeDate +
                ", sourceAddr='" + sourceAddr + '\'' +
                ", destAddr='" + destAddr + '\'' +
                ", predictEndTime='" + predictEndTime + '\'' +
                ", predictEndTimeDate=" + predictEndTimeDate +
                ", actEndTimeDate=" + actEndTimeDate +
                ", fee=" + fee +
                ", feeD=" + feeD +
                ", titleType=" + titleType +
                ", taxplayerCode='" + taxplayerCode + '\'' +
                ", intfaceStartTime='" + intfaceStartTime + '\'' +
                ", interfaceEndTime='" + interfaceEndTime + '\'' +
                ", updateTime='" + updateTime + '\'' +
                ", billwayStatus=" + billwayStatus +
                ", hisFlag=" + hisFlag +
                ", companyNum='" + companyNum + '\'' +
                ", companyAdress='" + companyAdress + '\'' +
                ", companyBank='" + companyBank + '\'' +
                ", companyBankAcc='" + companyBankAcc + '\'' +
                ", batchNum='" + batchNum + '\'' +
                ", batchNumEnd='" + batchNumEnd + '\'' +
                ", companyTel='" + companyTel + '\'' +
                ", failReason='" + failReason + '\'' +
                ", startBegin='" + startBegin + '\'' +
                ", startEnd='" + startEnd + '\'' +
                ", endBegin='" + endBegin + '\'' +
                ", endEnd='" + endEnd + '\'' +
                '}';
    }


}
