左帮右臂 · 治理原生架构重构 · 实施总结 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 | 挂载事件 | 功能 |
|---|---|---|
| OnGovernanceTrigger | Part/BOM/Process → OnAfterUpdate | 完整治理流程:计算质量分→更新估值→写入日志→建立关系 |
| BatchGovernance | 手动调用(Evaluate) | 批量模式:更新资产属性,仅写1条总日志 |
2.4 应用层 API(任务 6)
| 端点 | 方法 | 功能 |
|---|---|---|
| /api/dashboard/asset-overview | POST | 查询 Part+BOM 资产总数/总估值/平均质量分/治理状态 |
| /api/dashboard/today-governance | POST | 查询今日 GovernanceLog 统计与最近10条 |
2.5 前端改造(任务 7-10)
| 组件 | 改动 |
|---|---|
| BomDetailModal.vue | 基础信息Tab融合5项资产属性;变更记录Tab融合治理日志(按时间倒序);删除独立资产/治理/关联资产/能力操作Tab及300+行冗余代码 |
| Dashboard.vue | 新增"企业数据资产总览"4卡片 + "今日治理动态"日志列表 |
| AiWorkbench.vue | Part/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(手动)
- 登录 SCSAI 管理台 → Administration → Methods
- 新建 Method,名称
OnGovernanceTrigger,类型 Server Method (C#) - 粘贴
server/scripts/methods/OnGovernanceTrigger.cs内容 - 重复上述操作创建
BatchGovernance - 进入 Part → Events → OnAfterUpdate → 绑定
OnGovernanceTrigger - 对 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>
BossAgents