package com.sunxung.factoring.entity.refundsManagement.vo;

import com.sunxung.factoring.entity.sys.Dictionary;
import com.sunxung.factoring.entity.underlying.sop.PaymentCollectionPlanFactoring;

import java.math.BigDecimal;
import java.util.List;

/**
 * @Description:账后收放款基础信息实体
 * @Author:wanxiangZhou
 * @E-mail:zhouyu@sunxung.cn
 * @Date:2018年9月27日 下午2:54:25
 */
public class PaymentCollectionBasicVo {

    /**
     * Id
     */
    private Long id;

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

    /**
     * 授信主体
     */
    private String creditSubjectName;

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

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

    /**
     * 债权人（保理申请人）
     */
    private String applicantName;

    /**
     * 主合同Id
     */
    private Long masterContractId;

    /**
     * 债务人
     */
    private List<String> debtors;

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

    /**
     * 资金类型
     */
    private List<Dictionary> fundType;

    /**
     * 实付总金额
     **/
    private BigDecimal loanAmountTotal;

    /**
     * 回款总金额
     */
    private BigDecimal returnedAmount;

    /**
     * 本金余额
     **/
    private BigDecimal principalBalance;

    /**
     * 资产状态
     */
    private String businessStatus;

    /**
     * 资金状态（对应再融资用信状态）
     */
    private Dictionary refinancingPaymentStatus;

    /**
     * 是否为贸理通业务 true:是 false:否
     */
    private Boolean tradeFactoring;

    /**
     * 币种
     */
    private Dictionary currency;

    /**
     * 是否强制完成 1:是，0:否
     **/
    private Integer isForceComplete;

    /**
     * 资产转让标识 0-未转让 1-已转让
     **/
    private Integer assetTransFlag;

    /**
     * 计划
     */
    private List<PaymentCollectionPlanFactoring> paymentCollectionPlanFactorings;

    private FactoringBusinessLoanRecordAccountsReceivableVo factoringBusinessLoanRecordAccountsReceivableVo;

    public Long getId() {
        return id;
    }

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

    public String getBusinessNo() {
        return businessNo;
    }

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

    public String getCreditSubjectName() {
        return creditSubjectName;
    }

    public void setCreditSubjectName(String creditSubjectName) {
        this.creditSubjectName = creditSubjectName;
    }

    public String getContractNo() {
        return contractNo;
    }

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

    public Integer getQuotaDisburseBatch() {
        return quotaDisburseBatch;
    }

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

    public String getApplicantName() {
        return applicantName;
    }

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

    public List<String> getDebtors() {
        return debtors;
    }

    public void setDebtors(List<String> debtors) {
        this.debtors = debtors;
    }

    public Dictionary getProductType() {
        return productType;
    }

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

    public BigDecimal getLoanAmountTotal() {
        return loanAmountTotal;
    }

    public void setLoanAmountTotal(BigDecimal loanAmountTotal) {
        this.loanAmountTotal = loanAmountTotal;
    }

    public BigDecimal getPrincipalBalance() {
        return principalBalance;
    }

    public void setPrincipalBalance(BigDecimal principalBalance) {
        this.principalBalance = principalBalance;
    }

    public String getBusinessStatus() {
        return businessStatus;
    }

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

    public Dictionary getRefinancingPaymentStatus() {
        return refinancingPaymentStatus;
    }

    public void setRefinancingPaymentStatus(Dictionary refinancingPaymentStatus) {
        this.refinancingPaymentStatus = refinancingPaymentStatus;
    }

    public Long getMasterContractId() {
        return masterContractId;
    }

    public void setMasterContractId(Long masterContractId) {
        this.masterContractId = masterContractId;
    }

    public Boolean getTradeFactoring() {
        return tradeFactoring;
    }

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

    public Dictionary getCurrency() {
        return currency;
    }

    public void setCurrency(Dictionary currency) {
        this.currency = currency;
    }

    public List<Dictionary> getFundType() {
        return fundType;
    }

    public void setFundType(List<Dictionary> fundType) {
        this.fundType = fundType;
    }

    public Integer getIsForceComplete() {
        return isForceComplete;
    }

    public void setIsForceComplete(Integer isForceComplete) {
        this.isForceComplete = isForceComplete;
    }

    public Integer getAssetTransFlag() {
        return assetTransFlag;
    }

    public void setAssetTransFlag(Integer assetTransFlag) {
        this.assetTransFlag = assetTransFlag;
    }

    public BigDecimal getReturnedAmount() {
        return returnedAmount;
    }

    public void setReturnedAmount(BigDecimal returnedAmount) {
        this.returnedAmount = returnedAmount;
    }

    public List<PaymentCollectionPlanFactoring> getPaymentCollectionPlanFactorings() {
        return paymentCollectionPlanFactorings;
    }

    public void setPaymentCollectionPlanFactorings(List<PaymentCollectionPlanFactoring> paymentCollectionPlanFactorings) {
        this.paymentCollectionPlanFactorings = paymentCollectionPlanFactorings;
    }

    public FactoringBusinessLoanRecordAccountsReceivableVo getFactoringBusinessLoanRecordAccountsReceivableVo() {
        return factoringBusinessLoanRecordAccountsReceivableVo;
    }

    public void setFactoringBusinessLoanRecordAccountsReceivableVo(FactoringBusinessLoanRecordAccountsReceivableVo factoringBusinessLoanRecordAccountsReceivableVo) {
        this.factoringBusinessLoanRecordAccountsReceivableVo = factoringBusinessLoanRecordAccountsReceivableVo;
    }
}
