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

工单生产参数记录 - 前端联调方案

涉及页面

  • 工单详情(新增"参数记录"Tab,查看/管理工单的参数记录)
  • 参数记录新增/编辑弹窗(选择参数模板,填写参数值)

业务流程与数据带入

1. 进入工单详情 → 切换到"参数记录"Tab → 查看该工单所有参数记录
2. 点击"新增参数记录" → 弹窗选择参数模板 → 自动加载模板下的参数列表(参数名、单位、是否必填)
3. 填写各参数值 → 保存(一条记录 = 模板 + 所有参数的填写值)
4. 同一工单可多次新增参数记录(每班次/每批次记录一次)
5. 编辑时只能修改填写值和备注,不能更换模板
6. 删除记录时整条记录(含所有参数明细)一起删除

数据模型说明

参数记录(主表)                   参数记录明细
┌─────────────────────┐          ┌─────────────────────────┐
│ id: 1                │          │ id: 101                  │
│ workOrderId: 10      │──1:N──→│ recordId: 1              │
│ templateId: 2        │          │ paramName: 温度           │
│ templateCode: CSMB002│          │ paramType: 2 (数值)      │
│ templateName: 注塑模板│          │ unitMeasureName: ℃       │
│ recordNo: BATCH-001  │          │ paramValue: 200          │
│ remark: 首件记录      │          ├─────────────────────────┤
└─────────────────────┘          │ id: 102                  │
                                  │ recordId: 1              │
                                  │ paramName: 压力           │
                                  │ paramType: 2 (数值)      │
                                  │ unitMeasureName: MPa     │
                                  │ paramValue: 50           │
                                  └─────────────────────────┘

API

一、参数模板接口(已有,用于下拉选择)

1.1 获取参数模板精简列表

方法 路径 说明
GET /mes/pd/process-param-template/page 获取参数模板分页列表

请求参数:

参数 类型 必填 说明
pageNo Integer 页码
pageSize Integer 每页条数(建议 100,用于下拉)

响应字段(关键字段):

字段 类型 说明
id Long 模板编号
templateCode String 模板编码
templateName String 模板名称
templateType Integer 模板类型

1.2 获取参数模板详情(含明细,用于加载参数列表)

方法 路径 说明
GET /mes/pd/process-param-template/get 获取模板 + 参数明细

请求参数:

参数 类型 必填 说明
id Long 模板编号

响应示例:

{
  "code": 0,
  "data": {
    "id": 2,
    "templateCode": "CSMB202607100002",
    "templateName": "注塑参数模板",
    "templateType": 1,
    "details": [
      {
        "id": 3,
        "paramCode": "TEMP",
        "paramName": "温度",
        "paramType": 2,
        "unitMeasureId": 5,
        "unitMeasureName": "℃",
        "required": true
      },
      {
        "id": 4,
        "paramCode": "PRESS",
        "paramName": "压力",
        "paramType": 2,
        "unitMeasureId": 8,
        "unitMeasureName": "MPa",
        "required": true
      },
      {
        "id": 5,
        "paramCode": "TIME",
        "paramName": "保压时间",
        "paramType": 2,
        "unitMeasureId": 12,
        "unitMeasureName": "s",
        "required": false
      }
    ]
  }
}

数据带入说明: 选择模板后,将 details 列表渲染为表单行,每行展示参数名 + 单位 + 输入框,required=true 的参数标记必填。


二、工单参数记录接口

2.1 创建参数记录

方法 路径 说明
POST /mes/pro/work-order-param-record/create 为工单创建一条参数记录

请求参数:

参数 类型 必填 说明
workOrderId Long 工单编号(URL 参数)
templateId Long 参数模板编号
recordNo String 记录序号/批次号
remark String 备注
details Array 参数明细列表
details[].templateDetailId Long 模板明细编号(来自模板详情的 details[].id)
details[].paramValue String 条件必填 参数值(必填参数不能为空)

