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

205 lines
4.7 KiB
Java

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;
/**
* 融资业务主记录(金融办·融资管理)。一条 Financing 代表一笔对外融资/授信:
* financingType 为 银行贷款 / 融资租赁 / 债券 / 票据 / 股权融资 之一;
* repayMethod 为 等额本息 / 等额本金 / 到期一次还本付息 / 按期付息到期还本 之一;
* status 流转 申请中 → 审批中 → 已放款 → 还款中 → 已结清,异常态 逾期 / 已驳回。
* creditLimit 为授信额度,amount 为本笔融资本金(提款金额),rate 为年化利率(%)。
* 还本付息计划由 {@link RepaymentPlan} 按本记录的 repayMethod / term / rate 自动生成。
*/
@Entity
@Table(name = "financing")
public class Financing {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String code;
/** 资金方 / 出借机构(银行 / 租赁公司 / 投资方)。 */
private String lender;
/** 融资类型:银行贷款 / 融资租赁 / 债券 / 票据 / 股权融资。 */
private String financingType;
/** 授信额度。 */
private BigDecimal creditLimit = BigDecimal.ZERO;
/** 本笔融资本金(提款金额)。 */
private BigDecimal amount = BigDecimal.ZERO;
private String currency;
/** 年化利率(百分比,如 4.35 表示 4.35%)。 */
private BigDecimal rate;
private String startDate;
/** 到期日(用于到期分级预警)。 */
private String endDate;
/** 期限(月)。 */
private Integer termMonths;
/** 还款方式:等额本息 / 等额本金 / 到期一次还本付息 / 按期付息到期还本。 */
private String repayMethod;
/** 申请中 / 审批中 / 已放款 / 还款中 / 已结清 / 逾期 / 已驳回。 */
private String status;
private String companySubject;
private String purpose;
private String owner;
private Instant createdAt;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getLender() {
return lender;
}
public void setLender(String lender) {
this.lender = lender;
}
public String getFinancingType() {
return financingType;
}
public void setFinancingType(String financingType) {
this.financingType = financingType;
}
public BigDecimal getCreditLimit() {
return creditLimit;
}
public void setCreditLimit(BigDecimal creditLimit) {
this.creditLimit = creditLimit;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public BigDecimal getRate() {
return rate;
}
public void setRate(BigDecimal rate) {
this.rate = rate;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
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 String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getCompanySubject() {
return companySubject;
}
public void setCompanySubject(String companySubject) {
this.companySubject = companySubject;
}
public String getPurpose() {
return purpose;
}
public void setPurpose(String purpose) {
this.purpose = purpose;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public Instant getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Instant createdAt) {
this.createdAt = createdAt;
}
}