## 导入前校验清单

- **DDS-Section**: 9.4 导入前校验清单
- **DDS-Lines**: L1103-L1112

### Extract

#### 6 项必须校验

| # | 校验项 | 说明 | 失败处理 |
|---|--------|------|----------|
| 1 | 必填字段完整性 | `amount`, `trade_time`, `direction` 不可为空 | 标记为 FAILED，记录具体缺失字段 |
| 2 | 金额格式合法性 | 必须为正数，精度不超过 6 位小数 | 标记为 FAILED |
| 3 | 时间格式合法性 | 必须为有效日期时间 | 标记为 FAILED |
| 4 | 账户映射完整性 | 来源平台必须有对应的 Firefly 账户映射 | 标记为 FAILED，提示配置账户映射 |
| 5 | 重复导入拦截 | 检查 `transaction_id` 是否已在 Firefly III 中存在 | 跳过并标记 |
| 6 | 未确认记录检查 | 是否存在 `PENDING_REVIEW` 状态的疑似重复记录 | 阻断导入，提示先处理待确认记录 |

#### 校验实现要点

- 校验在 Export Engine 的 `validate()` 方法中统一执行
- 校验失败的记录不参与推送，但不影响其他记录
- 校验结果写入 `import_results` 表，前端可展示失败原因
- 第 6 项（未确认记录）为全局阻断性校验，有未确认记录时整批不可导入