请求示例:

POST /mes/pro/work-order-param-record/create?workOrderId=10

{
  "templateId": 2,
  "recordNo": "BATCH-001",
  "remark": "首件记录",
  "details": [
    { "templateDetailId": 3, "paramValue": "200" },
    { "templateDetailId": 4, "paramValue": "50" },
    { "templateDetailId": 5, "paramValue": "30" }
  ]
}

响应:

{
  "code": 0,
  "data": 1024
}

接口调用时序:

1. 用户点击"新增参数记录"
2. 调用 GET /mes/pd/process-param-template/page 获取模板下拉列表
3. 用户选择模板
4. 调用 GET /mes/pd/process-param-template/get?id=xxx 获取模板参数明细
5. 前端将 details 渲染为表单(参数名 + 单位 + 输入框)
6. 用户填写参数值
7. 调用 POST /mes/pro/work-order-param-record/create 提交

2.2 更新参数记录

方法 路径 说明
PUT /mes/pro/work-order-param-record/update 更新参数记录(仅修改填写值,不能换模板)

请求参数:

参数 类型 必填 说明
id Long 记录编号
templateId Long 参数模板编号(必须与创建时一致,否则报错)
recordNo String 记录序号/批次号
remark String 备注
details Array 参数明细列表
details[].templateDetailId Long 模板明细编号
details[].paramValue String 条件必填 参数值

请求示例:

{
  "id": 1024,
  "templateId": 2,
  "recordNo": "BATCH-001",
  "remark": "首件记录(已修正)",
  "details": [
    { "templateDetailId": 3, "paramValue": "210" },
    { "templateDetailId": 4, "paramValue": "52" },
    { "templateDetailId": 5, "paramValue": "28" }
  ]
}

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

业务规则: 不允许更换模板(templateId 必须与原记录一致),如需换模板请删除后重新创建。


2.3 删除参数记录

方法 路径 说明
DELETE /mes/pro/work-order-param-record/delete 删除参数记录(级联删除明细)

请求参数:

参数 类型 必填 说明
id Long 记录编号

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


2.4 获取参数记录详情

方法 路径 说明
GET /mes/pro/work-order-param-record/get 获取单条记录(含明细)

请求参数:

参数 类型 必填 说明
id Long 记录编号

响应字段:

字段 类型 说明
id Long 记录编号
workOrderId Long 工单编号
templateId Long 模板编号
templateCode String 模板编码(快照)
templateName String 模板名称(快照)
recordNo String 记录序号
remark String 备注
createTime LocalDateTime 创建时间
details Array 参数明细列表
details[].id Long 明细编号
details[].templateDetailId Long 模板明细编号
details[].paramCode String 参数编码
details[].paramName String 参数名称
details[].paramType Integer 参数类型
details[].unitMeasureId Long 计量单位编号
details[].unitMeasureName String 计量单位名称
details[].paramValue String 参数值
details[].remark String 备注

响应示例:

{
  "code": 0,
  "data": {
    "id": 1024,
    "workOrderId": 10,
    "templateId": 2,
    "templateCode": "CSMB202607100002",
    "templateName": "注塑参数模板",
    "recordNo": "BATCH-001",
    "remark": "首件记录",
    "createTime": "2026-07-15 14:30:00",
    "details": [
      { "id": 101, "templateDetailId": 3, "paramCode": "TEMP", "paramName": "温度", "paramType": 2, "unitMeasureName": "℃", "paramValue": "200" },
      { "id": 102, "templateDetailId": 4, "paramCode": "PRESS", "paramName": "压力", "paramType": 2, "unitMeasureName": "MPa", "paramValue": "50" },
      { "id": 103, "templateDetailId": 5, "paramCode": "TIME", "paramName": "保压时间", "paramType": 2, "unitMeasureName": "s", "paramValue": "30" }
    ]
  }
}

