# erpnext_mes **Repository Path**: fwr567/erpnext_mes ## Basic Information - **Project Name**: erpnext_mes - **Description**: https://gitee.com/fwr567/erpnext_mes/ - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: version-16 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2026-08-03 - **Last Updated**: 2026-08-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ERPNext MES 面向车间一线的 ERPNext 制造执行系统。 > **设计原则:能扫码就绝不录入。** > 一线工人拿着扫码枪或手机,全程不打字,就能完成报工、开工、领料、退料、上下架、移库、盘点和追溯绑定。 本应用整合并**完整重写**了原先四个零散应用的全部能力: | 原应用 | 承接到 | 说明 | | --- | --- | --- | | `zelin_wms` | MES Warehouse | 货位(储位)管理,重写为流水账 + 余额表双表结构 | | `sn_tracecode` | MES Traceability | 追溯码体系,修复了原版的 SSRF 与并发抢号问题 | | `lite_mes` | MES Shop Floor | 扫码报工、批量开工、批量领退料 | | `zelin_pp` | MES Planning | MRP 圆整 / 最小起订 / 排产 / 工单拆分 | --- ## 环境要求 - Frappe Framework `>= 15.0.0, < 17.0.0` - ERPNext `>= 15.0.0, < 17.0.0` - Python `>= 3.10` 在 frappe **version-16**(frappe 16.29 / erpnext 16.30)上开发与验证。 ## 安装 ```bash cd ~/frappe-bench bench get-app --branch version-16 https://gitee.com/fwr567/erpnext_mes.git bench --site <你的站点> install-app erpnext_mes bench build --app erpnext_mes bench --site <你的站点> migrate ``` 安装时会自动创建自定义字段、角色、默认扫码规则与标签模板。 ## 模块结构 ``` erpnext_mes/ ├── mes_core/ 统一扫码引擎、扫码规则、扫码日志、全局设置、终端 ├── mes_warehouse/ 货位、货位流水、货位余额、货位调拨、货位盘点 ├── mes_traceability/ 追溯码、追溯规则、发码计数器、绑定、防错校验、标签打印 ├── mes_shop_floor/ 扫码会话、报工、批量开工、领退料 ├── mes_planning/ 计划规则、排产单、工单拆分、多级 BOM ├── public/ PWA 前端 + 桌面端增强脚本 └── www/mes/ 移动扫码工作台入口(/mes) ``` 共 **34 个 DocType**。 --- ## 核心能力 ### 1. 移动扫码工作台(PWA) 访问 `/mes` 即可使用,支持安装到手机桌面(含 manifest 与快捷方式)。 十种作业模式: ``` 报工 · 开工 · 领料 · 退料 · 绑定 · 上架 · 下架 · 移库 · 盘点 · 查询 ``` - **两阶段采集**:先扫码进服务端缓冲区,确认无误后一次性提交生成正式单据,扫错随时删行,不会产生垃圾单据 - **离线队列**:断网时扫码进本地队列,网络恢复自动补传,带幂等键防止重复提交 - **摄像头扫码**:无扫码枪时用手机摄像头(`BarcodeDetector`,支持 Code128 / Code39 / QR / DataMatrix) - **扫码枪友好**:输入框失焦自动抢回,扫码枪永远不会打空 - **强光可读**:车间大字体、触摸目标 ≥ 48px、蜂鸣 + 震动 + 语音三重反馈 - **直达链接**:`/mes?mode=报工` 可从桌面端按钮一键跳到指定模式 角色控制:`MES Operator` / `MES Supervisor` / `MES Warehouse` / `MES Manager`(操作工不显示盘点)。 ### 2. 货位管理(MES Warehouse) - 货位账与 ERPNext 库存单据**原子联动**:Stock Entry / Purchase Receipt / Delivery Note / Stock Reconciliation 提交时自动过账,取消时自动冲销 - **流水账 + 余额表**双表结构,任何时点可追溯 - 批量建货位:`{W}{Z}{A}{R}{L}{P}` 占位符模板,支持 `1-10` 连续段与 `A,B,C` 列举,带实时预览 - 上架建议与 FIFO 拣货建议 - 每小时定时对账,自动比对货位账与 ERPNext Bin ### 3. 追溯体系(MES Traceability) - 追溯码生成规则(日期 / 流水 / 工单等占位符),带**独立计数器表**防并发抢号 - 与 ERPNext `Serial No` / `Batch` 双向打通 - 关键件绑定:整机码 ↔ 关键部件码,支持替代料 - **防错校验**:关键件没绑齐不让报工 - 标签打印:浏览器直接打印 / QZ Tray 指令打印(TSPL、ZPL)/ 服务端下发三种方式 - 内置 **Code128-B 条码生成器**(纯 SVG,离线可用,不依赖任何 CDN) ### 4. 车间执行(MES Shop Floor) - 扫码报工,支持良品 / 不良品与不良原因 - 批量开工:扫一张工单条码带出全部待开工序卡,或按工作站一次性开工 - 批量领退料,自动带出缺料清单 - 工位终端配置 ### 5. 计划(MES Planning) - 物料计划规则:圆整倍数、最小起订量、提前期 - 排产单 → 批量下发工单,带进度回写 - 工单拆分,表达式支持 `300`(保留 300 余量另开)、`/4`(平均拆 4 张)、`1000/4`(校验总量后拆) - 多级 BOM 展开报表(带环路保护) - 采购申请按默认供应商自动拆单 --- ## 桌面端增强 在标准 ERPNext 界面上叠加,不替换原生表单: | 表单 | 增强 | | --- | --- | | Work Order | 扫码报工 / 批量开工 / 扫码领料入口、拆分工单、发放追溯码、缺料提示、排产来源 | | Work Order 列表 | 批量开工、按工作站开工、批量发码、缺料汇总(按物料合并,仓库可一次备齐) | | Job Card | 扫码报工、快速报工、本工序追溯码、进度条 | | Stock Entry | 扫码加行、自动分配货位、FIFO 拣货建议、货位流水 | | Item | 货位分布、发放追溯码、关键件提示 | | Warehouse | 批量建货位(带预览)、货位存货查询 | ## 从旧应用迁移 内置迁移补丁 `erpnext_mes.patches.v16_000_migrate_legacy_apps`,在 `bench migrate` 时自动执行: 1. 先对旧应用数据做快照留档 2. 货位、追溯码、绑定关系、计划规则按新模型搬迁 3. 清理旧应用留下的悬空自定义字段与客户端脚本 > ⚠️ **迁移前务必先做完整备份并验证备份文件可用**(`gzip -t` 校验), > 再卸载旧应用、安装本应用。 ## 权限角色 | 角色 | 说明 | | --- | --- | | `MES Operator` | 一线操作工,扫码作业 | | `MES Supervisor` | 班组长,可盘点、可改他人单据 | | `MES Warehouse` | 仓管,货位相关全部操作 | | `MES Manager` | 管理员,含配置与规则维护 | ## 许可证 MIT