2.5 KiB
2.5 KiB
| 1 | ID | Title | Description | Acceptance | Test_Method | Tools | Dev_Status | Review1_Status | Regression_Status | Files | Dependencies | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | A1 | R125发票删除后重传执行合同 | 修复报销草稿移除/删除发票后,同一发票无法重新上传或重新添加的问题。 | 1) Issue CSV 校验通过;2) 明确 active 发票和 archived/manual 发票查重边界;3) 不混入无关重构。 | 命令:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-08_19-41-40-r125-invoice-reupload-after-delete.csv;业务流程:上传发票->添加到草稿->移除/删除->重新上传->重新添加。 | python|manual | DONE | DONE | DONE | issues/2026-05-08_19-41-40-r125-invoice-reupload-after-delete.csv | [] | 不做破坏性数据库操作;CSV 校验通过。 |
| 3 | A2 | 修正发票查重边界 | manual archived 发票不再阻止同一文件重新上传或绑定;used_complete 仍阻止重复报销。 | 1) archived/manual 不参与上传和绑定查重;2) bound/used_complete 仍阻止;3) available 同 owner 可复用并重新绑定;4) 公司内其他 owner 的 active 发票仍阻止。 | 后端回归:构造 manual archived、available、bound、used_complete、other owner active 五类发票分别验证上传/绑定结果。 | node|prisma | DONE | DONE | DONE | server/src/services/invoiceGovernance.js|server/src/routes/invoicePool.js|server/tests | ["A1"] | 不放宽已报销发票查重;unit 覆盖 manual archived、used_complete、available、other owner active。 |
| 4 | A3 | 补双端回归 | 覆盖 PC 和企业微信移动端:草稿发票移除/删除后重新上传。 | PC 与 mobile/wecom:上传发票->添加->移除或删除->再次上传->可重新添加;删除草稿后新草稿也可重新添加。 | Playwright R125;client typecheck/build;server syntax/regression。 | playwright|npm | DONE | DONE | DONE | client/tests/e2e|server/scripts | ["A2"] | R111+R125 Playwright 共 4 条通过;截图保存在 output/playwright/r125-invoice-reupload-after-delete。 |
| 5 | A4 | 部署与公网复验 | 修复后部署到试运行并验证用户可测。 | 1) 部署成功;2) /ready 通过;3) migrate status 通过;4) runtime smoke 通过;5) 公网资源扫描通过;6) 明确可去企业微信测试。 | deploy/trialrun/deploy.sh;curl /ready;public bundle scan;runtime smoke。 | bash|curl|ssh | DONE | DONE | DONE | deploy/trialrun|issues/2026-05-08_19-41-40-r125-invoice-reupload-after-delete.csv | ["A2","A3"] | 已部署到 https://oa.hyinda.com;LIVE_SMOKE_* 未配置因此部署脚本跳过网页 live smoke。 |