Files
ERP/oa-backend/src/main/java/com/kaidi/oa/domain/PmtLoanScheme.java
T

149 lines
5.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.kaidi.oa.domain;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import java.math.BigDecimal;
import java.time.Instant;
/**
* 融资方案比选(金融办·融资申请与审批流程)。
* 支持对同一融资需求录入多家金融机构的报价,系统自动计算简化 IRR(综合成本率),
* 辅助财务人员择优决策。
*
* 状态:待比选 → 已推荐 → 已选定 → 已驳回。
* status=已选定 时,系统自动用 selectedSchemeId 回写 Financing 台账的 lender/rate/repayMethod。
*/
@Entity
@Table(name = "pmt_loan_scheme")
public class PmtLoanScheme {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/** 关联融资台账 idpmt_loan_scheme 属于某次融资需求下的比选方案之一)。 */
private Long financingId;
/** 融资台账编号(冗余)。 */
private String financingCode;
/** 报价机构名称(银行/租赁公司名)。 */
private String institution;
/** 融资品种:银行贷款 / 融资租赁 / 债券 / 票据 / 其他。 */
private String loanType;
/** 拟融资金额(元)。 */
private BigDecimal amount = BigDecimal.ZERO;
/** 年化利率(百分比,如 4.35 表示 4.35%)。 */
private BigDecimal annualRate;
/** 期限(月)。 */
private Integer termMonths;
/** 还款方式:等额本息 / 等额本金 / 到期一次还本付息 / 按期付息到期还本。 */
private String repayMethod;
/** 手续费(一次性)。 */
private BigDecimal handlingFee = BigDecimal.ZERO;
/** 担保方式:信用贷 / 抵押 / 质押 / 保证 / 组合担保。 */
private String guaranteeType;
/** 担保费率(年化,百分比)。 */
private BigDecimal guaranteeRate;
/** 提款条件(文字描述)。 */
private String drawdownConditions;
/**
* 系统自动计算的综合成本率(利息+费用+担保成本之和/本金,IRR 简化口径,百分比)。
* 创建/更新时服务端根据 rate+费用+担保自动回填。
*/
private BigDecimal effectiveCostRate;
/** 综合排名(越小越优,由 /rank 端点服务端按综合成本排序后写入)。 */
private Integer rank;
/** 是否已推荐(比选后 owner 标注的首选方案)。 */
private Boolean recommended = false;
/** 经办人。 */
private String owner;
/** 状态:待比选 / 已推荐 / 已选定 / 已驳回。 */
private String status;
/** 备注(机构具体条款说明)。 */
private String remark;
private Instant createdAt;
// ---------- getters/setters ----------
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public Long getFinancingId() { return financingId; }
public void setFinancingId(Long financingId) { this.financingId = financingId; }
public String getFinancingCode() { return financingCode; }
public void setFinancingCode(String financingCode) { this.financingCode = financingCode; }
public String getInstitution() { return institution; }
public void setInstitution(String institution) { this.institution = institution; }
public String getLoanType() { return loanType; }
public void setLoanType(String loanType) { this.loanType = loanType; }
public BigDecimal getAmount() { return amount; }
public void setAmount(BigDecimal amount) { this.amount = amount; }
public BigDecimal getAnnualRate() { return annualRate; }
public void setAnnualRate(BigDecimal annualRate) { this.annualRate = annualRate; }
public Integer getTermMonths() { return termMonths; }
public void setTermMonths(Integer termMonths) { this.termMonths = termMonths; }
public String getRepayMethod() { return repayMethod; }
public void setRepayMethod(String repayMethod) { this.repayMethod = repayMethod; }
public BigDecimal getHandlingFee() { return handlingFee; }
public void setHandlingFee(BigDecimal handlingFee) { this.handlingFee = handlingFee; }
public String getGuaranteeType() { return guaranteeType; }
public void setGuaranteeType(String guaranteeType) { this.guaranteeType = guaranteeType; }
public BigDecimal getGuaranteeRate() { return guaranteeRate; }
public void setGuaranteeRate(BigDecimal guaranteeRate) { this.guaranteeRate = guaranteeRate; }
public String getDrawdownConditions() { return drawdownConditions; }
public void setDrawdownConditions(String drawdownConditions) { this.drawdownConditions = drawdownConditions; }
public BigDecimal getEffectiveCostRate() { return effectiveCostRate; }
public void setEffectiveCostRate(BigDecimal effectiveCostRate) { this.effectiveCostRate = effectiveCostRate; }
public Integer getRank() { return rank; }
public void setRank(Integer rank) { this.rank = rank; }
public Boolean getRecommended() { return recommended; }
public void setRecommended(Boolean recommended) { this.recommended = recommended; }
public String getOwner() { return owner; }
public void setOwner(String owner) { this.owner = owner; }
public String getStatus() { return status; }
public void setStatus(String status) { this.status = status; }
public String getRemark() { return remark; }
public void setRemark(String remark) { this.remark = remark; }
public Instant getCreatedAt() { return createdAt; }
public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; }
}