3.7 KiB
3.7 KiB
| 1 | ID | Title | Description | Acceptance | Test_Method | Tools | Dev_Status | Review1_Status | Regression_Status | Files | Dependencies | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | P19IM1-0 | P19IM1执行合同建档 | 创建并校验P19IM1企微协同适配执行合同CSV | CSV通过校验且字段完整 | python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py /home/shunli/Projects/hyb-oa/issues/2026-03-08_12-18-10-p19-im-1-l5-collaboration-adapter.csv | manual | DONE | DONE | DONE | /home/shunli/Projects/hyb-oa/issues/2026-03-08_12-18-10-p19-im-1-l5-collaboration-adapter.csv | [] | P19IM1仅交付企微群机器人+深链+按角色业务域路由的IM一期能力 |
| 3 | P19IM1-1 | 通知渠道CRUD与路由配置 | 补齐通知渠道创建更新查询与路由配置校验能力 | 可维护wecom渠道并保存routing与template配置 | cd server && npm run test | manual | DONE | DONE | DONE | server/src/routes/notifications.js | server/src/services/notifications | server/tests | ["P19IM1-0"] | 不新增Prisma迁移 继续复用NotificationChannel的config_json与template_json |
| 4 | P19IM1-2 | Outbox化IM派发与企微适配器 | 实现notification.im真实渠道加载 Outbox派发与wecom webhook/mock发送 | 业务通知写入IntegrationOutbox并由job派发成功或失败重试 | cd server && npm run test | manual | DONE | DONE | DONE | server/src/services/integrations | server/src/jobs/integrationOutboxJob.js | server/tests | ["P19IM1-1"] | IM从sendNotificationEmailSafe中拆出避免双发 保留邮件独立发送 |
| 5 | P19IM1-3 | 业务事件接入与通知类型规范化 | 新增通知类型常量并将报销请假采购资产盘点的首批事件接入IM入队 | workflow.task_assigned与首批结果类通知均可按规则入队 | cd server && npm run test && OCR_PROVIDER=mock JOBS_ENABLED=false ./scripts/regression-all.sh | manual | DONE | DONE | DONE | server/src/constants/notificationTypes.js | server/src/routes/workflow.js | server/src/routes/reimbursements.js | server/src/routes/purchaseRequests.js | server/src/routes/assetMovements.js | server/src/routes/inventoryChecks.js | ["P19IM1-2"] | 只覆盖待办+结果+盘点 不接auth和withdrawn等二期通知 |
| 6 | P19IM1-4 | 前端渠道管理页与导航入口 | 新增通知渠道管理页面 路由 菜单与测试发送交互 | finance_mgr可进入后台维护wecom渠道并执行测试发送 | cd client && npm run typecheck && npm run build | manual | DONE | DONE | DONE | client/src/pages/NotificationChannelsPage.tsx | client/src/api/notificationChannels.ts | client/src/router/index.tsx | client/src/components/navigation/NavLinks.tsx | ["P19IM1-3"] | 旧api/integrations.ts中的testNotificationChannel保留兼容但前端切换到新模块 |
| 7 | P19IM1-5 | OpenAPI文档与矩阵同步 | 同步P19IM1的OpenAPI 文档 边界说明与Feature Matrix事实源 | Feature Matrix更新到P5-P19+IM-1且事实源包含新合同 | python3 scripts/validate-feature-matrix.py | manual | DONE | DONE | DONE | docs/integration-boundaries.md | docs/domain-events.md | docs/feature-matrix.md | scripts/validate-feature-matrix.py | /home/shunli/Projects/hyb-oa/issues/2026-03-08_12-18-10-p19-im-1-l5-collaboration-adapter.csv | ["P19IM1-4"] | 矩阵总数固定更新为199并追加P19IM1-0到P19IM1-6 |
| 8 | P19IM1-6 | P19IM1回归与验收收口 | 完成渠道CRUD IM Outbox 业务入队 前端页面与全量回归验证 | 企微mock/webhook可用且站内通知邮件IM三通道不互相回归 | cd server && npm run test && OCR_PROVIDER=mock JOBS_ENABLED=false ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build | manual | DONE | DONE | DONE | /home/shunli/Projects/hyb-oa/issues/2026-03-08_12-18-10-p19-im-1-l5-collaboration-adapter.csv | server/scripts/regression-im-notifier.sh | client/src/pages/NotificationChannelsPage.tsx | ["P19IM1-5"] | 需新增IM专项回归脚本并确认关闭IM后业务仍可正常提交 |