package com.jeeplus.assess.invoice.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableName;
import com.jeeplus.core.domain.BaseEntity;
import com.jeeplus.core.query.Query;
import com.jeeplus.core.query.QueryType;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 财务管理-发票
 * @TableName finance_invoice
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("finance_invoice")
public class FinanceInvoice extends BaseEntity {

    /**
     * 备注信息
     */
    private String remarks;

    /**
     * 发票类型
     */
    @Query(tableColumn = "fi.type",type = QueryType.EQ)
    private String type;

    /**
     * 发票申请编号
     */
    @Query(tableColumn = "fi.no",type = QueryType.LIKE)
    private String no;

    /**
     * 开票类型
     */
    private String billingType;

    /**
     * 实际开票单位
     */
    @Query(tableColumn = "fi.billing_workplace_real",type = QueryType.LIKE)
    private String billingWorkplaceReal;

    /**
     * 纳税人识别号
     */
    private String taxpayerIdentificationNo;

    /**
     * 地址
     */
    private String address;

    /**
     * 电话
     */
    private String telPhone;

    /**
     * 开户银行
     */
    private String openBank;

    /**
     * 银行账号
     */
    private String bankAccount;

    /**
     * 姓名
     */
    private String name;

    /**
     * 收款类型
     */
    @Query(tableColumn = "fi.receivables_type",type = QueryType.EQ)
    private String receivablesType;

    /**
     * 开票内容
     */
    @Query(tableColumn = "fi.billing_content",type = QueryType.EQ)
    private String billingContent;

    /**
     * 发票金额(元)
     */
    private String account;

    /**
     * 开票内容要求
     */
    private String billingContentTerms;

    /**
     * 开票人
     */
    private String billingPeople;

    /**
     * 开票时间
     */
    private Date billingDate;

    /**
     * 领票时间
     */
    private Date collectDate;

    /**
     * 实际开票人
     */
    private String billingPeopleReal;

    /**
     * 对账人
     */
    @Query(tableColumn = "fi.reconciliation_people",type = QueryType.EQ)
    private String reconciliationPeople;

    /**
     * 实际开票单位id
     */
    @Query(tableColumn = "fi.billing_workplace_real_id",type = QueryType.EQ)
    private String billingWorkplaceRealId;

    /**
     * 开票人id
     */
    private String billingPeopleId;

    /**
     * 对账地区
     */
    @Query(tableColumn = "fi.reconciliation_area",type = QueryType.EQ)
    private String reconciliationArea;

    /**
     * 状态
     */
    @Query(tableColumn = "fi.status",type = QueryType.EQ)
    private String status;

    /**
     * 流程id
     */
    private String procInsId;

    /**
     * 流程信息
     */
    private String processDefinitionId;

    /**
     * 是否确认收款
     */
    @Query(tableColumn = "fi.receivables_status",type = QueryType.EQ)
    private String receivablesStatus;

    /**
     * 是否作废
     */
    @Query(tableColumn = "fi.invalid_status",type = QueryType.EQ)
    private String invalidStatus;

    /**
     * 收款日期
     */
    private Date receivablesDate;

    /**
     * 是否多张开票  1是  0否
     */
    private String isMultiple;

    /**
     * 邮箱账号
     */
    private String actualDrawerEmailAddress;

    @Query(tableColumn = "fi.red_invoice_flag",type = QueryType.EQ)
    private String redInvoiceFlag; //是否红字发票
    @Query(tableColumn = "fi.red_invoice_relevancy_id",type = QueryType.EQ)
    private String redInvoiceRelevancyId;	//红字发票关联其他发票id
    @Query(tableColumn = "fi.red_invoice_relevancy_number",type = QueryType.EQ)
    private String redInvoiceRelevancyNumber;	//红字发票关联其他发票编号

    private String relatedInvoice; //是否关联发票
    private String situationDetail;	//情况说明
    private String redFlushReason;	//红冲原因

    private String isSmsNotice; //是否短信通知
    private String isOmsBilling; //是否手动开票

    private static final long serialVersionUID = 1L;
}