工位上传检测结果时,系统需要从报文(ps 字段)中解析出参数值,写入生产记录(mes_product_record)。
旧逻辑(已废弃):哪些产线、哪些工位、解析报文第几段、写入哪个工艺,全部硬编码在 Java 代码里,只支持 XT 线的 OP010(底板码)和 OP060/OP100/OP130(程序名)。新线 OP035 等工位的参数因此存不进去。
新逻辑:解析规则改为存放在配置表 mes_param_parse_config 中,通过后台页面维护。新增工位解析规则不需要改代码、不需要重新发版,页面保存后立即生效。
| 文件 | 说明 |
|---|---|
entity/MesParamParseConfig.java |
配置实体 |
dao/MesParamParseConfigDao.java |
DAO |
service/MesParamParseConfigService.java |
查询(带缓存)、保存、停用、删除 |
web/MesParamParseConfigController.java |
后台维护界面入口 |
views/modules/mes/mesParamParseConfigList.html |
列表页 |
views/modules/mes/mesParamParseConfigForm.html |
新增/编辑表单 |
service/MesProductRecordService.java → getQualityParamsXz |
上传解析主逻辑(改为读配置) |
../db/mes_param_parse_config.sql |
建表 + 种子数据 + 菜单 + 角色授权(一键执行) |
在目标库(如 mes_cloud_xz)执行一次:
sql/mes_param_parse_config.sql
脚本包含 4 部分(均可重复执行前先检查是否已存在):
mes_param_parse_config执行后需重启应用(新增的 Controller/页面代码才生效),并清除缓存 + 重新登录(菜单树才刷新)。
登录后左侧菜单:生产管理 → 上传参数解析配置(目录最后一项)
或直接访问:http://系统地址/a/mes/mesParamParseConfig/list
所需权限:mes:mesParamParseConfig:view(查看)、mes:mesParamParseConfig:edit(编辑)。
| 字段 | 说明 | 示例 |
|---|---|---|
| 产线编号 | 上传报文所属产线编号;填 * 表示对所有产线生效 |
XT、XZ |
| 工位号 | 工位号,不带尾缀字母(OP035A 的上传会按 OP035 匹配) | OP035 |
| 工艺编码 | 解析出的值写入 mes_product_record.craft 对应的记录,必须与建档模板中该工位的工艺一致 |
400005 |
| ps报文位置 | 上传报文按竖线 \| 分割后的段序号,从 1 开始 |
1 |
| 结果模式 | 取报文Y/N:该段首字符 Y=OK、N=NG;固定OK:不论首字符结果一律 OK(底板码等绑定类参数用) |
固定OK |
| 描述 | 备注说明 | 底板码1 |
| 状态 | 正常=生效;停用/删除=不生效(保存/停用/删除会自动清缓存) | 正常 |
Y值内容 或 N值内容,首字符为结果,其余为参数值。* + 工位号精确匹配(工位号先经 formatOprno 规范化,如去掉尾缀字母)。假设新线产线编号为 XZ,OP035 上传底板码在报文第 1 段,建档模板中 OP035 的工艺为 400005:
| 产线编号 | 工位号 | 工艺编码 | ps报文位置 | 结果模式 | 描述 |
|---|---|---|---|---|---|
| XZ | OP035 | 400005 | 1 | 固定OK | OP035底板码 |
保存即生效,无需重启。
Q:配置加了,但上传后值还是没存进去?
A:解析只是第一步。落库时系统按 条码 + 工位 + 工艺编码 查找已存在的生产记录再更新——如果建档模板(打码建档/单台建档)里没有该工位+该工艺的记录,值无处可写。请确认:
Q:菜单看不到? A:清除缓存(系统管理→缓存管理→清除全部缓存)并重新登录;确认账号角色已被授予该菜单(拥有"生产管理"的角色已自动授权)。
Q:改了配置需要重启吗? A:不需要。保存/停用/删除会自动清除解析缓存,立即生效。
Q:XT 线原来的规则还在吗? A:在。已作为种子数据迁入配置表(OP010 底板码×2 固定OK、OP060/OP100/OP130 程序名取Y/N),行为与改造前一致。