4.6 KiB
4.6 KiB
| 1 | ID | Title | Description | Acceptance | Test_Method | Tools | Dev_Status | Review1_Status | Regression_Status | Files | Dependencies | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | A1 | 服务端 OCR PDF 感知修复 | 让 invoice_pool OCR job 按 `mime_type` 区分 PDF 与图片:图片继续走当前 `ImageBase64` 路径;PDF 调腾讯 `VatInvoiceOCR` 时显式传 `IsPdf=true` 与 `PdfPageNumber=1`,并补齐最小可观测性,便于区分 `pdf_native` 与 `image_native` 调用模式。 | 1) 真实 PDF 发票经应用链路不再因缺少 PDF 参数而报 `FailedOperation.ImageDecodeFailed`;2) 不新增数据库 schema 与前端人工步骤;3) OCR 失败时保留业务可读错误,便于后续 live 报告区分问题类型。 | 命令:`cd server && npm run prisma:validate`;`cd server && node --check src/services/ocr/tencent.js`;`cd server && node --check src/services/ocr/index.js`;`cd server && node --check src/jobs/ocrJob.js`。业务:使用旧项目 `/home/shunli/shenzhou-business-suite/.env` 的腾讯凭证以运行时注入方式启动本地服务,上传真实 PDF 发票,验证自动 OCR 后进入可绑定或给出明确失败原因。 | manual|playwright | DONE | DONE | DONE | server/src/jobs/ocrJob.js|server/src/services/ocr/index.js|server/src/services/ocr/tencent.js | [] | 已完成:补齐 PDF 调用参数、支持 `VatInvoiceInfos` 返回结构归一化、记录 `pdf_native` / `image_native` 调用模式,并在干净本地 trialrun DB `hyb_oa_manual_trialrun_20260429093000` 上以真实 PDF 发票验证通过。2026-04-29 已再通过 live 单张 + batch Playwright 复跑验证主链路闭环。默认策略仍为 `PDF first`,不引入前端默认转图;不把真实腾讯密钥写入仓库。回滚路径:恢复为仅图片参数调用。 |
| 3 | A2 | Live OCR 单张与批量复测 | 在 A1 基础上重跑单张与批量真实票样的 Playwright 辅助复核,确认 `上传 -> OCR -> 可绑定` 主链路在真实腾讯环境下能稳定闭环,并更新报告。 | 1) 用户提供的 PDF 发票至少 1 张经 live 链路成功识别;2) 批量脚本能输出每张票的成功/失败状态与原因;3) 报告中不再把当前问题归因到 `SecretIdNotFound` 或缺 PDF 参数。 | 命令:`cd client && PLAYWRIGHT_MANUAL=1 PLAYWRIGHT_OCR_LIVE=1 PLAYWRIGHT_OCR_LIVE_FILE=/home/shunli/Projects/hyb-oa/artifacts/北京悦海堂餐饮管理有限公司_发票金额1683.00元.pdf E2E_BASE_URL=http://127.0.0.1:<port> npx playwright test tests/e2e/manual/live-invoice-ocr.spec.ts --workers=1 --reporter=list`;`cd client && PLAYWRIGHT_MANUAL=1 PLAYWRIGHT_OCR_LIVE=1 PLAYWRIGHT_OCR_LIVE_BATCH=1 E2E_BASE_URL=http://127.0.0.1:<port> npx playwright test tests/e2e/manual/live-invoice-ocr-batch.spec.ts --workers=1 --reporter=list`。业务:验证真实 PDF 上传后自动 OCR、进入 available、可绑定到报销单。 | playwright|manual | DONE | DONE | DONE | client/tests/e2e/manual/live-invoice-ocr.spec.ts|client/tests/e2e/manual/live-invoice-ocr-batch.spec.ts|artifacts/r70/live-ocr-batch-report.md | ["A1"] | 2026-04-29 在 `http://127.0.0.1:3001` 上复跑通过:单张 `live-invoice-ocr.spec.ts` 1 passed (26.2s),batch `live-invoice-ocr-batch.spec.ts` 1 passed (14.1s),runner 正常退出;最新 batch 报告已回填 `artifacts/r70/live-ocr-batch-report.md`。腾讯凭证继续从旧项目运行时注入,优先使用已验证可用的 `/home/shunli/shenzhou-business-suite/.env`;`.env.local` 已知无效,不再作为默认主候选。 |
| 4 | A3 | 覆盖矩阵与试运行结论回填 | 将 R77 的实现结果同步回填到覆盖矩阵、试运行报告与当前合同,明确 OCR 域是否已经达到可试运行标准,以及剩余外部专项边界。 | 1) coverage matrix、manual trialrun report 与 R77 CSV 结论一致;2) 能明确回答报销/票据/OCR 域是否已具备试运行条件;3) 企微、HTTPS、多角色并发仍保持在外部专项,不与 R77 OCR 收口混淆。 | 业务:汇总 A1-A2 结果,回填 `artifacts/r75/coverage-matrix.csv`、`artifacts/r70/manual-trialrun-report.md` 与本合同状态;必要时补充 checklist 中与 live OCR 相关的操作说明。 | manual | DONE | DONE | DONE | artifacts/r75/coverage-matrix.csv|artifacts/r70/manual-trialrun-report.md|artifacts/r70/manual-trialrun-checklist.md|issues/2026-04-29_09-19-07-r77-ocr-pdf-first.csv | ["A2"] | 已同步更新 live OCR 报告、coverage matrix、manual trialrun report 与 checklist。当前结论:员工侧 `上传 -> OCR -> available -> 绑定 -> 提交报销` 主链路已具备本地试运行条件;企微、HTTPS、多角色并发与财务支付后链路仍保持外部/后续专项,不与 R77 OCR 收口混淆。 |