基础参数与工序绑定 + 报工填写参数字段 - 前端联调方案
需求背景
- 基础参数(工艺参数,菜单「工艺设计 → 基础参数」)原本无法与「工序」直接绑定。
- 本次实现:**工序主数据可绑定基础参数**;任务无参数模板时,生成任务会按工序绑定的参数自动固化参数快照;**报工时必须填写绑定的参数字段**(必填参数强校验),报工详情/列表回显参数值。
涉及页面
- 工序设置页(
mes/process-design/process/index)——新增「工艺参数」Tab,维护工序绑定的参数
- 基础参数页(
mes/process-design/parameter/index)——新增「关联工序」入口,查看该参数被哪些工序使用
- 生产任务创建/自动排产——任务按工序绑定参数生成参数快照(无模板时)
- 生产报工新增/编辑——按任务参数记录渲染参数字段,必填参数校验
- 报工详情/列表——回显已填写的参数值
业务流程与数据带入
1. 工序设置页 → 「工艺参数」Tab → 勾选基础参数,设置是否必填/排序 → 保存到 mes_pro_process_param
2. 排产/手工建任务 → 任务的工序若未绑定参数模板,则从「工序绑定的参数」生成任务参数记录快照
(参数来源优先级:工单工序绑定模板 → 路线工序绑定模板 → 工序主数据绑定参数 → 无参数记录)
3. 生产报工 → 按任务参数记录渲染参数字段(参数名 + 单位 + 必填星号)
4. 提交报工 → 必填参数为空则后端拒绝(报错「必填参数【xxx】未填写」)
5. 报工详情/列表 → 回显本次任务参数快照及已填写的参数值
API
一、工序-工艺参数绑定(新增)
| 方法 |
路径 |
说明 |
| GET |
/admin-api/mes/pro/process-param/list-by-process |
查询工序绑定的参数列表(带参数详情/单位) |
| POST |
/admin-api/mes/pro/process-param/update-bindings |
全量覆盖保存工序绑定的参数 |
| GET |
/admin-api/mes/pro/process-param/list-by-param |
反查某基础参数被哪些工序绑定 |
权限:读 mes:pro-process:query;写 mes:pro-process:update(复用工序权限,无需新菜单)。
GET /list-by-process 请求参数:
| 参数 |
类型 |
必填 |
说明 |
| processId |
Long |
是 |
工序编号 |
响应:
{
"code": 0,
"data": [
{
"id": 9,
"processId": 10,
"processParamId": 7,
"paramCode": "CS202607150004",
"paramName": "测试参数_数值",
"paramType": 1,
"unitMeasureId": 1,
"unitMeasureName": "吨",
"required": true,
"sort": 1,
"remark": null
}
]
}
POST /update-bindings 请求参数(全量覆盖):
| 参数 |
类型 |
必填 |
说明 |
| processId |
Long |
是 |
工序编号 |
| items |
Array |
否 |
绑定的参数列表(传空数组=清空绑定) |
| items[].processParamId |
Long |
是 |
基础参数编号 |
| items[].required |
Boolean |
否 |
是否必填(可覆盖参数默认值) |
| items[].sort |
Integer |
否 |
排序 |
| items[].remark |
String |
否 |
备注 |
GET /list-by-param 请求参数:
| 参数 |
类型 |
必填 |
说明 |
| paramId |
Long |
是 |
基础参数编号 |
响应: data 为工序列表(id、code、name)。
二、任务参数记录(已有接口,行为增强)
任务创建/自动排产时,若任务无参数模板但工序绑定了参数,会生成一条 templateName=工序绑定参数、templateId=null 的参数记录。
| 方法 |
路径 |
说明 |
| GET |
/admin-api/mes/pro/work-order-param-record/page-by-work-order?taskId= |
按任务查询参数记录(含明细快照) |
明细快照新增字段:required(是否必填)。
三、生产报工(已有接口,增强)
| 方法 |
路径 |
说明 |
| POST |
/admin-api/mes/pro/feedback/create |
创建报工(提交 paramValues) |
| PUT |
/admin-api/mes/pro/feedback/update |
修改报工 |
| GET |
/admin-api/mes/pro/feedback/get |
报工详情(响应新增 paramValues) |
| GET |
/admin-api/mes/pro/feedback/page |
报工分页(响应新增 paramValues) |
请求参数新增(已存在):
| 参数 |
类型 |
必填 |
说明 |
| paramValues |
Array |
否 |
本次报工填写的参数值;任务无参数记录时不传 |
| paramValues[].detailId |
Long |
是(传入时) |
任务参数记录明细编号(不是模板明细编号) |
| paramValues[].value |
String |
条件必填 |
参数值(必填参数不能为空) |
响应字段新增(报工详情/列表):
| 字段 |
类型 |
说明 |
| paramValues |
Array |
任务参数快照及已填写的值 |
| paramValues[].detailId |
Long |
任务参数记录明细编号 |
| paramValues[].paramCode |
String |
参数编码 |
| paramValues[].paramName |
String |
参数名称 |
| paramValues[].paramType |
Integer |
参数类型 |
| paramValues[].unitMeasureName |
String |
单位名称 |
| paramValues[].paramValue |
String |
参数值 |
| paramValues[].required |
Boolean |
是否必填 |
响应示例(报工详情):
{
"code": 0,
"data": {
"id": 48,
"code": "FB_TEST_39",
"processId": 10,
"paramValues": [
{ "detailId": 55, "paramCode": "CS202607150004", "paramName": "测试参数_数值", "paramType": 1, "unitMeasureName": "吨", "paramValue": "200", "required": true },
{ "detailId": 56, "paramCode": "CS202607100003", "paramName": "测试参数11", "paramType": 2, "unitMeasureName": "千克", "paramValue": "200", "required": false }
]
}
}
字段展示规则
工序设置页「工艺参数」Tab
| 字段 |
展示位置 |
说明 |
| 参数编码/名称 |
Tab 表格 |
展示已绑定参数 |
| 参数类型 |
Tab 表格 |
字典:1=文本 2=数值 3=布尔 4=日期 |
| 单位 |
Tab 表格 |
计量单位名称 |
| 是否必填 |
Tab 表格(开关) |
可覆盖参数默认值 |
| 排序 |
Tab 表格 |
数字排序 |
| 备注 |
Tab 表格 |
备注 |
| 操作 |
Tab 表格 |
新增行(选择基础参数)、删除行 |
| 保存 |
Tab 底部 |
全量覆盖保存(调用 update-bindings) |
基础参数页「关联工序」
| 字段 |
展示位置 |
说明 |
| 工序编码/名称 |
弹窗/抽屉 |
该参数被绑定的工序列表(只读) |
生产报工表单
| 字段 |
展示位置 |
说明 |
| 参数名称 |
表单行标签 |
从任务参数记录快照读取 |
| 单位 |
输入框后缀 |
如 ℃ |
| 必填 |
红色星号 |
required=true 时标记 |
| 参数值 |
输入框 |
按参数类型渲染输入控件 |
| 必填校验 |
提交时 |
必填参数为空,后端返回「必填参数【xxx】未填写」 |
业务规则说明
| 场景 |
规则 |
| 参数来源优先级 |
工单工序绑定模板 → 路线工序绑定模板 → 工序主数据绑定参数 → 无参数记录 |
| 无参数记录 |
任务正常生成、报工不要求参数值 |
| 有参数记录 |
报工按任务参数明细填写;必填参数(required=true)必须填写 |
| 快照机制 |
任务生成时固化参数快照(名称/类型/单位/必填),后续改工序绑定不影响历史任务 |
| 全量覆盖 |
工序绑定保存为全量覆盖;传空数组=清空绑定 |
| 删除基础参数 |
自动清理其工序绑定关系 |
| 报工回显 |
报工详情/列表回显任务参数快照及已填值,历史值不因后续变更改变 |
注意事项
paramValues[].detailId 是**任务参数记录明细编号**,不是模板明细编号;前端应先按任务参数记录接口取明细,再以其 id 提交。
- 任务无模板但工序绑定了参数时,参数记录的
templateId=null、templateName=工序绑定参数,工单参数记录页按此展示。
- 参数类型:1=文本 2=数值 3=布尔 4=日期,报工表单按类型渲染输入控件。
- 报工提交时即使不填参数(paramValues 为空),后端也会校验必填参数,任务绑定了参数时必须填写。
- 工序绑定参数接口的读写权限复用工序设置页权限(
mes:pro-process:query/update)。
- 前端页面路径与菜单:工序设置
mes/process-design/process/index、基础参数 mes/process-design/parameter/index。