Commit 3009328ff139ca30656ed45f44bd0343d254cd05

Authored by zichun
1 parent c738b42d

docs: generalize staging into ai_write_queue (op-type/target/payload/status/resu…

…lt); ERP real-time exec via /ai/execStaging + two link modes
Showing 1 changed file with 22 additions and 5 deletions
docs/agent-architecture.md
... ... @@ -111,11 +111,28 @@
111 111  
112 112 **通用双确认流(copyto)**:① 对话内 diff + 确认按钮 → ② `ProposeWrite` 落暂存 `sp_ai_addcommonwx` + 返回 ERP 链接 → ③ 用户进 ERP 原生表单(预填)再确认 → ④ **ERP 暂存执行器**排空并执行真实写入。
113 113  
114   -- **现状缺口**:`sp_ai_addcommonwx` 现在**没有任何消费者**(`Sp_Ai_AddCommonAfterNew` 只入队从不执行)→ **④ 执行器是必须新建的 ERP 侧组件,最重、跨团队。**
115   -- **统一**:报价也走此路(废 `Sp_Ai_AddQuoQuoAfter` 直连),全链一致。
116   -- **暂存记录(在现有列基础上扩展)**:`{sId, createdBy(用户), targetFormId, targetModuleId, op(new/copyto), payload(JSON), sourceRef, status(draft→staged→confirmed→executed/failed), link, expireAt, tCreate}`。
117   -- **需处理**:幂等(重复确认)、过期、确认前底层数据变化、状态机、失败回执。
118   -- **前端**:ERP 需一个「我的 AI 待办」入口 + 深链路由(`stagingRef` → 打开对应表单并预填)。
  114 +- **现状缺口**:现有 `sp_ai_addcommonwx`(239 行)**完全只为"生成下游单据"设计**(字段全是 源→目标 + 合并/分单模式),且**没有消费者**(`Sp_Ai_AddCommonAfterNew` 只入队从不执行)。缺 op 类型/目标记录id/payload/**用户·租户**/status/结果/自动标志/过期 → **覆盖不了 增/改/删/审核**。
  115 +
  116 +**⇒ 新建通用暂存表 `ai_write_queue`**(旧表留给存量或迁移):
  117 +```
  118 +ai_write_queue(
  119 + sId PK/深链token, sUserId, sBrandsId, sSubsidiaryId,
  120 + sOpType, -- create|update|delete|examine|generate
  121 + sTargetFormId, sTargetModuleId, sTargetTable,
  122 + sTargetBillId, -- update/delete/examine 用; create/generate 空
  123 + sPayload JSON, -- 列→值(create/update) 或 动作参数(examine)
  124 + sSourceRef JSON, -- generate: 源表单+选中 sSlaveId 集
  125 + bAutoExecute, -- ERP 自动执行 or 等用户提交
  126 + sStatus, -- draft|confirmed|executing|executed|failed|expired
  127 + sResultBillId, sResultMsg, sErrorMsg,
  128 + tCreateDate, tConfirmDate, tExecutedDate, tExpireAt)
  129 +```
  130 +`sOpType + sTargetBillId + sPayload` 统一覆盖所有写。报价=generate/quote+auto;审核=examine+目标id;改删=update/delete+目标id+payload。
  131 +
  132 +**ERP 实时处理(推模式,推荐)**:xlyAi 落暂存(confirmed) → 同步调 **`POST /ai/execStaging/{sId}`**(带 token)→ ERP 按 `bAutoExecute` 分叉,回写 status/result → xlyAi 拿结果给链接。慢操作转异步(先 executing,xlyAi 轮询/ERP 回调到 executed)。
  133 +- **两种链接**:`bAutoExecute=1`(报价)→ ERP 立即执行 → 链接 `/form/{formId}?bill={sResultBillId}` **打开建好的单据**;`bAutoExecute=0`(新增/大多数)→ ERP 只校验+备预填 → 链接 `/form/{formId}?staging={sId}` **打开预填表单,用户点提交/保存**(走 addBusinessData 才真正写)。
  134 +- **ERP 侧要新建**:① 预填加载 `/form/{formId}?staging={sId}`;② 执行端点 `/ai/execStaging/{sId}`;③ status/result 回写;④「我的 AI 待办」入口。
  135 +- **需处理**:幂等(重复确认)、过期、确认前底层数据变化、状态机、失败回执、审计。
119 136  
120 137 ## 11. KG 集成
121 138  
... ...