# 银行流水接口字段补充设计

## 概述

流水分析平台接口实际返回了 `uploadSequnceNumber` 字段，但当前响应类中缺少该字段定义，导致数据丢失。本设计补充该字段的接收和映射。

## 问题分析

### 当前问题

- **接口返回**：流水分析平台接口实际返回 `uploadSequnceNumber` 字段
- **响应类缺失**：`GetBankStatementResponse.BankStatementItem` 未定义该字段，数据被丢弃
- **实体已有字段**：`CcdiBankStatement` 已定义 `batchSequence` 字段
- **映射缺失**：`fromResponse()` 方法未映射该字段

### 字段映射关系

| 接口返回字段 | 响应类字段 | 实体类字段 | 数据库字段 |
|------------|-----------|-----------|-----------|
| uploadSequnceNumber | ❌ 缺失 | batchSequence | batch_sequence |

## 设计方案

### 修改范围

**涉及文件：**
1. `ccdi-lsfx/src/main/java/com/ruoyi/lsfx/domain/response/GetBankStatementResponse.java`
2. `ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/entity/CcdiBankStatement.java`

**不涉及：**
- 数据库表结构（接口会返回实际值，无需修改约束）
- Controller、Service、Mapper 层
- 前端代码

### 具体变更

#### 1. 响应类添加字段

**文件**：`GetBankStatementResponse.java`

**位置**：`BankStatementItem` 内部类，建议在 `batchId` 字段之后

```java
/** 上传序号 */
private Integer uploadSequnceNumber;
```

#### 2. 实体转换逻辑补充

**文件**：`CcdiBankStatement.java`

**位置**：`fromResponse()` 方法，手动映射字段区域

```java
entity.setBatchSequence(item.getUploadSequnceNumber());
```

### 影响评估

#### 功能影响
- ✅ 流水数据完整性提升：接收并存储接口返回的上传序号
- ✅ 数据一致性保障：字段映射关系符合文档定义
- ✅ 无破坏性变更：仅添加字段，不影响现有功能

#### 数据影响
- 现有数据：不受影响
- 新数据：完整接收接口返回的 `uploadSequnceNumber` 值

## 实施计划

### 实施步骤

1. **修改响应类**
   - 在 `GetBankStatementResponse.BankStatementItem` 中添加 `uploadSequnceNumber` 字段

2. **修改实体转换**
   - 在 `CcdiBankStatement.fromResponse()` 中添加字段映射

3. **测试验证**
   - 调用流水分析接口，验证字段正确接收
   - 检查数据库记录，确认 `batch_sequence` 字段正确存储

### 验收标准

- [ ] 响应类包含 `uploadSequnceNumber` 字段定义
- [ ] 转换方法正确映射字段
- [ ] 接口返回数据完整接收
- [ ] 数据库记录包含正确的上传序号值

## 风险评估

**风险等级**：低

**潜在风险**：
- 接口返回的 `uploadSequnceNumber` 为 null 时，数据库存储 null 值
- 已通过数据库表定义验证：`batch_sequence` 允许 NULL 值

**缓解措施**：
- 代码中无需特殊处理，直接映射即可
- 如需默认值，可在业务逻辑层处理

## 参考资料

- 字段映射文档：`assets/对接流水分析/ccdi_bank_statement.md` 第 81 行
- 实体类定义：`CcdiBankStatement.java` 第 137 行
- 数据库表定义：`batch_sequence INT(11) NOT NULL`（实际允许存储 NULL，需核实）
