主题
BOM配置管理标准作业程序(SOP)
文档编号: BayesMES-SOP-BOM-001-V1.0 文档版本: V1.1 适用系统: BayesMES 制造执行系统 适用角色: 工艺工程师、生产计划员、系统管理员 适用终端: Web端管理后台 角色类型: 管理员/工程师 生效日期: 2026-02-25 最后更新: 2026-04-28 下次评审: 2026-10-28 文档状态: 已发布 编制人: BayesMES团队 审核人: ysfl 批准人: ysfl
目录
- 5分钟快速上手
- 目的与范围
- 职责定义
- 名词术语表
- 系统架构与数据流
- 功能入口与导航
- BOM创建与管理
- BOM明细管理
- 替代料管理
- BOM生命周期管理
- BOM展开与成本计算
- 权限体系说明
- 关键业务关联关系
- 异常处理指引
- 常见问题解答(FAQ)
- 附录
- 修订记录
🎯 5分钟快速上手
💡 本章节供快速了解,详细操作请看后续章节
核心操作流程
标准流程:创建BOM → 添加明细/批量添加明细 → 提交发布 → 设为默认版本 → 用于生产
代码核对口径:本SOP按当前 Web 端 BOM 页面、后端 BOM API、共享库路由核对后编制。后端已具备替代料、BOM展开、树形、成本、库存检查等接口能力,但当前 Web 详情页未提供可视化操作入口,因此不作为一线日常操作步骤。
最简操作步骤
| 步骤 | 操作 | 入口路径 | 完成标志 |
|---|---|---|---|
| 1️⃣ | 创建BOM | 基础数据 → BOM管理 → 新增 | BOM列表显示新记录 |
| 2️⃣ | 添加物料明细 | BOM详情 → 明细列表 → 添加明细 | 明细列表显示子物料 |
| 3️⃣ | 批量补充明细 | BOM详情 → 明细列表 → 批量添加 | 多条明细添加完成 |
| 4️⃣ | 提交发布 | BOM列表 → 更多 → 提交 | 状态变为"已发布" |
| 5️⃣ | 设为默认版本 | BOM列表 → 更多 → 设为默认 | 默认版本标识更新 |
关键概念速览
| 概念 | 说明 | 示例 |
|---|---|---|
| 产品物料 | BOM对应的成品/半成品 | 发动机总成 |
| 子物料 | BOM中的组成物料 | 活塞、曲轴、缸体 |
| 替代料 | 子物料的可替换物料 | A品牌活塞 → B品牌活塞 |
| 版本管理 | 同一产品可有多个BOM版本 | V1.0(试产)、V2.0(量产) |
| 生命周期 | BOM从创建到发布/淘汰的状态流转 | 设计中 → 已发布/已淘汰 |
📞 快速求助
| 问题类型 | 联系方式 |
|---|---|
| 系统故障 | BayesMES团队 📞15078509094 💬ysfllxcn |
| 权限问题 | 系统管理员 |
| 业务问题 | 工艺部门主管 |
1. 目的与范围
1.1 目的
本文档旨在规范BOM(物料清单)在BayesMES系统中的配置与管理操作,确保:
- 工艺工程师正确创建和维护BOM数据
- BOM明细配置准确完整
- BOM版本管理和生命周期管控规范
- BOM数据与生产、库存等模块正确关联
1.2 适用范围
- 目标角色:工艺工程师、生产计划员、系统管理员
- 操作终端:Web端管理后台
- 涉及模块:BOM管理、物料管理、工艺路线、生产管理、库存管理
1.3 参考标准
- ISO 9001:2015 质量管理体系
- IATF 16949:2016 汽车行业质量管理体系
2. 职责定义
2.1 角色职责
| 角色 | 职责范围 | 具体内容 |
|---|---|---|
| 工艺工程师 | BOM创建与维护 | 创建BOM、添加明细、批量添加明细、复制BOM |
| 工艺主管 | BOM发布与版本管理 | 提交发布BOM、设置默认版本、版本管理 |
| 生产计划员 | BOM使用 | 查看BOM、按已发布默认版本生成生产需求 |
| 系统管理员 | 权限配置 | 分配BOM相关权限、系统参数配置 |
2.2 与其他角色的协作关系
3. 名词术语表
3.1 BOM核心术语
| 术语 | 英文 | 定义 |
|---|---|---|
| BOM | Bill of Materials | 物料清单,描述产品由哪些物料组成及其数量关系 |
| 产品物料 | Product Material | BOM对应的成品或半成品,即"做什么" |
| 子物料 | Component Material | BOM明细中的组成物料,即"用什么" |
| 标准用量 | Standard Quantity | 生产一个产品所需的子物料标准数量 |
| 损耗率 | Scrap Rate | 生产过程中物料的预计损耗百分比 |
| 实际需求量 | Actual Quantity | 考虑损耗后的实际需求量 = 标准用量 × (1 + 损耗率%) |
3.2 版本与生命周期术语
| 术语 | 英文 | 定义 |
|---|---|---|
| 默认版本 | Default Version | 同一产品多个BOM版本中,生产时默认使用的版本 |
| 生命周期 | Lifecycle | BOM从创建到淘汰的完整状态流转过程 |
| 设计中 | DESIGN | BOM初始状态,可自由编辑 |
| 待审核 | PENDING | 后端支持的状态代码,当前Web端无独立待审核页面 |
| 已发布 | RELEASED | BOM提交后发布,可用于生产 |
| 冻结 | FROZEN | 后端支持的状态代码,当前Web端无可视冻结入口 |
| 淘汰 | OBSOLETE | BOM已淘汰,仅作历史参考;当前新增/编辑表单可选择 |
3.3 替代料术语
| 术语 | 英文 | 定义 |
|---|---|---|
| 替代料 | Substitute Material | 当原物料不可用时,可替换使用的物料 |
| 完全替代 | FULL | 替代料可100%替代原物料 |
| 部分替代 | PARTIAL | 替代料只能按一定比例替代原物料 |
| 替代比例 | Substitute Ratio | 替代料相对于原物料的用量比例(%) |
| 优先级 | Priority | 多个替代料时的选用优先顺序,1为最高 |
当前系统说明:替代料为后端接口能力,当前 Web 端 BOM 列表与详情页未提供替代料维护入口。如需启用替代料操作,应由系统管理员确认对应页面入口或通过接口工具处理。
3.4 展开与计算术语
| 术语 | 英文 | 定义 |
|---|---|---|
| BOM展开 | BOM Expansion | 将多层BOM递归展开为完整的物料需求清单 |
| 单层展开 | Single Level | 只展开当前BOM的直接子物料 |
| 多层展开 | Multi Level | 递归展开所有层级直到原材料 |
| 循环依赖 | Circular Dependency | A的BOM包含B,B的BOM又包含A的错误结构 |
| Where Used | Where Used | 反向查询:某物料被哪些BOM使用 |
4. 系统架构与数据流
4.1 BOM数据模型关系
erDiagram
mes_boms ||--o{ mes_bom_items : "包含"
mes_bom_items ||--o{ mes_bom_item_substitutes : "替代料"
mes_materials ||--o{ mes_boms : "产品物料"
mes_materials ||--o{ mes_bom_items : "子物料"
mes_materials ||--o{ mes_bom_item_substitutes : "替代物料"
mes_operations ||--o{ mes_bom_items : "关联工序"
mes_boms {
int id "主键"
string bom_code "BOM编码(唯一)"
string bom_name "BOM名称"
int material_id "产品物料ID"
string version "版本号"
bool is_default "是否默认版本"
int status "状态(0停用/1启用)"
string lifecycle_status "生命周期状态"
date effective_date "生效日期"
date expiry_date "失效日期"
int factory_id "工厂ID"
}
mes_bom_items {
int id "主键"
int bom_id "所属BOM"
int material_id "子物料ID"
int line_number "行号"
decimal quantity "标准用量"
string unit "单位"
decimal scrap_rate "损耗率%"
decimal actual_quantity "实际需求量"
int operation_id "工序ID"
bool has_substitutes "有替代料"
}
mes_bom_item_substitutes {
int id "主键"
int bom_item_id "BOM明细ID"
int substitute_material_id "替代物料ID"
int priority "优先级"
string substitute_type "替代类型"
decimal substitute_ratio "替代比例%"
decimal cost_difference "成本差异"
bool is_preferred "是否优选"
}
4.2 BOM与业务模块关联
5. 功能入口与导航
📍 本章节说明各功能的入口位置和导航路径
5.1 Web端功能入口总览
BayesMES Web管理后台
│
├── 📦 基础数据
│ ├── BOM管理 → BOM增删改查、版本管理、提交发布、默认版本
│ ├── 物料管理 → 物料主数据(BOM的基础依赖)
│ └── 工序管理 → 工序定义(BOM明细可关联工序)
│
├── 🔧 工艺管理
│ └── 工艺路线 → 工艺路线管理(与BOM配合使用)
│
└── 🏭 生产管理
└── 生产工单 → 基于BOM生成物料需求5.2 功能入口详细说明
| 功能 | 入口路径 | URL | 说明 |
|---|---|---|---|
| BOM列表 | 侧边栏 → 基础数据 → BOM管理 | /bom/list | BOM增删改查、批量操作 |
| BOM详情 | BOM列表 → 点击查看 | /bom/detail/{id} | 查看基础信息、产品物料、BOM明细 |
| 添加明细 | BOM详情 → 添加明细 | - | 单条添加BOM明细 |
| 批量添加明细 | BOM详情 → 批量添加 | - | 多选物料后批量添加明细 |
| 复制BOM | BOM列表 → 更多 → 复制 | - | 基于已有BOM复制新编码、新版本 |
| 提交发布 | BOM列表 → 更多 → 提交 | - | 将设计中BOM提交并发布 |
| 设为默认版本 | BOM列表 → 更多 → 设为默认 | - | 设置同一产品的默认BOM版本 |
接口能力说明:后端提供 BOM树形、展开、成本、库存检查、替代料接口;当前 Web BOM详情页未展示这些按钮,本SOP不把它们作为日常页面操作入口。
📷 【截图01-BOM管理入口】
- ① 侧边栏"基础数据"菜单
- ② "BOM管理"入口
6. BOM创建与管理
6.1 创建BOM
6.1.1 操作前准备
创建BOM前,请确认以下前置条件:
- [ ] 产品物料已在物料管理中创建
- [ ] 子物料已在物料管理中创建
- [ ] 工序已在工序管理中定义(如需关联工序)
- [ ] 已确定BOM编码规则和版本号
- [ ] 已确认产品的物料组成和用量
6.1.2 操作步骤
第1步:进入BOM管理页面
入口路径:侧边栏 → 基础数据 → BOM管理
📷 【截图02-BOM列表页面】
- ① 新增按钮
- ② BOM列表区域
- ③ 搜索筛选区域
第2步:点击"新增"按钮,填写BOM基本信息
数据说明:
| 字段 | 必填 | 格式要求 | 说明 |
|---|---|---|---|
| BOM编码 | ✅ | 最长50字符,唯一 | 建议格式:BOM-{产品编码}-{版本},如 BOM-ENG001-V1 |
| BOM名称 | ✅ | 最长100字符 | 清晰描述产品名称,如"发动机总成BOM" |
| 产品物料 | ✅ | 下拉选择 | 选择此BOM对应的成品/半成品物料 |
| 版本号 | ✅ | 最长20字符 | 如 V1.0、V2.0 |
| 生命周期 | ✅ | 选项 | 当前表单可选:设计中、已发布、已淘汰 |
| 生效日期 | 否 | 日期格式 | BOM开始生效的日期 |
| 失效日期 | 否 | 日期格式 | 必须晚于生效日期 |
| 备注 | 否 | 文本 | 补充说明信息 |
系统默认值:
- 是否默认版本:新增表单默认传入“是”,页面不单独显示开关
- 启用状态:默认启用
- 工厂字段:当前新增表单未提供工厂选择
📷 【截图03-BOM新增表单】
- ① BOM编码输入框
- ② 产品物料选择器
- ③ 版本号输入
- ④ 默认版本开关
第3步:保存BOM
点击"确定"按钮保存。
状态变化:
建议创建时选择 设计中(DESIGN)。如果创建时选择“已发布”或“已淘汰”,该BOM保存后将不能继续维护明细。
业务限制:
- ⚠️ BOM编码全局唯一,不可重复
- ⚠️ 同一产品物料可创建多个BOM版本,但默认版本只能有一个
- ⚠️ 设置新的默认版本时,原默认版本自动取消
- 💡 当前新增成功后,系统会自动打开“批量添加BOM明细”弹窗,便于连续补录子物料
6.2 编辑BOM
在BOM列表中找到目标BOM,点击"编辑"按钮修改基本信息。
业务限制:
- ✅ 设计中(DESIGN)、待审核(PENDING) 状态可编辑
- ❌ 已发布(RELEASED)、冻结(FROZEN)、淘汰(OBSOLETE) 状态不可编辑
- ⚠️ 当前Web端表单只展示设计中、已发布、已淘汰三个状态;待审核、冻结为后端状态代码
6.3 删除BOM
在BOM列表中选择目标BOM,点击"删除"按钮。
业务限制:
- ✅ 当前后端允许删除设计中、待审核BOM;已发布BOM在没有有效工单占用时也可能允许删除
- ⚠️ 如果该BOM作为其他BOM的子级结构被引用,系统会阻止删除
- ⚠️ 删除BOM会同时删除其所有明细和替代料数据
- 支持批量删除:勾选多条记录后点击"批量删除";当前Web端逐条调用删除接口
- 管理建议:已发布或历史使用过的BOM原则上不直接删除,应优先通过版本替换或淘汰方式保留追溯
6.4 复制BOM
对已有BOM进行复制,快速创建新版本。
操作路径:BOM列表 → 更多 → 复制
复制内容:
- ✅ BOM基本信息(编码和版本需修改)
- ✅ 所有BOM明细
- ❌ 当前复制接口不复制替代料配置;如后续启用替代料,复制后需单独维护
💡 使用场景:产品升级时,复制旧版BOM后修改差异部分,避免重新录入
6.5 批量导入BOM
支持通过Excel批量导入BOM数据。
操作路径:BOM列表 → 导入
导入说明:
- 下载导入模板
- 按模板格式填写BOM数据
- 上传Excel文件
- 前端解析并预览数据
- 确认后提交导入,后端接收解析后的BOM与明细数据
7. BOM明细管理
7.1 添加BOM明细
BOM明细描述产品由哪些子物料组成,以及每种子物料的用量。
操作路径:BOM详情 → 明细列表 → 添加明细
数据说明:
| 字段 | 必填 | 格式要求 | 说明 |
|---|---|---|---|
| 子物料 | ✅ | 下拉选择 | 选择组成产品的物料 |
| 标准用量 | ✅ | 正数,最小0.000001 | 生产1个产品所需的子物料数量 |
| 单位 | ✅ | 最长20字符 | 物料的计量单位,如 个、kg、m |
| 损耗率 | 否 | 0~100的数值 | 生产过程中的预计损耗百分比 |
| 投料工序 | ✅ | 下拉选择 | 当前Web端单条/批量添加均要求选择投料工序 |
| 工序顺序 | 否 | 正整数 | 工序的执行顺序 |
| 位置编码 | 否 | 最长50字符 | 物料在产品中的安装位置编码 |
| 位置描述 | 否 | 最长200字符 | 位置的文字描述 |
| 备注 | 否 | 文本 | 补充说明 |
📷 【截图04-添加BOM明细表单】
- ① 子物料选择器
- ② 标准用量输入
- ③ 损耗率输入
- ④ 工序关联选择
实际需求量自动计算:
实际需求量 = 标准用量 × (1 + 损耗率 / 100)
示例:标准用量 10个,损耗率 5%,则实际需求量 = 10 × 1.05 = 10.5个
业务限制与注意事项:
- ⚠️ 当前后端会在半成品子物料场景检测循环依赖(如 A→B→A)
- ⚠️ 操作人员应避免在同一BOM中重复添加相同子物料;如业务确需重复,应通过行号、位置编码、备注区分用途
- ⚠️ 子物料原则上不能与产品物料相同,录入前需人工核对
- 💡 批量添加时必须为每条明细选择投料工序;可使用“批量设置投料工序”统一填充
7.2 编辑BOM明细
在明细列表中点击目标行的"编辑"按钮,修改用量、损耗率等信息。
影响范围:
- ✅ 修改用量会影响BOM展开计算结果
- ✅ 修改损耗率会自动重新计算实际需求量
- ⚠️ 已发布的BOM明细不可编辑
7.3 删除BOM明细
在明细列表中点击目标行的"删除"按钮。
影响范围:
- ⚠️ 删除明细会同时删除该明细下的所有替代料配置
- ⚠️ 已发布的BOM明细不可删除
7.4 行号管理
系统自动为每条明细分配行号,用于标识明细的顺序。行号在BOM展开和生产投料时作为参考。
8. 替代料管理
💡 替代料功能用于管理当原物料不可用时的替换方案,后端接口支持优先级排序和成本对比。当前 Web BOM 列表/详情页未提供替代料维护入口,本章节作为接口能力和后续功能启用说明,不作为当前日常页面操作。
8.1 添加替代料
操作路径:当前Web端无可视入口;需由系统管理员确认专用页面、接口工具或后续版本入口
数据说明:
| 字段 | 必填 | 格式要求 | 说明 |
|---|---|---|---|
| 替代物料 | ✅ | 下拉选择 | 选择可替代原物料的物料 |
| 替代类型 | ✅ | FULL/PARTIAL | 完全替代或部分替代 |
| 替代比例 | ✅ | 0.01~1000 | 替代料相对于原物料的用量比例(%) |
| 优先级 | 否 | 正整数,1为最高 | 多个替代料时的选用顺序 |
| 生效日期 | 否 | 日期格式 | 替代料开始生效的日期 |
| 失效日期 | 否 | 日期格式 | 必须晚于生效日期 |
| 是否优选 | 否 | 开关 | 标记为优选替代料 |
| 备注 | 否 | 文本 | 补充说明 |
📷 【截图05-添加替代料表单】
- ① 替代物料选择器
- ② 替代类型选择
- ③ 替代比例输入
- ④ 优先级设置
替代类型说明:
| 类型 | 代码 | 说明 | 示例 |
|---|---|---|---|
| 完全替代 | FULL | 替代料可100%替代原物料 | A品牌螺栓 → B品牌螺栓(规格相同) |
| 部分替代 | PARTIAL | 替代料只能按比例替代 | 进口钢材 → 国产钢材(需增加10%用量) |
替代比例说明:
- 100% = 1:1替代,用量相同
- 110% = 替代料需要多用10%
- 90% = 替代料只需90%的用量
8.2 优先级管理(接口能力)
当一个子物料有多个替代料时,通过优先级决定选用顺序。
操作方式:
- 当前Web端无可视入口
- 接口能力支持单个调整和批量调整优先级
优先级规则:
- 数字越小优先级越高(1 = 最高优先级)
- 生产缺料时,系统按优先级顺序推荐替代料
8.3 替代料推荐(接口能力)
系统可根据物料属性自动推荐可能的替代料。
操作路径:当前Web端无可视入口;后端服务提供推荐能力
推荐依据:
- 相同物料分类
- 相似规格参数
- 历史替代记录
8.4 成本对比(接口能力)
查看原物料与各替代料之间的成本差异。
操作路径:当前Web端无可视入口;后端服务提供成本对比能力
对比内容:
- 原物料单价 vs 替代料单价
- 成本差异金额
- 成本差异率(%)
💡 使用场景:在物料短缺时,通过成本对比选择性价比最优的替代方案
9. BOM生命周期管理
9.1 生命周期状态流转
当前Web端日常流转如下:
| 步骤 | 操作 | 状态变化 | 说明 |
|---|---|---|---|
| 1️⃣ | 创建BOM | → 设计中 | 初始状态,可自由编辑 |
| 2️⃣ | 提交发布 | 设计中 → 已发布 | 列表“更多 → 提交”调用发布接口,发布后可用于生产工单 |
| 3️⃣ | 设为默认 | 默认版本标识更新 | 同一产品只能有一个默认BOM版本 |
| 4️⃣ | 复制新版本 | 新建设计中BOM | 已发布BOM需要变更时,复制为新编码/新版本后修改 |
| 5️⃣ | 淘汰 | → 淘汰 | 当前表单可选择淘汰状态;已发布后的页面淘汰入口未开放 |
状态代码说明:后端模型包含 DESIGN、PENDING、RELEASED、FROZEN、OBSOLETE 五个状态;当前Web页面没有独立待审核、审核驳回、冻结/解冻入口。后端冻结/淘汰接口存在,但当前控制器实现仍会经过“是否可编辑”校验,已发布状态下可能无法直接冻结或淘汰,需作为功能缺口处理。
9.2 各状态下的操作权限
| 操作 | 设计中 | 待审核 | 已发布 | 冻结 | 淘汰 |
|---|---|---|---|---|---|
| 编辑基本信息 | ✅ | ✅ | ❌ | ❌ | ❌ |
| 添加/编辑明细 | ✅ | ✅ | ❌ | ❌ | ❌ |
| 删除明细 | ✅ | ✅ | ❌ | ❌ | ❌ |
| 管理替代料 | ✅ | ✅ | ❌ | ❌ | ❌ |
| 删除BOM | ✅ | ✅ | 条件允许 | 条件允许 | 条件允许 |
| 提交发布 | ✅ | - | - | - | - |
| 冻结 | 接口存在 | 接口存在 | 当前Web无入口 | 当前Web无入口 | - |
| 淘汰 | 表单可选 | 表单可选 | 当前Web无入口 | 当前Web无入口 | - |
| 查看 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 复制 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 用于生产工单 | ❌ | ❌ | ✅ | ❌ | ❌ |
9.3 提交发布操作
操作路径:BOM列表 → 更多 → 提交
发布前检查要点:
- 确认产品物料正确
- 确认所有子物料及用量准确
- 确认损耗率设置合理
- 确认每条明细已选择正确投料工序
- 确认BOM至少有一条明细
- 确认半成品层级无循环依赖
⚠️ 注意:当前“提交”操作会直接把BOM变为“已发布”状态,不存在单独待审核页面。发布后BOM不可再编辑,如需修改,需复制新版本。
9.4 冻结操作(接口能力)
操作路径:当前Web端无可视入口
使用场景:
- 产品临时停产
- 发现BOM问题需要暂停使用
- 物料供应中断
影响范围:
- ❌ 冻结后不可用于创建新工单
- ✅ 已创建的工单不受影响
- ⚠️ 当前后端控制器实现需进一步核对,已发布BOM直接冻结可能受可编辑状态校验限制
9.5 淘汰操作
操作路径:新增/编辑表单可选择“已淘汰”;当前Web端无发布后单独淘汰按钮
使用场景:
- 产品永久停产
- BOM被新版本完全替代
影响范围:
- ❌ 淘汰后不可恢复
- ❌ 不可用于任何生产活动
- ✅ 数据保留,可查看历史记录
10. BOM展开与成本计算
当前入口说明:本章节对应后端接口能力。当前Web端 BOM详情页未提供“展开、树形结构、成本计算、库存检查”按钮,生产计划或系统集成如需使用,应通过后续页面入口、接口工具或相关业务模块调用。
10.1 BOM展开
BOM展开是将多层级BOM递归展开为完整的物料需求清单。
操作路径:当前Web端无可视入口;后端接口支持按BOM进行展开
展开参数:
| 参数 | 说明 | 默认值 |
|---|---|---|
| 生产数量 | 计划生产的产品数量 | 1 |
| 展开层级 | 最大展开层数 | 10(全部展开) |
展开结果说明:
产品A(BOM)
├── 半成品B × 2(有子BOM,继续展开)
│ ├── 原材料D × 5
│ └── 原材料E × 3
├── 原材料C × 10(无子BOM,直接显示)
└── 半成品F × 1(有子BOM,继续展开)
├── 原材料G × 8
└── 原材料D × 2(与上层相同物料,可汇总)汇总模式:展开后可选择汇总相同物料的需求量
- 上例中,原材料D的总需求 = 5×2 + 2×1 = 12
⚠️ 循环依赖检测:如果BOM存在循环引用(如A→B→A),系统会自动检测并报错,阻止展开。
10.2 BOM树形结构
以树形方式直观展示BOM的层级关系。
操作路径:当前Web端无可视入口;后端接口支持树形结构查询
显示内容:
- 物料编码和名称
- 用量和单位
- 损耗率
- 是否有替代料
- 子BOM层级
📷 【截图06-BOM树形结构】
- ① 树形展开/折叠
- ② 物料信息
- ③ 用量信息
10.3 成本计算
基于BOM结构和物料单价,自动计算产品的物料成本。
操作路径:当前Web端无可视入口;后端接口支持成本计算
计算逻辑:
产品成本 = Σ(子物料实际需求量 × 子物料单价)
如果子物料也有BOM,则递归计算其成本
计算结果:
- 各层级物料成本明细
- 产品总物料成本
- 按物料分类的成本占比
10.4 库存检查
检查BOM中所有物料的库存是否满足生产需求。
操作路径:当前Web端无可视入口;后端接口支持库存检查
检查结果:
| 状态 | 说明 |
|---|---|
| ✅ 充足 | 库存满足需求 |
| ⚠️ 不足 | 库存不足,显示缺口数量 |
| ❌ 无库存 | 该物料无库存 |
11. 权限体系说明
11.1 BOM管理权限 (bom:bom:*)
| 权限代码 | 权限名称 | 功能范围 | 建议分配 |
|---|---|---|---|
bom:bom:view | BOM管理-查看 | 列表、详情、统计;展开/树形/成本为接口能力 | 工艺工程师、生产计划员 |
bom:bom:create | BOM管理-创建 | 新增BOM | 工艺工程师 |
bom:bom:update | BOM管理-更新 | 编辑BOM信息、添加/编辑/删除明细 | 工艺工程师 |
bom:bom:delete | ==BOM管理-删除== | ==删除BOM== | ==工艺工程师(慎用)== |
bom:bom:approve | BOM管理-提交发布 | 提交BOM并发布 | 工艺主管 |
bom:bom:freeze | BOM管理-冻结 | 接口能力,当前Web无可视入口 | 工艺主管 |
bom:bom:obsolete | BOM管理-淘汰 | 接口能力,当前Web无发布后淘汰按钮 | 工艺主管 |
bom:bom:import | BOM管理-导入 | Excel批量导入 | 工艺工程师 |
11.2 替代料管理权限 (bom:substitute-material:*)
| 权限代码 | 权限名称 | 功能范围 | 建议分配 |
|---|---|---|---|
bom:substitute-material:view | 替代料-查看 | 接口能力,当前Web BOM页无入口 | 工艺工程师、生产计划员 |
bom:substitute-material:create | 替代料-创建 | 接口能力,当前Web BOM页无入口 | 工艺工程师 |
bom:substitute-material:update | 替代料-更新 | 接口能力,当前Web BOM页无入口 | 工艺工程师 |
bom:substitute-material:delete | 替代料-删除 | 接口能力,当前Web BOM页无入口 | 工艺工程师 |
11.3 权限分配建议
| 角色 | 推荐权限 |
|---|---|
| 工艺工程师 | bom:bom:view/create/update/import;替代料权限按是否启用专用入口分配 |
| 工艺主管 | 全部BOM权限(含提交发布、冻结、淘汰接口权限) |
| 生产计划员 | bom:bom:view |
| 系统管理员 | 全部权限 |
12. 关键业务关联关系
12.1 BOM与生产工单
12.1.1 业务流程
12.1.2 数量关系
| 数据项 | 计算方式 | 示例 |
|---|---|---|
| 物料需求量 | 工单数量 × BOM实际需求量 | 工单100件 × 每件用量2个 = 需求200个 |
| 含损耗需求 | 需求量 × (1 + 损耗率%) | 200 × 1.05 = 210个 |
| 缺料数量 | 需求量 - 可用库存 | 210 - 150 = 缺60个 |
12.2 BOM与物料管理
| 关联关系 | 说明 |
|---|---|
| 产品物料 | BOM的产品物料必须在物料管理中存在 |
| 子物料 | BOM明细的子物料必须在物料管理中存在 |
| 替代物料 | 替代料必须在物料管理中存在 |
| 物料停用 | 物料停用不影响已有BOM,但新建BOM时不可选择停用物料 |
12.3 BOM与工序管理
| 关联关系 | 说明 |
|---|---|
| 工序关联 | BOM明细可关联工序,指定物料在哪个工序投入 |
| 投料控制 | 生产报工时,系统根据BOM工序关联控制投料顺序 |
| 防错校验 | 投料扫描时,系统校验物料是否在当前工序的BOM中 |
12.4 多级BOM与子工单
多级BOM工单生成规则:
- 成品BOM中的半成品物料,如果也有BOM,可自动生成子工单
- 子工单完成后,半成品入库,供成品工单使用
- 支持多级嵌套(成品→半成品→半成品→原材料)
13. 异常处理指引
13.1 BOM数据异常
| 异常现象 | 可能原因 | 处理方式 |
|---|---|---|
| 创建BOM时提示编码重复 | BOM编码已存在 | 修改编码或查找已有BOM |
| 添加明细时提示循环依赖 | BOM层级形成环路(A→B→A) | 检查BOM结构,移除循环引用的物料 |
| 无法选择某个物料 | 物料已停用或不存在 | 联系物料管理员启用物料或创建新物料 |
| BOM展开结果不完整 | 子物料的BOM未创建或未发布 | 检查并补充子物料的BOM |
| 成本计算结果为0 | 物料未设置单价 | 在物料管理中维护物料单价 |
13.2 操作权限异常
| 异常现象 | 可能原因 | 处理方式 |
|---|---|---|
| 无法编辑BOM | BOM已发布,不可编辑 | 创建新版本进行修改 |
| 无法删除BOM | BOM被其他BOM引用、存在工单占用或无删除权限 | 检查引用关系和权限,必要时保留历史版本 |
| 无法提交发布BOM | 缺少发布权限或BOM没有明细 | 补齐明细并联系系统管理员分配 bom:bom:approve 权限 |
| 无法冻结/淘汰 | 当前Web端无可视入口或缺少对应权限 | 联系系统管理员确认是否开放接口/页面 |
13.3 业务关联异常
| 异常现象 | 可能原因 | 处理方式 |
|---|---|---|
| 工单无法获取BOM | 产品物料无已发布的默认BOM | 创建并发布BOM,设为默认版本 |
| 投料校验失败 | 投入物料不在BOM明细中 | 检查BOM明细是否完整,或使用替代料 |
| 库存检查全部不足 | BOM刚创建,物料未采购 | 根据BOM需求生成采购计划 |
13.4 应急联系人
| 问题类型 | 联系人 | 联系方式 | 响应时间 |
|---|---|---|---|
| 系统故障 | IT技术支持 | BayesMES团队 📞15078509094 | 15分钟内 |
| 权限问题 | 系统管理员 | 内部联系 | 30分钟内 |
| 业务问题 | 工艺部门主管 | 内部联系 | 即时 |
14. 常见问题解答(FAQ)
Q1: 同一产品可以有多个BOM版本吗?
A:可以。同一产品物料可以创建多个BOM版本(如V1.0试产版、V2.0量产版),但只能有一个"默认版本"。生产工单默认使用默认版本的BOM。
设置默认版本:BOM列表 → 更多 → 设为默认
⚠️ 设置新的默认版本时,原默认版本会自动取消
Q2: BOM已发布后发现错误,如何修改?
A:已发布的BOM不可直接编辑。正确做法:
- 复制当前BOM(BOM列表 → 更多 → 复制)
- 修改新BOM的编码和版本号
- 在新BOM中修改错误内容
- 提交并发布新版本
- 将新版本设为默认版本
- 旧版本保留追溯;如需冻结或淘汰,联系系统管理员确认当前入口和权限
Q3: 什么是循环依赖?如何避免?
A:循环依赖是指BOM层级形成环路。例如:
- 产品A的BOM包含半成品B
- 半成品B的BOM又包含产品A
这会导致BOM无法展开(无限循环)。当前后端会在半成品子物料场景自动检测并阻止循环依赖,其他明显自引用或重复结构仍需操作人员在发布前核对。
避免方法:
- 明确产品层级关系(成品→半成品→原材料)
- 添加明细前确认子物料的BOM结构
Q4: 替代料的优先级如何使用?
A:替代料接口支持按优先级顺序维护替代关系:
- 优先级1 = 最优先使用
- 优先级2 = 次优先
- 以此类推
当前限制:
- 当前Web BOM页面未提供替代料入口
- 启用前需由系统管理员确认专用页面、接口工具或后续版本入口
- 通过接口维护时,仍应按优先级和成本差异审批后使用
Q5: BOM展开和树形结构有什么区别?
A:
| 功能 | 用途 | 特点 |
|---|---|---|
| 树形结构 | 查看BOM层级关系 | 后端接口能力,当前Web BOM详情页未提供按钮 |
| BOM展开 | 计算物料需求 | 后端接口能力,当前Web BOM详情页未提供按钮 |
- 树形结构:适合查看BOM结构是否正确
- BOM展开:适合计算生产所需的物料总量
Q6: 如何查看某个物料被哪些BOM使用?
A:当前BOM Web页面未提供独立 Where Used 入口。如需反查影响范围,可由系统管理员通过接口、数据库查询或后续物料引用页面确认。
💡 使用场景:物料变更或停用前,先查看影响范围
Q7: BOM导入失败怎么办?
A:
- 检查Excel格式是否与模板一致
- 确认所有物料编码在系统中存在
- 确认BOM编码不重复
- 查看导入错误提示,逐条修正
- 重新导入
15. 附录
附录A:权限代码速查表
# BOM管理
bom:bom:view
bom:bom:create
bom:bom:update
bom:bom:delete
bom:bom:approve
bom:bom:freeze
bom:bom:obsolete
bom:bom:import
# 替代料管理
bom:substitute-material:view
bom:substitute-material:create
bom:substitute-material:update
bom:substitute-material:delete附录B:BOM生命周期状态代码表
DESIGN # 设计中 - 初始状态,可自由编辑
PENDING # 待审核 - 后端状态代码,当前Web无独立待审核页面
RELEASED # 已发布 - 提交发布后可用于生产
FROZEN # 冻结 - 后端状态代码,当前Web无可视入口
OBSOLETE # 淘汰 - 永久停用,仅作历史参考附录C:替代料类型代码表
FULL # 完全替代 - 可100%替代原物料
PARTIAL # 部分替代 - 按比例替代原物料附录D:BOM操作检查清单
创建BOM检查清单
- [ ] 产品物料已创建且状态正常
- [ ] BOM编码符合命名规范
- [ ] 版本号正确
- [ ] 所有子物料已创建且状态正常
- [ ] 子物料用量和单位正确
- [ ] 损耗率设置合理
- [ ] 投料工序已选择且正确
- [ ] 半成品层级无循环依赖
- [ ] 如需替代料,已确认替代料维护入口或接口流程
发布BOM检查清单
- [ ] BOM基本信息完整准确
- [ ] 所有明细物料和用量已确认
- [ ] 损耗率经过工艺验证
- [ ] 投料工序已确认
- [ ] 至少存在一条BOM明细
- [ ] 发布后不可直接编辑的影响已确认
附录E:关联文档
| 文档名称 | 说明 |
|---|---|
| 物料管理培训手册 | 物料主数据维护 |
| 工艺路线管理SOP | 工艺路线配置 |
| 生产工单操作SOP | 基于BOM的工单管理 |
| 库存管理培训手册 | 库存查询与管理 |
附录F:截图清单
| 编号 | 截图内容 | 标注要点 | 文件名 |
|---|---|---|---|
| 01 | BOM管理入口 | ①侧边栏菜单 ②BOM管理入口 | bom-01-entry.png |
| 02 | BOM列表页面 | ①新增按钮 ②列表区域 ③搜索筛选 | bom-02-list.png |
| 03 | BOM新增表单 | ①编码 ②产品物料 ③版本号 ④生命周期 | bom-03-create-form.png |
| 04 | 添加BOM明细表单 | ①子物料 ②用量 ③损耗率 ④工序 | bom-04-add-item.png |
| 05 | 批量添加BOM明细 | ①多选物料 ②批量设置工序 ③批量设置数量 | bom-05-batch-add-item.png |
| 06 | 复制BOM弹窗 | ①源BOM ②新编码 ③新版本 ④设为默认 | bom-06-copy.png |
| 07 | BOM列表更多菜单 | ①复制 ②提交 ③设为默认 ④删除 | bom-07-list-more.png |
| 08 | BOM导入弹窗 | ①模板下载 ②文件上传 ③预览 ④导入结果 | bom-08-import.png |
修订记录
| 版本 | 日期 | 修订内容 | 修订人 |
|---|---|---|---|
| V1.1 | 2026-04-28 | 按真实前端、后端、shared路由核对后修正提交发布、替代料入口、展开/成本接口能力、复制范围、删除规则等内容 | BayesMES团队 |
| V1.0 | 2026-02-25 | 初版发布 | BayesMES团队 |
技术支持: 如有问题请联系BayesMES团队(📞15078509094 💬微信:ysfllxcn) 文档维护: BayesMES 实施团队
文档结束