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

生产领料/退料关联 Task - 前端联调方案

涉及页面

  • 生产领料出库单列表页 / 新增编辑页 / 行管理页
  • 生产退料单列表页 / 新增编辑页 / 行管理页
  • 生产任务列表页(选择 task 用)

业务流程与数据带入

领料流程

  1. 新增领料出库单:选择 Task → 工单(workOrderId)、工作站(workstationId) 从 Task 自动带入
  2. 新增领料出库单行:行可选填 taskId,默认取主表的 taskId
  3. 完成领料出库:系统自动创建任务投料记录(mes_pro_task_issue),issuedQuantity = availableQuantity = 行数量
  4. 取消领料出库:系统自动删除通过该领料单创建的任务投料记录

退料流程

  1. 新增退料单:选择 Task → 工单(workOrderId)、工作站(workstationId) 从 Task 自动带入
  2. 新增退料单行:行可选填 taskId,默认取主表的 taskId
  3. 完成退料:系统自动扣减任务投料记录的 issuedQuantity 和 availableQuantity
  4. 取消退料:无额外操作(退料未完成时不影响投料记录)

领料 → 退料闭环

领料完成 → task_issue: issued=100, available=100, used=0
退料完成 → task_issue: issued=80,  available=80,  used=0  (退了20)

一、领料出库单 API

方法 路径 说明
POST /mes/wm/product-issue/create 创建领料出库单
PUT /mes/wm/product-issue/update 修改领料出库单
GET /mes/wm/product-issue/get 获得领料出库单
GET /mes/wm/product-issue/page 获得领料出库单分页
PUT /mes/wm/product-issue/submit 提交领料出库单
PUT /mes/wm/product-issue/stock 执行拣货
PUT /mes/wm/product-issue/finish 完成领料出库(自动创建投料记录)
PUT /mes/wm/product-issue/cancel 取消领料出库(自动删除投料记录)
POST /mes/wm/product-issue-line/create 创建领料出库单行
PUT /mes/wm/product-issue-line/update 修改领料出库单行

创建/修改领料出库单 - 请求参数变更

参数 类型 必填 说明
taskId Long 是(新增必填) 生产任务 ID,以 task 为主
workOrderId Long 否(原必填改为选填) 生产工单 ID,从 task 自动带入
workstationId Long 工作站 ID,从 task 自动带入
requiredTime LocalDateTime 需求时间

请求示例:

{
  "code": "ISSUE20260716001",
  "name": "生产领料",
  "taskId": 1,
  "requiredTime": "2026-07-16 10:00:00",
  "remark": ""
}

响应: { "code": 0, "data": 1 }

领料出库单 - 响应字段新增

字段 类型 说明
taskId Long 生产任务 ID
taskCode String 新增 生产任务编码
taskName String 新增 生产任务名称
requiredTime LocalDateTime 需求时间

响应示例:

{
  "code": 0,
  "data": {
    "id": 1,
    "code": "ISSUE20260716001",
    "name": "生产领料",
    "taskId": 1,
    "taskCode": "TASK001",
    "taskName": "注塑任务",
    "workOrderId": 10,
    "workOrderCode": "WO001",
    "workstationId": 5,
    "workstationName": "装配工作站",
    "clientCode": "C001",
    "clientName": "某某客户",
    "issueDate": null,
    "requiredTime": "2026-07-16 10:00:00",
    "status": 0,
    "remark": "",
    "createTime": "2026-07-16 10:00:00"
  }
}

领料出库单行 - 请求/响应字段新增

字段 类型 请求 响应 说明

| taskId | Long | 选填 | - | 生产任务 ID,默认取主表的 taskId |
| taskCode | String | - | 新增 | 生产任务编码 |
| taskName | String | - | 新增 | 生产任务名称 |


二、退料单 API

方法 路径 说明
POST /mes/wm/return-issue/create 创建退料单
PUT /mes/wm/return-issue/update 修改退料单
GET /mes/wm/return-issue/get 获得退料单
GET /mes/wm/return-issue/page 获得退料单分页
PUT /mes/wm/return-issue/submit 提交退料单
PUT /mes/wm/return-issue/stock 入库上架
PUT /mes/wm/return-issue/finish 完成退料(自动扣减投料记录可用量)
PUT /mes/wm/return-issue/cancel 取消退料
POST /mes/wm/return-issue-line/create 创建退料单行
PUT /mes/wm/return-issue-line/update 修改退料单行

