左帮右臂 · 治理原生架构重构 · 实施总结 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)

对象新增属性关系类型
Partasset_class(general), valuation, quality_score, governance_status(pending), last_inspectionPart Governance Log
BOM同上,asset_class默认bomBOM Governance Log
Process同上,asset_class默认processProcess 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 数据模型(自动)

`bash

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:应用层

`bash

重启服务器以加载新 API 端点

npm restart

node server.js

`

步骤 D:验证

`bash

node server/scripts/phase3-verify.js

`


5. 验证清单

#验证项验证方式
1Part 包含5项资产属性SCSAI 管理台 / verify 脚本
2BOM/Process 包含资产属性,默认值正确同上
3GovernanceLog 存在,包含13属性同上
43个关系类型已创建同上
5OnGovernanceTrigger 已挂载至 OnAfterUpdate手动检查 Events 标签页
6编辑Part的description → quality_score 自动更新端到端测试
7治理日志自动生成且关联端到端测试
8BatchGovernance 批量模式仅写1条日志传入10个ID验证
9BOM详情页展示资产属性前端验证
10变更记录Tab展示治理日志前端验证
11Dashboard展示资产总览 + 治理动态前端验证
12对话框返回治理变化对比前端验证
13数字员工日志展示资产贡献前端验证
14无独立资产/治理Tab代码审查
15无 /api/governance/* 独立路由代码审查
16data_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. 附录:核心代码示例

资产属性查询

`aml

`

治理日志查询

`aml

select="action_type,operator_name,timestamp,diff_summary,impact_quality,impact_value"

orderby="timestamp desc">

`

批量治理调用

`aml

BatchGovernance

Part

ID1,ID2,ID3

``

← 返回案例列表
分享:
🤖 Try Now →
🤖
🎁