1
0

添加 端到端主流程.md

This commit is contained in:
君肯普通 2026-01-31 20:07:02 +08:00
parent 0c95d966ce
commit 4255abeb66

67
端到端主流程.md Normal file
View File

@ -0,0 +1,67 @@
sequenceDiagram
autonumber
actor Admin as Admin管理员
participant UI as 前端UI
participant API as 后端API服务
participant PG_Task as PostgreSQLkg_task
participant Ext as 外部抽取服务
participant PG_M as PostgreSQLkg_entity_mention/kg_relation_mention
participant PG_Cand as PostgreSQLkg_*_candidate
participant PG_Conf as PostgreSQLkg_*_confirm
participant Audit as PostgreSQLaudit_log
participant SyncW as 同步Worker
participant Neo4j as Neo4j投影
Note over Admin,PG_Task: 任务创建与门禁3.1.3.1 / 3.1.3.1.1
Admin->>UI: 配置任务Schemaext_entity_codes / ext_relation_codes
UI->>API: 提交创建任务请求(创建门禁检查)
API->>PG_Task: 创建kg_taskstatus=created持久化tenant上下文
API-->>UI: 返回task信息external_task_id在触发抽取时获取
Note over API,Ext: 任务运行期status: running → finished/failed
API->>Ext: 触发抽取外部异步执行分配external_task_id
Ext-->>PG_Task: 任务状态更新running → finished/failed由系统对接P0仅约束状态口径
Note over Ext,API: 抽取结果回调5.1 回调/导入)
Ext->>API: POST /api/callback/extractexternal_task_id, records...
API->>PG_Task: 基于external_task_id反查kg_task仅接受status=finished
API->>PG_Task: 行级锁/门禁(单消费者/重复通知幂等处理)
API->>PG_M: 同事务写入Mention
activate API
API->>API: Schema白名单裁决 + Task生命周期过滤\n→ mention.status=active/invalid3.2.4
API->>Audit: 写审计filtered_by_schema / callback_*
deactivate API
API-->>Ext: 回调处理结果(成功/冲突)
Note over Admin,PG_Cand: 候选生成3.3 / 5.3
Admin->>UI: 在任务详情发起“由mentions生成candidate”
UI->>API: POST /api/candidates/from-mentions
API->>PG_M: 仅读取status=active 且 task非revoking/revoked 的mentions\n统一可见性过滤 2.11
API->>PG_Cand: 单事务聚合去重 + 规范化 + 决策canonical\n→ candidate.status=pending3.3.4
API-->>UI: 返回候选数据
Note over Admin,PG_Conf: 审核确认至Confirm3.4 / 5.3
Admin->>UI: 在候选审核页选择通过approve
UI->>API: POST /api/candidates/{id}/approve
API->>PG_Conf: Confirm Upsert复合键/UID→ status=CONFIRMED\n统一置 sync_status='PENDING'3.4/4.3
API->>PG_Cand: 将被锁定的候选设为lockedlocked_by_confirm=true
API->>Audit: 写审计review.accept / merge 等)
API-->>UI: 返回审核结果
Note over Admin,PG_Conf: 发布6.1 / 5.4
Admin->>UI: 发起发布publish
UI->>API: POST /api/publish?task_id=...(影响预估/阻断策略)
API->>PG_Conf: 事务内将相关Confirm置 status=PUBLISHED\n统一置 sync_status='PENDING'
API->>Audit: 写审计publish
API-->>UI: 返回发布受理结果
Note over SyncW,Neo4j: 同步器执行4.3 指令集)
SyncW->>PG_Conf: 扫描 sync_status IN ('PENDING','FAILED')
SyncW->>PG_Conf: 原子置 SYNCING加锁避免并发
alt status=PUBLISHED
SyncW->>Neo4j: 幂等MERGE/SET节点/关系及属性)
else status=ROLLED_BACK
SyncW->>Neo4j: 物理删除DETACH DELETE
end
SyncW->>PG_Conf: 写回 sync_status='SYNCED' 或 'FAILED'
SyncW->>Audit: 写审计action='sync',记录结果)