73 lines
3.7 KiB
Markdown
73 lines
3.7 KiB
Markdown
# 个人模型详情缺失展示字段补齐实施记录
|
||
|
||
## 实施时间
|
||
- 2026-04-03
|
||
|
||
## 修改内容
|
||
- 补齐个人详情页“业务信息”中的 `借款期限`
|
||
- 补齐个人模型输出“测算结果”中的 5 个字段:
|
||
- `历史利率`
|
||
- `产品最低利率下限`
|
||
- `平滑幅度`
|
||
- `最终测算利率`
|
||
- `参考利率`
|
||
- 在后端 `ModelRetailOutputFields` 中新增对应 5 个字段定义
|
||
- 在零售模型 mock 数据中补齐对应 5 个字段样例值
|
||
- 新增零售模型输出表结构迁移脚本,并同步更新建表基线 SQL
|
||
- 新增后端字段断言测试与前端源码断言脚本
|
||
|
||
## 修改文件
|
||
- `ruoyi-loan-pricing/src/main/java/com/ruoyi/loanpricing/domain/entity/ModelRetailOutputFields.java`
|
||
- `ruoyi-loan-pricing/src/main/resources/data/retail_output.json`
|
||
- `ruoyi-loan-pricing/src/test/java/com/ruoyi/loanpricing/domain/entity/ModelRetailOutputFieldsTest.java`
|
||
- `ruoyi-ui/src/views/loanPricing/workflow/components/PersonalWorkflowDetail.vue`
|
||
- `ruoyi-ui/src/views/loanPricing/workflow/components/ModelOutputDisplay.vue`
|
||
- `ruoyi-ui/tests/retail-display-fields.test.js`
|
||
- `ruoyi-ui/package.json`
|
||
- `sql/add_model_retail_output_rate_fields_20260403.sql`
|
||
- `sql/model_retail.sql`
|
||
- `sql/loan_pricing_schema_20260328.sql`
|
||
- `sql/loan_pricing_prod_init_20260331.sql`
|
||
- `doc/2026-04-03-retail-display-fields-design.md`
|
||
- `doc/2026-04-03-retail-display-fields-backend-plan.md`
|
||
- `doc/2026-04-03-retail-display-fields-frontend-plan.md`
|
||
- `doc/implementation-report-2026-04-03-retail-display-fields.md`
|
||
|
||
## 验证方式
|
||
1. 新增后端测试,断言 `ModelRetailOutputFields` 包含 5 个新增字段,先失败后通过
|
||
2. 新增前端源码断言脚本,断言个人详情页与模型输出页已补齐字段,先失败后通过
|
||
3. 执行前端生产构建,确认页面代码可正常打包
|
||
4. 检查开发库 `model_retail_output_fields` 表结构,确认最初缺少 5 个新列
|
||
5. 执行 `sql/add_model_retail_output_rate_fields_20260403.sql` 到开发库,并再次确认 5 个新列存在
|
||
6. 重新编译并重启后端,确保新的实体字段已进入运行中的 SQL 映射
|
||
7. 创建新的个人流程 `20260403100514909`,调用详情接口确认返回以下真实值:
|
||
- `loanRateHistory = 6.40`
|
||
- `minRateProduct = 5.50`
|
||
- `smoothRange = -0.10`
|
||
- `finalCalculateRate = 6.05`
|
||
- `referenceRate = 5.95`
|
||
8. 启动前端开发服务并使用浏览器自动化打开详情页,确认:
|
||
- 页面出现 `借款期限`
|
||
- 切换到“测算结果”页签后,5 个新增字段及对应值均可见
|
||
9. 验证结束后,停止本次启动的前后端进程
|
||
|
||
## 验证结果
|
||
- `mvn -pl ruoyi-loan-pricing -Dtest=ModelRetailOutputFieldsTest test` 首次失败,补齐后通过
|
||
- `npm --prefix ruoyi-ui run test:retail-display-fields` 首次失败,补齐后通过
|
||
- `npm --prefix ruoyi-ui run build:prod` 成功,输出包含 `Build complete.`
|
||
- 已确认开发库 `model_retail_output_fields` 初始缺少:
|
||
- `loan_rate_history`
|
||
- `min_rate_product`
|
||
- `smooth_range`
|
||
- `final_calculate_rate`
|
||
- `reference_rate`
|
||
- 已执行迁移脚本并确认以上 5 列存在
|
||
- 已确认旧后端进程因未加载最新依赖导致 SQL 仍缺新列,重编译并重启后问题消失
|
||
- 已创建个人流程 `20260403100514909` 并通过详情接口拿到 5 个新增字段的真实值
|
||
- 已通过浏览器自动化确认个人详情页展示位与“测算结果”页签展示均正确
|
||
- 本次验证期间启动的前后端进程均已停止
|
||
|
||
## 说明
|
||
- `loanTerm` 本次仅补齐详情页展示位;个人创建表单当前无该字段录入入口,不属于本次“模型返回字段更新”范围
|
||
- 为保证新字段在新环境中也可正常落库,本次同步更新了零售模型输出表的建表基线 SQL
|