复杂 BOM 对象挖掘 + 影响图演示选型 · 2026-07-31

复杂 BOM 对象挖掘 + 影响图演示选型 · 2026-07-31

用户指令

"你去找一个复杂的 BOM 对象,查询 P-1001 的影响范围" —— 要求演示用层级深、多节点的真实对象,让影响图"有感觉"。

功能确认(已跑通)

用户贴的聊天图证明:"查询 P-1001 的影响范围" 正确触发了前端影响图(总结 + 力导向图 + 图例)。功能本身 OK。

根因:为什么 P-1001 只有 4 节点(浅)

change.jsanalyzeChangeImpact 中,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 (id 922B8F1B22114D5E891DC10B17973B30):被 5 个 BOM 引用
  • 0515-4700:4;1818-6171:3
  • 实测 0460-2536 analyze1.5 秒,16 节点 / 30 边,稳定快。类型分布 {part:1, bom:15}。图呈放射状(中心零件→5 个父 BOM→各自的子零件),比 P-1001 的 4 节点震撼得多,且不会爆。
  • 数据特征:15 个 BOM 中 5 个 item_number 都是 0403(重复编号)→ 可视化能讲"系统自动揭示 BOM 复用 / 编号冲突",是真实 PLM 数据样貌。

两个真实问题(演示前必须知道)

  1. SCSAI 脏数据会污染图标签:Product 的 item_number 实测返回 { is_null: '1' }、部分零件返回 [object Object]。我的 ImpactChart 当前直接用 n.item_number 当标签,遇到这类对象会变成 [object Object]。需要给标签加 _safeStringify 式净化(前端改动,需用户授权)。
  2. product 入口无上限会爆:要演示"产品级震撼图"必须在后端给 analyze 加层级/数量上限,或前端对 >N 节点做聚合。当前未做。

推荐演示方案(等你拍板)

  • 主演示用 0460-2536:话术"查询 0460-2536 的影响范围",1.5s 出 16 节点放射图,稳。
  • P-1001 留作"浅层对照"。
  • 智能控制器产品 暂不用于实时 analyze(会超时);若要产品级大图,需先改后端限流。

改动状态

  • 本次仅做 SCSAI 探查与 measure 脚本,已清理临时脚本。
  • 前端影响图改动(之前)仍未提交:M src/views/AiWorkbench.vue + ?? src/components/ImpactChart.vue
  • 未做任何新提交。
← 返回案例列表
分享:
🤖 Try Now →
🤖
🎁