编辑 | blame | 历史 | 原始文档

工艺路线工序 - 产出产品字段 - 前端联调方案

涉及页面

  • 工艺路线 - 工序配置页(新增/编辑工序时选择产出产品)
  • 排产 - 任务新增页(自动带入产出产品)
  • BOM 配置页(工序产出产品变更后,BOM 的产品字段联动)

业务背景

问题:当前所有工序的产出都是最终成品,无法区分中间工序的半成品产出。例如:
- 工序1:拉丝 → 产出"铝杆"(半成品),不是"钢芯铝绞线"
- 工序2:绞线 → 产出"钢芯铝绞线"(最终成品)

解决:工艺路线工序新增"产出产品"字段,排产时自动带入任务的物料。

业务流程与数据带入

  1. 工艺路线配置 → 每道工序选择产出产品(半成品/成品)
  2. 排产 → 选择工序后,自动从工序带出 outputItemId 作为任务的 itemId
  3. 报工产出 → 从任务冗余 itemId(可能是半成品),产出单和库存自动正确
  4. 倒冲扣料 → BOM 查询按工序+产出产品匹配,自动正确

API

工序保存接口(变更)

方法 路径 说明
POST /mes/pro/route-process/create 创建工序
PUT /mes/pro/route-process/update 更新工序

请求参数新增:

参数 类型 必填 说明
outputItemId Long 产出产品物料编号(为空时默认用工单成品)

请求示例(新增字段):

{
  "routeId": 7,
  "processId": 10,
  "sort": 1,
  "keyFlag": false,
  "checkFlag": false,
  "backflushFlag": true,
  "outputItemId": 31
}

工序查询接口(变更)

方法 路径 说明
GET /mes/pro/route-process/list-by-route 按工艺路线查工序列表
GET /mes/pro/route-process/get-by-route-and-process 按路线+工序查配置
GET /mes/pro/route-process/get 获取单个工序

响应字段新增:

字段 类型 说明
outputItemId Long 产出产品物料编号
outputItemCode String 产出产品物料编码
outputItemName String 产出产品物料名称

响应示例(新增字段):

{
  "code": 0,
  "data": {
    "id": 1,
    "routeId": 7,
    "processId": 10,
    "processCode": "PROC_001",
    "processName": "拉丝",
    "sort": 1,
    "keyFlag": false,
    "checkFlag": false,
    "backflushFlag": true,
    "outputItemId": 31,
    "outputItemCode": "ITEM_20260716004",
    "outputItemName": "铝杆"
  }
}

字段展示规则

字段 展示位置 说明
outputItemId 工序配置表单 物料选择器,可选半成品或成品
outputItemCode 工序列表、工序详情 只读展示
outputItemName 工序列表、工序详情 只读展示

前端修改点

1. 工艺路线 - 工序配置

在"是否倒冲"开关之后,新增"产出产品"选择器:

  • 使用物料选择组件,筛选范围与工单产品选择器一致
  • 非最后工序:选择该工序产出的半成品
  • 最后一道工序:可留空(默认为工单成品),也可显式选择最终成品
  • 保存时将 outputItemId 提交到后端

2. 排产 - 任务新增

  • 当用户选择工单 + 工艺路线 + 工序后,调用 /mes/pro/route-process/get-by-route-and-process 获取工序配置
  • 如果工序配置了 outputItemId,自动填入任务的物料字段(展示 outputItemName
  • 如果工序未配置 outputItemId,自动回退工单的成品
  • 用户可以手动修改任务的物料(覆盖自动填入值)

3. BOM 配置

当工序配置了 outputItemId 后:
- 该工序的 BOM 记录的"产品"字段应自动关联到 outputItemId
- 即 BOM 表 mes_pro_route_product_bom.product_id 应与工序的 outputItemId 一致
- 注意:现有 BOM 数据的 product_id 全部是最终成品 ID,配置工序产出产品后需重新调整 BOM

4. 工序列表展示

工序列表中新增"产出产品"列,展示 outputItemName,未配置时显示"默认(工单成品)"。

业务规则说明

场景 规则
outputItemId 为空 排产时任务的 itemId 默认用工单的 productId(向后兼容)
outputItemId 不为空 排产时任务的 itemId 自动用工序的 outputItemId
最后一道工序 建议不填 outputItemId,或填最终成品,效果一样
非最后工序 建议填写半成品,这样报工产出时入线边库的是半成品
前端显式传 itemId 后端优先使用前端传入值(向后兼容现有排产逻辑)

注意事项

  • 现有工艺术线数据不需要迁移,outputItemId 为空时行为与之前完全一致
  • 配置了 outputItemId 后,需同步调整该工序的 BOM 配置(product_id 改为半成品 ID)
  • 半成品产出后会入线边库(WIP),下一道工序消耗时通过 BOM 倒冲或手工投料扣减
  • 报工页面的"产品物料"字段可能显示半成品,这是正确的,不要误以为是数据错误