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

生产工单工序 - 前端联调方案

涉及页面

  • 生产工单列表页面
  • 生产工单详情/编辑页面(新增工序 Tab)

业务流程与数据带入

  1. 创建工单 → 自动根据产品关联的工艺路线生成工序列表
  2. 编辑工单 → 可手动调整工序(增删改)
  3. 产品变更 → 自动重新生成工序(先删后插)

API

方法 路径 说明
GET /mes/pro/work-order-process/list-by-work-order-id 获取工单工序列表
POST /mes/pro/work-order-process/create 新增工序
PUT /mes/pro/work-order-process/update 更新工序
DELETE /mes/pro/work-order-process/delete 删除工序

1. 获取工单工序列表

请求:
GET /mes/pro/work-order-process/list-by-work-order-id?workOrderId=29

响应字段:

字段 类型 说明
id Long 工序ID
workOrderId Long 工单ID
processId Long 工序编号
processCode String 工序编码
processName String 工序名称
sort Integer 序号
nextProcessId Long 下一道工序编号
nextProcessName String 下一道工序名称
linkType Integer 与下一道工序关系(0=开始-开始, 1=结束-结束, 2=开始-结束, 3=结束-开始)
prepareTime Integer 准备时间(分钟)
waitTime Integer 等待时间(分钟)
colorCode String 甘特图显示颜色
keyFlag Boolean 是否关键工序
checkFlag Boolean 是否质检工序
backflushFlag Boolean 是否倒冲
outputItemId Long 产出产品物料编号
outputItemCode String 产出产品物料编码
outputItemName String 产出产品物料名称
remark String 备注

响应示例:
json { "code": 0, "data": [ { "id": 1, "workOrderId": 29, "processId": 10, "processCode": "GX_001", "processName": "拉丝", "sort": 1, "nextProcessId": 11, "nextProcessName": "绞线", "linkType": 3, "prepareTime": 1, "waitTime": 1, "colorCode": "#00AEF3", "keyFlag": false, "checkFlag": false, "backflushFlag": true, "outputItemId": 42, "outputItemCode": "M001", "outputItemName": "铝单线", "remark": "" }, { "id": 2, "workOrderId": 29, "processId": 11, "processCode": "GX_002", "processName": "绞线", "sort": 2, "nextProcessId": null, "nextProcessName": null, "linkType": 1, "prepareTime": 1, "waitTime": 1, "colorCode": "#00AEF3", "keyFlag": true, "checkFlag": false, "backflushFlag": true, "outputItemId": 43, "outputItemCode": "M002", "outputItemName": "钢芯铝绞线", "remark": "" } ], "msg": "操作成功" }

2. 新增工序

请求:
POST /mes/pro/work-order-process/create

请求参数:

参数 类型 必填 说明
workOrderId Long 生产工单编号
processId Long 工序编号(选择工序)
sort Integer 序号
linkType Integer 与下一道工序关系
prepareTime Integer 准备时间(分钟)
waitTime Integer 等待时间(分钟)
colorCode String 甘特图显示颜色
keyFlag Boolean 是否关键工序(默认 false)
checkFlag Boolean 是否质检工序(默认 false)
backflushFlag Boolean 是否倒冲(默认 true)
outputItemId Long 产出产品物料编号
remark String 备注

响应: { "code": 0, "data": 1, "msg": "操作成功" }

3. 更新工序

请求:
PUT /mes/pro/work-order-process/update

请求参数: 同新增,额外包含 id 字段

响应: { "code": 0, "msg": "操作成功" }

4. 删除工序

请求:
DELETE /mes/pro/work-order-process/delete?id=1

响应: { "code": 0, "msg": "操作成功" }

字段展示规则

字段 展示位置 说明
sort 列表、表单 序号,必填,同一工单内唯一
processCode/processName 列表、表单 工序编码/名称,选择工序时带入(调用 /mes/pro/process/simple-list
keyFlag 列表、表单 是否关键工序,单选框,同一工单只能有一个关键工序
checkFlag 列表、表单 是否质检工序,单选框
backflushFlag 列表、表单 是否倒冲,单选框,默认 true
prepareTime/waitTime 表单 准备/等待时间,数字输入,单位:分钟
colorCode 表单 甘特图颜色,颜色选择器,默认 #00AEF3
outputItemCode/outputItemName 表单 产出物料,物料选择器(调用 /md/item/simple-list),为空时默认用工单的成品
linkType 表单 工序关系,下拉选择(0=开始-开始, 1=结束-结束, 2=开始-结束, 3=结束-开始)
remark 表单 备注,文本输入

业务规则说明

场景 规则
创建工单 根据产品关联的工艺路线自动生成工序列表(如果产品有工艺路线)
更换产品 自动重新生成工序(先删除旧工序,再生成新工序)
新增工序 校验序号唯一、工序唯一;关键工序只能有一个
删除工序 删除后自动重建工序链(nextProcessId)
编辑工序 修改序号后自动重建工序链
产品无工艺路线 不生成工序,工序列表为空,用户可手动添加

接口调用时序

创建工单场景

  1. 用户填写工单信息,选择产品
  2. 提交创建请求 → POST /mes/pro/work-order/create
  3. 后端自动生成 BOM 和工序
  4. 用户进入工单详情 → 可查看自动生成的工序列表

编辑工序场景

  1. 用户进入工单详情,切换到"工序"Tab
  2. 调用 GET /mes/pro/work-order-process/list-by-work-order-id 获取工序列表
  3. 用户可进行:
  • 新增工序:弹出表单,选择工序,填写参数 → POST /create
  • 编辑工序:点击行,修改参数 → PUT /update
  • 删除工序:点击删除按钮 → DELETE /delete

关联数据获取接口

工序选择

GET /mes/pro/process/simple-list

返回启用状态的工序列表,用于下拉选择。

响应示例:
json { "code": 0, "data": [ { "id": 10, "code": "GX_001", "name": "拉丝" }, { "id": 11, "code": "GX_002", "name": "绞线" } ] }

物料选择

GET /md/item/simple-list

返回启用状态的物料列表,用于产出物料选择。

注意事项

  • 工单工序数据独立于工艺路线,创建后可灵活调整,不会影响原始工艺路线
  • 工序的 nextProcessId 由后端自动维护,前端无需处理
  • 关键工序(keyFlag=true)每个工单只能有一个,新增/编辑时需校验
  • 产品变更会重新生成工序,原有手动调整会丢失
  • 权限复用工单权限:mes:pro-work-order:query(查询)、mes:pro-work-order:update(增删改)
  • 工序选择使用 /mes/pro/process/simple-list 接口
  • 物料选择使用 /md/item/simple-list 接口