2.5 按工单分页查询参数记录

方法 路径 说明
GET /mes/pro/work-order-param-record/page-by-work-order 按工单查询参数记录分页

请求参数:

参数 类型 必填 说明
workOrderId Long 工单编号(URL 参数)
recordNo String 记录序号(模糊匹配)
templateName String 模板名称(模糊匹配)
createTime String[] 创建时间范围
pageNo Integer 页码
pageSize Integer 每页条数

响应字段: 同 2.4(分页列表,每条记录含 details 明细)

响应示例:

{
  "code": 0,
  "data": {
    "list": [
      {
        "id": 1024,
        "templateName": "注塑参数模板",
        "recordNo": "BATCH-001",
        "createTime": "2026-07-15 14:30:00",
        "details": [
          { "paramName": "温度", "unitMeasureName": "℃", "paramValue": "200" },
          { "paramName": "压力", "unitMeasureName": "MPa", "paramValue": "50" },
          { "paramName": "保压时间", "unitMeasureName": "s", "paramValue": "30" }
        ]
      },
      {
        "id": 1025,
        "templateName": "注塑参数模板",
        "recordNo": "BATCH-002",
        "createTime": "2026-07-15 22:15:00",
        "details": [
          { "paramName": "温度", "unitMeasureName": "℃", "paramValue": "210" },
          { "paramName": "压力", "unitMeasureName": "MPa", "paramValue": "52" },
          { "paramName": "保压时间", "unitMeasureName": "s", "paramValue": "28" }
        ]
      }
    ],
    "total": 2
  }
}

字段展示规则

参数记录列表(工单详情 Tab)

字段 展示位置 说明
recordNo 列表 记录序号/批次号
templateName 列表 参数模板名称
各参数值 列表(展开行或标签式) 显示"参数名: 值 单位",如"温度: 200 ℃"
createTime 列表 记录时间
操作列 列表 编辑、删除按钮

列表展示建议: 每条记录可展开查看所有参数明细,或在列表中用标签式展示关键参数值。

参数记录新增/编辑弹窗

字段 展示位置 说明
templateId 弹窗顶部(下拉选择) 新增时可选,编辑时只读
recordNo 弹窗(输入框) 记录序号/批次号
参数明细列表 弹窗主体(动态表单) 根据模板加载,见下方
remark 弹窗底部(文本域) 备注

参数明细动态表单: 选择模板后,自动加载参数列表渲染为表单行:

模板字段 表单展示 说明
paramName 标签文本 如"温度"
unitMeasureName 标签后缀 如"℃",显示在输入框右侧
required 必填标记 required=true 时加红色星号
paramType 输入控件类型 1=文本框,2=数字框,3=开关,4=日期选择器
paramValue 输入框 用户填写的参数值

业务规则说明

场景 规则
选择模板后加载参数 调用模板详情接口,将 details 渲染为表单行
必填参数校验 required=true 的参数,paramValue 不能为空,否则提交时报错
不允许更换模板 编辑时 templateId 必须与创建时一致,如需换模板请删除后重新创建
多次记录 同一工单可创建多条参数记录(同一模板也可多次记录)
快照机制 记录时快照模板的参数定义,后续模板变更不影响已记录的数据
删除级联 删除记录时,该记录下所有参数明细一起删除

注意事项

  • 参数类型(paramType)字典:1=文本,2=数值,3=布尔,4=日期,前端可根据类型渲染不同的输入控件
  • 新增时先选模板再填值,建议模板选择后立即调用模板详情接口加载参数列表
  • 编辑时模板字段置灰不可修改,只能修改 paramValue 和 recordNo、remark
  • 工单参数记录的权限复用工单权限:创建/修改/删除用 mes:pro-work-order:update,查询用 mes:pro-work-order:query
  • 同一模板在同工单下可创建多次记录(如每班次/每批次记录一次),通过 recordNo 区分