docs(P20T1-5): 差旅边界事件矩阵与校验器收口
这个提交包含在:
+17
-2
@@ -1,7 +1,7 @@
|
||||
# 领域事件清单(P19 / P19+IM-1 / P19+ERP-3 / P19+AI-1)
|
||||
# 领域事件清单(P19 / P19+IM-1 / P19+ERP-3 / P19+AI-1 / P20+TRAVEL-1)
|
||||
|
||||
**快照日期**:2026-03-10
|
||||
**目标**:冻结 `hyb-oa` 当前采购与资产域的标准领域事件名,并补充 `P19+IM-1` 已实际消费的 IM 通知类型清单,以及 `P19+ERP-1 / ERP-3 / AI-1` 已实际落地的消费映射,作为后续 ERP / IM / AI 适配的事实源。
|
||||
**目标**:冻结 `hyb-oa` 当前采购、资产与差旅域的标准领域事件名,并补充 `P19+IM-1` 已实际消费的 IM 通知类型清单,以及 `P19+ERP-1 / ERP-3 / AI-1 / TRAVEL-1` 已实际落地的消费映射,作为后续 ERP / IM / AI / TRAVEL 适配的事实源。
|
||||
|
||||
## 1. 使用原则
|
||||
- 本文档同时维护两类事实:
|
||||
@@ -18,6 +18,10 @@
|
||||
| `purchase_request.approved` | 采购申请审批通过后 | `purchase_request` | `purchaseRequestId`, `requestNo`, `approvedBy`, `legalEntityId`, `costCenterId`, `supplierId`, `budgetPoolId`, `totalAmount`, `status` | ERP、IM、AI | 对应预算 `confirm` 已完成 |
|
||||
| `purchase_request.rejected` | 采购申请审批驳回后 | `purchase_request` | `purchaseRequestId`, `requestNo`, `actorId`, `reason`, `status` | IM、AI | 若存在预算预留,应已释放 |
|
||||
| `purchase_request.withdrawn` | 申请人撤回采购申请后 | `purchase_request` | `purchaseRequestId`, `requestNo`, `actorId`, `status` | IM、AI、ERP 补偿 | 表示由 `reviewing` 回到 `draft` |
|
||||
| `travel_request.submitted` | 差旅申请提交成功后 | `travel_request` | `travelRequestId`, `requestNo`, `applicantEmployeeId`, `departmentId`, `legalEntityId`, `costCenterId`, `budgetPoolId`, `estimatedAmount`, `tripType`, `status` | IM、Budget、TRAVEL-2/3 | 表示进入 `reviewing` 且预算尝试 `reserve` |
|
||||
| `travel_request.approved` | 差旅申请审批通过后 | `travel_request` | `travelRequestId`, `requestNo`, `approvedBy`, `legalEntityId`, `costCenterId`, `budgetPoolId`, `estimatedAmount`, `tripType`, `status` | IM、Budget、TRAVEL-2/3 | 对应预算 `confirm` 已完成;TRAVEL-1 不做 ERP 出站 |
|
||||
| `travel_request.rejected` | 差旅申请审批驳回后 | `travel_request` | `travelRequestId`, `requestNo`, `actorId`, `reason`, `status` | IM、Budget、AI | 若存在预算预留,应已释放 |
|
||||
| `travel_request.withdrawn` | 申请人撤回差旅申请后 | `travel_request` | `travelRequestId`, `requestNo`, `actorId`, `status` | Budget、AI、TRAVEL-2/3 | 动作结果固定回到 `draft`,不是持久状态 |
|
||||
| `purchase_order.archived` | PO/合同归档保存成功后 | `purchase_order_archive` | `purchaseOrderArchiveId`, `purchaseRequestId`, `requestNo`, `poNo`, `contractNo`, `archivedAt`, `totalAmount` | ERP、AI | ERP-2 以此驱动 accrual journal 与 archive summary |
|
||||
| `asset.card.created` | 资产卡片创建成功后 | `asset_card` | `assetId`, `assetNo`, `name`, `categoryId`, `legalEntityId`, `costCenterId`, `purchaseRequestId`, `status` | ERP、IM、AI | 资产域不接 workflow |
|
||||
| `asset.assigned` | 资产领用成功后 | `asset_card` | `assetId`, `assetNo`, `employeeId`, `assignedAt`, `location`, `status` | IM、AI | 对应新增 open assignment |
|
||||
@@ -30,6 +34,7 @@
|
||||
| entityType | 推荐事件前缀 | 当前事实源 |
|
||||
| --- | --- | --- |
|
||||
| `purchase_request` | `purchase_request.*` | `P17A` / `P17B` |
|
||||
| `travel_request` | `travel_request.*` | `P20+TRAVEL-1` |
|
||||
| `purchase_order_archive` | `purchase_order.*` | `P17B` / `P19+ERP-2` |
|
||||
| `asset_card` | `asset.*` | `P18A` / `P18B` |
|
||||
| `inventory_check` | `inventory_check.*` | `P18B` |
|
||||
@@ -81,6 +86,8 @@
|
||||
| `leave.rejected` | 请假驳回 | `leave_request` | `/leave-requests` | 结果通知 |
|
||||
| `purchase_request.approved` | 采购审批通过 | `purchase_request` | `/purchase-requests` | 结果通知 |
|
||||
| `purchase_request.rejected` | 采购驳回 | `purchase_request` | `/purchase-requests` | 结果通知 |
|
||||
| `travel_request.approved` | 差旅审批通过 | `travel_request` | `/travel-requests?id=<id>` | 结果通知 |
|
||||
| `travel_request.rejected` | 差旅审批驳回 | `travel_request` | `/travel-requests?id=<id>` | 结果通知 |
|
||||
| `asset.assigned` | 资产领用成功 | `asset_card` | `/assets` | 通知新领用人 |
|
||||
| `asset.returned` | 资产归还成功 | `asset_card` | `/assets` | 通知原持有人 |
|
||||
| `asset.transferred` | 资产调拨成功 | `asset_card` | `/assets` | 通知归属变更涉及人员 |
|
||||
@@ -89,6 +96,8 @@
|
||||
## 9. 当前仍未接入 IM 的冻结事件
|
||||
- `purchase_request.submitted`
|
||||
- `purchase_request.withdrawn`
|
||||
- `travel_request.submitted`
|
||||
- `travel_request.withdrawn`
|
||||
- `inventory_check.started`
|
||||
|
||||
这些事件名称仍保留在长期蓝图中,但不属于 `P19+IM-1` 的首批协同覆盖范围。
|
||||
@@ -111,3 +120,9 @@
|
||||
- 报销详情 AI 建议消费的事实锚点为 `reimbursement_form` 当前详情、预算提示与待办节点;采购详情 AI 建议消费 `purchase_request` 当前详情、归档摘要与资产候选信息;资产详情 AI 建议消费 `asset_card` 当前卡片摘要与财务维度信息。
|
||||
- AI 一期的三条建议接口均采用白名单快照,不提升为长期公共事件,也不改变 `asset.card.created`、`purchase_request.*`、`purchase_order.archived` 等既有事件名的稳定性承诺。
|
||||
- AI 输出仅形成 `summary / riskHints / nextActions` 结构化建议,并通过审计动作 `AI_SUGGESTION_REQUESTED` 记录请求摘要;不写库、不派发 Outbox、不回写业务状态。
|
||||
|
||||
## 12. P20+TRAVEL-1 已实现消费说明
|
||||
- `P20+TRAVEL-1` 新增稳定事件名 `travel_request.submitted`、`travel_request.approved`、`travel_request.rejected`、`travel_request.withdrawn`,用于冻结差旅申请一期的业务事实边界。
|
||||
- 差旅一期运行时会在 `travel_request.submitted` 时创建 workflow 实例、分派 `workflow.task_assigned` 待办,并按预算池解析结果尝试 `reserve`;`travel_request.approved` / `travel_request.rejected` 则分别驱动预算 `confirm` / `release`。
|
||||
- 当前 IM 已实际消费差旅审批结果通知 `travel_request.approved` 与 `travel_request.rejected`;`travel_request.submitted` 与 `travel_request.withdrawn` 仍作为稳定领域事实保留,不额外新增结果类通知。
|
||||
- `travel_order.imported` 在 `TRAVEL-1` 当前仍只作为内部集成事实和入站表更新使用,不提升为稳定公共事件,也不在本表作为长期承诺事件名登记。
|
||||
|
||||
在新工单中引用
屏蔽一个用户