# 上虞利率定价字段调整实施记录

## 基本信息

- 日期：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 来自验证时故意触发必填校验。
