Commit a3391c968441d4eda9bca0db735564f779c0de2c
1 parent
befe9392
Add viw_kg_form: enriched KG form nodes (1748)
One row per useful form enriched with business domain (L1, derived from normalized data-source prefix + AI-scene override), data source/exec type, and upstream/downstream flow counts from viw_kg_edge_flow. 857 forms participate in document flow; 63 back an AI tool; 92% domain-classified.
Showing
1 changed file
with
75 additions
and
0 deletions
sql/viw_kg_form.sql
0 → 100644
| 1 | +-- ============================================================ | ||
| 2 | +-- 视图:viw_kg_form —— ERP 知识图谱·表单节点 (form nodes, 1748 行) | ||
| 3 | +-- 在 viw_ai_useful_forms(节点目录) 之上富化每个表单节点: | ||
| 4 | +-- 业务域 sDomain (L1 路由) · 数据源/执行类型 · 上下游单据数(来自 viw_kg_edge_flow) · AI工具挂载 | ||
| 5 | +-- | ||
| 6 | +-- 业务域 sDomain 推导(best-effort,L1 路由用,价值最低的一层): | ||
| 7 | +-- 最可靠信号是数据源表名。命名高度规范:剥掉 viw_/sp_ 包装前缀后, | ||
| 8 | +-- 前缀词即业务域 (sal=销售 pur=采购 mft/man=生产 quo=报价 qly=品质 ops=发外 | ||
| 9 | +-- mit/inv/pit/sgd/sto=库存 cah/pay/rec/bil/cos=财务 ele/sis=基础资料 ept=设备)。 | ||
| 10 | +-- 命中 61 张 AI 工具表单时,另有 bAiTool/sAiScene 作权威场景标注。 | ||
| 11 | +-- 剩余无法归类者 = '其他'。原始信号(sDataSource/sModelType)一并暴露供下游细化。 | ||
| 12 | +-- | ||
| 13 | +-- 上下游计数(来自 viw_kg_edge_flow,按菜单粒度聚合,排除自环补单): | ||
| 14 | +-- iDownstream = 本单据可「生成」的不同目标单据数 | ||
| 15 | +-- iUpstream = 有多少不同上游单据可「生成」本单据 | ||
| 16 | +-- bHasFlow = 是否参与任何单据流转 | ||
| 17 | +-- | ||
| 18 | +-- 节点粒度 = 表单 sFormId (1748 唯一);同一菜单下多表单共享菜单级的上下游计数。 | ||
| 19 | +-- ============================================================ | ||
| 20 | +CREATE OR REPLACE VIEW viw_kg_form AS | ||
| 21 | +SELECT | ||
| 22 | + u.sModuleId, -- 菜单窗体id (= 接口 sModelsId) | ||
| 23 | + u.sFormId, -- 表单id (= 接口路径 id, 节点主键) | ||
| 24 | + u.sModuleName, -- 菜单/窗体名 | ||
| 25 | + u.sFormTitle, -- 表单标题 | ||
| 26 | + /* --- 业务域 L1(表名规范前缀 → 域)--- */ | ||
| 27 | + CASE LEFT(LOWER(REGEXP_REPLACE(IFNULL(u.sDataSource,''),'^(viw_|viw|v_|sp_|sp|proc_|proc|udf_|fun_|calc_)','')), 3) | ||
| 28 | + WHEN 'sal' THEN '销售' | ||
| 29 | + WHEN 'pur' THEN '采购' | ||
| 30 | + WHEN 'quo' THEN '报价' | ||
| 31 | + WHEN 'qly' THEN '品质' | ||
| 32 | + WHEN 'ops' THEN '发外' | ||
| 33 | + WHEN 'mft' THEN '生产' | ||
| 34 | + WHEN 'man' THEN '生产' | ||
| 35 | + WHEN 'mes' THEN '生产' | ||
| 36 | + WHEN 'wor' THEN '生产' | ||
| 37 | + WHEN 'mit' THEN '库存' | ||
| 38 | + WHEN 'inv' THEN '库存' | ||
| 39 | + WHEN 'pit' THEN '库存' | ||
| 40 | + WHEN 'sgd' THEN '库存' | ||
| 41 | + WHEN 'sto' THEN '库存' | ||
| 42 | + WHEN 'cah' THEN '财务' | ||
| 43 | + WHEN 'pay' THEN '财务' | ||
| 44 | + WHEN 'rec' THEN '财务' | ||
| 45 | + WHEN 'bil' THEN '财务' | ||
| 46 | + WHEN 'cos' THEN '财务' | ||
| 47 | + WHEN 'cas' THEN '财务' | ||
| 48 | + WHEN 'ele' THEN '基础资料' | ||
| 49 | + WHEN 'sis' THEN '基础资料' | ||
| 50 | + WHEN 'con' THEN '基础资料' | ||
| 51 | + WHEN 'ept' THEN '设备' | ||
| 52 | + ELSE '其他' | ||
| 53 | + END AS sDomain, -- 业务域(L1 路由, best-effort) | ||
| 54 | + u.sModelType, -- 原始前端路由(信号, 可空) | ||
| 55 | + u.sDataSource, -- 数据源(表/视图/过程) | ||
| 56 | + u.sExecType, -- 执行类型 table/view/proc | ||
| 57 | + u.bIsGrid, -- 1=列表型 | ||
| 58 | + u.bVisibleMenu, -- 1=主菜单可见 | ||
| 59 | + IFNULL(d.n_down, 0) AS iDownstream, -- 可生成的下游单据数 | ||
| 60 | + IFNULL(up.n_up, 0) AS iUpstream, -- 上游来源单据数 | ||
| 61 | + CAST(IFNULL(d.n_down,0) + IFNULL(up.n_up,0) > 0 AS UNSIGNED) AS bHasFlow, -- 参与流转 | ||
| 62 | + CAST(t.sSrcFormId IS NOT NULL AS UNSIGNED) AS bAiTool, -- 已挂载 AI 工具 | ||
| 63 | + t.sceneName AS sAiScene -- AI 场景(权威, 仅工具表单) | ||
| 64 | +FROM viw_ai_useful_forms u | ||
| 65 | +LEFT JOIN ( | ||
| 66 | + SELECT sSrcModuleId AS mid, COUNT(DISTINCT sTgtModuleId) AS n_down | ||
| 67 | + FROM viw_kg_edge_flow WHERE bSelfLoop = 0 GROUP BY sSrcModuleId | ||
| 68 | +) d ON d.mid = u.sModuleId | ||
| 69 | +LEFT JOIN ( | ||
| 70 | + SELECT sTgtModuleId AS mid, COUNT(DISTINCT sSrcModuleId) AS n_up | ||
| 71 | + FROM viw_kg_edge_flow WHERE bSelfLoop = 0 GROUP BY sTgtModuleId | ||
| 72 | +) up ON up.mid = u.sModuleId | ||
| 73 | +LEFT JOIN ( | ||
| 74 | + SELECT sSrcFormId, MIN(sceneName) AS sceneName FROM ai_tool GROUP BY sSrcFormId | ||
| 75 | +) t ON t.sSrcFormId = u.sModuleId; |