Files
ccdi/docs/reports/implementation/2026-04-16-account-library-single-table-implementation.md

63 lines
2.2 KiB
Markdown
Raw Normal View History

2026-04-17 10:18:13 +08:00
# 账户库双表合单表实施记录
## 1. 本次实施内容
### 1.1 单表模型收敛
-`CcdiAccountInfo` 中补齐以下分析字段映射:
- `is_self_account`
- `monthly_avg_trans_count`
- `monthly_avg_trans_amount`
- `trans_freq_type`
- `dr_max_single_amount`
- `cr_max_single_amount`
- `dr_max_daily_amount`
- `cr_max_daily_amount`
- `trans_risk_level`
- 删除 `CcdiAccountResult` 实体与 `CcdiAccountResultMapper`
### 1.2 查询与写入逻辑调整
- `CcdiAccountInfoMapper.xml` 已移除 `ccdi_account_result` 联表
- 账户库列表、详情、导出统一从 `ccdi_account_info` 读取分析字段
- `CcdiAccountInfoServiceImpl` 已移除结果表双写逻辑
- 新增单表分析字段处理规则:
- 行外账户默认补齐分析字段缺省值
- 行内账户统一清空分析字段
### 1.3 数据迁移与种子脚本
- 新增增量脚本:
- `sql/migration/2026-04-16-merge-ccdi-account-result-into-info.sql`
- 更新外部场景种子脚本:
- `sql/migration/2026-04-13-seed-ccdi-account-info-external-scenarios.sql`
- 种子脚本已改为直接写入 `ccdi_account_info`,不再依赖旧表
### 1.4 测试补充
- 新增 `CcdiAccountInfoServiceImplTest`
- 新增 `CcdiAccountInfoMapperTest`
- 新增 `CcdiAccountInfoMergeSqlTest`
## 2. 验证记录
### 2.1 已完成验证
- `ccdi-project` 模块执行 `mvn -pl ccdi-project -DskipTests compile` 成功
- 文件级检查确认:
- 账户库主链路代码已无 `CcdiAccountResult` / `accountResultMapper` 引用
- `CcdiAccountInfoMapper.xml` 已无 `ccdi_account_result` 联表
- 新增迁移脚本包含补字段、按 `account_no` 回填、删除旧表逻辑
### 2.2 现存仓库阻塞
- `ccdi-info-collection` 模块常规编译失败,失败原因为仓库已有依赖/类缺失,与本次账户库改动不直接相关
- 典型阻塞包括:
- `com.ruoyi.common.annotation` 下若干注解类缺失
- 多个服务类依赖 `org.springframework.data.redis.core`,当前模块未解析
- 既有测试代码与当前依赖版本存在不一致
## 3. 结论
本次账户库已按方案完成“双表合单表”代码与 SQL 收敛,后续若要做完整 Maven 回归,需要先处理仓库当前已有的模块依赖与测试编译问题。