完成中介库导入改造

This commit is contained in:
wkc
2026-04-20 15:17:31 +08:00
parent 60a7906eb3
commit 6385778e4c
31 changed files with 1566 additions and 373 deletions

View File

@@ -3,7 +3,7 @@
**模块**: 中介库管理
**日期**: 2026-04-20
**作者**: Codex
**状态**: 待评审
**状态**: 已实现SQL 已执行,历史脏数据待清洗)
## 一、背景
@@ -563,3 +563,11 @@
10. 通过一次性历史数据迁移完成语义统一
该方案满足当前需求边界,且符合最短路径实现原则,不引入兼容性补丁方案。
## 十六、实施回写
- 2026-04-20 已完成中介模块 `related_num_id` 语义切换,手工新增亲属、统一列表查询、本人证件号变更同步和级联删除逻辑均按“关联中介本人证件号码”改造。
- 2026-04-20 已完成“导入中介信息”和“导入中介实体关联关系”两条异步导入链路,并同步完成前端双按钮、双任务状态、双失败记录模式改造。
- 2026-04-20 已完成后端目标测试回归、信息采集模块编译、前端静态单测和 `build:prod` 构建验证。
- 2026-04-20 已执行 `bin/mysql_utf8_exec.sh sql/migration/2026-04-20-fix-ccdi-person-sub-type-dict.sql``bin/mysql_utf8_exec.sh sql/migration/2026-04-20-migrate-intermediary-related-num-id-to-person-id.sql`
- 迁移后核查结果:`legacy_biz_id_reference = 0`,说明旧 `biz_id` 语义残留已清零;`post_migration_missing_parent = 1025``owner_person_id_empty_after_migration = 754`,说明历史数据中仍存在无法关联到本人证件号的脏数据,需后续专项清洗。

View File

@@ -435,3 +435,27 @@ mvn -pl ccdi-info-collection -am clean compile
- `relationType` 已从导入链路中移除
- `personSubType` 模板下拉已切换为 `ccdi_person_sub_type`
- 后端测试与编译验证通过
## 执行结果
- SQL 脚本:
`sql/migration/2026-04-20-fix-ccdi-person-sub-type-dict.sql`
`sql/migration/2026-04-20-migrate-intermediary-related-num-id-to-person-id.sql`
结果:已执行 `bin/mysql_utf8_exec.sh`
- SQL 核查:
`post_migration_missing_parent = 1025`
`legacy_biz_id_reference = 0`
`owner_person_id_empty_after_migration = 754`
结果:可迁移数据已切换完成,旧 `biz_id` 语义残留清零,但历史脏数据仍需后续清洗。
- Maven 命令:
`mvn -pl ccdi-info-collection -am -Dsurefire.failIfNoSpecifiedTests=false -Dtest=CcdiIntermediaryServiceImplTest,CcdiIntermediaryMapperTest test`
结果PASS
- Maven 命令:
`mvn -pl ccdi-info-collection -am -Dsurefire.failIfNoSpecifiedTests=false -Dtest=CcdiIntermediaryPersonImportServiceImplTest,CcdiIntermediaryEnterpriseRelationImportServiceImplTest,CcdiIntermediaryControllerTest test`
结果PASS
- Maven 命令:
`mvn -pl ccdi-info-collection -am -Dsurefire.failIfNoSpecifiedTests=false -Dtest=CcdiIntermediaryServiceImplTest,CcdiIntermediaryMapperTest,CcdiIntermediaryControllerTest,CcdiIntermediaryPersonImportServiceImplTest,CcdiIntermediaryEnterpriseRelationImportServiceImplTest test`
结果PASS
- Maven 命令:
`mvn -pl ccdi-info-collection -am clean compile`
结果PASSBUILD SUCCESS

View File

