左帮右臂 · 治理原生架构重构 · 实施总结 v1

左帮右臂 · 治理原生架构重构 · 实施总结 v1

1. 项目背景

1.1 问题状态

重构前,治理逻辑与业务数据分离:应用层(server.js)承担资产治理计算职责,SCSAI仅作为业务数

据存储,本地 SQLite 的 data_assets 表作为资产主库。业务增删改不自动产生治理记录,前端 BOM

详情页无法直接查看资产属性与治理轨迹。

1.2 目标架构

核心原则:治理逻辑全部下沉至 SCSAI 服务端 Method,应用层仅负责结果展示。

┌──────────────┐     ┌──────────────────────────────────────┐
│  应用层      │     │  SCSAI 服务端(运行时环境)             │
│  (仅展示)     │ ←→  │  Part/BOM + 资产属性 + GovernanceLog │
│              │     │  OnAfterUpdate Method (自动治理)       │
└──────────────┘     └──────────────────────────────────────┘
                              ↓
                    ┌──────────────────────────┐
                    │  data_assets(缓存视图)   │
                    │  加速查询,不存真相         │
                    └──────────────────────────┘

2. 实施范围

2.1 SCSAI 数据模型(任务 1-3)

| 对象 | 新增属性 | 关系类型 |

|------|----------|----------|

| Part | asset_class(general), valuation, quality_score, governance_status(pending), last_inspection | Part Governance Log |

| BOM | 同上,asset_class默认bom | BOM Governance Log |

| Process | 同上,asset_class默认process | Process Governance Log |

2.2 GovernanceLog ItemType(13属性)

action_type, operator_type, operator_id, operator_name, target_item_id,

target_item_type, before_data, after_data, diff_summary, impact_quality,

impact_value, timestamp, id(auto)

2.3 SCSAI 服务端 Method(任务 4-5)

Method挂载事件功能
OnGovernanceTriggerPart/BOM/Process → OnAfterUpdate完整治理流程:计算质量分→更新估值→写入日志→建立关系
BatchGovernance手动调用(Evaluate)批量模式:更新资产属性,仅写1条总日志

2.4 应用层 API(任务 6)

端点方法功能
/api/dashboard/asset-overviewPOST查询 Part+BOM 资产总数/总估值/平均质量分/治理状态
/api/dashboard/today-governancePOST查询今日 GovernanceLog 统计与最近10条

2.5 前端改造(任务 7-10)

组件改动
BomDetailModal.vue基础信息Tab融合5项资产属性;变更记录Tab融合治理日志(按时间倒序);删除独立资产/治理/关联资产/能力操作Tab及300+行冗余代码
Dashboard.vue新增"企业数据资产总览"4卡片 + "今日治理动态"日志列表
AiWorkbench.vuePart/BOM修复操作返回结果追加治理影响区块
DigitalStaff.vue任务成功日志自动追加资产贡献(质量/价值变化)

3. 文件清单

新增文件(6个)

