docs(P23IM2-5): IM-2规格书边界矩阵收口

这个提交包含在:
2026-03-13 21:50:04 +08:00
父节点 e5b4e11f76
当前提交 845b52b89b
共修改 3 个文件,包含 16 行新增和 11 行删除
+1 -1
查看文件
@@ -76,7 +76,7 @@
| I1 | 集成框架(Outbox+Adapter) | §16 Phase 2(外部集成) | 2026-02-09_23-30-00-p6-p8-remaining-work-master.csv | 2026-02-09_23-30-00-p6-p8-remaining-work-master.csv | 2026-02-09 | DONE | server/scripts/regression-integrations.sh | none |
| I2 | ERP最小集成(paid同步) | §16 Phase 2(ERP 集成) | 2026-02-09_23-30-00-p6-p8-remaining-work-master.csv | 2026-02-09_23-30-00-p6-p8-remaining-work-master.csv | 2026-02-09 | DONE | server/scripts/regression-integrations.sh | 默认关闭,按需灰度 |
| I3 | 差旅单导入与报销关联 | §16 Phase 2(差旅闭环) | 2026-02-09_23-30-00-p6-p8-remaining-work-master.csv | 2026-02-09_23-30-00-p6-p8-remaining-work-master.csv | 2026-02-09 | DONE | server/scripts/regression-integrations.sh | 默认关闭,按需灰度 |
| I4 | 通知渠道扩展(企微/钉钉) | §4.6(多渠道通知) | 2026-02-09_23-30-00-p6-p8-remaining-work-master.csv | 2026-02-09_23-30-00-p6-p8-remaining-work-master.csv | 2026-02-09 | DONE | server/scripts/regression-integrations.sh | 默认关闭,按需灰度 |
| I4 | 通知渠道扩展(企微/钉钉) | §4.6(多渠道通知) | 2026-03-13_21-04-30-p23-im2-wecom-productionization-refresh.csv | 2026-03-13_21-04-30-p23-im2-wecom-productionization-refresh.csv | 2026-03-13 | DONE | server/scripts/regression-im-notifier.sh | 已完成企微 webhook 生产化与密钥加固;飞书 / 钉钉 provider 继续 backlog |
| S1 | 企业卡/虚拟卡管控预研 | N/A(ADR 决策项) | 2026-02-09_23-30-00-p6-p8-remaining-work-master.csv | 2026-02-09_23-30-00-p6-p8-remaining-work-master.csv | 2026-02-09 | DONE | manual | docs/adr/adr-enterprise-card-control.md |
| S2 | 移动端路线决策预研 | N/A(ADR 决策项) | 2026-02-09_23-30-00-p6-p8-remaining-work-master.csv | 2026-02-09_23-30-00-p6-p8-remaining-work-master.csv | 2026-02-09 | DONE | manual | docs/adr/adr-mobile-strategy.md |
+4 -3
查看文件
@@ -82,6 +82,7 @@
- 已接入企微群机器人两种模式:
- `mock`
- `wecom_webhook`
- 企微 `wecom_webhook` 已补齐生产化护栏:Webhook Secret 加密存储、遮罩回显、测试接口诊断与迁移脚本。
- 已支持三维路由过滤:
- `roleCodes`
- `domainScopes`
@@ -112,7 +113,7 @@
- 即使 IM 全部关闭,站内通知与邮件仍继续工作
### 3.5 后续专项建议
- `P19+IM-2`:飞书 / 钉钉适配器
- `P23+IM-2`:真实 IM 适配器 refresh;已完成企微 webhook 生产化,飞书 / 钉钉 provider 继续 backlog
- `P19+IM-3`:个人直达与 IM 身份映射
- `P19+IM-4`:消息卡片交互与回调审批(仍必须回到 OA 鉴权)
@@ -198,7 +199,7 @@
- 已升级 `vite-plugin-pwa` 的 runtime cache:静态资源使用 `StaleWhileRevalidate`,审批相关 GET API 使用 `NetworkFirst`,导航仍通过 `navigateFallback=/index.html` 回到 SPA 壳。
### 5.9 PWA 二期明确不做
- 不做钉钉 / 企微真实消息适配器、JS-SDK、开放平台回调审批;本期仅承接同源 H5 deep link 打开体验。
- 不做飞书 / 钉钉真实消息适配器、JS-SDK、开放平台回调审批;本期企微只承接群机器人 webhook 出站,不引入消息卡片与回调审批。
- 不做 Background Sync、Push、原生 App、小程序、双栈移动壳,也不把审批动作 POST 请求交给 Service Worker 代理。
- 不做完整离线登录、全量待办镜像、复杂冲突合并或离线自动修复;未缓存的待办详情离线仍要求联网重试。
- 不改写现有 workflow 动作 API,不给 `approve` 新增 comment,也不把 `return / transfer` 纳入离线草稿范围。
@@ -283,6 +284,6 @@
- PWA 路线已按浏览器 / PWA 栈闭环,不引入原生 App、小程序或双栈移动壳。
### 9.5 后置 backlog
- `P19+IM-2 / IM-3 / IM-4`、`P22+VEH-1`、`P22+ASSET-FIN-1` 明确列为后置 backlog,本轮不进入主线。
- `P23+IM-2` 已完成企微真实 webhook 出站;飞书 / 钉钉 provider 子项与 `IM-3 / IM-4`、`P22+VEH-1`、`P22+ASSET-FIN-1` 继续作为后置 backlog。
- 这些方向只保留“触发条件 / 进入时机”的规划地位,不提前写入已完成矩阵或事实源校验器。
- 若后续优先级发生变化,必须通过新的路线合同显式改序,不直接口头跳 phase。
+11 -7
查看文件
@@ -372,12 +372,12 @@ cancelled (作废/终止,终态)
---
### 4.6 通知系统(P0)
### 4.6 通知系统
| 场景 | 通知方式 |
| :--- | :--- |
| 待审批提醒 | 站内 + 邮件(P1:企微/钉钉) |
| 审批结果 | 站内 + 邮件 |
| 付款完成 | 站内 + 邮件 |
| 待审批提醒 | 站内 + 邮件 + 企微群机器人(已实现);飞书 / 钉钉继续 backlog |
| 审批结果 | 站内 + 邮件 + 企微群机器人(按渠道配置) |
| 付款完成 | 站内 + 邮件 + 企微群机器人(按渠道配置) |
---
@@ -514,7 +514,7 @@ cancelled (作废/终止,终态)
#### 4.11.1 范围与边界
- 当前集成层只通过边界适配核心域,不向报销、采购、资产、差旅等事务主表注入 ERP / IM 私有字段。
- 已实现范围包括:共享主数据同步、IM-1 通知渠道、ERP-1 报销付款凭证切片、ERP-2 采购 commitment/archive、ERP-3 资产摘要、TRAVEL-3 批次级 `erp.travel.export`。
- 已实现范围包括:共享主数据同步、IM-1 通知渠道、IM-2 企微 `wecom_webhook` 真实出站生产化、ERP-1 报销付款凭证切片、ERP-2 采购 commitment/archive、ERP-3 资产摘要、TRAVEL-3 批次级 `erp.travel.export`。
- `docs/integration-boundaries.md` 与 `docs/domain-events.md` 是本章的边界与事件语义事实源;本规格只吸收已实现部分。
#### 4.11.2 角色与权限
@@ -526,7 +526,7 @@ cancelled (作废/终止,终态)
- 集成统一采用“业务事务提交成功 -> Outbox 异步派发 -> Binding / Track 回写”的交付模型;外部失败不回滚业务主事务。
- `IntegrationOutbox` 负责 `pending/processed/dead-letter` 等投递状态、重试窗口与 `dedupe_key` 幂等;`IntegrationBinding` 负责本地实体与外部编号映射;`IntegrationSyncState` 负责主数据资源级同步状态。
- 公开业务事件名保持最小集;`erp.travel.export`、`erp.journal.export` 等属于集成事件,不等同于新的业务领域事件名。
- 当前后置 backlog 固定包括 `IM-2/IM-3/IM-4`、`P22+VEH-1`、`P22+ASSET-FIN-1`,不进入本轮已实现范围。
- 当前后置 backlog 固定包括 `IM-2` 的飞书 / 钉钉 provider 子项、`IM-3/IM-4`、`P22+VEH-1`、`P22+ASSET-FIN-1`,不进入本轮已实现范围。
#### 4.11.4 核心数据对象
| 对象 | 作用 |
@@ -538,7 +538,7 @@ cancelled (作废/终止,终态)
#### 4.11.5 显式不做项
- 不直接在核心事务表写入第三方私有字段或回调状态列。
- 不在本轮实现 `IM-2/3/4`、车辆管理、资产财务深化,也不把这些方向提前写入已完成事实源。
- 不在本轮实现飞书 / 钉钉 provider、`IM-3/IM-4`、车辆管理、资产财务深化,也不把这些方向提前写入已完成事实源。
- 不把 AI、MCP、PWA、生产化治理并入本章主体;这些能力继续由边界文档和运维文档承载。
## 5. 工作流引擎(Workflow,P0 采用)
@@ -1244,6 +1244,10 @@ cancelled (作废/终止,终态)
| GET | `/api/integrations/erp/travel/reconciliation-batches/:batchId/track` | 登录即可(服务端鉴权) | 查看差旅对账批次 ERP 轨道 |
| POST | `/api/integrations/erp/travel/reconciliation-batches/:batchId/requeue` | `integration.manage` | 补发或重试差旅 ERP 摘要桥 |
| POST | `/api/integrations/erp/sync/:reimbursementId` | `integration.manage` | 兼容性手工同步入口 |
| GET | `/api/notifications/channels` | `notification.channel.manage` | 查看通知渠道列表;返回 `secretConfigured` 与 `secretMasked`,不回显明文 secret |
| POST | `/api/notifications/channels` | `notification.channel.manage` | 创建通知渠道;`configJson.secret` 为只写字段,服务端以 `secretEncrypted` 落库 |
| PATCH | `/api/notifications/channels/:id` | `notification.channel.manage` | 更新通知渠道;支持保留 / 替换 / 清空 Webhook Secret |
| POST | `/api/notifications/channels/:id/test` | `notification.channel.manage` | 同步测试企微通道,返回 `code`、`message`、`retryable` 与消息预览 |
### 13.3 配置读取 API(P0 只读)
| 方法 | 路径 | 权限码 | 说明 |
| :--- | :--- | :--- | :--- |