docs(P19ERP2-0): 建档采购ERP出站执行合同

这个提交包含在:
2026-03-08 22:47:41 +08:00
父节点 f407c01484
当前提交 8f4a50cdd7
@@ -0,0 +1,8 @@
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
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 + 归档摘要出站
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
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
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变化时重置覆盖
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页采购面板
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消费映射
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阻断
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阻断