<h1 class="markdown-h1" style="font-style:normal;font-size:14px;font-family:" color:#171717;background-color:#ffffff;"="">
ERP-WMS-MES 一体化系统 — 项目概述与特点
<h2 class="markdown-h2" style="font-style:normal;font-size:16px;font-family:" color:#171717;background-color:#ffffff;"="">
一、项目概述
<p class="markdown-p" style="color:#171717;font-style:normal;font-size:14px;font-family:" background-color:#ffffff;"="">
本项目是一套面向中小型制造/商贸企业的全栈一体化数字化管理系统,覆盖 ERP(企业资源计划)+ WMS(仓储管理)+ MES(制造执行) 三大核心业务域,采用 Go 单体工程 + 三端发布 的架构设计:
<div class="markdown-table-outer-wrapper custom-scrollbar-x" style="border:0px solid #E5E7EB;margin:12px 0px;color:#171717;font-family:" font-size:14px;background-color:#ffffff;"="">
| 端 | 技术栈 | 目标用户 |
|---|---|---|
| 🌐 Server 端 | Go + Gin + GORM + MySQL + Redis | 后端服务(REST API) |
| 🖥️ Windows 桌面客户端 | Go + lxn/walk(Win32 原生 GUI) | 管理员、财务、采购、仓库、车间调度员 |
| 📱 微信小程序 | 微信原生小程序框架 | 销售员、仓管员、质检员、车间工人(移动作业) |
</div>
<p class="markdown-p" style="color:#171717;font-style:normal;font-size:14px;font-family:" background-color:#ffffff;"="">
设计理念:一套数据库、一套服务端、三种交互方式,避免企业中 ERP/库存/生产三套系统彼此割裂、数据不一致的问题。
<h2 class="markdown-h2" style="font-style:normal;font-size:16px;font-family:" color:#171717;background-color:#ffffff;"="">
二、核心业务域
</h2>
<h3 class="markdown-h3" style="font-style:normal;font-size:16px;font-family:" color:#171717;background-color:#ffffff;"="">
🔹 ERP 管理(企业资源计划)
<ul class="markdown-ul" style="color:#171717;font-family:" font-size:14px;background-color:#ffffff;"="">
<li class="markdown-li">
采购申请 → 采购订单 → 入库 → 付款全流程
</li>
<li class="markdown-li">
销售报价 → 销售订单 → 出库 → 收款全流程
</li>
<li class="markdown-li">
受托订单(委外加工)、委托订单
</li>
<li class="markdown-li">
合同管理、退货流程
</li>
<li class="markdown-li">
供应商评估、价格策略
</li>
</ul>
<h3 class="markdown-h3" style="font-style:normal;font-size:16px;font-family:" color:#171717;background-color:#ffffff;"="">
🔹 WMS 仓储(仓库管理系统)
<ul class="markdown-ul" style="color:#171717;font-family:" font-size:14px;background-color:#ffffff;"="">
<li class="markdown-li">
入库(收货 → 上架)、出库(拣货 → 复核 → 发货)全流程
</li>
<li class="markdown-li">
批次/序列号(SN)追溯
</li>
<li class="markdown-li">
盘点计划、实盘、差异处理
</li>
<li class="markdown-li">
库内移库、调拨
</li>
<li class="markdown-li">
库存总览、批次过期预警、低库存预警
</li>
</ul>
<h3 class="markdown-h3" style="font-style:normal;font-size:16px;font-family:" color:#171717;background-color:#ffffff;"="">
🔹 MES 制造(制造执行系统)
<ul class="markdown-ul" style="color:#171717;font-family:" font-size:14px;background-color:#ffffff;"="">
<li class="markdown-li">
工艺路线(Routing)+ 工序设置
</li>
<li class="markdown-li">
工单(Work Order)下发、报工、完工
</li>
<li class="markdown-li">
领料 / 退料
</li>
<li class="markdown-li">
质量检验(QC)与不良处理
</li>
<li class="markdown-li">
生产报表、设备管理
</li>
<li class="markdown-li">
MRP 运算(物料需求计划)
</li>
</ul>
<h3 class="markdown-h3" style="font-style:normal;font-size:16px;font-family:" color:#171717;background-color:#ffffff;"="">
🔹 财务管理
<ul class="markdown-ul" style="color:#171717;font-family:" font-size:14px;background-color:#ffffff;"="">
<li class="markdown-li">
收款/付款登记 + 到期提醒
</li>
<li class="markdown-li">
采购/销售发票关联
</li>
</ul>
<h3 class="markdown-h3" style="font-style:normal;font-size:16px;font-family:" color:#171717;background-color:#ffffff;"="">
🔹 后台与通用中心
<ul class="markdown-ul" style="color:#171717;font-family:" font-size:14px;background-color:#ffffff;"="">
<li class="markdown-li">
公司信息、字典、自定义字段
</li>
<li class="markdown-li">
审批流程配置 + 我的审批
</li>
<li class="markdown-li">
消息中心、预警中心
</li>
<li class="markdown-li">
操作日志、在线会话
</li>
<li class="markdown-li">
IP 过滤 / GeoIP 登录地域
</li>
<li class="markdown-li">
TOTP 两步验证、密码强度/历史/过期策略
</li>
<li class="markdown-li">
打印模板设计器 + 打印预览
</li>
<li class="markdown-li">
AI 助手(内嵌 AI chat 能力)
</li>
<li class="markdown-li">
Excel 批量导入导出
</li>
</ul>
<hr class="markdown-hr" />
<h2 class="markdown-h2" style="font-style:normal;font-size:16px;font-family:" color:#171717;background-color:#ffffff;"="">
三、技术特点(亮点)
</h2>
<h3 class="markdown-h3" style="font-style:normal;font-size:16px;font-family:" color:#171717;background-color:#ffffff;"="">
✅ 架构与工程
<div class="markdown-table-outer-wrapper custom-scrollbar-x" style="border:0px solid #E5E7EB;margin:12px 0px;color:#171717;font-family:" font-size:14px;background-color:#ffffff;"="">
| 特点 | 说明 |
|---|---|
| Go 单体 + 多交付物 | 一个仓库同时产出 Server、Desktop 客户端,共用database/models、services/base风格,维护成本低 |
| Server 端自托管 | erp-wms-server.exe不依赖外部 Web Server,自带托盘图标 + 配置向导 + MySQL 服务启停 + 安装向导(见 mysql_service.go / install_wizard.go) |
| 统一版本注入 | VERSION文件一处管理,-ldflags -X main.AppVersion注入两端 exe |
</div>
<h3 class="markdown-h3" style="font-style:normal;font-size:16px;font-family:" color:#171717;background-color:#ffffff;"="">
✅ 安全体系(6 层防护)
<ol class="markdown-ol" style="color:#171717;font-family:" font-size:14px;background-color:#ffffff;"="">
<li class="markdown-li">
<span style="color:#17181A;">签名层</span>:请求带签名(middleware/api_sign.go+desktop/services/api_sign.go)防重放/篡改
</li>
<li class="markdown-li">
<span style="color:#17181A;">IP 层</span>:黑白名单 + GeoIP 地域限制(middleware/ip_filter.go+util/login_geo.go)
</li>
<li class="markdown-li">
<span style="color:#17181A;">密码层</span>:强度检测 + 历史密码禁止复用 + 强制过期(util/password_*.go)
</li>
<li class="markdown-li">
<span style="color:#17181A;">2FA</span>:TOTP 两步验证(security/totp.go,桌面端独立模块 <a class="markdown-file-link" href="file://C:/cx/MWE/desktop/modules/twofa_settings.go">twofa_settings.go</a>)
</li>
<li class="markdown-li">
<span style="color:#17181A;">加密层</span>:配置字段 AES 加密 + RSA 密码传输(security/crypto.go+config/cipher.go)
</li>
</ol>
<h3 class="markdown-h3" style="font-style:normal;font-size:16px;font-family:" color:#171717;background-color:#ffffff;"="">
✅ 桌面客户端(lxn/walk 原生 GUI)
<div class="markdown-table-outer-wrapper custom-scrollbar-x" style="border:0px solid #E5E7EB;margin:12px 0px;color:#171717;font-family:" font-size:14px;background-color:#ffffff;"="">
| 特点 | 代码/实现 |
|---|---|
| 声明式 UI | Walkdeclarative.*模式,UI 与逻辑解耦 |
| 主题系统 | theme.go 统一定义色板、阴影、圆角、复合组件 |
| 扁平化组件 | CardShadowed/StatCardV2/BrandHeaderGradient/SearchBoxStyled等复合组件刻意减少 HWND 嵌套,避免 Windows HWND 层级上限(~25 层)导致卡死 |
| 异步 UI 机制 | SafeSynchronize/SafeAsync(safe_sync.go)+windowSizeStableChchannel 串行化"最大化 → 创建 Dashboard"时序,从根上杜绝启动卡死 |
| 模块热插拔 | _ "erp-wms-system/desktop/modules/erp"匿名 import 触发init()注册(module.go),新增业务模块只需新建文件 |
| 单例 Dashboard | GetDashboardModule()返回单例,首次打开 / 切换 TAB 走同一BuildTabPage(),保证两次显示一致 |
| 运行时状态持久化 | 列宽/列序(column_layout.json)、登录记住密码(login_config.json)、窗口位置+最大化(window_config.json)自动读写 |
| 按钮栏 JSON 驱动 | buttons.json 静态配置,列表页新增按钮不用改 Go 代码 |
| 标准列表页模板 | standard_list_page.go 统一封装"搜索栏 + 工具栏 + 表格 + 分页 + 操作日志",新模块仅需绑定列和 service API |
| 拼音模糊搜索 | pinyin.go 支持中文/拼音首字母/全拼检索树节点 |
| Swapping 重建机制 | rebuildDashboardAfterMaximize()最大化后如有旧尺寸缓存,RemoveAt+Insert 同一页强制重算布局 |
</div>
<h3 class="markdown-h3" style="font-style:normal;font-size:16px;font-family:" color:#171717;background-color:#ffffff;"="">
✅ 服务端
<div class="markdown-table-outer-wrapper custom-scrollbar-x" style="border:0px solid #E5E7EB;margin:12px 0px;color:#171717;font-family:" font-size:14px;background-color:#ffffff;"="">
| 特点 | 实现 |
|---|---|
| Gin 中间件链式组合 | 路由前统一打 IP 过滤 → 限流 → 签名 → 会话 → 敏感词(router.go) |
| 诊断级日志 | MESDiagnoseMiddleware捕获 BOM/工艺/工单三类接口的请求+响应前 512 字节,输出统一[DIAG]前缀,方便排查"200 OK 但解析失败"问题 |
| GORM + 手写 SQL 双模式 | database/模型 + controller 内复杂查询手写 SQL,兼顾效率和可读性 |
| 定时任务调度器 | scheduler.go 带并发锁,防止多实例部署时重复执行 |
| 敏感词校验 | middleware/sensitive_verify.go+ 客户端common/sensitive.go双层拦截 |
| 数据权限(Data Scope) | util/data_scope.go 支持按部门/本人/自定义过滤业务数据 |
</div>
<h3 class="markdown-h3" style="font-style:normal;font-size:16px;font-family:" color:#171717;background-color:#ffffff;"="">
✅ 小程序端
<ul class="markdown-ul" style="color:#171717;font-family:" font-size:14px;background-color:#ffffff;"="">
<li class="markdown-li">
<span style="color:#17181A;">工具层封装</span>:api/request(统一请求)+cache+scan(扫码)+session+nav+queue+format
</li>
<li class="markdown-li">
<span style="color:#17181A;">核心流程移动化</span>:采购单创建/详情、销售单、入库/出库、移库、库存查询、工单报工、质检——仓管员和车间工人直接手机作业
</li>
</ul>
<h3 class="markdown-h3" style="font-style:normal;font-size:16px;font-family:" color:#171717;background-color:#ffffff;"="">
✅ 部署与运维
<div class="markdown-table-outer-wrapper custom-scrollbar-x" style="border:0px solid #E5E7EB;margin:12px 0px;color:#171717;font-family:" font-size:14px;background-color:#ffffff;"="">
| 工具 | 用途 |
|---|---|
| 启动MySQL.bat | 一键拉数据库 |
| 启动客户端.bat | ① 启动 server → ② 轮询/api/admin/permissions就绪 → ③ 拉起 desktop exe(对非技术用户零门槛) |
| 停止服务.bat / restart.bat | 日常运维 |
| build_client.bat / build_server.bat | 一键编译,Server 编译后 VERSION patch 位自动 +1 |
| deploy/init_db.sql | 初始化所有表 + 种子数据(admin/admin123) |
| 运行时 Win32 资源内嵌 | manifest.xml(DPI 感知 + requireAdministrator)+mi_icon.ico+ 版本信息打包进rsrc.syso,exe 单文件部署,无外部依赖 |
</div>
<hr class="markdown-hr" />
<h2 class="markdown-h2" style="font-style:normal;font-size:16px;font-family:" color:#171717;background-color:#ffffff;"="">
四、一句话总结
</h2>
<blockquote class="markdown-blockquote" style="color:#171717;font-family:" font-size:14px;background-color:#ffffff;"="">
一套 Go 代码 → 产出 Server(HTTP API)+ Windows 原生桌面客户端(GUI)+ 微信小程序(移动端)三个交付物; 覆盖 ERP + WMS + MES + 财务 + 审批 + 安全六大域,带托盘部署向导、多层安全防护、异步 UI 防卡死机制、运行时状态持久化,是面向中小制造企业开箱即用的一体化数字管理中台。
</blockquote>
评论一下?