# 账户库双表合单表后端实施计划

## 1. 目标

将账户库由 `ccdi_account_info` + `ccdi_account_result` 双表结构收敛为单表 `ccdi_account_info`，迁移完成后删除旧表，同时保持现有账户库接口、字段名和前端交互不变。

## 2. 实施范围

- 数据库增量迁移脚本
- 账户库后端实体、Mapper XML、服务层
- 外部场景种子脚本
- 账户库相关回归测试

本次不调整前端页面、接口路径和接口字段名。

## 3. 实施步骤

### 3.1 数据库迁移

1. 新增 `sql/migration/2026-04-16-merge-ccdi-account-result-into-info.sql`
2. 在脚本中先校验 `ccdi_account_info.account_no` 无重复
3. 为 `ccdi_account_info` 补齐分析字段
4. 按 `account_no` 从 `ccdi_account_result` 回填数据
5. 回填完成后删除 `ccdi_account_result`

### 3.2 后端代码调整

1. `CcdiAccountInfo` 实体吸收分析字段映射
2. 删除 `CcdiAccountResult` 实体与 `CcdiAccountResultMapper`
3. `CcdiAccountInfoMapper.xml` 去掉对 `ccdi_account_result` 的联表
4. `CcdiAccountInfoServiceImpl` 去掉结果表双写逻辑
5. 保持原有业务语义：
   - `bankScope = EXTERNAL` 时补齐默认分析字段
   - `bankScope != EXTERNAL` 时清空分析字段，避免误写

### 3.3 配套脚本与测试

1. 将 `2026-04-13` 外部账户场景种子脚本改为单表写入
2. 新增 SQL 脚本文本断言测试
3. 新增账户库服务层与 Mapper SQL 结构测试

## 4. 验证要点

- 迁移脚本包含“补字段、回填、删旧表”三步
- 账户库列表/详情/导出查询均只读 `ccdi_account_info`
- 行外账户保存分析字段
- 行内账户清空分析字段
- 外部场景种子脚本不再写入 `ccdi_account_result`

## 5. 风险说明

- 仓库当前 `ccdi-info-collection` 模块存在既有依赖缺失问题，可能影响常规 Maven 全量编译与测试执行
- 本次需要将“账户库改动验证结果”和“仓库原有构建阻塞”分开记录
