文件
hyb-oa/issues/2026-05-09_09-33-40-ocr-realtime-and-async-ux.csv
T

5.7 KiB

1IDTitleDescriptionAcceptanceTest_MethodToolsDev_StatusReview1_StatusRegression_StatusFilesDependenciesNotes
2F1OCR定向任务与调度提速上传或重新识别后立即投递单张OCR任务,周期tick只作为兜底;修正pg-boss OCR singleton导致的慢触发风险。1) 上传后无需等待长周期tick即可处理;2) 定向任务可按invoiceId处理;3) 周期扫描仍保留兜底;4) 不把OCR同步塞进上传HTTP请求。业务流程:票据中心上传真实/模拟发票->后台OCR立即处理->票据状态变化;步骤:后端单测覆盖入队、定向处理、周期兜底;本地mock OCR上传后状态在预期时间内变化。node|prisma|pg-bossTODOTODOTODOserver/src/routes/invoicePool.js|server/src/jobs/pgBossJobs.js|server/src/jobs/ocrJob.js|server/tests[]不改腾讯密钥;如定向任务异常,可回退周期tick。
3F2OCR完成事件与前端自动刷新OCR完成后发布票据更新事件,前端事件优先刷新票据详情、列表、PC报销详情和移动报销详情;SSE失败时回退自适应轮询。1) 票据中心无需手动刷新;2) PC/移动报销详情无需手动刷新;3) 企业微信WebView下SSE失败不阻断;4) 事件只触发refetch,不直接渲染敏感payload。业务流程:上传发票->OCR完成->页面自动变化;步骤:Playwright模拟SSE成功、SSE断开、轮询兜底。react|playwright|sseTODOTODOTODOserver/src|client/src/hooks|client/src/pages|client/tests/e2e["F1"]先用SSE,WebSocket暂不引入;保留轮询兜底。
4F3OCR状态文案与重复票据体验把重复票据从识别失败中拆出,展示已识别字段和下一步动作。1) 重复票显示“已识别但重复”,不再泛化为OCR失败;2) 展示发票号码、销售方、金额、日期;3) 普通用户不见原始码值;4) 财务仍可走判重例外。业务流程:重复发票上传->识别字段展示->重复原因明确;步骤:真实PDF重复样本和mock重复样本Playwright断言。react|playwrightTODOTODOTODOclient/src/pages|client/src/lib/invoiceOcr.ts|client/tests/e2e["F1","F2"]不放宽判重规则,只修正用户解释和下一步动作。
5F4PC报销详情慢OCR自动添加PC报销详情取消60秒后要求用户刷新,改为持续自动刷新并在available后自动添加。1) 65秒慢OCR完成后PC报销详情自动绑定发票;2) 移动端体验保持一致;3) 超长等待展示“系统仍在自动刷新”;4) 用户可继续操作其他区域。业务流程:PC报销草稿->上传发票->慢OCR->自动添加;步骤:mock OCR延迟65秒Playwright。playwright|reactTODOTODOTODOclient/src/pages/ReimbursementDetailPage.tsx|client/src/pages/MobileReimbursementDetailPage.tsx|client/tests/e2e["F2"]解决“识别中没变化、没有反馈”的核心体验。
6F5公网真实OCR与pending卡住扫描把真实PDF OCR smoke和pending OCR卡住扫描变成发布后固定证据。1) 公网真实OCR输出耗时、终态、字段、重复原因;2) 可列出超过2/5/10分钟pending票据;3) 报告不泄露票据图片和密钥。业务流程:发布后OCR健康检查;步骤:node scripts/qa/check-pending-ocr.mjs;PLAYWRIGHT_OCR_LIVE_FILE=<pdf> E2E_BASE_URL=https://oa.hyinda.com npx playwright test live-invoice-ocr.spec.ts。node|playwright|curlTODOTODOTODOscripts/qa|client/tests/e2e/manual|docs/trialrun-runbook.md["F1","F2","F3"]真实企业微信登录由人工已验,不作为本项阻塞。
7F6项目级异步UX审计扫描并审计类似OCR的异步流程:验真、支付批次、ERP同步、导入、审批、离线队列、附件上传。形成异步UX问题清单:是否有进度、是否自动更新、是否有终态、失败原因、重试入口、用户下一步;高风险项进入后续Issue。业务流程:全项目异步体验审计;步骤:读取路由、页面、任务脚本和E2E;输出docs/trialrun/async-ux-audit.csv。manual|node|playwrightTODOTODOTODOdocs/trialrun/async-ux-audit.csv|client/src|server/src/jobs|scripts/qa[]只审计和规划,不顺手改业务代码。
8F7异步体验规则固化把OCR和项目级异步体验规则固化到产品规则、报销票据规则、试运行runbook和项目skill。1) 文档明确异步任务体验契约;2) OCR/验真/支付/ERP/导入统一规则;3) hyb-oa-delivery skill加入检查项;4) 后续交付必须引用这些规则。业务流程:交付规范治理;步骤:更新docs/reimbursement-invoice-rules.md、docs/product-design-rules.md、docs/trialrun-runbook.md、docs/agent-development-practices.md、.agents/skills/hyb-oa-delivery/SKILL.md并验证skill。docs|manualTODOTODOTODOdocs/reimbursement-invoice-rules.md|docs/product-design-rules.md|docs/trialrun-runbook.md|docs/agent-development-practices.md|.agents/skills/hyb-oa-delivery/SKILL.md["F6"]规则包括:事件优先、轮询兜底、终态反馈、失败原因、下一步动作、码值隐藏、部署后真实证据。
9F8回归部署与公网复核完成F1-F7后执行完整回归、提交、部署和公网复核。project-wide gate通过;部署成功;/ready正常;公网OCR smoke有结果;Issue状态回填DONE;明确可去企业微信/公网测试。业务流程:交付闭环;步骤:prisma validate、client typecheck/build、project-wide release gate、deploy/trialrun/deploy.sh、/ready、wecom config、public bundle scan、live OCR。bash|npm|curl|playwright|gitTODOTODOTODOissues|client|server|scripts|docs|deploy["F1","F2","F3","F4","F5","F6","F7"]面向用户可测改动必须部署后再通知测试。