# 2026-04-22 招投标导入失败展示增强后端实施计划

## 1. 目标

- 为招投标导入失败记录补充失败来源 `Sheet`
- 为失败记录补充 Excel 失败行号
- 保持现有导入校验逻辑不变，仅增强失败记录元数据

## 2. 涉及范围

- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/vo/PurchaseTransactionImportFailureVO.java`
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/service/impl/CcdiPurchaseTransactionImportServiceImpl.java`

## 3. 实施步骤

1. 在失败记录 VO 中新增 `sheetName`、`sheetRowNum` 字段，供前端弹窗直接读取
2. 在导入服务中为主信息 Sheet 和供应商明细 Sheet 建立“Excel 数据行号”上下文
3. 在主信息校验、供应商校验、主从关系校验、空采购事项 ID 供应商校验等失败分支中，统一写入对应的 `Sheet` 与行号
4. 对跨多行触发的失败场景，行号以合并字符串形式返回，便于页面直接展示
5. 保留原有失败原因与业务字段，避免影响已有失败记录查询接口

## 4. 验证方式

- 执行后端编译，确认新增字段和异常封装无编译错误
- 通过真实页面上传失败样本，核对失败记录接口返回 `sheetName / sheetRowNum / errorMessage`
- 覆盖至少一个主信息失败样本和一个供应商明细失败样本
