BIZ8 复核PDF发票上传口径

这个提交包含在:
2026-05-13 18:45:51 +08:00
父节点 78689ac277
当前提交 ab35d98d63
@@ -1,7 +1,7 @@
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
BIZ8-0,BIZ8 连续合同建档,"建立报销、OCR、财务和项目轻量增强连续型合同,避免 OCR、票据、财务导出、费用提示和项目关联散落到多个小 CSV。","1) 本 CSV 校验通过;2) 文档索引和状态矩阵指向本合同;3) 不进入 ERP 实时集成或重预算;4) 不改业务代码;5) 真实 OCR 和样票需授权。","流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-13_18-23-53-biz8-finance-ocr-project.csv;rg -n 'BIZ8|OCR|财务|项目' docs/文档索引.md docs/文档事实源状态矩阵.md issues/README.md。",python3|rg|manual,DONE,DONE,DONE,issues/2026-05-13_18-23-53-biz8-finance-ocr-project.csv|docs/文档索引.md|docs/文档事实源状态矩阵.md|issues/README.md,[],CSV validator 和索引 rg 均通过;本次仅合同建档和入口登记,未改业务代码,真实 OCR 和样票仍需授权。
BIZ8-1,业务增强需求规约更新,"复核报销、发票、OCR、财务、费用提示和项目轻管理规约,明确 BIZ8 当前做与不做。","1) PDF-only 当前口径清楚;2) 图片 OCR 仅做可行性设计或明确不做;3) ERP 和重预算冻结;4) 财务和项目权限边界清楚。","流程级验证:rg -n 'PDF|图片 OCR|发票|财务|费用|项目|ERP|预算' docs/报销发票附件规则.md docs/需求-报销发票OCR规约.md docs/需求-项目轻管理规约.md docs/海音达OA-MVP需求规格说明书.md。",rg|manual,DONE,DONE,DONE,docs/报销发票附件规则.md|docs/需求-报销发票OCR规约.md|docs/需求-项目轻管理规约.md|docs/海音达OA-MVP需求规格说明书.md,"[""BIZ8-0""]",rg 复核通过;PRD、报销 OCR 规约、报销附件规则和项目轻管理规约已覆盖 PDF-only、图片 OCR 后续设计、ERP/预算冻结、财务付款导出和项目轻量权限边界;未改业务代码。
BIZ8-2,PDF-only 当前口径复核,"复核当前 OCR 是否仍以 PDF-only 为验收口径,避免把未实现图片 OCR 误报为能力。","1) 当前支持格式清楚;2) 页面提示和后端校验一致;3) 测试样例可复现;4) 不承诺未实现格式。","流程级验证:上传 PDF 和非 PDF 样例 -> 检查校验、提示和 OCR 状态;rg 当前 OCR 文档口径。",manual|node|playwright,TODO,TODO,TODO,docs/需求-报销发票OCR规约.md|server/src|client/src,"[""BIZ8-1""]",如改变格式支持需方案和回滚路径。
BIZ8-2,PDF-only 当前口径复核,"复核当前 OCR 是否仍以 PDF-only 为验收口径,避免把未实现图片 OCR 误报为能力。","1) 当前支持格式清楚;2) 页面提示和后端校验一致;3) 测试样例可复现;4) 不承诺未实现格式。","流程级验证:上传 PDF 和非 PDF 样例 -> 检查校验、提示和 OCR 状态;rg 当前 OCR 文档口径。",manual|node|playwright,DONE,DONE,DONE,docs/需求-报销发票OCR规约.md|server/src|client/src,"[""BIZ8-1""]",后端 npm test -- tests/unit/routes/invoicePool.upload.test.js 通过 6 tests,覆盖 PDF 上传和 image/png 发票拒绝 pdf_invoice_required;前端 npx playwright test tests/e2e/r111-invoice-reimbursement-guard.spec.ts --workers=1 --reporter=list 通过 2 tests,覆盖 PC 和企业微信移动端 PDF 发票上传、图片附件分离和无拍照发票入口;rg 已确认文档继续保持 PDF-only 和图片 OCR 后续能力口径;未改业务代码。
BIZ8-3,图片 OCR 可行性设计,"设计图片 OCR 是否进入当前阶段,评估 provider、成本、准确率、样票授权和回滚路径。","1) provider 和 SDK 选择清楚;2) 样票授权和脱敏规则明确;3) 不影响 PDF OCR;4) 不做 AI 自动处理。","流程级验证:人工审查可行性设计;必要时用脱敏样票在非生产环境验证。",manual,TODO,TODO,TODO,docs/需求-报销发票OCR规约.md|docs/报销发票附件规则.md,"[""BIZ8-2""]",引入新依赖需在 Notes 写用途、版本、替代方案和回滚路径。
BIZ8-4,样票脱敏和授权规则,"定义真实 OCR 和批量回归所需样票的授权、脱敏、存放和引用规则。","1) 样票来源合法;2) 票据、公司、金额和个人信息按需脱敏;3) 仓库不提交敏感原件;4) 证据只记录路径和摘要。","流程级验证:人工核对样票授权记录和脱敏规则;rg 确认仓库未新增真实票据原件。",manual|rg,TODO,TODO,TODO,docs/报销发票附件规则.md|artifacts|output,"[""BIZ8-3""]",真实票据原件不得入库。
BIZ8-5,批量样票回归设计,"设计 OCR 批量样票回归,区分 mock、真实 provider、pending OCR 和失败重试。","1) mock 与真实 provider 结论分离;2) pending OCR 不等于失败或通过;3) 阈值和样本数清楚;4) 失败有复核路径。","流程级验证:node scripts/qa/check-pending-ocr.mjs --thresholds=2,5,10;真实样票缺失时记录 SKIP。",node|manual,TODO,TODO,TODO,scripts/qa|docs/需求-报销发票OCR规约.md,"[""BIZ8-4""]",复用 QAOPS8-7 边界。
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
2 BIZ8-0 BIZ8 连续合同建档 建立报销、OCR、财务和项目轻量增强连续型合同,避免 OCR、票据、财务导出、费用提示和项目关联散落到多个小 CSV。 1) 本 CSV 校验通过;2) 文档索引和状态矩阵指向本合同;3) 不进入 ERP 实时集成或重预算;4) 不改业务代码;5) 真实 OCR 和样票需授权。 流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-13_18-23-53-biz8-finance-ocr-project.csv;rg -n 'BIZ8|OCR|财务|项目' docs/文档索引.md docs/文档事实源状态矩阵.md issues/README.md。 python3|rg|manual DONE DONE DONE issues/2026-05-13_18-23-53-biz8-finance-ocr-project.csv|docs/文档索引.md|docs/文档事实源状态矩阵.md|issues/README.md [] CSV validator 和索引 rg 均通过;本次仅合同建档和入口登记,未改业务代码,真实 OCR 和样票仍需授权。
3 BIZ8-1 业务增强需求规约更新 复核报销、发票、OCR、财务、费用提示和项目轻管理规约,明确 BIZ8 当前做与不做。 1) PDF-only 当前口径清楚;2) 图片 OCR 仅做可行性设计或明确不做;3) ERP 和重预算冻结;4) 财务和项目权限边界清楚。 流程级验证:rg -n 'PDF|图片 OCR|发票|财务|费用|项目|ERP|预算' docs/报销发票附件规则.md docs/需求-报销发票OCR规约.md docs/需求-项目轻管理规约.md docs/海音达OA-MVP需求规格说明书.md。 rg|manual DONE DONE DONE docs/报销发票附件规则.md|docs/需求-报销发票OCR规约.md|docs/需求-项目轻管理规约.md|docs/海音达OA-MVP需求规格说明书.md ["BIZ8-0"] rg 复核通过;PRD、报销 OCR 规约、报销附件规则和项目轻管理规约已覆盖 PDF-only、图片 OCR 后续设计、ERP/预算冻结、财务付款导出和项目轻量权限边界;未改业务代码。
4 BIZ8-2 PDF-only 当前口径复核 复核当前 OCR 是否仍以 PDF-only 为验收口径,避免把未实现图片 OCR 误报为能力。 1) 当前支持格式清楚;2) 页面提示和后端校验一致;3) 测试样例可复现;4) 不承诺未实现格式。 流程级验证:上传 PDF 和非 PDF 样例 -> 检查校验、提示和 OCR 状态;rg 当前 OCR 文档口径。 manual|node|playwright TODO DONE TODO DONE TODO DONE docs/需求-报销发票OCR规约.md|server/src|client/src ["BIZ8-1"] 如改变格式支持需方案和回滚路径。 后端 npm test -- tests/unit/routes/invoicePool.upload.test.js 通过 6 tests,覆盖 PDF 上传和 image/png 发票拒绝 pdf_invoice_required;前端 npx playwright test tests/e2e/r111-invoice-reimbursement-guard.spec.ts --workers=1 --reporter=list 通过 2 tests,覆盖 PC 和企业微信移动端 PDF 发票上传、图片附件分离和无拍照发票入口;rg 已确认文档继续保持 PDF-only 和图片 OCR 后续能力口径;未改业务代码。
5 BIZ8-3 图片 OCR 可行性设计 设计图片 OCR 是否进入当前阶段,评估 provider、成本、准确率、样票授权和回滚路径。 1) provider 和 SDK 选择清楚;2) 样票授权和脱敏规则明确;3) 不影响 PDF OCR;4) 不做 AI 自动处理。 流程级验证:人工审查可行性设计;必要时用脱敏样票在非生产环境验证。 manual TODO TODO TODO docs/需求-报销发票OCR规约.md|docs/报销发票附件规则.md ["BIZ8-2"] 引入新依赖需在 Notes 写用途、版本、替代方案和回滚路径。
6 BIZ8-4 样票脱敏和授权规则 定义真实 OCR 和批量回归所需样票的授权、脱敏、存放和引用规则。 1) 样票来源合法;2) 票据、公司、金额和个人信息按需脱敏;3) 仓库不提交敏感原件;4) 证据只记录路径和摘要。 流程级验证:人工核对样票授权记录和脱敏规则;rg 确认仓库未新增真实票据原件。 manual|rg TODO TODO TODO docs/报销发票附件规则.md|artifacts|output ["BIZ8-3"] 真实票据原件不得入库。
7 BIZ8-5 批量样票回归设计 设计 OCR 批量样票回归,区分 mock、真实 provider、pending OCR 和失败重试。 1) mock 与真实 provider 结论分离;2) pending OCR 不等于失败或通过;3) 阈值和样本数清楚;4) 失败有复核路径。 流程级验证:node scripts/qa/check-pending-ocr.mjs --thresholds=2,5,10;真实样票缺失时记录 SKIP。 node|manual TODO TODO TODO scripts/qa|docs/需求-报销发票OCR规约.md ["BIZ8-4"] 复用 QAOPS8-7 边界。