对公修改

This commit is contained in:
wkc
2026-04-15 18:23:58 +08:00
parent 4b1593d249
commit c37456983f
33 changed files with 598 additions and 165 deletions

View File

@@ -0,0 +1,90 @@
# Breadcrumb 重复 key 修复前端实施记录
## 1. 实际改动内容
### 1.1 修复 Breadcrumb 重复 key 告警
修改文件:
- `ruoyi-ui/src/components/Breadcrumb/index.vue`
- `ruoyi-ui/src/components/Breadcrumb/utils.js`
改动内容:
- 将 Breadcrumb 列表项的 `key` 生成逻辑从直接使用 `item.path` 调整为统一调用 `buildBreadcrumbItemKey`
- 新增 `buildBreadcrumbItemKey(item, index)` 工具方法,使用 `path + title + index` 组合生成稳定且唯一的 key
- 保持现有面包屑展示逻辑不变,不调整路由结构、不修改首页与当前页的展示顺序
根因说明:
- 当前项目的 Breadcrumb 会在非首页场景外额外插入一个 `首页` 面包屑,路径固定为 `'/index'`
- 当当前页面本身也对应 `'/index'` 时,原逻辑使用 `item.path` 作为 `transition-group` 的 key会同时生成两个 `'/index'`
- Vue 因此抛出 `Duplicate keys detected: '/index'`
### 1.2 增加最小回归测试
修改文件:
- `ruoyi-ui/tests/breadcrumb-duplicate-key.test.js`
改动内容:
- 新增最小 Node 断言脚本
- 校验当两个 Breadcrumb 条目 path 同为 `'/index'` 时,生成的 key 仍然唯一
- 锁定本次问题,避免后续调整 Breadcrumb 时再次引入相同告警
## 2. 验证结果
### 2.1 Node 版本
项目中未提供 `.nvmrc`,因此未能直接执行 `nvm use` 自动切换。
实际使用版本:
- `nvm use 14.21.3`
### 2.2 测试命令
已执行:
- `cd ruoyi-ui && source ~/.nvm/nvm.sh && nvm use 14.21.3 >/dev/null && node tests/breadcrumb-duplicate-key.test.js`
结果:
- 测试通过
- 输出 `breadcrumb duplicate key assertions passed`
### 2.3 构建命令
已执行:
- `cd ruoyi-ui && source ~/.nvm/nvm.sh && nvm use 14.21.3 >/dev/null && npm run build:prod`
结果:
- 构建成功
- 输出 `DONE Build complete. The dist directory is ready to be deployed.`
### 2.4 构建告警
存在 webpack 资源体积告警:
- `asset size limit`
- `entrypoint size limit`
说明:
- 这些是现有项目静态资源体积告警
- 本次 Breadcrumb 修复未引入新的构建错误或新的语法告警
## 3. 影响范围
- 仅涉及前端 Breadcrumb 组件
- 未修改后端代码
- 未修改贷款定价业务字段逻辑
## 4. 当前结论
- `Duplicate keys detected: '/index'` 的 Breadcrumb 告警已修复
- 修复方式限定在组件 key 生成逻辑,属于最短路径处理
- 前端回归测试与生产构建均已通过

View File

@@ -0,0 +1,26 @@
# 2026-04-15 上虞对公展示指标对齐前端实施计划
## 改动内容
- 对齐 [CorporateCreateDialog.vue](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-ui/src/views/loanPricing/workflow/components/CorporateCreateDialog.vue) 的对公新增弹窗:
- 新增 `repayMethod`
- `loanTerm` 改为 `1-6` 年下拉
- `collType` 改为 `一类/二类/三类/四类`
- 对外提交字段改为 `isTradeBuildEnt`
- `isGreenLoan``isTradeBuildEnt``collThirdParty` 统一提交 `0/1`
- 移除 `isAgriGuar``isTechEnt`
- 对齐 [CorporateWorkflowDetail.vue](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-ui/src/views/loanPricing/workflow/components/CorporateWorkflowDetail.vue) 的流程详情录入字段展示:
- 新增 `还款方式`
- `贷款期限` 改为 `借款期限`
- 保留 `绿色贷款``贸易和建筑业企业``抵质押类型``抵质押物是否三方所有`
- 移除 `省农担担保贷款``科技型企业`
- 对齐 [ModelOutputDisplay.vue](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-ui/src/views/loanPricing/workflow/components/ModelOutputDisplay.vue) 的企业模型输出展示口径:
- 展示 `repayMethod``isTradeBuildEnt`
- 不再展示 `省农担担保贷款``科技型企业`
- 新增/更新前端静态断言:
- [corporate-create-input-params.test.js](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-ui/tests/corporate-create-input-params.test.js)
- [corporate-display-fields.test.js](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-ui/tests/corporate-display-fields.test.js)
## 验证记录
- `source ~/.nvm/nvm.sh && nvm use 14 >/dev/null && node tests/corporate-create-input-params.test.js`
- `source ~/.nvm/nvm.sh && nvm use 14 >/dev/null && node tests/corporate-display-fields.test.js`
- `source ~/.nvm/nvm.sh && nvm use 14 >/dev/null && npm run build:prod`

