Files
loan-pricing/doc/2026-03-28-workflow-execute-rate-display-design.md

144 lines
4.1 KiB
Markdown
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.
# 流程列表执行利率展示设计文档
## 1. 背景
当前贷款定价流程列表页中,“执行利率(%)”列头已经调整为执行利率语义,但列表列绑定字段仍为 `loanRate`。这会导致页面展示的仍是贷款利率字段,而不是数据库 `loan_pricing_workflow.execute_rate` 中保存的实际执行利率数据。
本次需求明确限定为:
- 只调整流程列表页
- 展示数据库中的执行利率实际数据
- 不扩散到详情页、接口定义、数据库结构或其他页面
## 2. 已确认约束
- 仅修改流程列表页展示逻辑
- 保持后端列表接口 `/loanPricing/workflow/list` 不变
- 保持实体 `LoanPricingWorkflow`、数据库表 `loan_pricing_workflow` 结构不变
- 不新增兼容字段、不增加补丁式映射、不做过度设计
## 3. 现状分析
当前链路如下:
1. 后端列表接口直接返回 `LoanPricingWorkflow`
2. `LoanPricingWorkflow` 同时包含 `loanRate``executeRate` 字段
3. 前端流程列表页列头为“执行利率(%)”
4. 但该列 `prop` 仍绑定为 `loanRate`
因此,页面展示语义与实际数据源不一致。
## 4. 方案对比
### 方案一:前端列表列直接切换为 `executeRate`
做法:
- 保持列表列头“执行利率(%)”不变
- 将流程列表页该列绑定从 `loanRate` 改为 `executeRate`
优点:
- 改动最小
- 数据语义正确
- 不影响后端接口和数据库结构
- 符合最短路径实现要求
缺点:
- 无明显缺点,前提是后端实体已正常返回 `executeRate`
### 方案二:后端把 `executeRate` 映射到 `loanRate`
做法:
- 保持前端不变
- 在后端列表返回前,将执行利率写入 `loanRate`
优点:
- 前端改动更少
缺点:
- 字段语义混乱
- 容易影响其他使用 `loanRate` 语义的场景
- 属于补丁式方案,不符合本次约束
### 方案三:新增列表专用 VO
做法:
- 为流程列表单独定义返回对象
- 新增专门展示字段承载执行利率
优点:
- 语义清晰
缺点:
- 对本次需求明显过度设计
- 引入额外接口对象和转换逻辑
## 5. 设计结论
采用方案一。
最终实现为:
- 仅修改 `ruoyi-ui/src/views/loanPricing/workflow/index.vue`
- 保持列表列头为“执行利率(%)”
- 将该列表列的 `prop``loanRate` 调整为 `executeRate`
- 让页面直接展示数据库 `loan_pricing_workflow.execute_rate` 的实际值
## 6. 数据链路设计
本次改动后的链路为:
1. 数据库表 `loan_pricing_workflow.execute_rate` 保存执行利率
2. MyBatis Plus 将该字段映射到实体 `LoanPricingWorkflow.executeRate`
3. 列表接口 `/loanPricing/workflow/list` 返回 `LoanPricingWorkflow` 集合
4. 前端流程列表页从 `scope.row.executeRate` 展示执行利率
这样可以保证列表展示内容与数据库实际业务含义一致。
## 7. 边界与非目标
本次不包含以下内容:
- 不修改详情页执行利率展示逻辑
- 不修改执行利率录入接口
- 不修改 `loanRate` 字段的业务含义
- 不修改数据库注释、表结构或初始化 SQL
- 不新增空值兜底文案或格式化规则
如果某条记录尚未设定执行利率,则列表按当前表格默认行为展示空值。
## 8. 风险与控制
本次风险点只有一个:页面列头与字段绑定不一致。
对应控制方式:
- 明确将流程列表页利率列绑定切换为 `executeRate`
- 不对后端做语义映射,避免影响其他逻辑
- 通过源码核对和页面验证确认展示值来源正确
## 9. 验证方案
实施后需要完成以下验证:
1. 查看流程列表页源码,确认列头仍为“执行利率(%)”
2. 查看流程列表页源码,确认该列 `prop``executeRate`
3. 在存在执行利率数据的记录上,确认列表展示值与数据库 `execute_rate` 一致
4. 确认本次改动未影响列表查询、详情查看和执行利率设定功能
## 10. 实施范围
- 前端1 个文件
- 后端:无代码改动
- 数据库:无改动
本次属于前端展示绑定修正,不涉及接口契约和存储模型变更。