1. 废弃半成品库存表并统一库存主表 2. 修复列表排序与搜索大小写不敏感问题 3. 新增用户最近登录时间、工单BOM名称字段 4. 完善角色管理、工位选择器功能 5. 增加拧紧数据补录、成品自动回流WMS能力 6. 统一导出时间范围校验规则 7. 丰富物料/备料单筛选条件 8. 调整菜单与权限命名适配产品型号业务
17 KiB
只给方案,待我确认后再动手
1、mes ---> 角色管理 ,名称,为什么显示红色呢? 没有特殊内容,不应该 有颜色区分。没有区分依据 2、mes ---> 账号管理,缺少 最近登录时间。(按照实际业务,总结一下如何更好,比如 用户体系 是不是 新建用户在 最下面好?工单,新建的在最上面最前面)。wms你也捋捋,如果真的需要改动 3、wms ---> 账号管理,列表排序是不是应该统一一下。全项目列表,都应该是创建时间 倒排 id辅助倒排 。 4、搜索条件,都要忽略大小写。例如: wms 的 物料档案 的 物料编码、规格 5、产品型号 和 物料档案 有没有用同一张表,最优方案, 思考一下 6、产品型号 ,缺少 搜索条件、缺少导出。 所有项目,增加数据,数据量大的数据。都要有搜索条件 7、已经被引用的 产品型号、物料档案,等基础数据,不允许被删除。给出提示。 8、工艺流程---> 流程列表 , 缺少 分页。 流程配置 --> 工序编号,不应该限制12,这个自动有用吗? 并且,绑定工位,在这个页面应该去掉,因为有关联工位页面了。请提供合理方案 9、页面业务错误提示: 工位 1 已被启用流程「工位1_默认」绑定,请先在流程/工位中解除绑定 。 和问题8结合审理吧 10、巡检终端:显示图片上传成功,实际,页面显示图片加载失败。显示, 提示签到成功,却换的记录查看,就不应该再让刷新了。 并且,缺少工单号、工位 筛选 11、巡检记录详情 ,没有显示图片, 13、工单号(输入搜索) ,应该按照 创建时间倒排。当前支持模糊搜索 并且支持大小写,这很好。 14、拧紧查询,工单号、SN 条件查询,应该改为支持大小写不敏感 15、扫码录入拧紧数据,显示方式,有问题。应该改成 菜单 拧紧查询 ,有两个tab页签。 扫码录入拧紧数据,应该是补录数据?补录哪个步骤?是不是应该在工位操作,所以,请思考,合理性,不合理,我就会删除它。 16、工件追溯,我输入 SN20260904-0003 ,没看懂数据显示。你审核一下是否合理。工件,名称有歧义? 物料?产品型号? 这些东西,都是如何定义的。你捋捋清楚。工单、工件,名称相互呼应,没问题,产品型号 ? 改为 工件型号 ? 你捋捋清楚,帮助文档说清楚些,统一主表。最优方案 17、 手动报工 菜单, 又把查询、新增,放到了一个页面,并且 报工记录,没有分页,搜索条件大小写 缺少 大小写脱敏。载入工艺步骤有歧义。。。 请提供最优方案 18、工位组合下发,和手动报工 一样的问题。 并且 ,当前工位 和 工位组合 的关系,没有说明确,如果是手动下发,当前工位,是带出来的吧,如果当前工位5,那么5之间的工位是不是就不用再选了? 请提供最优方案。 19、绩效报表, 顶部有操作人选项,缺少工位选项。并且下面三个tab缺少分页。分页,默认20比较合理。并且 导出,应该导出三个tab,对应excel的三个sheet 。 20、4个项目,所有导出,必须输入起始时间。最大时间间隔1年。当前所有有时间筛选条件的列表,默认带出时间,3个月。 21、备料单,缺少搜索条件,丰富些,并且,大小写要脱敏
把你的详细方案写到下面:
详细方案(2026-09-08,只给方案待确认)
标注说明:【已核实】= 已对照实际代码确认根因;改动点均列出具体文件。全程遵守:不打包 exe、前端改动全量重建产物、0 字节校验。
1、角色管理名称红色
【已核实】根因:RoleManage.vue 列表里角色名称用 el-tag,且 SUPER_ADMIN 用了 type="danger"(红色),普通角色是蓝色——颜色被当成了"等级"含义,但没有区分依据。
方案:名称列统一改为纯文本(不用 el-tag 着色)。超管身份已由"权限数=*(全部)"和按钮置灰天然体现,若仍想一眼识别,在名称旁加一个灰色小标"内置"(el-tag effect="plain" type="info"),红/蓝等级色全部去掉。
2、账号管理缺最近登录时间 + 新建记录位置规则
【已核实】MES users 表没有 last_login 字段,AccountManage.vue 也没有该列。
方案:
- MES
users加last_login_at BIGINT(unix 秒),登录成功(含工位终端登录?——工位登录不更新,避免混淆后台使用时间)时写入;账号管理列表加"最近登录时间"列(fmtTime)。WMS 同步加同名字段同名列(两系统一致)。 - 新建记录位置规则(全项目统一标准):
- 业务单据/记录类(工单、备料单、出入库、巡检、日志、报表明细):
created_at desc, id desc——新建在最上面,符合"刚做的最先看到"。 - 基础资料/人员类(账号、角色、物料档案、区域、产品型号、BOM):按
id asc稳定排序——新建在列表底部,位置稳定不打乱使用习惯,新增的也不会"闪跳"到顶。 - 按此标准全局巡检一遍所有列表(WMS+MES),把排序不符的统一掉(与问题 3 合并执行)。
- 业务单据/记录类(工单、备料单、出入库、巡检、日志、报表明细):
3、WMS 账号管理排序 + 全项目列表排序统一
【已核实】WMS 账号列表已是 created_at desc(上轮已改),但按问题 2 的规则,账号属"基础资料类",应改为 id asc。
方案:以问题 2 的两条标准做全项目列表排序审计,输出一张"页面 → 当前排序 → 目标排序"清单,一次性改齐。WMS 账号管理改 id asc。
4、搜索条件忽略大小写(全项目)
【已核实】WMS material.go 物料编码/名称/规格用的 Contains(区分大小写),MES 侧部分查询同理。
方案:两系统所有文本类筛选(编码、名称、规格、SN、批次号、工单号、操作人等)统一换成大小写折叠查询——WMS ent 用自带 *ContainsFold(手写 LOWER 会报 42601,踩过坑),MES 按同样语义处理。给出改动清单逐文件过,EqualFold 用于精确匹配场景。工单号搜索已是模糊+大小写(你说"这很好"),保持并作为基准。
5、产品型号与物料档案是否同表(最优方案思考)
【已核实】现状:MES product_types(产品型号)与 WMS materials(物料档案)是两张独立表、两个系统各自维护,靠编码人工对齐——这与上轮定稿的"编码主数据 WMS 单一来源"矛盾。
行业常规(ERP/PLM 视角):成品也是"物料"的一种,统一物料主数据一张表 + 物料类型字段(原材料/半成品/成品),是最优解;这也和我们已落地的统一库存主表(category 1/2/3)天然呼应。
方案(推荐 A,分两步走控制风险):
- A(推荐):WMS
materials加item_type(1原材料/2半成品/3成品),产品型号档案迁入materials(item_type=3),作为唯一主数据源。MES 的"产品型号"页改为实时从 WMS 拉取(沿用 MaterialExists 同款降级:WMS 挂了允许手填仅提示);MESproduct_types表保留只读过渡,工单/BOM 引用改为按编码关联(本就按 productCode 关联,改动集中在型号页数据源与编码生成——编码生成移到 WMS)。一步到位消除双录。 - B(保守过渡):两表暂保持独立,但 WMS 加只读"产品型号"视图(从 MES 拉取展示),MES 型号页补搜索+导出;待稳定后再并表。
- 两条路的共同前置:先做问题 6/7(型号页搜索、导出、删除保护),无论选哪条都要做。建议选 A,但第一步先只做"materials 加 item_type + WMS 可管理成品档案",MES 切换数据源放第二步验证后执行。
6、产品型号缺搜索条件、缺导出
【已核实】ProductType.vue 只有"新增"按钮,无任何筛选、无导出。
方案:产品型号页加筛选区(名称/编码/类别,模糊+大小写折叠,沿用"统一交互规范"筛选+分页+导出三件套)+ 导出 xlsx(后端全量导出接口)。同样规则顺带审计:所有数据量会增长的数据页面都必须有筛选条件(BOM、关联工位、事件日志已达标,缺的补齐)。
7、被引用的基础数据禁止删除
方案(删除保护统一规则,两系统一致):
- 产品型号:被工单/BOM 引用过 → 拒删,提示"已被 N 张工单引用,建议停用(下架)而非删除"。
- 物料档案:被 BOM/库存/入库单/出库单引用 → 拒删,同样提示。
- 区域:被库存占用(有在库行)→ 拒删。
- 角色:被用户使用 → 拒删(WMS 已有,MES 核实补齐)。
- 实现:各 delete handler 删除前 count 引用,>0 返回 409 + 明确文案;前端无需改(错误提示已有通道)。给出引用关系清单表,逐条实现。
8、工艺流程:列表缺分页 + 工序编号限 12 + 绑定工位重复
【已核实】processflow.go 里 StationNo 硬校验 1..12;ProcessFlow.vue 流程列表无分页。
方案:
- 分页:流程列表接口改真分页(page/pageSize/total,created_at desc),前端 el-pagination,默认 20。
- 工序编号限制:这个 12 来自"12 个物理工位"的产线现实,但放在"工序编号"上语义错了——工序是流程步骤,不该被工位数锁死。建议:工序编号放开为正整数(1~999),只校验"流程内不重复";与工位的对应关系交给"关联工位"页(Station.vue)维护,流程页不再承担工位绑定。若旧数据/PLC 下发依赖 1..12 映射,保留在"关联工位"页做映射校验,流程页彻底解耦。
- 去掉绑定工位:同意去掉——
ProcessFlow.vue删除绑定工位区块,绑定关系只在Station.vue维护(单一职责)。
9、错误提示"工位1已被启用流程「工位1_默认」绑定"
与问题 8 同根因:一个工位只能绑一个启用流程的校验没问题,但触发时机和文案不合理。方案:绑定动作收敛到关联工位页后,此冲突校验只在关联工位页保存时触发;文案改为可操作式:"工位 1 已绑定启用中的流程「工位1_默认」,请先在【关联工位】页为该工位换绑或停用该流程,再保存。"(附跳转链接)。
孙彦飞答:放到 关联工位,就不存在 已关联的提示了,因为,本来就工位就只有一条数据,点击关联,直接更换即可。
10、巡检终端:图片上传成功但显示失败 + 签到后不应刷新 + 缺筛选
【已核实】后端已补 GET /files/:date/:name 路由;"上传成功但加载失败"最可疑的根因是:el-image 的 <img> 请求不带 Authorization 头,若 /files 路由走 JWT 鉴权 → 401 → 图片加载失败。
方案:
- 图片路由加白名单(登录后可看的静态资源不拦 JWT,或 /files 内部接口化);工位终端与管理端统一用同一图片 URL 规则。实施时先用 curl 带/不带 token 各测一次确认根因再改。
- 签到成功提示后当前页面不再轮询刷新(停留页保持已提交状态,"记录查看"切换时才拉新)。
- 记录查看 tab 补:工单号、工位筛选(下拉 12 工位),与现有筛选并列。
11、巡检记录详情没有图片
【已核实】Inspect.vue 记录列表 L180 有图片列,详情抽屉需核对。结合问题 10 根因:若列表缩略图能显示、详情不能,是详情字段没传;若都不能显示,就是 JWT 白名单问题(问题 10 修复后自动解决)。
方案:详情抽屉补"现场照片"区(el-image + 点击预览大图),URL 与列表同一来源;实施时先复现确认归属哪个根因。
13、工单号搜索按创建时间倒排
方案:核实工单列表当前排序(疑似按工单号),统一改为 created_at desc, id desc。模糊+大小写折叠保持现状(已是标杆)。顺带把 MES 所有"输入搜索"的下拉数据源(工单选择框等)也按此排序。
14、拧紧查询大小写不敏感
方案:ListTorqueRecords 的工单号/SN 查询改大小写折叠(精确匹配场景用 EqualFold,模糊场景上 LOWER 语义),与问题 4 一并批量执行。
15、扫码录入拧紧数据 → 改为"拧紧查询"两 tab
【已核实】拧紧查询 Torque.vue 目前是单列表页;"扫码录入拧紧数据"语义混乱(查询页里做录入)。
方案:拧紧查询页改两 tab(录入 tab 在前默认打开,遵循录入/记录范式):
- Tab1 记录查询:现有列表 + 筛选(工单号/SN/工位/时间)+ 分页 + 导出。
- Tab2 拧紧补录:定位为补录(设备漏传/手工修正),字段:工单号、SN、工位、螺丝号、扭矩/角度/结果、补录原因(必填,写操作日志)。合理——补录本质是数据修正,放管理端查询页合理;实时采集不动(那是工位终端/PLC 的事)。若你觉得连补录都不该在管理端,删掉 Tab2 即可,我预留开关。
16、工件追溯显示混乱 + "产品型号"命名歧义
【已核实】Trace.vue 输入 SN 后展示工位时间线/考核/拧紧数据,"产品型号"字段在工件语境下确实歧义。
方案:
- 命名统一(全系统文案):
产品型号→工件型号?——不完全同意:型号是"物"的属性,工件是"这一台"的实例。行业惯用:产品型号(物) → 工单(批次任务) → 工件(实例 SN)。建议保留"产品型号",但追溯页字段改为:工件 SN、所属工单、产品型号(编码+名称)、当前工位、状态,层级一目了然;帮助文档明确三级关系图。若你仍倾向"工件型号",纯文案替换 8 个文件即可(同上次"产品类型→产品型号"套路)。 - 展示重构:Trace 顶部用 descriptions 分组(工件/工单/型号/时间),三个 tab(工位时间线/考核数据/拧紧数据)加分页与筛选;看不懂的字段逐个核对数据来源,来源为空的字段不显示而不是显示空值。
17、手动报工页面(Scan.vue)结构问题
【已核实】router:scan → 手动报工。查询/新增混一页、记录无分页、搜索缺大小写折叠、"载入工艺步骤"歧义。
方案:按多 Tab 范式重做:Tab1 报工录入(前、默认打开)——输入 SN → 自动带出工单/当前工序/应做步骤("载入工艺步骤"改为自动触发,去掉按钮和歧义文案,改提示"已自动载入当前工位应做步骤");Tab2 报工记录(点击加载)——真分页 + 筛选(SN/工单/工位/时间,大小写折叠)+ 导出。
18、工位组合下发(PlcSend.vue)同款问题 + 当前工位语义
方案:
- 页面结构同 17:Tab1 下发录入 / Tab2 下发记录(分页+筛选+导出)。
- 当前工位语义明确化:手选工件 SN 后,"当前工位"由工件实际进度自动带出(只读展示),不再手填;工位组合选择器自动把 ≤ 当前工位的工位默认剔除且禁选(已完成的不用再走),只允许勾选之后的工位——解决"当前工位 5 时 1~5 还能选"的困惑。PLC 下发逻辑不变。
19、绩效报表
【已核实】Performance.vue 顶部只有操作人筛选,三个 tab(按人/按工位/明细)均无分页。
方案:顶部加工位下拉筛选(1~12,可多选);三个 tab 全部改真分页(默认 20);导出改一个 xlsx 三个 sheet(按人/按工位/明细),沿用 WMS sendExcel 机制在 MES 侧补多 sheet 能力(excelize 支持)。
20、导出时间规则(4 个项目统一)
方案:全项目导出统一三条硬规则:
- 必须有起始+结束时间(未选则用默认区间,不允许"全历史"一键导出);
- 最大间隔 1 年(前端校验提示 + 后端 export handler 双重校验,>366 天返回错误);
- 有时间筛选的列表页,时间默认值=近 3 个月。 执行方式:后端在导出 handler 统一加校验函数(一处实现,各导出调用);前端 WMS/MES 各加一个公共校验。逐导出接口过清单。
21、备料单
【已核实】MaterialRequest.vue 现有筛选:日期/工单号/状态——不够丰富。
方案:补筛选:产品编码(模糊+大小写折叠)、物料编码/名称(模糊)、接驳台;工单号等文本条件大小写折叠;列表确认真分页+created_at desc;导出带同筛选条件。帮助文档同步补字段说明。
实施顺序建议(确认后执行)
- 全局横切类(一次改齐、影响面广):4/14/21 大小写折叠、3/13 排序统一、20 导出时间规则、7 删除保护。
- 页面结构重构类:15/17/18 三页多 Tab 重构、19 绩效分页+三 sheet 导出、8/9 工艺流程解耦。
- 修复类:10/11 巡检图片(先 curl 验证 JWT 根因)、2 最近登录时间(两系统 DB 加字段)。
- 设计类单独立项:5 产品型号并表(先做 A 方案第一步)、6 型号页搜索导出、16 追溯展示+命名(等你对"工件型号 vs 产品型号"拍板)。
每批做完
go build ./...验证 + 前端全量重建,不打包 exe、不重启你本地服务。