# 上传流水身份证号本地回填实施记录

## 背景

上传行外流水文件时，文件名已经会校验必须包含 18 位身份证号，但流水平台返回明细中的 `cretNo` 可能为空。当前结果总览、流水打标和专项分析主要依赖 `ccdi_bank_statement.cret_no` 关联员工或关系人，空值会导致上传后有流水但结果出不来。

## 修改内容

- 仅调整后端上传流水文件链路，不修改前端、不修改拉取本行信息链路、不修改数据库结构。
- `CcdiFileUploadServiceImpl`
  - 在上传记录文件名中复用现有身份证号识别规则提取 18 位身份证号。
  - 保存流水平台返回的流水明细前，若 `CcdiBankStatement.cretNo` 为空，则使用上传记录文件名中的身份证号回填。
  - 继续使用原有上传记录文件名转传流水平台，不新增 `身份证号-原文件名` 前缀改写。
- `CcdiFileUploadServiceImplTest`
  - 保留“转传流水平台使用记录文件名”的测试。
  - 新增平台返回 `cretNo` 为空时，本地入库实体回填上传文件名身份证号的测试。

## 影响范围

- 对平台正常返回 `cretNo` 的流水无影响，仍优先使用平台返回值。
- 对平台未返回 `cretNo`、但上传文件名包含身份证号的流水，入库时会补齐 `ccdi_bank_statement.cret_no`。
- 对文件名不含身份证号的上传仍在上传前拦截，不进入落库阶段。

## 验证

```bash
mvn -pl ccdi-project -am "-Dtest=CcdiFileUploadServiceImplTest" "-Dsurefire.failIfNoSpecifiedTests=false" test
```

- 结果：BUILD SUCCESS
- 覆盖：上传链路文件名校验、上传平台文件名传递、解析完成后流水入库、`cretNo` 为空时本地回填。

## 备注

- PowerShell 下 Maven `-D` 参数需要加引号；未加引号时命令会被解析为错误生命周期阶段。
- 本次未启动前端或后端服务，因此无测试进程需要关闭。
