编辑 | blame | 历史 | 原始文档

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

克隆仓库

git clone <repository_url>
cd LB_MesClient/DevApp

还原依赖

# 使用 NuGet 还原包
nuget restore GsDevSolution.sln

# 或在 Visual Studio 中:
# 右键解决方案 → 还原 NuGet 程序包

配置后端 API

编辑 Gs.DevApp\App.config,修改后端 API 地址:

<add key="WebApiUrl" value="http://your-api-server:port/" />

构建与运行

# 命令行构建
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():

string result = UtilityHelper.HttpPost(
    "BasicData/Customer/GetListPage",  // API路径
    "GetListPage",                      // 方法名
    jsonParam,                          // JSON参数
    true                                // 显示加载框
);

dynamic dy = UtilityHelper.ReturnToDynamic(result);
if (dy.code == 200) {
    // 处理数据
}

2. 动态窗体加载 (反射)

通过反射实现菜单驱动的窗体动态加载:

Form form = (Form)Assembly.GetExecutingAssembly()
    .CreateInstance("Gs.DevApp.DevFrm.BasicData.Frm_Customer");

优势: 菜单结构完全由后端控制,无需修改代码即可调整菜单。

3. 可复用控件优先

项目提供 150+ 可复用控件,新功能开发应优先使用:

// 使用标准 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

异常处理规范

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);
}

日志记录规范

// 关键操作前后记录日志
LogHelper.WriteLog($"开始保存客户数据: {customerId}", LogHelper.LogType.Info);

// 日志位置: logs/{yyyy-MM-dd}.log

添加新模块

  1. DevFrm/ 下创建新目录
  2. 创建主窗体 (继承 XtraForm)
  3. 使用 UtilityHelper.HttpPost() 调用 API
  4. 复用 UserControl/ 中的控件
  5. 在后端添加对应菜单项

🚢 部署说明

构建 Release 版本

# 清理并重新构建
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 地址
  • ✅ 配置 IsAutoUpdaterAutoUpdaterXml
  • ✅ 确保 x86/x64/ 目录完整 (CefSharp 依赖)

使用安装程序

  1. 打开 Gs.Setup\Gs.Setup.vdproj
  2. 配置版本号和产品信息
  3. 生成 MSI 安装包
  4. 输出: Gs.Setup\Release\Gs.Setup.msi

自动更新

编辑 AutoUpdater.xml:

<?xml version="1.0" encoding="utf-8"?>
<update>
  <version>0.2.0.0</version>
  <url>http://your-server/updates/Gs.DevApp_v0.2.0.0.zip</url>
  <changelog><![CDATA[<h3>更新内容</h3>...]]></changelog>
  <mandatory>false</mandatory>
</update>

📖 文档

完整文档

快速链接


❓ 常见问题

Q: DevExpress 组件找不到?

A: 确保已安装 DevExpress v22.2 并配置 NuGet 源:

工具 → NuGet 包管理器 → 程序包管理器设置 → 程序包源
添加: https://nuget.devexpress.com/<your_feed_key>/api

Q: CefSharp 加载失败?

A: 确保输出目录包含 x86/x64/ 子目录及其内容。

Q: 无法连接到 API 服务器?

A: 检查 App.config 中的 WebApiUrl 配置,确保后端 API 服务正常运行。

Q: 如何调试多个实例?

A: 在 Program.cs 中注释单实例检查代码:

// 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*