调整流程详情与对公新增弹窗展示并补充测试

This commit is contained in:
wkc
2026-04-17 09:21:43 +08:00
parent ef40675422
commit bfe1b346d9
33 changed files with 1026 additions and 276 deletions

View File

@@ -41,24 +41,26 @@ public class CorporateLoanPricingCreateDTO implements Serializable {
@NotBlank(message = "申请金额不能为空")
private String applyAmt;
@Schema(description = "贷款期限", example = "36")
@Schema(description = "还款方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "分期", allowableValues = {"分期", "不分期"})
@NotBlank(message = "还款方式不能为空")
@Pattern(regexp = "^(分期|不分期)$", message = "还款方式必须是:分期、不分期之一")
private String repayMethod;
@Schema(description = "借款期限(年)", requiredMode = Schema.RequiredMode.REQUIRED, example = "3")
@NotBlank(message = "贷款期限不能为空")
private String loanTerm;
@Schema(description = "省农担担保贷款", example = "false")
private String isAgriGuar;
@Schema(description = "绿色贷款", example = "true")
@Schema(description = "绿色贷款", example = "0")
private String isGreenLoan;
@Schema(description = "科技型企业", example = "true")
private String isTechEnt;
@Schema(description = "贸易和建筑业企业标识", example = "0")
private String isTradeBuildEnt;
@Schema(description = "贸易和建筑业企业标识", example = "false")
private String isTradeConstruction;
@Schema(description = "抵质押类型", example = "一类")
@Schema(description = "抵质押类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "一类", allowableValues = {"一类", "二类", "三类", "四类"})
@NotBlank(message = "抵质押类型不能为空")
@Pattern(regexp = "^(一类|二类|三类|四类)$", message = "抵质押类型必须是:一类、二类、三类、四类之一")
private String collType;
@Schema(description = "抵质押物是否三方所有", example = "false")
@Schema(description = "抵质押物是否三方所有", example = "0")
private String collThirdParty;
}

View File

@@ -79,6 +79,12 @@ public class ModelInvokeDTO {
*/
private String loanTerm;
/**
* 还款方式(非必填)
* 可选值:分期/不分期
*/
private String repayMethod;
/**
* 净身企业(非必填)
* 可选值true/false
@@ -98,10 +104,10 @@ public class ModelInvokeDTO {
private String isManufacturing;
/**
* 省农担担保贷款(非必填)
* 可选值:true/false
* 绿色贷款(非必填)
* 可选值:0/1
*/
private String isAgriGuar;
private String isGreenLoan;
/**
* 是否纳税信用等级A级非必填
@@ -137,7 +143,7 @@ public class ModelInvokeDTO {
/**
* 抵质押类型(非必填)
* 可选值:一类/二类/三类
* 可选值:一类/二类/三类/四类
*/
private String collType;
@@ -167,4 +173,10 @@ public class ModelInvokeDTO {
*/
private String idNum;
/**
* 贸易和建筑业企业(非必填)
* 可选值0/1
*/
private String isTradeBuildEnt;
}

View File

@@ -69,6 +69,11 @@ public class LoanPricingWorkflow implements Serializable
*/
private String loanTerm;
/**
* 还款方式: 分期/不分期
*/
private String repayMethod;
/** 净身企业: true/false */
private String isCleanEnt;
@@ -78,24 +83,17 @@ public class LoanPricingWorkflow implements Serializable
/** 制造业企业: true/false */
private String isManufacturing;
/** 省农担担保贷款: true/false */
private String isAgriGuar;
/**
* 贸易和建筑业企业标识: true/false
*/
private String isTradeConstruction;
@TableField("is_trade_construction")
private String isTradeBuildEnt;
/**
* 绿色贷款: true/false
*/
private String isGreenLoan;
/**
* 科技型企业: true/false
*/
private String isTechEnt;
/** 是否纳税信用等级A级: true/false */
private String isTaxA;
@@ -111,7 +109,7 @@ public class LoanPricingWorkflow implements Serializable
/** 循环功能: true/false */
private String loanLoop;
/** 抵质押类型: 一线/一类/类 */
/** 抵质押类型: 一类/二类/三类/类 */
private String collType;
/** 抵质押物是否三方所有: true/false */

View File

@@ -31,6 +31,8 @@ public class ModelCorpOutputFields {
private String idType;
// 证件号码
private String idNum;
// 还款方式
private String repayMethod;
// 基准利率
private String baseLoanRate;
// 我行首贷客户
@@ -65,8 +67,6 @@ public class ModelCorpOutputFields {
private String midEntEleDdc;
// 中间业务_企业_水费代扣
private String midEntWaterDdc;
// 中间业务_企业_税务代扣
private String midEntTax;
// BP_中间业务
private String bpMid;
// 代发工资户数
@@ -79,12 +79,12 @@ public class ModelCorpOutputFields {
private String isCleanEnt;
// 开立基本结算账户
private String hasSettleAcct;
// 省农担担保贷款
private String isAgriGuar;
// 绿色贷款
private String isGreenLoan;
// 科技型企业
private String isTechEnt;
// 贸易和建筑业企业
private String isTradeBuildEnt;
// BP_企业客户类别
private String bpEntType;
// TOTAL_BP_关联度
@@ -109,8 +109,6 @@ public class ModelCorpOutputFields {
private String prinOverdue;
// 利息逾期
private String interestOverdue;
// 信用卡逾期
private String cardOverdue;
// BP_灰名单与逾期
private String bpGreyOverdue;
// TOTAL_BP_风险度
@@ -119,6 +117,16 @@ public class ModelCorpOutputFields {
private String totalBp;
// 测算利率
private String calculateRate;
// 历史利率
private String loanRateHistory;
// 产品最低利率下限
private String minRateProduct;
// 平滑幅度
private String smoothRange;
// 最终测算利率
private String finalCalculateRate;
// 参考利率
private String referenceRate;
@TableField(fill = FieldFill.INSERT)
private Date createTime;

View File

@@ -64,6 +64,10 @@ public class LoanPricingModelService {
{
normalizePersonalModelInvokeDTO(modelInvokeDTO);
}
if ("企业".equals(loanPricingWorkflow.getCustType()))
{
normalizeCorporateModelInvokeDTO(modelInvokeDTO);
}
JSONObject response = modelService.invokeModel(modelInvokeDTO);
if (loanPricingWorkflow.getCustType().equals("个人")){
// 个人模型
@@ -95,6 +99,13 @@ public class LoanPricingModelService {
modelInvokeDTO.setCollThirdParty(toZeroOne(modelInvokeDTO.getCollThirdParty()));
}
private void normalizeCorporateModelInvokeDTO(ModelInvokeDTO modelInvokeDTO)
{
modelInvokeDTO.setCollThirdParty(toZeroOne(modelInvokeDTO.getCollThirdParty()));
modelInvokeDTO.setIsGreenLoan(toZeroOne(modelInvokeDTO.getIsGreenLoan()));
modelInvokeDTO.setIsTradeBuildEnt(toZeroOne(modelInvokeDTO.getIsTradeBuildEnt()));
}
private String toZeroOne(String value)
{
if ("true".equals(value) || "1".equals(value))

View File

@@ -181,7 +181,7 @@ public class LoanPricingWorkflowServiceImpl implements ILoanPricingWorkflowServi
if (Objects.nonNull(modelCorpOutputFields))
{
maskModelCorpOutputBasicInfo(modelCorpOutputFields);
loanPricingWorkflow.setLoanRate(modelCorpOutputFields.getCalculateRate());
loanPricingWorkflow.setLoanRate(modelCorpOutputFields.getFinalCalculateRate());
}
loanPricingWorkflowVO.setModelCorpOutputFields(modelCorpOutputFields);
}

View File

@@ -54,13 +54,11 @@ public class LoanPricingConverter {
entity.setIdNum(dto.getIdNum());
entity.setGuarType(dto.getGuarType());
entity.setApplyAmt(dto.getApplyAmt());
entity.setRepayMethod(dto.getRepayMethod());
entity.setCollType(dto.getCollType());
entity.setCollThirdParty(dto.getCollThirdParty());
// 映射企业特有字段
entity.setIsAgriGuar(dto.getIsAgriGuar());
entity.setIsGreenLoan(dto.getIsGreenLoan());
entity.setIsTechEnt(dto.getIsTechEnt());
entity.setIsTradeConstruction(dto.getIsTradeConstruction());
entity.setIsTradeBuildEnt(dto.getIsTradeBuildEnt());
entity.setLoanTerm(dto.getLoanTerm());
return entity;
}