调整对私对公模型字段及展示

This commit is contained in:
wkc
2026-08-14 15:51:12 +08:00
parent 30a1d9771f
commit a8ed8472f3
13 changed files with 91 additions and 49 deletions

View File

@@ -0,0 +1,11 @@
--liquibase formatted sql
--changeset loan-pricing:20260812-01-add-retail-black-cust-branch-bp runInTransaction:false
ALTER TABLE `model_retail_output_fields`
ADD COLUMN `black_cust` varchar(100) DEFAULT NULL COMMENT '黑名单客户' AFTER `grey_cust`,
ADD COLUMN `branch_bp` varchar(100) DEFAULT NULL COMMENT '行社下调BP' AFTER `reference_rate`;
--changeset loan-pricing:20260812-02-add-corp-black-cust-branch-bp runInTransaction:false
ALTER TABLE `model_corp_output_fields`
ADD COLUMN `black_cust` varchar(100) DEFAULT NULL COMMENT '黑名单客户' AFTER `grey_cust`,
ADD COLUMN `branch_bp` varchar(100) DEFAULT NULL COMMENT '行社下调BP' AFTER `reference_rate`;

View File

@@ -130,7 +130,7 @@ public class ModelInvokeDTO {
private String loanPurpose;
/**
* 是否有经营佐证(非必填)
* 是否有营业执照(非必填)
* 可选值0/1
*/
private String bizProof;

View File

@@ -53,6 +53,10 @@ public class PersonalLoanPricingCreateDTO implements Serializable {
@NotBlank(message = "借款期限不能为空")
private String loanTerm;
@Schema(description = "是否有营业执照", example = "0", allowableValues = {"0", "1"})
@Pattern(regexp = "^[01]$", message = "是否有营业执照必须是0或1")
private String bizProof;
@Schema(description = "循环功能", example = "0")
private String loanLoop;

View File

@@ -116,7 +116,7 @@ public class LoanPricingWorkflow implements Serializable
/** 余值覆盖: 0/1 */
private String resCover;
/** 是否有经营佐证: true/false */
/** 是否有营业执照: true/false */
private String bizProof;
/** 循环功能: true/false */

View File

@@ -106,6 +106,8 @@ public class ModelCorpOutputFields {
private String bpCollateral;
// 灰名单客户
private String greyCust;
// 黑名单客户
private String blackCust;
// 本金逾期
private String prinOverdue;
// 利息逾期
@@ -129,6 +131,8 @@ public class ModelCorpOutputFields {
private String finalCalculateRate;
// 参考利率
private String referenceRate;
// 行社下调BP
private String branchBp;
@TableField(fill = FieldFill.INSERT)
private Date createTime;

View File

@@ -129,7 +129,7 @@ public class ModelRetailOutputFields {
// 贷款用途
private String loanPurpose;
// 是否有经营佐证
// 是否有营业执照
private String bizProof;
// BP_贷款用途
@@ -153,6 +153,9 @@ public class ModelRetailOutputFields {
// 灰名单客户
private String greyCust;
// 黑名单客户
private String blackCust;
// 本金逾期
private String prinOverdue;
@@ -190,6 +193,9 @@ public class ModelRetailOutputFields {
// 参考利率
private String referenceRate;
// 行社下调BP
private String branchBp;
@TableField(fill = FieldFill.INSERT)
private Date createTime;
}

View File

@@ -248,6 +248,7 @@ public class LoanPricingWorkflowServiceImpl implements ILoanPricingWorkflowServi
.set(LoanPricingWorkflow::getLoanTerm, editingWorkflow.getLoanTerm())
.set(LoanPricingWorkflow::getCollType, editingWorkflow.getCollType())
.set(LoanPricingWorkflow::getCollThirdParty, editingWorkflow.getCollThirdParty())
.set(LoanPricingWorkflow::getBizProof, editingWorkflow.getBizProof())
.set(LoanPricingWorkflow::getLoanLoop, editingWorkflow.getLoanLoop())
.set(LoanPricingWorkflow::getResCover, editingWorkflow.getResCover())
.set(LoanPricingWorkflow::getRepayMethod, editingWorkflow.getRepayMethod())

View File

@@ -35,6 +35,7 @@ public class LoanPricingConverter {
entity.setCollType(dto.getCollType());
entity.setCollThirdParty(dto.getCollThirdParty());
// 映射个人特有字段
entity.setBizProof(dto.getBizProof());
entity.setLoanLoop(dto.getLoanLoop());
return entity;
}

View File

@@ -20,13 +20,13 @@
"loanAvg": "3000000.00",
"derivationRate": "1.8",
"totalBpContribution": "12.3",
"midEntConnect": "1",
"midEntEffect": "1",
"midEntInter": "1",
"midEntAccept": "1",
"midEntDiscount": "1",
"midEntEleDdc": "1",
"midEntWaterDdc": "1",
"midEntConnect": "-2",
"midEntEffect": "0",
"midEntInter": "-3",
"midEntAccept": "0",
"midEntDiscount": "-1",
"midEntEleDdc": "0",
"midEntWaterDdc": "-1",
"bpMid": "6.8",
"payroll": "200",
"invLoanAmount": "2500000.00",
@@ -45,8 +45,9 @@
"collThirdParty": "0",
"bpCollateral": "4.5",
"greyCust": "0",
"blackCust": "1",
"prinOverdue": "0",
"interestOverdue": "0",
"interestOverdue": "3",
"bpGreyOverdue": "0",
"totalBpRisk": "1.2",
"totalBp": "48.2",
@@ -56,7 +57,8 @@
"minRateProduct": "3.10",
"smoothRange": "-0.20",
"finalCalculateRate": "3.732",
"referenceRate": "3.432"
"referenceRate": "3.432",
"branchBp": "-5"
},
"extensionMap": {},
"reasonMessage": "Running successfully",

View File

@@ -22,18 +22,18 @@
"loanAvg": "100000.00",
"derivationRate": "1.2",
"totalBpContribution": "88",
"midPerCard": "1000.50",
"midPerPass": "500.00",
"midPerHarvest": "800.20",
"midPerEffect": "",
"midPerQuickPay": "300.00",
"midPerEleDdc": "150.00",
"midPerWaterDdc": "80.00",
"midPerHuashuDdc": "120.00",
"MidPerGasDdc": "90.00",
"midPerCitizencard": "200.00",
"midPerFinMan": "5000.00",
"midPerEtc": "180.00",
"midPerCard": "-2",
"midPerPass": "0",
"midPerHarvest": "-3",
"midPerEffect": "0",
"midPerQuickPay": "-1",
"midPerEleDdc": "0",
"midPerWaterDdc": "-1",
"midPerHuashuDdc": "0",
"MidPerGasDdc": "-1",
"midPerCitizencard": "0",
"midPerFinMan": "-4",
"midPerEtc": "0",
"bpMid": "45",
"totalBpRelevance": "90",
"applyAmt": "200000.00",
@@ -47,6 +47,7 @@
"collThirdParty": "否",
"bpCollateral": "0",
"greyCust": "否",
"blackCust": "否",
"prinOverdue": "否",
"interestOverdue": "否",
"cardOverdue": "否",
@@ -58,7 +59,8 @@
"minRateProduct": "5.50",
"smoothRange": "-0.10",
"finalCalculateRate": "6.05",
"referenceRate": "5.95"
"referenceRate": "5.95",
"branchBp": "-8"
},
"extensionMap": {},
"reasonMessage": "Running successfully",

View File

@@ -15,7 +15,7 @@
<el-descriptions-item label="历史利率">{{ formatRate(retailOutput.loanRateHistory) }}</el-descriptions-item>
<el-descriptions-item label="平滑幅度">{{ formatRate(retailOutput.smoothRange) }}</el-descriptions-item>
<el-descriptions-item label="平滑利率"><span class="calculate-rate">{{ formatRate(retailOutput.finalCalculateRate) }}</span> %</el-descriptions-item>
<el-descriptions-item label="BP支行权限">-</el-descriptions-item>
<el-descriptions-item label="行社下调BP">{{ formatOutputValue(retailOutput.branchBp) }}</el-descriptions-item>
<el-descriptions-item label="参考利率"><span class="calculate-rate">{{ formatRate(retailOutput.referenceRate) }}</span> %</el-descriptions-item>
</el-descriptions>
</div>
@@ -89,7 +89,7 @@
<el-descriptions-item label="历史利率">{{ formatRate(corpOutput.loanRateHistory) }}</el-descriptions-item>
<el-descriptions-item label="平滑幅度">{{ formatRate(corpOutput.smoothRange) }}</el-descriptions-item>
<el-descriptions-item label="平滑利率"><span class="calculate-rate">{{ formatRate(corpOutput.finalCalculateRate) }}</span> %</el-descriptions-item>
<el-descriptions-item label="BP支行权限">-</el-descriptions-item>
<el-descriptions-item label="行社下调BP">{{ formatOutputValue(corpOutput.branchBp) }}</el-descriptions-item>
<el-descriptions-item label="参考利率"><span class="calculate-rate">{{ formatRate(corpOutput.referenceRate) }}</span> %</el-descriptions-item>
</el-descriptions>
</div>
@@ -196,18 +196,18 @@ export default {
retailRelevanceRows() {
return [
this.groupedAnalysisRow([
this.resultItem('中间业务_个人_信用卡', this.formatBoolean(this.retailOutput.midPerCard)),
this.resultItem('中间业务_个人_一码通', this.formatBoolean(this.retailOutput.midPerPass)),
this.resultItem('中间业务_个人_丰收互联', this.formatBoolean(this.retailOutput.midPerHarvest)),
this.resultItem('中间业务_个人_有效客户', this.formatBoolean(this.retailOutput.midPerEffect)),
this.resultItem('中间业务_个人_快捷支付', this.formatBoolean(this.retailOutput.midPerQuickPay)),
this.resultItem('中间业务_个人_电费代扣', this.formatBoolean(this.retailOutput.midPerEleDdc)),
this.resultItem('中间业务_个人_水费代扣', this.formatBoolean(this.retailOutput.midPerWaterDdc)),
this.resultItem('中间业务_个人_华数费代扣', this.formatBoolean(this.retailOutput.midPerHuashuDdc)),
this.resultItem('中间业务_个人_煤气费代扣', this.formatBoolean(this.retailOutput.MidPerGasDdc)),
this.resultItem('中间业务_个人_市民卡', this.formatBoolean(this.retailOutput.midPerCitizencard)),
this.resultItem('中间业务_个人_理财业务', this.formatBoolean(this.retailOutput.midPerFinMan)),
this.resultItem('中间业务_个人_etc', this.formatBoolean(this.retailOutput.midPerEtc))
this.resultItem('中间业务_个人_信用卡', this.retailOutput.midPerCard),
this.resultItem('中间业务_个人_一码通', this.retailOutput.midPerPass),
this.resultItem('中间业务_个人_丰收互联', this.retailOutput.midPerHarvest),
this.resultItem('中间业务_个人_有效客户', this.retailOutput.midPerEffect),
this.resultItem('中间业务_个人_快捷支付', this.retailOutput.midPerQuickPay),
this.resultItem('中间业务_个人_电费代扣', this.retailOutput.midPerEleDdc),
this.resultItem('中间业务_个人_水费代扣', this.retailOutput.midPerWaterDdc),
this.resultItem('中间业务_个人_华数费代扣', this.retailOutput.midPerHuashuDdc),
this.resultItem('中间业务_个人_煤气费代扣', this.retailOutput.midPerGasDdc),
this.resultItem('中间业务_个人_市民卡', this.retailOutput.midPerCitizencard),
this.resultItem('中间业务_个人_理财业务', this.retailOutput.midPerFinMan),
this.resultItem('中间业务_个人_etc', this.retailOutput.midPerEtc)
], 'BP_中间业务', this.retailOutput.bpMid),
this.totalRow('TOTAL_BP_关联度', this.retailOutput.totalBpRelevance)
]
@@ -217,7 +217,7 @@ export default {
this.analysisRow('申请金额', this.retailOutput.applyAmt, 'BP_贷款额度', this.retailOutput.bpLoanAmount),
this.groupedAnalysisRow([
this.resultItem('贷款用途', this.formatLoanPurpose(this.retailOutput.loanPurpose)),
this.resultItem('是否有经营佐证', this.formatBoolean(this.retailOutput.bizProof))
this.resultItem('营业执照', this.formatBoolean(this.retailOutput.bizProof))
], 'BP_贷款用途', this.retailOutput.bpLoanUse),
this.analysisRow('循环功能', this.formatBoolean(this.retailOutput.loanLoop), 'BP_循环功能', this.retailOutput.bpLoanLoop),
this.groupedAnalysisRow([
@@ -226,6 +226,7 @@ export default {
], 'BP_抵押物', this.retailOutput.bpCollateral),
this.groupedAnalysisRow([
this.resultItem('灰名单客户', this.formatBoolean(this.retailOutput.greyCust)),
this.resultItem('黑名单客户', this.formatBoolean(this.retailOutput.blackCust)),
this.resultItem('本金逾期', this.formatBoolean(this.retailOutput.prinOverdue)),
this.resultItem('利息逾期', this.formatBoolean(this.retailOutput.interestOverdue)),
this.resultItem('信用卡逾期', this.formatBoolean(this.retailOutput.cardOverdue))
@@ -253,13 +254,13 @@ export default {
corporateRelevanceRows() {
return [
this.groupedAnalysisRow([
this.resultItem('中间业务_企业_企业互联', this.formatBoolean(this.corpOutput.midEntConnect)),
this.resultItem('中间业务_企业_有效价值客户', this.formatBoolean(this.corpOutput.midEntEffect)),
this.resultItem('中间业务_企业_国际业务', this.formatBoolean(this.corpOutput.midEntInter)),
this.resultItem('中间业务_企业_承兑', this.formatBoolean(this.corpOutput.midEntAccept)),
this.resultItem('中间业务_企业_贴现', this.formatBoolean(this.corpOutput.midEntDiscount)),
this.resultItem('中间业务_企业_电费代扣', this.formatBoolean(this.corpOutput.midEntEleDdc)),
this.resultItem('中间业务_企业_水费代扣', this.formatBoolean(this.corpOutput.midEntWaterDdc))
this.resultItem('中间业务_企业_企业互联', this.corpOutput.midEntConnect),
this.resultItem('中间业务_企业_有效价值客户', this.corpOutput.midEntEffect),
this.resultItem('中间业务_企业_国际业务', this.corpOutput.midEntInter),
this.resultItem('中间业务_企业_承兑', this.corpOutput.midEntAccept),
this.resultItem('中间业务_企业_贴现', this.corpOutput.midEntDiscount),
this.resultItem('中间业务_企业_电费代扣', this.corpOutput.midEntEleDdc),
this.resultItem('中间业务_企业_水费代扣', this.corpOutput.midEntWaterDdc)
], 'BP_中间业务', this.corpOutput.bpMid, false, '中间业务'),
this.groupedAnalysisRow([
this.resultItem('代发工资户数', this.corpOutput.payroll),
@@ -285,8 +286,9 @@ export default {
], 'BP_抵押物', this.corpOutput.bpCollateral),
this.groupedAnalysisRow([
this.resultItem('灰名单客户', this.formatBoolean(this.corpOutput.greyCust)),
this.resultItem('黑名单客户', this.formatBoolean(this.corpOutput.blackCust)),
this.resultItem('本金逾期', this.formatBoolean(this.corpOutput.prinOverdue)),
this.resultItem('利息逾期', this.formatBoolean(this.corpOutput.interestOverdue))
this.resultItem('利息逾期', this.corpOutput.interestOverdue)
], 'BP_灰名单与逾期', this.corpOutput.bpGreyOverdue),
this.totalRow('TOTAL_BP_风险度', this.corpOutput.totalBpRisk)
]

View File

@@ -77,6 +77,11 @@
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="是否有营业执照" prop="bizProof">
<el-switch v-model="form.bizProof"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="循环功能" prop="loanLoop">
<el-switch v-model="form.loanLoop"/>
@@ -240,6 +245,7 @@ export default {
loanTerm: undefined,
businessType: undefined,
loanRateHistory: undefined,
bizProof: false,
loanLoop: false,
collType: undefined,
collateralNature: undefined,
@@ -394,6 +400,7 @@ export default {
loanTerm: this.editData.loanTerm,
businessType: this.editData.businessType,
loanRateHistory: this.editData.loanRateHistory,
bizProof: this.isOne(this.editData.bizProof),
loanLoop: this.isOne(this.editData.loanLoop),
collType: this.editData.guarType === '质押' ? this.editData.collType : undefined,
collateralNature: undefined,
@@ -414,6 +421,7 @@ export default {
loanTerm: undefined,
businessType: undefined,
loanRateHistory: undefined,
bizProof: false,
loanLoop: false,
collType: undefined,
collateralNature: undefined,
@@ -533,6 +541,7 @@ export default {
// 转换开关值为字符串
const data = {
...this.form,
bizProof: this.form.bizProof ? '1' : '0',
loanLoop: this.form.loanLoop ? '1' : '0'
}
if (this.isMortgage) {

View File

@@ -83,7 +83,7 @@
<el-descriptions-item label="业务种类">{{ detailData.businessType || '-' }}</el-descriptions-item>
<el-descriptions-item label="历史贷款利率">{{ formatRate(detailData.loanRateHistory) }}</el-descriptions-item>
<el-descriptions-item label="借款期限">{{ detailData.loanTerm || '-' }}</el-descriptions-item>
<el-descriptions-item label="是否有经营佐证">{{
<el-descriptions-item label="是否有营业执照">{{
formatBoolean(detailData.bizProof)
}}
</el-descriptions-item>