mes/pro/batch)mes/pro/pallet)mes/pro/bagCode)mes/pro/components/qr-trace-modal)三类码统一采用“先生成唯一二维码,再录入业务信息”:
PB-YYYYYYYY)→ 补录品种、袋型、产线、日期、责任人、生产人员(生成正式批次号 PC...)。PL-YYYYYYYY,不绑定批次)→ 绑定已正式补录且生产中的生产批次(生成正式托盘码 批次号-PXX)。BAG-YYYYYYYY,不绑定批次)→ 录入已正式补录且生产中的生产批次 → 绑定同批次托盘。二维码一经打印不会因“转正式”而失效:扫码追溯同时兼容正式码与临时码,临时码扫码回持久保留并映射到原记录。
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /mes/pro/batch/pre-generate |
预生成批次临时二维码(不录入业务信息) |
| PUT | /mes/pro/batch/fill-info |
批次补录正式信息(生成正式批次号) |
| GET | /mes/pro/batch/get-by-code?code= |
批次扫码追溯(兼容正式码与临时码) |
| GET | /mes/pro/batch/export-qr?batchId= |
按批次导出整套二维码 ZIP |
| POST | /mes/pro/pallet/pre-generate |
预生成托盘临时二维码(不绑定批次) |
| PUT | /mes/pro/pallet/bind-batch |
托盘绑定生产批次(生成正式托盘码) |
| POST | /mes/pro/pallet/export-qr-by-ids |
按编号列表导出托盘二维码 ZIP(支持临时托盘) |
| GET | /mes/pro/pallet/export-qr?batchId= |
按批次导出托盘二维码 ZIP |
| GET | /mes/pro/pallet/get-by-code?code= |
托盘扫码追溯(兼容正式码与临时码) |
| POST | /mes/pro/bag-code/generate |
只生成唯一袋码,不绑定生产批次 |
| PUT | /mes/pro/bag-code/bind-batch |
袋码录入生产批次 |
| GET | /mes/pro/bag-code/get-by-code?code= |
袋码扫码追溯 |
预生成请求(/mes/pro/batch/pre-generate):
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
count |
Integer | 是 | 生成批次个数,必须大于 0 |
remark |
String | 否 | 备注 |
响应 data:[{ id, tempCode }],tempCode 为临时批次码(二维码内容)。
补录信息请求(/mes/pro/batch/fill-info):
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
Long | 是 | 临时批次编号 |
itemId |
Long | 是 | 品种(产品物料)编号 |
lineId |
Long | 是 | 产线编号 |
produceDate |
Datetime | 是 | 生产日期 |
ownerUserId |
Long | 是 | 责任人 |
workers |
List | 是 | 生产人员配置(user_id / worker_type) |
remark |
String | 否 | 备注 |
服务端校验通过后生成正式批次号并将批次状态保持为草稿;code 为正式批次号,tempCode 仍保留供历史扫码。
预生成请求(/mes/pro/pallet/pre-generate):
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
count |
Integer | 是 | 生成数量,必须大于 0 |
capacity |
Integer | 否 | 可装袋数(袋/托盘) |
remark |
String | 否 | 备注 |
响应 data:[{ id, tempCode }],tempCode 为临时托盘码(二维码内容)。
绑定批次请求(/mes/pro/pallet/bind-batch):
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
ids |
Long[] | 是 | 待绑定的临时托盘编号列表 |
batchId |
Long | 是 | 生产批次编号 |
仅允许未绑定批次的临时托盘绑定;目标批次必须已完成正式信息补录且处于生产中。绑定后按批次内序号生成正式托盘码。
按编号导出二维码(/mes/pro/pallet/export-qr-by-ids): 请求 { ids: Long[] },返回 ZIP;未绑定批次的临时托盘会显示“未绑定批次”状态而非虚构批次信息。
/mes/pro/bag-code/bind-batch)| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
ids |
Long[] | 是 | 待录入的袋码 ID 列表 |
batchId |
Long | 是 | 生产批次 ID |
目标批次必须已完成正式信息补录(code 非空)且处于生产中;录入后批次的袋码数量同步重算。托盘一律通过手工“预生成 → 绑定批次 → 绑定袋码”流程维护。
| 字段 | 展示位置 | 说明 |
|---|---|---|
code |
列表、详情、二维码 | 正式批次号 / 正式托盘码 |
tempCode |
列表、详情、扫码追溯(新增) | 临时批次码(PB-)/ 临时托盘码(PL-);未补录/未绑定时作为二维码展示值 |
status(批次) |
列表、追踪 | 未补录临时批次为“草稿”,列表显示“待补录”标签 |
batchId / batchCode(托盘) |
列表、详情 | 未绑定为空,列表显示“未绑定批次”标签 |
| 批次业务字段 | 追溯 | 未补录/未绑定时不展示虚构的品种、产线、日期、责任人 |
| 场景 | 规则 |
|---|---|
| 预生成批次 | 不要求品种/袋型/产线/日期/责任人;生成全局唯一临时批次码,状态为草稿 |
| 批次补录 | 仅允许尚未生成正式批次号的临时批次;重复补录提示“已补录” |
| 批次开始生产 | 未补录正式信息的临时批次不允许进入生产(后端校验 + 前端按钮隐藏) |
| 预生成托盘 | 不要求生产批次;生成全局唯一临时托盘码,batchId 为空 |
| 托盘绑定批次 | 临时托盘仅能绑定已正式补录且生产中的批次;跨批次、重复绑定被拒绝 |
| 临时托盘出库 | 未绑定批次的托盘禁止参与销售出库等业务操作 |
| 袋码录入批次 | 仅允许生产中的正式批次;临时批次不可作为录入目标 |
| 袋码绑定托盘 | 双方必须为同一正式批次;未绑定批次的临时托盘不可参与绑定 |
| 二维码导出 | 临时批次/临时托盘按临时码导出;业务信息为空时不显示虚构内容 |
| 扫码识别 | PB-YYYYYYYY→批次、PL-YYYYYYYY→托盘、批次号-PXX→托盘、BAG-YYYYYYYY→袋码;正式批次号/托盘码照常识别 |
tempCode 不删除,历史打印的临时二维码扫码仍能追溯,勿用正式码覆盖临时码。