# 上虞利率定价字段调整实施记录 ## 基本信息 - 日期:2026-05-11 - 范围:上虞利率定价个人/企业新增链路、服务端校验、模型入参、表结构脚本 - 目标:按已确认需求调整业务种类、抵质押类型、存单票面利率字段,以及对私新增入口字段剔除 ## 修改内容 ### 后端 - 个人新增 DTO: - 业务种类调整为 `新增/存量新增/存量转贷`。 - 移除 `loanPurpose`、`bizProof` 新增入口字段。 - 新增 `couponRate`。 - 企业新增 DTO: - 业务种类调整为 `新增/存量新增/存量转贷`。 - 企业抵押类型调整为 `一类/二类/三类/四类/排污权抵押/设备等其他不动产抵押`。 - 企业质押类型调整为 `存单质押/股权质押/其他质押`。 - 新增 `couponRate`。 - 流程实体和模型入参: - `LoanPricingWorkflow` 新增 `couponRate`。 - `ModelInvokeDTO` 新增 `couponRate`,未增加 `businessType` 模型入参。 - 转换器: - 个人/企业新增 DTO 均映射 `couponRate`。 - 个人新增 DTO 不再映射 `loanPurpose`、`bizProof`。 - 服务校验: - 业务种类仅允许 `新增/存量新增/存量转贷`。 - 仅 `存量转贷` 要求历史贷款合同。 - 抵押/质押时要求选择抵质押类型。 - 对私/对公按客户类型和担保方式校验各自抵质押类型。 - `质押 + 存单质押` 时要求填写 `couponRate`。 - SQL: - 新增 `sql/add_coupon_rate_20260511.sql`。 - 同步更新 `loan_pricing_workflow` 建表脚本中的 `coupon_rate` 字段。 ### 前端 - 个人新增弹窗: - 业务种类调整为 `新增/存量新增/存量转贷`。 - 移除 `贷款用途` 和 `是否有经营佐证`。 - 抵押类型调整为 `一线/一类/二类/三类`。 - 质押类型调整为 `存单质押/其他质押`。 - `质押 + 存单质押` 时显示并必填 `存单票面利率`。 - 企业新增弹窗: - 业务种类调整为 `新增/存量新增/存量转贷`。 - 抵押类型调整为 `一类/二类/三类/四类/排污权抵押/设备等其他不动产抵押`。 - 质押类型调整为 `存单质押/股权质押/其他质押`。 - `质押 + 存单质押` 时显示并必填 `存单票面利率`。 - 共同逻辑: - 仅 `存量转贷` 触发历史贷款合同查询。 - 非存单质押提交时清理 `couponRate`。 ## 验证结果 - 后端单元测试: - `mvn -pl ruoyi-loan-pricing -am -Dtest=LoanPricingWorkflowServiceImplTest,LoanPricingModelServicePersonalParamsTest,LoanPricingModelServiceTest -Dsurefire.failIfNoSpecifiedTests=false test` - 结果:通过,23 个测试全部成功。 - 前端静态断言: - `zsh -lic 'nvm use 14.21.3 >/dev/null && npm --prefix ruoyi-ui run test:personal-create-input-params && npm --prefix ruoyi-ui run test:corporate-create-input-params && npm --prefix ruoyi-ui run test:business-type-history-rate'` - 结果:通过。 - 前端生产构建: - `zsh -lic 'nvm use 14.21.3 >/dev/null && npm --prefix ruoyi-ui run build:prod'` - 结果:构建通过,仅存在既有包体积 warning。 - 真实页面验证: - 使用 Playwright 打开 `http://localhost:1024/index`。 - 使用 `/login/test` 获取登录 token 后访问真实流程列表页面。 - 个人新增弹窗验证:已移除 `贷款用途/是否有经营佐证`;业务种类仅 `存量转贷` 触发历史利率逻辑;个人抵押/质押选项正确;`存单质押` 下 `couponRate` 显示并进入必填校验。 - 企业新增弹窗验证:抵押/质押选项正确;`存单质押` 下 `couponRate` 显示并进入必填校验;业务种类仅 `存量转贷` 触发历史利率逻辑。 - 验证后已关闭 Playwright 浏览器会话;本次未新启动前后端进程。 ## 注意事项 - 控制台中的 `sockjs-node` 报错来自本地 dev-server HMR 连接内网地址失败,不影响本次页面功能验证。 - 表单校验 warning 来自验证时故意触发必填校验。