文件
hyb-oa/issues/2026-02-07-p2-kickoff.csv

3.1 KiB

1IDTitleDescriptionAcceptanceTest_MethodToolsDev_StatusReview1_StatusRegression_StatusFilesDependenciesNotes
2A1付款凭证扩展与pay幂等冲突判定扩展 /api/reimbursements/:id/pay 可选支付凭证字段,已paid重复同值200,冲突值409同值重试返回200且idempotent=true;冲突值返回409且details.payment=already_paid_conflict;发票归档逻辑保持事务一致manual: 运行 regression-workflow-actions pay 场景并校验响应码与字段manualTODOTODOTODOserver/src/routes/reimbursements.js | server/prisma/schema.prisma | server/scripts/regression-workflow-actions.sh | server/README.md[]保持现有收敛式 updateMany 归档
3A2委派有效期与自动回收新增委派管理API并支持 valid_from/valid_to 生效窗口,定时回收过期委派委派仅作用 assignee_id;过期后不可代办;回收写入审计日志manual: 调用 delegations API + 执行回收job并验证权限变化manualTODOTODOTODOserver/src/routes/delegations.js | server/src/utils/delegation.js | server/src/routes/workflow.js | server/src/jobs/delegationRevokeJob.js | server/src/app.js | server/README.md["A1"]优先复用 node-cron,不引入重型队列
4A5Sprint1回归护栏前置将A1/A2场景并入 workflow-actions 回归并通过总闸门regression-workflow-actions 与 regression-all 全绿manual: cd server && ./scripts/regression-workflow-actions.sh && ./scripts/regression-all.shmanualTODOTODOTODOserver/scripts/regression-workflow-actions.sh | server/scripts/regression-all.sh | server/README.md["A1","A2"]Sprint2开始前必须完成
5A3OCR真对接与异步处理采用 tencentcloud-sdk-nodejs 接入VAT OCR,上传后异步处理并支持状态查询upload不阻塞主流程;pending_ocr 异步处理;重复票据标记 ocr_failed 且错误码明确manual: 上传VAT发票后轮询查询接口,验证状态流转与失败回写manualTODOTODOTODOserver/src/routes/invoice-pool.js | server/src/services/ocr/* | server/src/scripts/run-ocr-once.js | server/prisma/schema.prisma | server/README.md["A5"]使用官方 SDK,不手写签名请求
6A3-LOCKOCR多实例并发幂等锁为 pending_ocr 扫描增加认领锁与超时回收,避免重复处理同一条多实例并发下同一发票仅一个worker成功认领;处理完成释放锁;失败遵循 attempts 阈值manual: 并发触发 job:ocr-once,检查同一invoice仅一次有效处理manualTODOTODOTODOserver/prisma/schema.prisma | server/src/jobs/ocrWorker.js | server/src/scripts/run-ocr-once.js["A3"]建议 FOR UPDATE SKIP LOCKED + ocr_locked_at 超时
7A4审计工作台只读能力新增 /api/audit-logs 查询接口与权限 system.audit.view,并补前端只读页具备分页筛选;权限正确;菜单按权限显示;索引支持查询性能manual: API 分页筛选验证 + 前端菜单与403验证manualTODOTODOTODOserver/src/routes/audit-logs.js | server/src/constants/permissions.js | client/src/router/* | client/src/pages/* | server/README.md["A3","A3-LOCK"]索引建议 created_at DESC, actor_id, action