View File

@@ -0,0 +1,39 @@
# 2026-04-15 上虞对公展示指标对齐后端实施计划
## 改动内容
- 对齐对公创建接口 DTO 与模型调用 DTO
- [CorporateLoanPricingCreateDTO.java](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-loan-pricing/src/main/java/com/ruoyi/loanpricing/domain/dto/CorporateLoanPricingCreateDTO.java)
- [ModelInvokeDTO.java](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-loan-pricing/src/main/java/com/ruoyi/loanpricing/domain/dto/ModelInvokeDTO.java)
- 新增 `repayMethod`
- 对外字段改为 `isTradeBuildEnt`
- `loanTerm` 校验为 `1-6`
- `collType` 校验为 `一类/二类/三类/四类`
- 对齐流程实体、详情出参和模型输出镜像:
- [LoanPricingWorkflow.java](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-loan-pricing/src/main/java/com/ruoyi/loanpricing/domain/entity/LoanPricingWorkflow.java)
- [ModelCorpOutputFields.java](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-loan-pricing/src/main/java/com/ruoyi/loanpricing/domain/entity/ModelCorpOutputFields.java)
- [LoanPricingConverter.java](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-loan-pricing/src/main/java/com/ruoyi/loanpricing/util/LoanPricingConverter.java)
- [LoanPricingModelService.java](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-loan-pricing/src/main/java/com/ruoyi/loanpricing/service/LoanPricingModelService.java)
- [LoanPricingWorkflowServiceImpl.java](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-loan-pricing/src/main/java/com/ruoyi/loanpricing/service/impl/LoanPricingWorkflowServiceImpl.java)
- 内部继续复用 `isTradeConstruction` 落库,外部统一返回 `isTradeBuildEnt`
- `isAgriGuar``isTechEnt` 从对外 JSON 隐藏
- 企业模型输出补充 `repayMethod``isTradeBuildEnt` 展示镜像
- 对齐 mock 与 SQL 资产:
- [corp_output.json](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-loan-pricing/src/main/resources/data/corp_output.json)
- [loan_pricing_workflow.sql](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/sql/loan_pricing_workflow.sql)
- [loan_pricing_schema_20260328.sql](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/sql/loan_pricing_schema_20260328.sql)
- [loan_pricing_prod_init_20260331.sql](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/sql/loan_pricing_prod_init_20260331.sql)
- [loan_pricing_required_data_20260328.sql](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/sql/loan_pricing_required_data_20260328.sql)
- [loan_pricing_alter_20260415_repay_method.sql](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/sql/loan_pricing_alter_20260415_repay_method.sql)
- [test_corporate_create.http](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/test_api/test_corporate_create.http)
- [test_corporate_create.sh](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/test_api/test_corporate_create.sh)
- `loan_pricing_workflow` 增加 `repay_method`
- mock 数据和接口样例统一为 Excel 字段名与 `0/1` 口径
- 补充独立增量 SQL便于其他环境按最小影响同步结构
- 新增/更新后端定向单测:
- [LoanPricingModelServiceCorporateParamsTest.java](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-loan-pricing/src/test/java/com/ruoyi/loanpricing/service/LoanPricingModelServiceCorporateParamsTest.java)
- [LoanPricingModelServiceTest.java](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-loan-pricing/src/test/java/com/ruoyi/loanpricing/service/LoanPricingModelServiceTest.java)
- [LoanPricingWorkflowServiceImplTest.java](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-loan-pricing/src/test/java/com/ruoyi/loanpricing/service/impl/LoanPricingWorkflowServiceImplTest.java)
- [LoanPricingConverterTest.java](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-loan-pricing/src/test/java/com/ruoyi/loanpricing/util/LoanPricingConverterTest.java)
## 验证记录
- `mvn -pl ruoyi-loan-pricing -am -Dtest=LoanPricingModelServiceCorporateParamsTest,LoanPricingModelServiceTest,LoanPricingWorkflowServiceImplTest,LoanPricingConverterTest -Dsurefire.failIfNoSpecifiedTests=false test`

