# [P1] 银行导入 API 加固与回归测试

## 背景

解析内核能识别现有六个样本，但 `/api/parse` 仍是最小原型：只返回第一个批次、手写 multipart、诊断边界不完整，也没有接口级测试。

## 范围

- API 返回所有成功工作表批次，而不是固定使用 `batches[0]`。
- 未知模板诊断始终包含原始文件名、工作表名、扫描行数和候选表头；空表和单单元格行也有明确结果。
- 解析失败不得创建成功导入记录，临时文件名不得泄露。
- 使用成熟 multipart 处理方式，严格限制扩展名、大小、文件数量和资源消耗。
- 覆盖重复文件、损坏文件、无工作表、多工作表、歧义模板和余额异常。
- 每新增银行模板必须有脱敏 fixture 和回归测试。

## 验收标准

- [ ] 多工作表文件的每个批次都可确认、异常或忽略，不丢失成功工作表。
- [ ] 空工作簿、单单元格候选和未知表头错误都返回四项诊断证据。
- [ ] API 错误只显示原始上传文件名，不显示服务器临时路径。
- [ ] 损坏文件和超限请求返回稳定错误码，不产生已确认交易。
- [ ] 前端失败流程不增加导入成功行。
- [ ] `/api/parse` 有接口回归测试，包含现有工商银行样本。

## 测试

- 单元测试：候选摘要、空表、多表、歧义、余额异常。
- API 测试：原始文件名、multipart、大小限制、失败不建成功批次、全部批次返回。

## 依赖

Issue 002、004。
