BOM 物料管理系统 - 真实数据版
✨ 功能特性
核心功能
- ✅ Product 列表查询 - 获取SCSAI系统中的所有Product
- ✅ Part 列表查询 - 获取SCSAI系统中的所有Part(支持分类过滤)
- ✅ Product Part 关系 - 获取Product包含的Part列表
- ✅ Part BOM 关系 - 获取Part的子Part结构(BOM)
- ✅ 递归BOM树 - 完整的多层BOM结构解析
- ✅ 成本计算 - 自动计算BOM总成本
数据结构
Product (产品)
└── Product Part (产品-零件关系)
└── Part (零件/部件)
└── Part BOM (零件-零件关系)
└── Part (子零件)
└── Part BOM (递归...)
🚀 快速开始
方式一:双击启动(推荐)
双击 start.bat
方式二:命令行启动
cd C:\Users\tuan_\.qclaw\workspace\openclaw-skill\bom_management_skill
node server.js
访问地址
http://localhost:3003
📁 目录结构
bom_management_skill/
├── server.js # Node.js服务器
├── start.bat # Windows启动脚本
├── SKILL.md # 技能说明
├── README-REAL-DATA.md # 本文件
├── views/
│ └── bom-manager-vue.html # 前端界面
├── utils/
│ ├── api-request.js # API请求工具
│ ├── bom-query.js # BOM查询工具
│ └── ...
└── PLM/
└── Import/
├── ItemType/ # ItemType定义
│ ├── Part.xml
│ └── Product.xml
└── RelationshipType/ # 关系类型定义
├── Part BOM.xml
└── Product Part.xml
🔌 SCSAI API 接口
认证方式
SCSAI使用HTTP请求头认证,不是SOAP Body:
headers: {
'AUTHUSER': username, // 用户名
'AUTHPASSWORD': md5(password), // MD5哈希
'DATABASE': 'SCPLM', // 数据库
'TIMEZONE_NAME': 'Asia/Shanghai'
}
查询示例
#### 获取Product列表
<AML>
<Item type="Product" action="get" select="id,item_number,name,description">
</Item>
</AML>
#### 获取Part列表
<AML>
<Item type="Part" action="get" select="id,item_number,name,classification,cost,unit">
</Item>
</AML>
#### 获取Product的Part列表
<AML>
<Item type="Product Part" action="get" select="id,source_id,related_id,quantity">
<source_id>{productId}</source_id>
<related_id>
<Item type="Part" action="get" select="id,item_number,name"/>
</related_id>
</Item>
</AML>
#### 获取Part的BOM结构
<AML>
<Item type="Part BOM" action="get" select="id,source_id,related_id,quantity">
<source_id>{partId}</source_id>
<related_id>
<Item type="Part" action="get" select="id,item_number,name"/>
</related_id>
</Item>
</AML>
📊 数据模型
Product (产品)
| 属性 | 类型 | 说明 |
|------|------|------|
| id | string | 唯一标识 |
| item_number | string | 产品编号 |
| name | string | 产品名称 |
| description | string | 描述 |
| major_rev | string | 主版本 |
| state | string | 状态 |
Part (零件)
| 属性 | 类型 | 说明 |
|---|---|---|
| id | string | 唯一标识 |
| item_number | string | 零件编号 |
| name | string | 零件名称 |
| classification | string | 分类 (Component/Assembly/Material/Software) |
| cost | decimal | 成本 |
| unit | string | 单位 |
| weight | decimal | 重量 |
| make_buy | list | 制造/采购 |
Product Part (产品-零件关系)
| 属性 | 类型 | 说明 |
|---|---|---|
| source_id | string | Product ID |
| related_id | string | Part ID |
| quantity | float | 数量 |
| sort_order | integer | 排序 |
Part BOM (零件-零件关系)
| 属性 | 类型 | 说明 |
|---|---|---|
| source_id | string | 父Part ID |
| related_id | string | 子Part ID |
| quantity | float | 数量 |
| sort_order | integer | 排序 |
| reference_designator | string | 参考位号 |
🔧 配置
服务器配置在 server.js 中:
const config = {
port: 3003, // 本地端口
SCSAIServer: 'https://ylxt.chat', // SCSAI服务器地址
SCSAIDatabase: 'SCPLM' // 数据库名称
};
🎯 使用流程
- 启动服务器 - 运行
start.bat或node server.js - 打开浏览器 - 访问
http://localhost:3003 - 登录SCSAI - 输入用户名、密码、数据库
- 获取Product列表 - 点击"获取列表"按钮
- 选择Product - 从下拉列表选择要查看的产品
- 查看BOM结构 - 点击"查看BOM"按钮
- 切换视图 - 树状图/表格/图表/JSON
📝 注意事项
- 认证方式 - SCSAI使用HTTP请求头认证,密码需要MD5哈希
- 数据源切换 - 如果SCSAI连接失败,自动使用模拟数据
- 递归深度 - BOM树最大递归深度为5层,可在代码中调整
- 跨域问题 - 服务器已配置CORS,支持跨域请求
🦞 超云艾艾出品
专注传统行业数字化解决方案
BossAgents