复杂 BOM 对象挖掘 + 影响图演示选型 · 2026-07-31
用户指令
"你去找一个复杂的 BOM 对象,查询 P-1001 的影响范围" —— 要求演示用层级深、多节点的真实对象,让影响图"有感觉"。
功能确认(已跑通)
用户贴的聊天图证明:"查询 P-1001 的影响范围" 正确触发了前端影响图(总结 + 力导向图 + 图例)。功能本身 OK。
根因:为什么 P-1001 只有 4 节点(浅)
change.js 的 analyzeChangeImpact 中,change_type === 'part' 分支的 findWhereUsedRecursive 只沿 Part BOM 向上爬父零件,绝不跨 Model/Product。描述里只有"影响"没有"产品/型号/bom/工艺" → 走 part 分支 → 只有 part→装配体一层。型号/产品层只在 change_type === 'product' 分支才出现(该分支做了 getModelsByProduct + getPartsByModel 全链路递归)。
真实 SCSAI 挖掘结果(直连 SCSAI 实测,非 mock)
- 智能控制器产品:id
350CB71AC47E4727BB37D6702FA5F7E7,关联 70 个 Model(每个型号抽样零件≈3000)。层级极深,是"复杂对象"模板。 - 但
POST /api/change/analyze走 product 入口 60s 超时:70 型号 × 数千零件 → 数万节点,会卡死服务 + 撑爆 ECharts。不能直接用于演示。 - 零件 where-used 扇出(Part 被多少 BOM 引用):
0460-2536(id922B8F1B22114D5E891DC10B17973B30):被 5 个 BOM 引用0515-4700:4;1818-6171:3- 实测 0460-2536 analyze:1.5 秒,16 节点 / 30 边,稳定快。类型分布 {part:1, bom:15}。图呈放射状(中心零件→5 个父 BOM→各自的子零件),比 P-1001 的 4 节点震撼得多,且不会爆。
- 数据特征:15 个 BOM 中 5 个 item_number 都是
0403(重复编号)→ 可视化能讲"系统自动揭示 BOM 复用 / 编号冲突",是真实 PLM 数据样貌。
两个真实问题(演示前必须知道)
- SCSAI 脏数据会污染图标签:Product 的
item_number实测返回{ is_null: '1' }、部分零件返回[object Object]。我的ImpactChart当前直接用n.item_number当标签,遇到这类对象会变成[object Object]。需要给标签加_safeStringify式净化(前端改动,需用户授权)。 - product 入口无上限会爆:要演示"产品级震撼图"必须在后端给 analyze 加层级/数量上限,或前端对 >N 节点做聚合。当前未做。
推荐演示方案(等你拍板)
- 主演示用
0460-2536:话术"查询 0460-2536 的影响范围",1.5s 出 16 节点放射图,稳。 - P-1001 留作"浅层对照"。
- 智能控制器产品 暂不用于实时 analyze(会超时);若要产品级大图,需先改后端限流。
改动状态
- 本次仅做 SCSAI 探查与 measure 脚本,已清理临时脚本。
- 前端影响图改动(之前)仍未提交:
M src/views/AiWorkbench.vue+?? src/components/ImpactChart.vue。 - 未做任何新提交。
BossAgents