@@ -399,3 +399,15 @@ source ~/.nvm/nvm.sh && nvm use 14.21.3 && npm run build:prod
- 页面支持恢复两类最近一次导入任务状态
- 导入提示文案已经明确 `personSubType` 字典下拉、`relationType` 废弃、`relatedNumId` 新语义
- 已使用 `nvm use 14.21.3` 完成前端测试脚本和生产构建验证
## 执行结果
- Node 命令:
`source ~/.nvm/nvm.sh && cd ruoyi-ui && nvm use 14.21.3`
结果PASSNow using node v14.21.3
- Node 命令:
`source ~/.nvm/nvm.sh && cd ruoyi-ui && nvm use 14.21.3 >/dev/null && node tests/unit/intermediary-import-api.test.js && node tests/unit/intermediary-import-dialog.test.js && node tests/unit/intermediary-import-toolbar.test.js && node tests/unit/intermediary-import-state.test.js && node tests/unit/intermediary-person-edit-ui.test.js`
结果PASS
- Node 命令:
`source ~/.nvm/nvm.sh && cd ruoyi-ui && nvm use 14.21.3 >/dev/null && npm run build:prod`
结果PASS构建成功仅保留原有 bundle size warning

View File

@@ -0,0 +1,44 @@
# 中介库导入改造实施记录
## 基本信息
- 日期2026-04-20
- 范围:中介库后端导入改造 + 前端导入入口与状态改造
- 关联设计:`docs/design/2026-04-20-intermediary-import-refactor-design.md`
- 关联计划:
`docs/plans/backend/2026-04-20-intermediary-import-backend-implementation.md`
`docs/plans/frontend/2026-04-20-intermediary-import-frontend-implementation.md`
## 实施内容
- 后端完成 `related_num_id` 语义切换,统一为“关联中介本人证件号码”,并补齐本人证件号变更同步、亲属唯一性收敛、统一列表联表条件切换。
- 后端完成“导入中介信息”链路重构,支持本人与亲属混合导入、同文件内引用先成功导入的本人、同亲属证件号挂到不同本人。
- 后端新增“导入中介实体关联关系”链路,按“本人证件号码 -> 本人 bizId -> 关系表”写入,并支持文件内去重、库内去重、失败记录回看。
- 前端完成中介导入入口改造,页面顶部改为“导入中介信息”“导入中介实体关联关系”两个按钮,导入弹窗改为 `scene` 驱动。
- 前端完成两类导入任务状态、本地缓存键、失败记录弹窗、历史任务恢复和完成态刷新逻辑,保留现有详情维护、亲属维护、关联机构维护的 `bizId` 契约。
## 验证结果
- 后端测试:
`mvn -pl ccdi-info-collection -am -Dsurefire.failIfNoSpecifiedTests=false -Dtest=CcdiIntermediaryServiceImplTest,CcdiIntermediaryMapperTest,CcdiIntermediaryControllerTest,CcdiIntermediaryPersonImportServiceImplTest,CcdiIntermediaryEnterpriseRelationImportServiceImplTest test`
结果PASS
- 后端编译:
`mvn -pl ccdi-info-collection -am clean compile`
结果PASS
- 前端静态测试:
`source ~/.nvm/nvm.sh && cd ruoyi-ui && nvm use 14.21.3 >/dev/null && node tests/unit/intermediary-import-api.test.js && node tests/unit/intermediary-import-dialog.test.js && node tests/unit/intermediary-import-toolbar.test.js && node tests/unit/intermediary-import-state.test.js && node tests/unit/intermediary-person-edit-ui.test.js`
结果PASS
- 前端构建:
`source ~/.nvm/nvm.sh && cd ruoyi-ui && nvm use 14.21.3 >/dev/null && npm run build:prod`
结果PASS仅有原有 bundle size warning
## SQL 执行结果
- 已执行:
`bin/mysql_utf8_exec.sh sql/migration/2026-04-20-fix-ccdi-person-sub-type-dict.sql`
`bin/mysql_utf8_exec.sh sql/migration/2026-04-20-migrate-intermediary-related-num-id-to-person-id.sql`
- 迁移后核查:
`post_migration_missing_parent = 1025`
`legacy_biz_id_reference = 0`
`owner_person_id_empty_after_migration = 754`
- 结论:可迁移数据已经完成语义切换,旧 `biz_id` 语义残留已清零;历史中仍有缺失本人映射或 `related_num_id` 为空的脏数据,需要后续专项清洗。