server/scripts/phase3-governance-setup.js        — SCSAI 自动配置脚本
server/scripts/phase3-verify.js                  — 验证脚本(对应第9章清单)
server/scripts/methods/OnGovernanceTrigger.cs    — 触发式治理Method(C#)
server/scripts/methods/BatchGovernance.cs         — 批量治理Method(C#)

修改文件(4个)

server.js                                        — +2 dashboard API 端点
src/components/BomDetailModal.vue                — 资产融合 + 治理融合 + 代码清理
src/views/Dashboard.vue                          — +资产总览 + 治理动态
src/views/AiWorkbench.vue                        — +治理结果回复
src/views/DigitalStaff.vue                       — +资产贡献日志

4. 部署步骤

步骤 A:SCSAI 数据模型(自动)

node server/scripts/phase3-governance-setup.js

自动执行:

  • 为 Part/BOM/Process 创建5项资产属性
  • 创建 GovernanceLog ItemType 及13属性
  • 创建 3 个关联关系类型

步骤 B:SCSAI Method(手动)

  1. 登录 SCSAI 管理台 → Administration → Methods
  2. 新建 Method,名称 OnGovernanceTrigger,类型 Server Method (C#)
  3. 粘贴 server/scripts/methods/OnGovernanceTrigger.cs 内容
  4. 重复上述操作创建 BatchGovernance
  5. 进入 Part → Events → OnAfterUpdate → 绑定 OnGovernanceTrigger
  6. 对 BOM、Process 重复绑定

步骤 C:应用层

# 重启服务器以加载新 API 端点
npm restart
# 或
node server.js

步骤 D:验证

node server/scripts/phase3-verify.js

5. 验证清单

| # | 验证项 | 验证方式 |

|---|--------|----------|

| 1 | Part 包含5项资产属性 | SCSAI 管理台 / verify 脚本 |

| 2 | BOM/Process 包含资产属性,默认值正确 | 同上 |

| 3 | GovernanceLog 存在,包含13属性 | 同上 |

| 4 | 3个关系类型已创建 | 同上 |

| 5 | OnGovernanceTrigger 已挂载至 OnAfterUpdate | 手动检查 Events 标签页 |

| 6 | 编辑Part的description → quality_score 自动更新 | 端到端测试 |

| 7 | 治理日志自动生成且关联 | 端到端测试 |

| 8 | BatchGovernance 批量模式仅写1条日志 | 传入10个ID验证 |

| 9 | BOM详情页展示资产属性 | 前端验证 |

| 10 | 变更记录Tab展示治理日志 | 前端验证 |

| 11 | Dashboard展示资产总览 + 治理动态 | 前端验证 |

| 12 | 对话框返回治理变化对比 | 前端验证 |

| 13 | 数字员工日志展示资产贡献 | 前端验证 |

| 14 | 无独立资产/治理Tab | 代码审查 |

| 15 | 无 /api/governance/* 独立路由 | 代码审查 |

| 16 | data_assets 无新增写入逻辑 | 代码审查 |


6. 实施红线(已遵守)

  • ❌ 未在本地 SQLite 新增治理相关表
  • ❌ 未在应用层新增治理工具函数
  • ❌ 未创建独立治理 API 路由
  • ❌ 未新增独立资产/治理 Tab
  • ❌ 未修改 data_assets 表结构与写入逻辑
  • ❌ 未前端主动调用治理接口

7. 治理逻辑解释

治理流程(自动触发)

SCSAI 编辑 Part/BOM/Process
       │
       ▼
OnAfterUpdate 触发 OnGovernanceTrigger Method
       │
       ├─ 读取 skip_governance flag(跳过控制)
       ├─ 检查 batch_mode(批量模式仅更新属性)
       └─ 完整治理流程:
           1. ValidateCompleteness — 检查 name/number/classification/description
           2. CalculateQualityScore — 完成度 × 0.7(满分100)
           3. CalculateValuation — baseValue(¥10,000) × qualityFactor
           4. 更新 quality_score / valuation / governance_status / last_inspection
           5. 创建 GovernanceLog 记录
           6. 建立关联关系(Part Governance Log 等)

治理状态定义

| 状态 | 条件 | 含义 |

|------|------|------|

| governed | quality_score ≥ 90 | 已治理 |

| pending | 60 ≤ quality_score < 90 | 待优化 |

| exception | quality_score < 60 | 异常 |


8. 附录:核心代码示例

资产属性查询

<!-- 查询 Part 资产属性 -->
<Item type="Part" action="get" id="..." select="id,asset_class,valuation,quality_score,governance_status,last_inspection"></Item>

治理日志查询

<!-- 查询某 Part 的所有治理日志 -->
<Item type="Part" action="get" id="...">
  <Relationships>
    <Item type="Part Governance Log" action="get"
      select="action_type,operator_name,timestamp,diff_summary,impact_quality,impact_value"
      orderby="timestamp desc">
    </Item>
  </Relationships>
</Item>

批量治理调用

<Item type="Method" action="Evaluate">
  <name>BatchGovernance</name>
  <itemType>Part</itemType>
  <itemIds>ID1,ID2,ID3</itemIds>
</Item>
← 返回案例列表
分享:
🤖 Try Now →
🤖
🎁