From 6081ee87f264732340c62251b6224730b6752c35 Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Thu, 30 Apr 2026 09:15:37 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E4=B8=9A=E5=8A=A1=E7=A7=8D?= =?UTF-8?q?=E7=B1=BB=E5=8E=86=E5=8F=B2=E5=88=A9=E7=8E=87=E5=90=8E=E7=AB=AF?= =?UTF-8?q?=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...t-2026-04-29-business-type-history-rate.md | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 doc/implementation-report-2026-04-29-business-type-history-rate.md diff --git a/doc/implementation-report-2026-04-29-business-type-history-rate.md b/doc/implementation-report-2026-04-29-business-type-history-rate.md new file mode 100644 index 0000000..8282f18 --- /dev/null +++ b/doc/implementation-report-2026-04-29-business-type-history-rate.md @@ -0,0 +1,30 @@ +# 业务种类与历史贷款利率实施记录 + +## 后端实施 + +- 个人/企业利率定价创建 DTO 新增 `businessType`、`loanRateHistory` 字段。 +- 利率定价流程实体新增 `businessType`、`loanRateHistory` 持久化字段。 +- 模型调用 DTO 新增 `loanRateHistory` 字段,保持不新增 `businessType`。 +- 个人/企业创建转换器已映射业务种类和历史贷款利率。 +- 流程创建服务新增业务种类校验:必填,限定 `新客`、`存量新增`、`存量转贷`;`存量转贷` 必须选择历史贷款合同。 +- 新增历史贷款合同代理服务 `LoanRateHistoryService` 和接口 `GET /loanPricing/workflow/history-contract`。 +- 本地 mock 新增 `GET /rate/pricing/mock/history-contract`,覆盖正常、无历史合同、历史利率为空场景。 +- 本地 mock 客户号映射新增固定测试客户号 `HISTORY_EMPTY` 和 `HISTORY_EMPTY_RATE`。 +- dev/uat/pro 配置新增 `loan-rate-history.url`。 +- SQL 迁移和初始化脚本新增 `business_type`、`loan_rate_history` 字段。 + +## 后端验证 + +- 首次按计划运行 `mvn -pl ruoyi-loan-pricing -am -Dtest=... test` 时,`ruoyi-common` 因未匹配测试触发 Surefire 失败;后续按本仓库多模块测试习惯补充 `-Dsurefire.failIfNoSpecifiedTests=false`。 +- 当前 Oracle JDK 21 环境下 Mockito inline mock maker 需要预加载 Byte Buddy agent,验证命令使用 `JAVA_TOOL_OPTIONS=-javaagent:/Users/wkc/.m2/repository/net/bytebuddy/byte-buddy-agent/1.17.8/byte-buddy-agent-1.17.8.jar`。 +- 已执行并通过: + - `mvn -pl ruoyi-loan-pricing -am -Dtest=LoanPricingModelServicePersonalParamsTest,HistoryLoanContractVOTest -Dsurefire.failIfNoSpecifiedTests=false test` + - `mvn -pl ruoyi-loan-pricing -am -Dtest=LoanPricingModelServicePersonalParamsTest,LoanPricingModelServiceTest,LoanPricingWorkflowServiceImplTest -Dsurefire.failIfNoSpecifiedTests=false test` + - `mvn -pl ruoyi-loan-pricing -am -Dtest=LoanRateHistoryServiceTest,LoanRatePricingMockControllerHistoryContractTest,LoanPricingWorkflowControllerHistoryContractTest,LoanRatePricingMockControllerCustomerMapTest -Dsurefire.failIfNoSpecifiedTests=false test` + - `mvn -pl ruoyi-loan-pricing -am -Dtest=LoanPricingModelServicePersonalParamsTest,LoanPricingModelServiceTest -Dsurefire.failIfNoSpecifiedTests=false test` + - `mvn -pl ruoyi-loan-pricing -am -Dtest=HistoryLoanContractVOTest,LoanRateHistoryServiceTest,LoanPricingWorkflowControllerHistoryContractTest,LoanRatePricingMockControllerHistoryContractTest,LoanPricingWorkflowServiceImplTest,LoanPricingModelServicePersonalParamsTest,LoanPricingModelServiceTest -Dsurefire.failIfNoSpecifiedTests=false test` + - `mvn -pl ruoyi-loan-pricing -am -Dtest=LoanPricingCustomerMapServiceTest,LoanPricingWorkflowControllerCustomerMapTest,LoanRatePricingMockControllerCustomerMapTest,CustomerMapRecordVOTest -Dsurefire.failIfNoSpecifiedTests=false test` + +## 待完成 + +- 前端业务种类选择、历史合同选择弹窗、详情展示和真实页面浏览器验证待按前端计划继续执行。