View File

@@ -0,0 +1,22 @@
# 2026-04-15 审计字段自动填充后端实施记录
## 背景
- 贷款定价流程实体已经声明了 MyBatis-Plus 的 `FieldFill`,但当前分支缺少迁移源分支中的统一审计填充处理器。
- 导致 `insert``updateById` 执行时,`createBy``createTime``updateBy``updateTime` 不会自动写入或刷新。
## 本次改动
- 新增 [MyMetaHandler.java](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-framework/src/main/java/com/ruoyi/framework/config/handler/MyMetaHandler.java),恢复与迁移源分支一致的统一审计填充逻辑。
- 审计人格式保持与源分支一致,统一写入 `昵称-用户名`
- 新增 [MyMetaHandlerTest.java](/Users/wkc/Desktop/loan-pricing/loan-pricing-jdk-1.8/ruoyi-framework/src/test/java/com/ruoyi/framework/config/handler/MyMetaHandlerTest.java),覆盖插入填充与更新填充两个核心场景。
## 验证结果
- 执行 `mvn -pl ruoyi-framework -am -Dtest=MyMetaHandlerTest -Dsurefire.failIfNoSpecifiedTests=false test`,通过。
- 执行 `mvn -pl ruoyi-loan-pricing -am -Dtest=MyMetaHandlerTest,LoanPricingWorkflowServiceImplTest,LoanPricingModelServiceTest,LoanPricingModelServiceCorporateParamsTest,LoanPricingModelServicePersonalParamsTest -Dsurefire.failIfNoSpecifiedTests=false test`,通过。
## 影响说明
- 所有使用 MyBatis-Plus 自动填充并声明对应字段的实体,在当前登录上下文下执行新增和更新时,都会自动维护审计字段。
- 本次未改动贷款定价业务入参、SQL 结构和前端页面行为。

View File

@@ -0,0 +1,24 @@
# 对公流程详情测算结果与风险分析分组调整前端实施记录
## 变更日期
- 2026-04-15
## 变更范围
- 前端页面:`ruoyi-ui/src/views/loanPricing/workflow/components/ModelOutputDisplay.vue`
- 前端校验:`ruoyi-ui/tests/corporate-create-input-params.test.js`
- 前端校验:`ruoyi-ui/tests/corporate-display-fields.test.js`
## 实施内容
- 将对公流程详情“模型输出”卡片中的“测算结果”从原“风险度与测算结果”合并分组中拆出。
- 按页面要求将对公模型输出分组顺序调整为“基本信息 → 测算结果 → 忠诚度分析 → 贡献度分析 → 关联度分析 → 风险分析”。
- 保留“风险分析”在模型输出卡片末尾,仅调整展示分组,不修改接口字段、父组件传参和格式化逻辑。
- 补充前端断言,校验对公模型输出存在独立“测算结果”“风险分析”标题,且不再保留“风险度与测算结果”合并标题。
## 影响说明
- 本次仅涉及前端详情页展示层,不涉及后端接口、数据库脚本和模型测算逻辑。
- 对公流程详情页中,用户可在基本信息后直接查看测算结果,风险分析独立展示且位于模型输出末尾。
## 验证结果
- 执行 `node ruoyi-ui/tests/corporate-create-input-params.test.js`,断言通过。
- 执行 `node ruoyi-ui/tests/corporate-display-fields.test.js`,断言通过。
- 执行 `cd ruoyi-ui && nvm use 14.21.3 && npm run build:prod`,前端生产构建通过。

View File

@@ -0,0 +1,16 @@
# 2026-04-15 开发库补列 SQL 落盘实施记录
## 修改内容
- 将开发库已执行的对公字段补列 SQL 整理并保存到 `sql/loan_pricing_alter_20260415_repay_method.sql`
- 在原有 `loan_pricing_workflow.repay_method` 基础上,补充 `model_corp_output_fields` 的以下字段变更语句:
- `repay_method`
- `is_trade_build_ent`
- `loan_rate_history`
- `min_rate_product`
- `smooth_range`
- `final_calculate_rate`
- `reference_rate`
## 结果
- 现有 SQL 文件已可直接用于同步开发库本次字段补齐变更。
- 文件内容与本次实际执行到开发库的语句保持一致。