文件
hyb-oa/issues/2026-03-08_22-46-51-p19-erp-2-l5-procurement-commitment-archive.csv

3.6 KiB

1IDTitleDescriptionAcceptanceTest_MethodToolsDev_StatusReview1_StatusRegression_StatusFilesDependenciesNotes
2P19ERP2-0P19ERP2执行合同建档创建并校验采购ERP双阶段出站执行合同CSVCSV通过校验且字段完整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.csvmanualDONEDONEDONEissues/2026-03-08_22-46-51-p19-erp-2-l5-procurement-commitment-archive.csv[]P19ERP2固定为采购审批commitment + 归档accrual + 归档摘要出站
3P19ERP2-1采购ERP出站契约与provider扩展扩展journal与procurement export provider契约并定义payload/dedupe/binding规则ERP journal与procurement summary均可通过现有dispatcher/outbox处理且不新增核心表ERP字段cd server && npm run testmanualDONEDONEDONEserver/src/services/integrations/erp.js | server/src/services/integrations/dispatcher.js | server/src/services/integrations/erpProcurement.js | server/tests["P19ERP2-0"]默认不新增Prisma表 继续复用IntegrationBinding与IntegrationOutbox
4P19ERP2-2采购审批与归档自动出站在purchase approval与archive-order落点自动入队commitment/accrual/archive summary并处理gate skip审批与归档成功后业务事务不受ERP失败影响 且outbox/binding语义正确cd server && npm run test && ./scripts/regression-integrations.shmanualDONEDONEDONEserver/src/routes/workflow.js | server/src/routes/purchaseRequests.js | server/src/services/integrations/outbox.js | server/tests["P19ERP2-1"]自动触发走strictDepartment=true 手动重试走strictDepartment=false
5P19ERP2-3采购ERP轨道查询与重试接口新增采购详情ERP轨道查询与requeue接口支持历史补发和失败重试采购可读用户可看轨道 integration.manage可重试且开关关闭时正确阻断cd server && npm run test && ./scripts/regression-integrations.shmanualDONEDONEDONEserver/src/routes/integrations.js | server/tests["P19ERP2-2"]archive summary允许同一条outbox在payload变化时重置覆盖
6P19ERP2-4采购详情ERP轨道挂件在PurchaseRequestsPage归档区下增加ERP轨道挂件与重试交互详情页可展示三段轨道状态且权限边界正确cd client && npm run typecheck && npm run buildmanualDONEDONEDONEclient/src/pages/PurchaseRequestsPage.tsx | client/src/api/purchaseRequests.ts["P19ERP2-3"]仅详情挂件 不新增ERP页采购面板
7P19ERP2-5文档事件与矩阵同步同步采购ERP-2边界 事件映射 Feature Matrix与校验器矩阵标题更新为P5-P19+IM-1+ERP-2且总数为213python3 scripts/validate-feature-matrix.pymanualDONEDONEDONEdocs/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消费映射
8P19ERP2-6P19ERP2回归与验收收口完成采购双阶段出站 详情挂件与回归验证后收口采购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 buildmanualDONEDONEDONEissues/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阻断