3.6 KiB
3.6 KiB
| 1 | ID | Title | Description | Acceptance | Test_Method | Tools | Dev_Status | Review1_Status | Regression_Status | Files | Dependencies | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | P19ERP2-0 | P19ERP2执行合同建档 | 创建并校验采购ERP双阶段出站执行合同CSV | CSV通过校验且字段完整 | python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-08_22-46-51-p19-erp-2-l5-procurement-commitment-archive.csv | manual | TODO | TODO | TODO | issues/2026-03-08_22-46-51-p19-erp-2-l5-procurement-commitment-archive.csv | [] | P19ERP2固定为采购审批commitment + 归档accrual + 归档摘要出站 |
| 3 | P19ERP2-1 | 采购ERP出站契约与provider扩展 | 扩展journal与procurement export provider契约并定义payload/dedupe/binding规则 | ERP journal与procurement summary均可通过现有dispatcher/outbox处理且不新增核心表ERP字段 | cd server && npm run test | manual | TODO | TODO | TODO | server/src/services/integrations/erp.js | server/src/services/integrations/dispatcher.js | server/src/services/integrations/erpProcurement.js | server/tests | ["P19ERP2-0"] | 默认不新增Prisma表 继续复用IntegrationBinding与IntegrationOutbox |
| 4 | P19ERP2-2 | 采购审批与归档自动出站 | 在purchase approval与archive-order落点自动入队commitment/accrual/archive summary并处理gate skip | 审批与归档成功后业务事务不受ERP失败影响 且outbox/binding语义正确 | cd server && npm run test && ./scripts/regression-integrations.sh | manual | TODO | TODO | TODO | server/src/routes/workflow.js | server/src/routes/purchaseRequests.js | server/src/services/integrations/outbox.js | server/tests | ["P19ERP2-1"] | 自动触发走strictDepartment=true 手动重试走strictDepartment=false |
| 5 | P19ERP2-3 | 采购ERP轨道查询与重试接口 | 新增采购详情ERP轨道查询与requeue接口支持历史补发和失败重试 | 采购可读用户可看轨道 integration.manage可重试且开关关闭时正确阻断 | cd server && npm run test && ./scripts/regression-integrations.sh | manual | TODO | TODO | TODO | server/src/routes/integrations.js | server/tests | ["P19ERP2-2"] | archive summary允许同一条outbox在payload变化时重置覆盖 |
| 6 | P19ERP2-4 | 采购详情ERP轨道挂件 | 在PurchaseRequestsPage归档区下增加ERP轨道挂件与重试交互 | 详情页可展示三段轨道状态且权限边界正确 | cd client && npm run typecheck && npm run build | manual | TODO | TODO | TODO | client/src/pages/PurchaseRequestsPage.tsx | client/src/api/purchaseRequests.ts | ["P19ERP2-3"] | 仅详情挂件 不新增ERP页采购面板 |
| 7 | P19ERP2-5 | 文档事件与矩阵同步 | 同步采购ERP-2边界 事件映射 Feature Matrix与校验器 | 矩阵标题更新为P5-P19+IM-1+ERP-2且总数为213 | python3 scripts/validate-feature-matrix.py | manual | TODO | TODO | TODO | docs/integration-boundaries.md | docs/domain-events.md | docs/feature-matrix.md | scripts/validate-feature-matrix.py | issues/2026-03-08_22-46-51-p19-erp-2-l5-procurement-commitment-archive.csv | ["P19ERP2-4"] | 新增purchase_order.archived事件并补采购ERP消费映射 |
| 8 | P19ERP2-6 | P19ERP2回归与验收收口 | 完成采购双阶段出站 详情挂件与回归验证后收口 | 采购ERP happy path与失败重试通过且报销/请假/采购/资产/IM零回归 | cd server && npm run test && ./scripts/regression-integrations.sh && OCR_PROVIDER=mock JOBS_ENABLED=false IM_NOTIFIER_ENABLED=true APP_ORIGIN='http://127.0.0.1:3000' ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build | manual | TODO | TODO | TODO | issues/2026-03-08_22-46-51-p19-erp-2-l5-procurement-commitment-archive.csv | server/scripts/regression-integrations.sh | client/src/pages/PurchaseRequestsPage.tsx | ["P19ERP2-5"] | 重点核对archive summary覆盖同步 成功journal不可强制replay 权限边界与gate阻断 |