工艺路线工序接口新增投料BOM - 前端联调方案
涉及页面
- 生产工单新增/编辑页(
src/views/mes/pro/workorder/detail.vue)
- 子组件
modules/process-list.vue(工序列表)
- 子组件
modules/process-form.vue(工序新增/编辑弹窗)
业务流程与数据带入
- 用户新建/编辑工单 → 选择产品 →
process-list.vue 调用接口获取工序列表
- 工序列表返回数据中新增
bomItems 字段(工序投料明细)
- 工序展开行自动展示投料明细(无需额外请求)
- 保存工单时
bomItems 随工序数据一起提交
API
接口说明
| 方法 |
路径 |
说明 |
| GET |
/mes/pro/route-process/list-by-product?productId={productId} |
按产品获取工艺路线工序(含投料BOM) |
响应字段新增
MesProRouteProcessRespVO 新增字段:
| 字段 |
类型 |
说明 |
| bomItems |
ProcessBomItem[] |
工序投料BOM列表,无投料时为空数组或 null |
ProcessBomItem 结构
| 字段 |
类型 |
说明 |
| itemId |
Long |
BOM物料编号 |
| itemCode |
String |
BOM物料编码 |
| itemName |
String |
BOM物料名称 |
| quantity |
BigDecimal |
用料比例 |
| remark |
String |
备注 |
响应示例
{
"code": 0,
"data": [
{
"id": 1,
"routeId": 10,
"processId": 100,
"processCode": "P001",
"processName": "焊接",
"sort": 1,
"nextProcessId": 101,
"nextProcessName": "组装",
"linkType": 3,
"keyFlag": true,
"checkFlag": false,
"backflushFlag": true,
"outputItemId": 200,
"outputItemCode": "M200",
"outputItemName": "半成品A",
"bomItems": [
{
"itemId": 1001,
"itemCode": "M001",
"itemName": "钢板",
"quantity": 2.0,
"remark": ""
},
{
"itemId": 1002,
"itemCode": "M002",
"itemName": "焊条",
"quantity": 0.5,
"remark": ""
}
]
},
{
"id": 2,
"routeId": 10,
"processId": 101,
"processCode": "P002",
"processName": "组装",
"sort": 2,
"nextProcessId": null,
"bomItems": []
}
]
}
字段展示规则
| 字段 |
展示位置 |
说明 |
| bomItems |
工序表格展开行 |
点击展开按钮后以 Tag 列表形式展示每个投料物料 |
| itemName / itemCode |
Tag 文本 |
优先显示物料名称,无名称时显示编码 |
| quantity |
Tag 后缀 |
显示为 ×{quantity} 格式 |
前端对接确认清单
已修改文件(当前分支已有)
| 文件 |
修改内容 |
src/api/mes/pro/route/process/index.ts |
RouteProcess 接口新增 bomItems?: ProcessBomItem[] |
src/api/mes/pro/workorder/process/index.ts |
WorkOrderProcess 接口新增 bomItems?: ProcessBomItem[] |
src/views/mes/pro/workorder/data.ts |
useProcessGridColumns 新增展开列 { type: 'expand', width: 50 } |
src/views/mes/pro/workorder/modules/process-list.vue |
getList() 映射 bomItems,模板新增 #expand slot |
需确认
ProcessBomItem 接口类型在前端 API 文件中已补充,确认与后端返回结构一致
- 展开行内的投料明细 Tag 列表展示按当前设计:蓝色 Tag,显示
物料名称 ×用量
- 无投料工序的展开行为空(无任何内容),不显示"投料明细"标题
业务规则说明
| 场景 |
规则 |
| 产品未配置工艺路线 |
返回空列表,不报错 |
| 工艺路线有工序但未配置投料 |
bomItems 为空,展开行无内容 |
| 投料物料已被删除 |
不返回该条投料记录(数据库逻辑删除) |
| 工序被删除后重建 |
展开行重新从接口获取最新 BOM 数据 |
注意事项
- 后端确保无需重启即可验证(如果接口已有数据):使用已配置投料的产品ID调用接口
- 投料 BOM 来自
mes_pro_route_product_bom 表(配置投料),不是产品标准 BOM
- BOM 物料名称通过
MesMdItemService 实时查询,确保展示最新物料名称
- Mapper 层使用 MyBatis-Plus
@TableLogic,已逻辑删除的记录不会返回