package com.sunxung.factoring.entity.invoicemanage;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sunxung.factoring.entity.BaseEntity;
import com.sunxung.factoring.entity.sys.FileStorage;
import com.sunxung.factoring.entity.sys.User;

import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @Description : 发票管理-审核表
 * @Author : liutao
 * @Date: 2022-3-22
 */
@TableName("invoice_approval")
public class InvoiceApproval extends BaseEntity {

    /** 销售发票信息表Id **/
    @TableField(value = "invoice_basic_info_id")
    private Long invoiceBasicInfoId;
    /** 审核意见 **/
    @TableField(value = "approval_comment")
    private String approvalComment;
    /** 审核结论 **/
    @NotNull(message = "请选择审核结论")
    @TableField(value = "approval_conclusion")
    private String approvalConclusion;
    /** 审核人Id **/
    @TableField(value = "auditor_id")
    private Long auditorId;

    @TableField(exist = false)
    private String taskId;

    @TableField(exist = false)
    private String businessKey;

    /** 审核人 **/
    @TableField(exist = false)
    private User auditor;

    /**
     * 下游结算单附加
     */
    @TableField(exist = false)
    private List<FileStorage> settlementFile;
    /**
     *待开发票
     */
    @TableField(exist = false)
    private List<FileStorage> pendingInvoice;
    /**
     *上游结算单附加
     */
    @TableField(exist = false)
    private List<FileStorage> settlementUpstreamSignedFile;
    /**
     * 销售合同
     */
    @TableField(exist = false)
    private List<FileStorage> salesContract;
    /**
     *采购合同
     */
    @TableField(exist = false)
    private List<FileStorage> purchContract;

    /**
     * 金额种类
     */
    @TableField(exist = false)
    private Boolean amountKind;
    /**
     * 销售发票
     */
    @TableField(exist = false)
    private SalesInvoiceInfo salesInvoiceInfo;

    public InvoiceApproval() {
    }

    public Boolean getAmountKind() {
        return amountKind;
    }

    public void setAmountKind(Boolean amountKind) {
        this.amountKind = amountKind;
    }

    public Long getInvoiceBasicInfoId() {
        return invoiceBasicInfoId;
    }

    public void setInvoiceBasicInfoId(Long invoiceBasicInfoId) {
        this.invoiceBasicInfoId = invoiceBasicInfoId;
    }

    public String getApprovalComment() {
        return approvalComment;
    }

    public void setApprovalComment(String approvalComment) {
        this.approvalComment = approvalComment;
    }

    public String getApprovalConclusion() {
        return approvalConclusion;
    }

    public void setApprovalConclusion(String approvalConclusion) {
        this.approvalConclusion = approvalConclusion;
    }

    public Long getAuditorId() {
        return auditorId;
    }

    public void setAuditorId(Long auditorId) {
        this.auditorId = auditorId;
    }

    public User getAuditor() {
        return auditor;
    }

    public void setAuditor(User auditor) {
        this.auditor = auditor;
    }

    public List<FileStorage> getSettlementFile() {
        return settlementFile;
    }

    public void setSettlementFile(List<FileStorage> settlementFile) {
        this.settlementFile = settlementFile;
    }

    public List<FileStorage> getPendingInvoice() {
        return pendingInvoice;
    }

    public void setPendingInvoice(List<FileStorage> pendingInvoice) {
        this.pendingInvoice = pendingInvoice;
    }

    public List<FileStorage> getSettlementUpstreamSignedFile() {
        return settlementUpstreamSignedFile;
    }

    public void setSettlementUpstreamSignedFile(List<FileStorage> settlementUpstreamSignedFile) {
        this.settlementUpstreamSignedFile = settlementUpstreamSignedFile;
    }

    public List<FileStorage> getSalesContract() {
        return salesContract;
    }

    public void setSalesContract(List<FileStorage> salesContract) {
        this.salesContract = salesContract;
    }

    public List<FileStorage> getPurchContract() {
        return purchContract;
    }

    public void setPurchContract(List<FileStorage> purchContract) {
        this.purchContract = purchContract;
    }

    public SalesInvoiceInfo getSalesInvoiceInfo() {
        return salesInvoiceInfo;
    }

    public void setSalesInvoiceInfo(SalesInvoiceInfo salesInvoiceInfo) {
        this.salesInvoiceInfo = salesInvoiceInfo;
    }

    public String getTaskId() {
        return taskId;
    }

    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }

    public String getBusinessKey() {
        return businessKey;
    }

    public void setBusinessKey(String businessKey) {
        this.businessKey = businessKey;
    }
}
