工艺路线工序产出归属 - 前端联调方案
涉及页面
- 工艺路线 - 工序与产出页签 - 工序新增/编辑弹窗(process-form.vue)
- 工艺路线 - 启用前检查(route-configurator.vue)
- 生产工单 - 新增/编辑弹窗 - 工序列表(受归属过滤影响,无需新增字段)
- 生产任务 - 自动生成任务(产出物料按归属带入)
业务流程与数据带入
- 工艺路线工序的产出物料新增「归属」概念:
- 归属为空 = 多产品通用(该路线下所有产品都会产出该物料,适合同线共用的半成品);
- 归属为某个产品 = 产品专属(只有生产该产品时才会产出)。
- 选择产出物料时默认归属到物料自身;多产品共用的半成品需手动改为「通用」。
- 下单(新建工单)时,按工单产品过滤工艺路线工序产出:只带入「通用」产出和「该产品专属」产出。
- 自动生成任务时,任务产出物料同样按归属过滤,优先取过滤后的第一个产出;没有产出时取工单成品。
- 末道工序的成品产出必须归属到自身产品(不能为「通用」),否则启用路线时会报错。
API
| 方法 |
路径 |
说明 |
| POST |
/mes/pro/route-process/create |
新增工序(请求新增 outputs) |
| PUT |
/mes/pro/route-process/update |
修改工序(请求新增 outputs) |
| GET |
/mes/pro/route-process/get |
工序详情(响应新增 outputs) |
| GET |
/mes/pro/route-process/list-by-route |
按路线获取工序(响应新增 outputs) |
| GET |
/mes/pro/route-process/list-by-product |
按产品获取工序(产出已按归属过滤) |
请求参数新增(create / update):
| 参数 |
类型 |
必填 |
说明 |
| outputs |
Array |
否 |
产出物料归属配置,传入后优先于 outputItemIds |
| outputs[].itemId |
Long |
是 |
产出物料编号,必须是本路线绑定的产品 |
| outputs[].productId |
Long |
否 |
归属产品编号;不传或传空表示多产品通用 |
| outputs[].sort |
Integer |
否 |
排序,不传按数组顺序 |
| outputs[].remark |
String |
否 |
备注 |
兼容说明:仍可只传 outputItemIds(老页面/工艺设计页),后端会自动判定归属——产出是路线绑定产品时归属到自身,否则视为通用。
响应字段新增(get / list-by-route / list-by-product):
| 字段 |
类型 |
说明 |
| outputs |
Array |
产出归属列表 |
| outputs[].id |
Long |
归属记录编号 |
| outputs[].routeProcessId |
Long |
工序编号 |
| outputs[].productId |
Long |
归属产品编号,空表示通用 |
| outputs[].productName |
String |
归属产品名称 |
| outputs[].itemId |
Long |
产出物料编号 |
| outputs[].itemCode |
String |
产出物料编码 |
| outputs[].itemName |
String |
产出物料名称 |
| outputs[].sort |
Integer |
排序 |
| outputs[].remark |
String |
备注 |
响应示例:
{
"code": 0,
"data": {
"id": 123,
"processName": "包装入库",
"outputs": [
{
"productId": 201,
"productName": "油浸式配电变压器",
"itemId": 201,
"itemName": "油浸式配电变压器",
"sort": 1
},
{
"productId": null,
"productName": null,
"itemId": 300,
"itemName": "通用包装箱",
"sort": 2
}
]
}
}
字段展示规则
| 字段 |
展示位置 |
说明 |
| outputs |
工序新增/编辑弹窗「本工序产出」 |
每行两个下拉:产出物料、归属;提供「添加产出」「删除」 |
| 归属下拉 |
工序新增/编辑弹窗 |
选项为「通用(所有产品)」+ 路线产品列表 |
| 产出物料下拉 |
工序新增/编辑弹窗 |
选项限定为路线绑定的产品 |
| outputs |
工序列表「本工序产出」列 |
展示为「物料名(归属产品名)」或「物料名(通用)」 |
业务规则说明
| 场景 |
规则 |
| 选择产出物料 |
默认归属到物料自身,可手动改为「通用」 |
| 多产品共用半成品 |
归属选择「通用」,所有产品下单时都会带入该产出 |
| 产品专属产出 |
归属选择对应产品,只有该产品的工单/任务会带入 |
| 末道工序成品 |
每个成品必须归属到自身产品,不能使用「通用」 |
| 存量数据 |
原 output_item_id 自动拆分:是路线产品的归属到自身,否则视为通用 |
| 只传 outputItemIds |
后端自动按「路线产品→专属、其它→通用」判定归属 |
| 产出聚合字段 |
output_item_id 仍保留并自动聚合,供任务、物料需求等旧逻辑使用 |
注意事项
- 归属产品下拉的选项就是当前工艺路线绑定的产品列表,未绑定产品不能作为归属。
- 产出物料必须属于路线绑定产品,否则启用路线时会报「产出未绑定到当前工艺路线」。
- 同一道工序可以同时存在通用产出和多个产品专属产出。
- 工序产出归属保存后,已创建的工单工序快照不受影响(快照在下单时按当时的归属过滤)。
- 工艺路线启用时,末道工序若存在「通用」成品产出会校验失败,需要在工序编辑中改为产品专属。