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

4.1 KiB
Raw Blame History

流程列表执行利率展示设计文档

1. 背景

当前贷款定价流程列表页中,“执行利率(%)”列头已经调整为执行利率语义,但列表列绑定字段仍为 loanRate。这会导致页面展示的仍是贷款利率字段,而不是数据库 loan_pricing_workflow.execute_rate 中保存的实际执行利率数据。

本次需求明确限定为:

  • 只调整流程列表页
  • 展示数据库中的执行利率实际数据
  • 不扩散到详情页、接口定义、数据库结构或其他页面

2. 已确认约束

  • 仅修改流程列表页展示逻辑
  • 保持后端列表接口 /loanPricing/workflow/list 不变
  • 保持实体 LoanPricingWorkflow、数据库表 loan_pricing_workflow 结构不变
  • 不新增兼容字段、不增加补丁式映射、不做过度设计

3. 现状分析

当前链路如下:

  1. 后端列表接口直接返回 LoanPricingWorkflow
  2. LoanPricingWorkflow 同时包含 loanRateexecuteRate 字段
  3. 前端流程列表页列头为“执行利率(%)”
  4. 但该列 prop 仍绑定为 loanRate

因此,页面展示语义与实际数据源不一致。

4. 方案对比

方案一:前端列表列直接切换为 executeRate

做法:

  • 保持列表列头“执行利率(%)”不变
  • 将流程列表页该列绑定从 loanRate 改为 executeRate

优点:

  • 改动最小
  • 数据语义正确
  • 不影响后端接口和数据库结构
  • 符合最短路径实现要求

缺点:

  • 无明显缺点,前提是后端实体已正常返回 executeRate

方案二:后端把 executeRate 映射到 loanRate

做法:

  • 保持前端不变
  • 在后端列表返回前,将执行利率写入 loanRate

优点:

  • 前端改动更少

缺点:

  • 字段语义混乱
  • 容易影响其他使用 loanRate 语义的场景
  • 属于补丁式方案,不符合本次约束

方案三:新增列表专用 VO

做法:

  • 为流程列表单独定义返回对象
  • 新增专门展示字段承载执行利率

优点:

  • 语义清晰

缺点:

  • 对本次需求明显过度设计
  • 引入额外接口对象和转换逻辑

5. 设计结论

采用方案一。

最终实现为:

  • 仅修改 ruoyi-ui/src/views/loanPricing/workflow/index.vue
  • 保持列表列头为“执行利率(%)”
  • 将该列表列的 proploanRate 调整为 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. 查看流程列表页源码,确认该列 propexecuteRate
  3. 在存在执行利率数据的记录上,确认列表展示值与数据库 execute_rate 一致
  4. 确认本次改动未影响列表查询、详情查看和执行利率设定功能

10. 实施范围

  • 前端1 个文件
  • 后端:无代码改动
  • 数据库:无改动

本次属于前端展示绑定修正,不涉及接口契约和存储模型变更。