# LanBMes MES Client (G-MES V2.0)
**蓝宝制造执行系统 (MES) Windows 客户端** [![.NET Framework](https://img.shields.io/badge/.NET%20Framework-4.8-blue.svg)](https://dotnet.microsoft.com/download/dotnet-framework/net48) [![DevExpress](https://img.shields.io/badge/DevExpress-v22.2-orange.svg)](https://www.devexpress.com/) [![License](https://img.shields.io/badge/license-Proprietary-red.svg)]() *为制造车间提供全面的生产执行、仓储管理、质量控制和报表分析能力* [功能特性](#功能特性) • [快速开始](#快速开始) • [项目结构](#项目结构) • [文档](#文档) • [技术栈](#技术栈)
--- ## 📋 目录 - [项目简介](#项目简介) - [功能特性](#功能特性) - [快速开始](#快速开始) - [项目结构](#项目结构) - [核心模块](#核心模块) - [技术栈](#技术栈) - [开发指南](#开发指南) - [部署说明](#部署说明) - [文档](#文档) - [常见问题](#常见问题) --- ## 🎯 项目简介 **LanBMes MES Client** 是一款基于 .NET Framework 4.8 和 DevExpress WinForms 构建的企业级制造执行系统(MES)桌面应用程序。该系统为制造车间提供完整的数字化解决方案,涵盖生产计划、工单管理、生产执行、质量控制、仓储物流等核心业务流程。 ### 核心优势 - 🎨 **现代化界面** - 基于 DevExpress FluentDesign 的直观用户体验 - ⚡ **高度集成** - 与后端 REST API 无缝对接,支持 Oracle/SQL Server 双数据库 - 🔧 **灵活扩展** - 150+ 可复用业务控件,快速构建新功能 - 🔐 **权限管理** - 基于角色的细粒度权限控制 - 📱 **多终端支持** - PC 桌面端 + 手持 PDA 端协同作业 - 🏭 **工业集成** - 支持 Modbus TCP/RTU 设备通信 ### 适用场景 - ✅ 离散制造业 (电子、机械、汽车零部件等) - ✅ 需要精细化车间管理的制造企业 - ✅ 多工序流程管理与质量追溯 - ✅ 仓储物流与条码管理 - ✅ 生产数据采集与实时监控 --- ## ✨ 功能特性 ### 🏭 生产管理 - **工单管理** - 生产任务下达、排产调整、进度追踪 - **生产执行** - 工序开工、数据采集、流程卡管理 - **返工维修** - 不良品返工流程与维修记录 ### 📦 仓储物流 - **出库管理** - 生产领料、补料、退货、其他出库 - **入库管理** - 到货入库、退库、杂项入库 - **库存操作** - 调拨、盘点、条码生成与打印 - **PDA 作业** - 手持终端扫码理货与移动作业 ### ✅ 质量管理 - **IPQC 制程检验** - 首件检验、巡检作业 - **FQC 成品终检** - 成品质量检验与异常处理 - **IQC 来料质检** - 来料抽检、AQL 抽样方案 - **缺陷追踪** - 缺陷代码、检验项目、质量标准维护 ### 📊 基础数据 - **主数据管理** - 客户、供应商、物料、产线、员工、部门 - **工装设备** - 夹具工装台账、计量设备、点检任务 - **条码管理** - 条码批量生成、打印模板设置 ### 📈 报表分析 - **报表设计** - FastReport/DevExpress 可视化报表设计器 - **自定义报表** - 灵活的数据源配置与报表引擎 ### ⚙️ 系统管理 - **用户权限** - 用户、角色、菜单权限、操作权限 - **系统配置** - 菜单结构、组织架构、单号规则、系统日志 --- ## 🚀 快速开始 ### 前置要求 确保您的开发环境满足以下要求: - ✅ **操作系统**: Windows 10/11 或 Windows Server 2016+ - ✅ **开发工具**: Visual Studio 2022 (推荐) 或 Visual Studio 2019 - ✅ **.NET Framework**: 4.8 SDK - ✅ **DevExpress**: v22.2+ 许可证 - ✅ **版本控制**: Git ### 克隆仓库 ```bash git clone cd LB_MesClient/DevApp ``` ### 还原依赖 ```bash # 使用 NuGet 还原包 nuget restore GsDevSolution.sln # 或在 Visual Studio 中: # 右键解决方案 → 还原 NuGet 程序包 ``` ### 配置后端 API 编辑 `Gs.DevApp\App.config`,修改后端 API 地址: ```xml ``` ### 构建与运行 ```bash # 命令行构建 msbuild GsDevSolution.sln /p:Configuration=Debug /p:Platform="Any CPU" # 运行程序 Gs.DevApp\bin\Debug\Gs.DevApp.exe ``` **或者在 Visual Studio 中**: 1. 打开 `GsDevSolution.sln` 2. 设置 `Gs.DevApp` 为启动项目 3. 按 `F5` 开始调试 --- ## 📁 项目结构 ``` GsDevSolution/ │ ├── Gs.DevApp/ # 主客户端应用程序 │ ├── DevFrm/ # 业务窗体 (18个领域模块) │ │ ├── BasicData/ # 基础数据 (客户/供应商/物料/产线) │ │ ├── Work/ # 生产执行 (开工/数据采集/返工) │ │ ├── WOM/ # 工单管理 (任务下达/排产) │ │ ├── QC/ # 质量管理通用模块 │ │ ├── IPQC/ # 制程检验 (首件/巡检) │ │ ├── FQC/ # 成品终检 │ │ ├── RkQC/ # 来料质检 │ │ ├── Ck/ # 出库管理 │ │ ├── Rk/ # 入库管理 │ │ ├── Warehouse/ # 仓库操作 │ │ ├── Sales/ # 销售订单 │ │ ├── WW/ # 委外管理 │ │ ├── Rpt/ # 报表设计 │ │ ├── Sys/ # 系统设置 │ │ ├── User/ # 用户权限 │ │ ├── JJGZ/ # 夹具工装 │ │ ├── BarCode/ # 条码管理 │ │ └── PDA/ # 手持终端 │ ├── Entity/ # 数据传输对象 (DTO) │ ├── ToolBox/ # 公共工具类库 │ │ ├── UtilityHelper.cs # HTTP请求、JSON解析、Grid初始化 │ │ ├── LogHelper.cs # 日志记录 │ │ ├── MsgHelper.cs # 消息提示 │ │ └── ModbusHelper.cs # Modbus通信 │ ├── UserControl/ # 可复用控件库 (150+) │ │ ├── UcToolBarMenu.cs # CRUD工具栏 │ │ ├── UcPageBar.cs # 分页控件 │ │ ├── UcLook*.cs # 60+ 数据查找控件 │ │ └── Toast.cs # Toast提示 │ ├── Resources/ # 资源文件 │ ├── App.config # 应用配置 │ └── Program.cs # 应用入口 │ ├── Gs.WeightIqc/ # IQC 来料称重客户端 ├── Gs.WeightLine/ # 产线称重客户端 ├── Gs.Setup/ # 安装程序项目 (.vdproj) └── packages/ # NuGet 包缓存 总计: - 150+ 业务窗体 - 150+ 可复用控件 - 18 个业务领域模块 ``` --- ## 🧩 核心模块 ### 1️⃣ 基础数据管理 (BasicData) 维护系统运行所需的主数据,包括客户、供应商、物料、产线、员工、部门等核心基础数据。 **关键窗体**: `Frm_Customer`, `Frm_Supplier`, `Frm_MesItems`, `Frm_MesWorkshopLine` ### 2️⃣ 生产执行 (Work) 支持工序开工、数据采集、流程卡管理、返工维修等生产现场作业。支持 Modbus 设备实时数据采集。 **关键窗体**: `Frm_WorkStart`, `Frm_WorkProcesses`, `Frm_Work01~09`, `Frm_Repair` ### 3️⃣ 质量管理 (QC/IPQC/FQC/RkQC) 提供多级质量检验体系,包括制程检验 (IPQC)、成品终检 (FQC)、来料质检 (IQC/RkQC),支持 AQL 抽样方案与缺陷追踪。 **关键窗体**: `Frm_ShouJian`, `Frm_XunJian`, `Frm_Fqc`, `Frm_Cqfa` ### 4️⃣ 仓储管理 (Ck/Rk/Warehouse) 覆盖出入库全流程,支持生产领料、补料、到货入库、退库、调拨、盘点等操作,集成条码管理。 **关键窗体**: `Frm_MesInvItemOut_SCLL`, `Frm_MesInvItemArn`, `Frm_MesDbck`, `Frm_ArrivalBarcode` ### 5️⃣ 工单管理 (WOM) 生产任务下达、工单排产、进度追踪、工单状态管理。 ### 6️⃣ 报表中心 (Rpt) 支持 FastReport 和 DevExpress 报表,提供可视化报表设计器与自定义报表引擎。 **关键窗体**: `EasyRptDesign`, `EasyRptEdt` --- ## 🔧 技术栈 ### 核心框架与库 | 技术 | 版本 | 用途 | |------|------|------| | **.NET Framework** | 4.8 | 应用基础框架 | | **C# WinForms** | - | 桌面应用开发 | | **DevExpress** | v22.2.3 | UI组件库 (FluentDesign, XtraGrid, XtraTab, XtraBars) | ### 第三方组件 | 组件 | 版本 | 用途 | |------|------|------| | **CefSharp** | 109.1.110 | 嵌入式 Chromium 浏览器 | | **AutoUpdater.NET** | 1.9.2 | 自动软件更新 | | **NModbus** | 3.0.81 | 工业设备通信 (Modbus TCP/RTU) | | **Newtonsoft.Json** | 13.0.3 | JSON 序列化 | | **System.Text.Json** | 8.0.4 | 现代 JSON 支持 | | **Oracle.ManagedDataAccess** | 最新 | Oracle 数据库访问 | | **System.Data.SqlClient** | 最新 | SQL Server 数据库访问 | ### 架构模式 ``` ┌─────────────────────────────────────┐ │ UI Layer (DevExpress WinForms) │ ← 用户交互层 ├─────────────────────────────────────┤ │ Business Logic (ToolBox + Forms) │ ← 业务逻辑层 ├─────────────────────────────────────┤ │ REST API (HTTP/JSON) │ ← 通信层 ├─────────────────────────────────────┤ │ Backend API Server │ ← 服务端 (别处项目) ├─────────────────────────────────────┤ │ Data Layer (Oracle/SQL Server) │ ← 数据持久化层 └─────────────────────────────────────┘ ``` --- ## 📚 开发指南 ### 核心设计模式 #### 1. HTTP 请求集中化 所有 API 调用统一使用 `UtilityHelper.HttpPost()`: ```csharp string result = UtilityHelper.HttpPost( "BasicData/Customer/GetListPage", // API路径 "GetListPage", // 方法名 jsonParam, // JSON参数 true // 显示加载框 ); dynamic dy = UtilityHelper.ReturnToDynamic(result); if (dy.code == 200) { // 处理数据 } ``` #### 2. 动态窗体加载 (反射) 通过反射实现菜单驱动的窗体动态加载: ```csharp Form form = (Form)Assembly.GetExecutingAssembly() .CreateInstance("Gs.DevApp.DevFrm.BasicData.Frm_Customer"); ``` **优势**: 菜单结构完全由后端控制,无需修改代码即可调整菜单。 #### 3. 可复用控件优先 项目提供 150+ 可复用控件,新功能开发应优先使用: ```csharp // 使用标准 CRUD 工具栏 UcToolBarMenu toolBar = new UcToolBarMenu(); toolBar.AddClick += BtnAdd_Click; // 使用分页控件 UcPageBar pageBar = new UcPageBar(); pageBar.PageChanged += LoadData; // 使用数据查找控件 UcLookCustomer lookCustomer = new UcLookCustomer(); lookCustomer.ShowDialog(); ``` ### 开发规范 #### 命名规范 | 类型 | 规则 | 示例 | |------|------|------| | 主窗体 | `Frm_{业务名}` | `Frm_Customer.cs` | | 编辑窗体 | `Frm_{业务名}Edit` | `Frm_CustomerEdit.cs` | | 对话框 | `Dlg_{业务名}` | `Dlg_SelectCustomer.cs` | | 用户控件 | `Uc{功能名}` | `UcToolBarMenu.cs` | #### 异常处理规范 ```csharp try { string result = UtilityHelper.HttpPost(...); dynamic dy = UtilityHelper.ReturnToDynamic(result); if (dy.code == 200) { // 成功处理 } else { MsgHelper.ShowError(dy.msg.ToString()); LogHelper.WriteLog($"API Error: {dy.msg}", LogHelper.LogType.Error); } } catch (Exception ex) { MsgHelper.ShowError($"操作失败: {ex.Message}"); LogHelper.WriteLog($"Exception: {ex}", LogHelper.LogType.Error); } ``` #### 日志记录规范 ```csharp // 关键操作前后记录日志 LogHelper.WriteLog($"开始保存客户数据: {customerId}", LogHelper.LogType.Info); // 日志位置: logs/{yyyy-MM-dd}.log ``` ### 添加新模块 1. 在 `DevFrm/` 下创建新目录 2. 创建主窗体 (继承 `XtraForm`) 3. 使用 `UtilityHelper.HttpPost()` 调用 API 4. 复用 `UserControl/` 中的控件 5. 在后端添加对应菜单项 --- ## 🚢 部署说明 ### 构建 Release 版本 ```bash # 清理并重新构建 msbuild Gs.DevApp\Gs.DevApp.csproj /t:Clean msbuild Gs.DevApp\Gs.DevApp.csproj /t:Rebuild /p:Configuration=Release /p:Platform="Any CPU" ``` ### 配置清单 部署前需修改 `Gs.DevApp.exe.config`: - ✅ 修改 `WebApiUrl` 为生产环境 API 地址 - ✅ 配置 `IsAutoUpdater` 和 `AutoUpdaterXml` - ✅ 确保 `x86/` 和 `x64/` 目录完整 (CefSharp 依赖) ### 使用安装程序 1. 打开 `Gs.Setup\Gs.Setup.vdproj` 2. 配置版本号和产品信息 3. 生成 MSI 安装包 4. 输出: `Gs.Setup\Release\Gs.Setup.msi` ### 自动更新 编辑 `AutoUpdater.xml`: ```xml 0.2.0.0 http://your-server/updates/Gs.DevApp_v0.2.0.0.zip 更新内容...]]> false ``` --- ## 📖 文档 ### 完整文档 - 📘 **[HELP.md](HELP.md)** - 完整的项目帮助指南 (中文,1400+ 行) - 📗 **[CLAUDE.md](CLAUDE.md)** - Claude Code AI 辅助开发指南 - 📙 **[DEVFRM_GUIDE.md](DEVFRM_GUIDE.md)** - DevFrm 模块详细指南 (如存在) - 📕 **[ANALYSIS_REPORT.md](ANALYSIS_REPORT.md)** - 架构分析报告 (如存在) ### 快速链接 - [项目概览](HELP.md#1-项目概览) - [构建与运行](HELP.md#5-构建与运行) - [功能模块详解](HELP.md#6-devfrm-功能模块详解) - [架构与设计模式](HELP.md#7-架构与设计模式) - [配置说明](HELP.md#9-配置说明) - [开发规范](HELP.md#11-开发规范与最佳实践) - [常见问题](HELP.md#12-常见问题与故障排查) --- ## ❓ 常见问题 ### Q: DevExpress 组件找不到? **A**: 确保已安装 DevExpress v22.2 并配置 NuGet 源: ``` 工具 → NuGet 包管理器 → 程序包管理器设置 → 程序包源 添加: https://nuget.devexpress.com//api ``` ### Q: CefSharp 加载失败? **A**: 确保输出目录包含 `x86/` 和 `x64/` 子目录及其内容。 ### Q: 无法连接到 API 服务器? **A**: 检查 `App.config` 中的 `WebApiUrl` 配置,确保后端 API 服务正常运行。 ### Q: 如何调试多个实例? **A**: 在 `Program.cs` 中注释单实例检查代码: ```csharp // Process[] MyProcesses = Process.GetProcessesByName("Gs.DevApp"); // if (MyProcesses.Length > 1) { MyProcesses[0].Kill(); } ``` ### Q: 日志文件在哪里? **A**: 日志位置: `logs/{yyyy-MM-dd}.log` (应用程序目录下) --- ## 📜 许可证 本项目为专有软件,未经授权不得复制、分发或修改。 --- ## 🤝 贡献与支持 如需技术支持或报告问题,请联系开发团队。 --- ## 📊 项目统计 - **总代码行数**: 约 100,000+ 行 - **业务窗体**: 150+ 个 - **可复用控件**: 150+ 个 - **业务领域**: 18 个模块 - **支持数据库**: Oracle + SQL Server - **开发周期**: 持续迭代中 ---
**G-MES V2.0** - 智能制造,数字未来 *最后更新: 2025-10-16*