创建/修改退料单 - 请求参数变更

参数 类型 必填 说明
taskId Long 是(新增必填) 生产任务 ID,以 task 为主
workOrderId Long 否(原必填改为选填) 生产工单 ID,从 task 自动带入
workstationId Long 工作站 ID,从 task 自动带入

请求示例:

{
  "code": "RI20260716001",
  "name": "生产退料",
  "taskId": 1,
  "type": 1,
  "remark": ""
}

响应: { "code": 0, "data": 1 }

退料单 - 响应字段新增

字段 类型 说明
taskId Long 新增 生产任务 ID
taskCode String 新增 生产任务编码
taskName String 新增 生产任务名称

响应示例:

{
  "code": 0,
  "data": {
    "id": 1,
    "code": "RI20260716001",
    "name": "生产退料",
    "taskId": 1,
    "taskCode": "TASK001",
    "taskName": "注塑任务",
    "workOrderId": 10,
    "workOrderCode": "WO001",
    "workstationId": 5,
    "workstationName": "装配工作站",
    "type": 1,
    "returnDate": null,
    "status": 0,
    "remark": "",
    "createTime": "2026-07-16 10:00:00"
  }
}

退料单行 - 请求/响应字段新增

字段 类型 请求 响应 说明

| taskId | Long | 选填 | - | 生产任务 ID,默认取主表的 taskId |
| taskCode | String | - | 新增 | 生产任务编码 |
| taskName | String | - | 新增 | 生产任务名称 |

退料单分页 - 请求参数新增

参数 类型 说明
taskId Long 新增 按生产任务 ID 过滤

字段展示规则

领料出库单

字段 展示位置 说明
taskId 新增/编辑表单 必填,选择 Task 下拉框
taskCode 列表、详情 从 Task 自动带入展示
taskName 列表、详情 从 Task 自动带入展示
workOrderId 新增/编辑表单 选填,选择 Task 后自动填入,可手动修改
workOrderCode 列表、详情 从工单自动带入展示
workstationId 新增/编辑表单 选填,选择 Task 后自动填入,可手动修改
workstationName 列表、详情 从工作站自动带入展示
requiredTime 新增/编辑表单、详情 必填,需求时间
行级 taskId 行新增/编辑表单 选填,默认取主表 taskId

退料单

字段 展示位置 说明
taskId 新增/编辑表单 必填,选择 Task 下拉框
taskCode 列表、详情 从 Task 自动带入展示
taskName 列表、详情 从 Task 自动带入展示
workOrderId 新增/编辑表单 选填,选择 Task 后自动填入,可手动修改
workOrderCode 列表、详情 从工单自动带入展示
workstationId 新增/编辑表单 选填,选择 Task 后自动填入,可手动修改
workstationName 列表、详情 从工作站自动带入展示
行级 taskId 行新增/编辑表单 选填,默认取主表 taskId

业务规则说明

场景 规则
新增领料/退料单 taskId 必填;选择 task 后自动带入 workOrderId 和 workstationId
修改领料/退料单 taskId 必填;同新增规则
领料出库完成 系统自动按行创建 mes_pro_task_issue 投料记录,sourceDocType=PRODUCT_ISSUE
取消领料出库 系统自动删除通过该领料单创建的投料记录
退料完成 系统自动扣减对应 task_issue 的 issuedQuantity 和 availableQuantity
行级 taskId 行的 taskId 优先于主表的 taskId;如果行为空则取主表的
投料记录匹配 退料扣减时,按 taskId + itemId + sourceDocType=PRODUCT_ISSUE 匹配投料记录

注意事项

  • 以 task 为主:创建领料/退料单时,必须先选择 task,工单和工作站从 task 自动带入
  • workOrderId 不再是必填:前端表单中 workOrderId 改为选填,选择 task 后自动填入
  • 行级 taskId:行表新增 taskId 字段,前端行编辑时可选择不同的 task(默认取主表的)
  • 投料记录自动管理:领料完成自动创建投料记录,退料完成自动扣减投料可用量,前端无需额外操作
  • 分页查询支持 taskId:领料出库单和退料单分页接口均支持按 taskId 过滤查询
  • 领料取消:取消领料时,只有通过该领料单创建的投料记录会被删除(按 sourceDocType + sourceDocId 匹配)
  • 退料扣减:退料扣减投料记录时,issuedQuantity 和 availableQuantity 最低为 0,不会出现负数