package com.inkasso.factoring.financingmanagement.entity.vo;

import com.inkasso.factoring.dict.entity.Dictionary;
import com.inkasso.factoring.system.user.entity.UserDO;

import java.util.List;

/**
 * @Description : sop收放款管理信息
 * @Author : L.Jia
 * @Date: 2024-04-09 11:36
 */
public class PaymentCollectionBasic {

    private Long id;

    /**
     * 业务编号
     */
    private String businessNo;

    /**
     * 合同编号
     */
    private String contractNo;

    /**
     * 保理申请人
     */
    private String applicantName;

    /**
     * 保理申请人统一社会信用码
     */
    private String applicantSocialCreditCode;

    /**
     * 保理申请人ID
     */
    private Long applicantId;

    /**
     * 收放款状态
     */
    private String businessStatus;

    /**
     * 账后收放款(计划)IRR
     */
    private double irr;

    /**
     * 合同信息—预期IRR
     */
    private double contractIrr;

    /**
     * 额度支用—预期IRR
     */
    private double quotaIrr;

    /**
     * 逾期利率
     **/
    private double overdueInterestRate;

    /**
     * 保理融资款
     **/
    private List<PaymentCollectionPlanFactoring> planFactoringList;

    /**
     * 应收账款
     **/
    private List<PaymentCollectionPlanReceivable> planReceivableList;

    /**
     * 项目经理
     **/
    private UserDO projectManager;
    /**
     * 币种
     **/
    private Dictionary currencyType;

    /**
     * 额度支用批次
     */
    private Integer quotaDisburseBatch;

    /**
     * 贸理通业务 应收账款对应的收放款计划
     */
    private List<PaymentCollectionPlanReceivableTrade> tradePlanReceivableList;

    /**
     * 产品类型
     */
    private Dictionary productType;

    /**
     * 是否是贸理通业务
     **/
    private Boolean tradeFactoring;

    public Long getId() {
        return id;
    }

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

    public String getContractNo() {
        return contractNo;
    }

    public void setContractNo(String contractNo) {
        this.contractNo = contractNo;
    }

    public String getApplicantName() {
        return applicantName;
    }

    public void setApplicantName(String applicantName) {
        this.applicantName = applicantName;
    }

    public String getApplicantSocialCreditCode() {
        return applicantSocialCreditCode;
    }

    public void setApplicantSocialCreditCode(String applicantSocialCreditCode) {
        this.applicantSocialCreditCode = applicantSocialCreditCode;
    }

    public Long getApplicantId() {
        return applicantId;
    }

    public void setApplicantId(Long applicantId) {
        this.applicantId = applicantId;
    }

    public String getBusinessStatus() {
        return businessStatus;
    }

    public void setBusinessStatus(String businessStatus) {
        this.businessStatus = businessStatus;
    }

    public double getIrr() {
        return irr;
    }

    public void setIrr(double irr) {
        this.irr = irr;
    }

    public double getContractIrr() {
        return contractIrr;
    }

    public void setContractIrr(double contractIrr) {
        this.contractIrr = contractIrr;
    }

    public double getQuotaIrr() {
        return quotaIrr;
    }

    public void setQuotaIrr(double quotaIrr) {
        this.quotaIrr = quotaIrr;
    }

    public double getOverdueInterestRate() {
        return overdueInterestRate;
    }

    public void setOverdueInterestRate(double overdueInterestRate) {
        this.overdueInterestRate = overdueInterestRate;
    }

    public List<PaymentCollectionPlanFactoring> getPlanFactoringList() {
        return planFactoringList;
    }

    public void setPlanFactoringList(List<PaymentCollectionPlanFactoring> planFactoringList) {
        this.planFactoringList = planFactoringList;
    }

    public List<PaymentCollectionPlanReceivable> getPlanReceivableList() {
        return planReceivableList;
    }

    public void setPlanReceivableList(List<PaymentCollectionPlanReceivable> planReceivableList) {
        this.planReceivableList = planReceivableList;
    }

    public UserDO getProjectManager() {
        return projectManager;
    }

    public void setProjectManager(UserDO projectManager) {
        this.projectManager = projectManager;
    }

    public Dictionary getCurrencyType() {
        return currencyType;
    }

    public void setCurrencyType(Dictionary currencyType) {
        this.currencyType = currencyType;
    }

    public Integer getQuotaDisburseBatch() {
        return quotaDisburseBatch;
    }

    public void setQuotaDisburseBatch(Integer quotaDisburseBatch) {
        this.quotaDisburseBatch = quotaDisburseBatch;
    }

    public List<PaymentCollectionPlanReceivableTrade> getTradePlanReceivableList() {
        return tradePlanReceivableList;
    }

    public void setTradePlanReceivableList(List<PaymentCollectionPlanReceivableTrade> tradePlanReceivableList) {
        this.tradePlanReceivableList = tradePlanReceivableList;
    }

    public String getBusinessNo() {
        return businessNo;
    }

    public void setBusinessNo(String businessNo) {
        this.businessNo = businessNo;
    }

    public Dictionary getProductType() {
        return productType;
    }

    public void setProductType(Dictionary productType) {
        this.productType = productType;
    }

    public Boolean getTradeFactoring() {
        return tradeFactoring;
    }

    public void setTradeFactoring(Boolean tradeFactoring) {
        this.tradeFactoring = tradeFactoring;
    }
}
