package com.jianshui.income.domain.entity;

import cn.hutool.core.annotation.Alias;
import com.jianshui.common.annotation.Excel;
import com.jianshui.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.List;

/**
 * 进项-发票主（大象）对象 income_invoice_auth
 *
 * @author jianshui
 * @date 2022-09-05
 */
public class IncomeInvoiceAuth extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 发票id
     */
    @Excel(name = "发票id")
    private String invoiceId;

    public String getInvoiceId() {
        return invoiceId;
    }

    public void setInvoiceId(String invoiceId) {
        this.invoiceId = invoiceId;
    }

    /**
     * $column.columnComment
     */
    private String id;

    /**
     * 编号
     */
    @Excel(name = "编号")
    private Long identity;

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

    /**
     * 批次号
     */
    @Excel(name = "批次号")
    private String pch;

    /**
     * 发票代码
     */
    @Excel(name = "发票代码")
    private String fpdm;

    /**
     * 发票号码
     */
    @Excel(name = "发票号码")
    private String fphm;

    /**
     * 全电发票号码 发票类型为全电时返回
     */
    @Excel(name = "全电发票号码 发票类型为全电时返回")
    private String qdfphm;

    /**
     * 当前税款所属期 date(精确到月，年月)
     */
    @Excel(name = "当前税款所属期 date(精确到月，年月)")
    private String dqskssq;

    /**
     * 当前税款所属勾选截止日
     */
    @Excel(name = "当前税款所属勾选截止日")
    private String gxjzr;

    /**
     * 当前税款所属期可勾选发票开票日期起
     */
    @Excel(name = "当前税款所属期可勾选发票开票日期起")
    private String gxrqq;

    /**
     * 当前税款所属期可勾选发票开票日期止
     */
    @Excel(name = "当前税款所属期可勾选发票开票日期止")
    private String gxrqz;

    /**
     * 发票类型 增值税专用发票01 增值税电子专用发票08 ps 这个地方要改成invoice_type对应的字段
     */
    @Excel(name = "发票类型 增值税专用发票01 增值税电子专用发票08 ps 这个地方要改成invoice_type对应的字段")
    private String fplxdm;

    /**
     * 购买方名称
     */
    @Excel(name = "购买方名称")
    private String gmfmc;

    /**
     * 购买方税号
     */
    @Excel(name = "购买方税号")
    private String gmfsbh;

    /**
     * 购买方身份证号码/组织机构代码 机动车发票用
     */
    @Excel(name = "购买方身份证号码/组织机构代码 机动车发票用")
    private String buyerIdcard;

    /**
     * 购方地址
     */
    @Excel(name = "购方地址")
    private String gmfdzdh;

    /**
     * 购买方地址及电话
     */
    @Excel(name = "购买方地址及电话")
    private String buyerAddress;

    /**
     * 购买方地址及电话
     */
    @Excel(name = "购买方地址及电话")
    private String buyerPhone;

    /**
     * 购买方开户行及账户
     */
    @Excel(name = "购买方开户行及账户")
    private String gmfyhzh;

    /**
     * 销方方名称
     */
    @Excel(name = "销方方名称")
    private String xhfmc;

    /**
     * 销方方税号
     */
    @Excel(name = "销方方税号")
    private String xhfsbh;

    /**
     * 销方方地址及电话，大象的进项，全票面采集除了机动车发票外，地址和电话是一个字段
     */
    @Excel(name = "销方方地址及电话，大象的进项，全票面采集除了机动车发票外，地址和电话是一个字段")
    private String xhfdzdh;

    /**
     * 销方地址
     */
    @Excel(name = "销方地址")
    private String sellerAddress;

    /**
     * 销方电话
     */
    @Excel(name = "销方电话")
    private String sellerPhone;

    /**
     * 销方开户行及账号
     */
    @Excel(name = "销方开户行及账号")
    private String xhfyhzh;

    /**
     * 销方方开户行及账户，大象的进项，全票面采集除了机动车发票外，银行和账户是一个字段
     */
    @Excel(name = "销方方开户行及账户，大象的进项，全票面采集除了机动车发票外，银行和账户是一个字段")
    private String sellerBank;

    /**
     * 销方账户
     */
    @Excel(name = "销方账户")
    private String sellerAccount;

    /**
     * 开票日期
     */
    @Excel(name = "开票日期")
    private String kprq;

    /**
     * 发票金额
     */
    @Excel(name = "发票金额")
    private String hjje;

    /**
     * 发票税额
     */
    @Excel(name = "发票税额")
    private String se;

    /**
     * 价税合计
     */
    @Excel(name = "价税合计")
    private String jshj;

    /**
     * 发票备注，指发票票面上的备注
     */
    @Excel(name = "发票备注，指发票票面上的备注")
    private String bz;

    /**
     * 发票状态，转换成invoice_status 0-正常 1-失控;2-作废 3-红冲;80-红字发票待确认;7-已部分冲红;8-已全额冲红;
     */
    @Excel(name = "发票状态，转换成invoice_status 0-正常 1-失控;2-作废 3-红冲;80-红字发票待确认;7-已部分冲红;8-已全额冲红; ")
    private String fpzt;

    /**
     * 认证状态 0未认证 1已认证
     */
    @Excel(name = "认证状态 0未认证 1已认证")
    private String rzzt;

    /**
     * 认证日期
     */
    @Excel(name = "认证日期")
    private String rzrq;

    /**
     * 认证归属期
     */
    @Excel(name = "认证归属期")
    private String rzsq;

    /**
     * 是否代办退税 0否1是 否
     */
    @Excel(name = "是否代办退税 0否1是 否")
    private String sfdbts;

    /**
     * 认证那类型 0-未抵扣 1-抵扣 2-退税 3-代理退税 4-不抵扣
     */
    @Excel(name = "认证那类型 0-未抵扣 1-抵扣 2-退税 3-代理退税 4-不抵扣")
    private String rzlx;

    /**
     * 校验码 通行费发票字段
     */
    @Excel(name = "校验码 通行费发票字段")
    private String jym;

    /**
     * 通行费标志 N-不可抵扣通行费 Y-可抵扣通行费 否 通行费发票字段
     */
    @Excel(name = "通行费标志 N-不可抵扣通行费 Y-可抵扣通行费 否 通行费发票字段")
    private String txfbz;

    /**
     * 零税率标志 空-非零税率 1-免税 2-不征收 3-零税率 通行费发票字段
     */
    @Excel(name = "零税率标志 空-非零税率 1-免税 2-不征收 3-零税率 通行费发票字段")
    private String lslbz;

    /**
     * 信息来源 0 扫描认证 1 系统推送 2 出口转内销 3 异常凭证转入
     */
    @Excel(name = "信息来源 0 扫描认证 1 系统推送 2 出口转内销 3 异常凭证转入")
    private String xxly;

    /**
     * 有效税额 当 RZLX=1(抵扣)、4(不抵扣)、时不为空
     */
    @Excel(name = "有效税额 当 RZLX=1(抵扣)、4(不抵扣)、时不为空")
    private String yxse;

    /**
     * 逾期可勾选标志 逾期可勾选标志 0 默认值 ，1 可勾选逾期
     */
    @Excel(name = "逾期可勾选标志 逾期可勾选标志 0 默认值 ，1 可勾选逾期")
    private String yqkgxbz;

    /**
     * 管理状态 0 正常 1 异常 2 疑似非正常
     */
    @Excel(name = "管理状态 0 正常 1 异常 2 疑似非正常")
    private String glzt;

    /**
     * 发票来源 0-税控发票 1-全电发票
     */
    @Excel(name = "发票来源 0-税控发票 1-全电发票")
    private String fply;

    /**
     * 抵扣税额 XXLY=3 时不为空，勾选金额不能大于抵扣税额
     */
    @Excel(name = "抵扣税额 XXLY=3 时不为空，勾选金额不能大于抵扣税额")
    private String dkse;

    /**
     * 不抵扣原因 当 rzlx=4 时不为空1 用于非应税项目2 用于免税项目3 用于集体福利或者个人消费 4 遭受非正常损失5 其他
     */
    @Excel(name = "不抵扣原因 当 rzlx=4 时不为空1 用于非应税项目2 用于免税项目3 用于集体福利或者个人消费 4 遭受非正常损失5 其他")
    private String bdkyy;

    /**
     * 组织id（中烟）
     */
    @Excel(name = "组织id", readConverterExp = "中=烟")
    private String organizeid;

    /**
     * 认证状态（0未认证 1 认证中 2 认证成功 3认证失败）
     */
    @Excel(name = "认证状态", readConverterExp = "0=未认证,1=,认=证中,2=,认=证成功,3=认证失败")
    private String rzstatus;

    /**
     * 确认状态（0未确认 1 确认中 2确认成功 3确认失败）
     */
    @Excel(name = "确认状态", readConverterExp = "0=未确认,1=,确=认中,2=确认成功,3=确认失败")
    private String qrstatus;

    /**
     * 统计状态（0未统计 1 统计中 2统计成功 3统计失败）
     */
    @Excel(name = "统计状态", readConverterExp = "0=未统计,1=,统=计中,2=统计成功,3=统计失败")
    private String tjstatus;

    /**
     * 接口类型 0 默认发票池  1 中烟接口传入
     */
    @Excel(name = "接口类型 0 默认发票池  1 中烟接口传入")
    private String intertype;

    /**
     * 凭证号，中烟调用接口时传入，属财务凭证
     */
    @Excel(name = "凭证号，中烟调用接口时传入，属财务凭证")
    private String pzh;

    /**
     * 状态代码
     */
    @Excel(name = "状态代码")
    @Alias("ZTDM")
    private String ztdm;

    /**
     * 状态信息
     */
    @Excel(name = "状态信息")
    @Alias("ZTXX")
    private String ztxx;

    public String getZtdm() {
        return ztdm;
    }

    public void setZtdm(String ztdm) {
        this.ztdm = ztdm;
    }

    public String getZtxx() {
        return ztxx;
    }

    public void setZtxx(String ztxx) {
        this.ztxx = ztxx;
    }

    public String getPczt() {
        return pczt;
    }

    public void setPczt(String pczt) {
        this.pczt = pczt;
    }

    /**
     * 批次状态
     */
    @Excel(name = "批次状态")
    @Alias("PCZT")
    private String pczt;

    private List<IncomeInvoiceAuthDetail> mxxx;


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

    public String getId() {
        return id;
    }

    public void setIdentity(Long identity) {
        this.identity = identity;
    }

    public Long getIdentity() {
        return identity;
    }

    public void setTaxno(String taxno) {
        this.taxno = taxno;
    }

    public String getTaxno() {
        return taxno;
    }

    public void setPch(String pch) {
        this.pch = pch;
    }

    public String getPch() {
        return pch;
    }

    public void setFpdm(String fpdm) {
        this.fpdm = fpdm;
    }

    public String getFpdm() {
        return fpdm;
    }

    public void setFphm(String fphm) {
        this.fphm = fphm;
    }

    public String getFphm() {
        return fphm;
    }

    public void setQdfphm(String qdfphm) {
        this.qdfphm = qdfphm;
    }

    public String getQdfphm() {
        return qdfphm;
    }

    public void setDqskssq(String dqskssq) {
        this.dqskssq = dqskssq;
    }

    public String getDqskssq() {
        return dqskssq;
    }

    public void setGxjzr(String gxjzr) {
        this.gxjzr = gxjzr;
    }

    public String getGxjzr() {
        return gxjzr;
    }

    public void setGxrqq(String gxrqq) {
        this.gxrqq = gxrqq;
    }

    public String getGxrqq() {
        return gxrqq;
    }

    public void setGxrqz(String gxrqz) {
        this.gxrqz = gxrqz;
    }

    public String getGxrqz() {
        return gxrqz;
    }

    public void setFplxdm(String fplxdm) {
        this.fplxdm = fplxdm;
    }

    public String getFplxdm() {
        return fplxdm;
    }

    public void setGmfmc(String gmfmc) {
        this.gmfmc = gmfmc;
    }

    public String getGmfmc() {
        return gmfmc;
    }

    public void setGmfsbh(String gmfsbh) {
        this.gmfsbh = gmfsbh;
    }

    public String getGmfsbh() {
        return gmfsbh;
    }

    public void setBuyerIdcard(String buyerIdcard) {
        this.buyerIdcard = buyerIdcard;
    }

    public String getBuyerIdcard() {
        return buyerIdcard;
    }

    public void setGmfdzdh(String gmfdzdh) {
        this.gmfdzdh = gmfdzdh;
    }

    public String getGmfdzdh() {
        return gmfdzdh;
    }

    public void setBuyerAddress(String buyerAddress) {
        this.buyerAddress = buyerAddress;
    }

    public String getBuyerAddress() {
        return buyerAddress;
    }

    public void setBuyerPhone(String buyerPhone) {
        this.buyerPhone = buyerPhone;
    }

    public String getBuyerPhone() {
        return buyerPhone;
    }

    public void setGmfyhzh(String gmfyhzh) {
        this.gmfyhzh = gmfyhzh;
    }

    public String getGmfyhzh() {
        return gmfyhzh;
    }

    public void setXhfmc(String xhfmc) {
        this.xhfmc = xhfmc;
    }

    public String getXhfmc() {
        return xhfmc;
    }

    public void setXhfsbh(String xhfsbh) {
        this.xhfsbh = xhfsbh;
    }

    public String getXhfsbh() {
        return xhfsbh;
    }

    public void setXhfdzdh(String xhfdzdh) {
        this.xhfdzdh = xhfdzdh;
    }

    public String getXhfdzdh() {
        return xhfdzdh;
    }

    public void setSellerAddress(String sellerAddress) {
        this.sellerAddress = sellerAddress;
    }

    public String getSellerAddress() {
        return sellerAddress;
    }

    public void setSellerPhone(String sellerPhone) {
        this.sellerPhone = sellerPhone;
    }

    public String getSellerPhone() {
        return sellerPhone;
    }

    public void setXhfyhzh(String xhfyhzh) {
        this.xhfyhzh = xhfyhzh;
    }

    public String getXhfyhzh() {
        return xhfyhzh;
    }

    public void setSellerBank(String sellerBank) {
        this.sellerBank = sellerBank;
    }

    public String getSellerBank() {
        return sellerBank;
    }

    public void setSellerAccount(String sellerAccount) {
        this.sellerAccount = sellerAccount;
    }

    public String getSellerAccount() {
        return sellerAccount;
    }

    public void setKprq(String kprq) {
        this.kprq = kprq;
    }

    public String getKprq() {
        return kprq;
    }

    public void setHjje(String hjje) {
        this.hjje = hjje;
    }

    public String getHjje() {
        return hjje;
    }

    public void setSe(String se) {
        this.se = se;
    }

    public String getSe() {
        return se;
    }

    public void setJshj(String jshj) {
        this.jshj = jshj;
    }

    public String getJshj() {
        return jshj;
    }

    public void setBz(String bz) {
        this.bz = bz;
    }

    public String getBz() {
        return bz;
    }

    public void setFpzt(String fpzt) {
        this.fpzt = fpzt;
    }

    public String getFpzt() {
        return fpzt;
    }

    public void setRzzt(String rzzt) {
        this.rzzt = rzzt;
    }

    public String getRzzt() {
        return rzzt;
    }

    public void setRzrq(String rzrq) {
        this.rzrq = rzrq;
    }

    public String getRzrq() {
        return rzrq;
    }

    public void setRzsq(String rzsq) {
        this.rzsq = rzsq;
    }

    public String getRzsq() {
        return rzsq;
    }

    public void setSfdbts(String sfdbts) {
        this.sfdbts = sfdbts;
    }

    public String getSfdbts() {
        return sfdbts;
    }

    public void setRzlx(String rzlx) {
        this.rzlx = rzlx;
    }

    public String getRzlx() {
        return rzlx;
    }

    public void setJym(String jym) {
        this.jym = jym;
    }

    public String getJym() {
        return jym;
    }

    public void setTxfbz(String txfbz) {
        this.txfbz = txfbz;
    }

    public String getTxfbz() {
        return txfbz;
    }

    public void setLslbz(String lslbz) {
        this.lslbz = lslbz;
    }

    public String getLslbz() {
        return lslbz;
    }

    public void setXxly(String xxly) {
        this.xxly = xxly;
    }

    public String getXxly() {
        return xxly;
    }

    public void setYxse(String yxse) {
        this.yxse = yxse;
    }

    public String getYxse() {
        return yxse;
    }

    public void setYqkgxbz(String yqkgxbz) {
        this.yqkgxbz = yqkgxbz;
    }

    public String getYqkgxbz() {
        return yqkgxbz;
    }

    public void setGlzt(String glzt) {
        this.glzt = glzt;
    }

    public String getGlzt() {
        return glzt;
    }

    public void setFply(String fply) {
        this.fply = fply;
    }

    public String getFply() {
        return fply;
    }

    public void setDkse(String dkse) {
        this.dkse = dkse;
    }

    public String getDkse() {
        return dkse;
    }

    public void setBdkyy(String bdkyy) {
        this.bdkyy = bdkyy;
    }

    public String getBdkyy() {
        return bdkyy;
    }

    public void setOrganizeid(String organizeid) {
        this.organizeid = organizeid;
    }

    public String getOrganizeid() {
        return organizeid;
    }

    public void setRzstatus(String rzstatus) {
        this.rzstatus = rzstatus;
    }

    public String getRzstatus() {
        return rzstatus;
    }

    public void setQrstatus(String qrstatus) {
        this.qrstatus = qrstatus;
    }

    public String getQrstatus() {
        return qrstatus;
    }

    public void setTjstatus(String tjstatus) {
        this.tjstatus = tjstatus;
    }

    public String getTjstatus() {
        return tjstatus;
    }

    public void setIntertype(String intertype) {
        this.intertype = intertype;
    }

    public String getIntertype() {
        return intertype;
    }

    public void setPzh(String pzh) {
        this.pzh = pzh;
    }

    public String getPzh() {
        return pzh;
    }

    public List<IncomeInvoiceAuthDetail> getMxxx() {
        return mxxx;
    }

    public void setMxxx(List<IncomeInvoiceAuthDetail> mxxx) {
        this.mxxx = mxxx;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("identity", getIdentity())
                .append("taxno", getTaxno())
                .append("pch", getPch())
                .append("fpdm", getFpdm())
                .append("fphm", getFphm())
                .append("qdfphm", getQdfphm())
                .append("dqskssq", getDqskssq())
                .append("gxjzr", getGxjzr())
                .append("gxrqq", getGxrqq())
                .append("gxrqz", getGxrqz())
                .append("fplxdm", getFplxdm())
                .append("gmfmc", getGmfmc())
                .append("gmfsbh", getGmfsbh())
                .append("buyerIdcard", getBuyerIdcard())
                .append("gmfdzdh", getGmfdzdh())
                .append("buyerAddress", getBuyerAddress())
                .append("buyerPhone", getBuyerPhone())
                .append("gmfyhzh", getGmfyhzh())
                .append("xhfmc", getXhfmc())
                .append("xhfsbh", getXhfsbh())
                .append("xhfdzdh", getXhfdzdh())
                .append("sellerAddress", getSellerAddress())
                .append("sellerPhone", getSellerPhone())
                .append("xhfyhzh", getXhfyhzh())
                .append("sellerBank", getSellerBank())
                .append("sellerAccount", getSellerAccount())
                .append("kprq", getKprq())
                .append("hjje", getHjje())
                .append("se", getSe())
                .append("jshj", getJshj())
                .append("bz", getBz())
                .append("fpzt", getFpzt())
                .append("rzzt", getRzzt())
                .append("rzrq", getRzrq())
                .append("rzsq", getRzsq())
                .append("sfdbts", getSfdbts())
                .append("rzlx", getRzlx())
                .append("jym", getJym())
                .append("txfbz", getTxfbz())
                .append("lslbz", getLslbz())
                .append("xxly", getXxly())
                .append("yxse", getYxse())
                .append("yqkgxbz", getYqkgxbz())
                .append("glzt", getGlzt())
                .append("fply", getFply())
                .append("dkse", getDkse())
                .append("bdkyy", getBdkyy())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .append("organizeid", getOrganizeid())
                .append("rzstatus", getRzstatus())
                .append("qrstatus", getQrstatus())
                .append("tjstatus", getTjstatus())
                .append("intertype", getIntertype())
                .append("pzh", getPzh())
                .toString();
    }
}
