# 蓝宝 MES 客户端帮助指南 ## 1. 项目概览 - **解决方案名称**:`GsDevSolution.sln` - **主要用途**:面向制造现场的 MES Windows 客户端,覆盖生产、仓储、质检、系统配置等业务。 - **核心应用**:`Gs.DevApp`(DevExpress WinForms 客户端),辅以称重采集站点与安装程序。 ## 2. 解决方案结构 | 目录 | 说明 | | --- | --- | | `Gs.DevApp/` | 主客户端项目,包含全部业务窗体、工具库、资源及配置。 | | ├─ `DevFrm/` | 业务窗体,按领域划分(`BasicData/` 基础数据、`Work/` 制程、`QC/` 质检、`Sys/` 系统设置等)。 | | ├─ `Entity/` | DTO 与通用模型(如 `PageQueryModel`、`ReturnModel`)。 | | ├─ `ToolBox/` | 公共工具类(HTTP、日志、Modbus、对话框包装等)。 | | ├─ `UserControl/` | 可复用控件(工具栏、分页、数据字典、查询选择器等)。 | | `Gs.WeightIqc/` | IQC 来料称重客户端,负责串口/Modbus 采集与上传。 | | `Gs.WeightLine/` | 产线称重客户端,支持多条线体切换与实时监控。 | | `Gs.Setup/` | Visual Studio Installer 项目(`.vdproj`),用于打包发布。 | | `packages/` | NuGet 缓存目录,包含 DevExpress、CefSharp、NModbus、System.* 依赖。 | ## 3. 核心技术栈 - **.NET Framework 4.8 / C# WinForms**:应用基础框架。 - **DevExpress v22.2**:UI 组件(FluentDesign、XtraGrid、XtraTab、WaitDialog 等)。 - **CefSharp 109 + AutoUpdater.NET**:嵌入式浏览器与可选的自动更新能力。 - **NModbus、SerialPort**:工业设备通信,涵盖 TCP 与 RTU。 - **Newtonsoft.Json、ConfigurationManager**:API 数据解析与配置读取。 - **Oracle.ManagedDataAccess、System.Data.SqlClient**:按场景访问 Oracle 或 SQL Server。 ## 4. DevFrm 功能模块详解 ### 4.1 登录与主框架 - `Program.cs`:单实例守护、CefSharp 初始化、启动登录流程。 - `FrmLogin`:自动更新(AutoUpdater.NET)、字体加载、账号记忆、调用 `User/UserLogin`。 - `FrmMain`:DevExpress FluentDesign 主界面,负责菜单树加载(`User/GetUserLoginInfo`)、页签生命周期、组织切换、底部状态栏及窗口间事件传递。 ### 4.2 基础数据域 - **`BasicData/`**:维护系统主数据。典型窗体包括 `Frm_Customer`(客户)、`Frm_Supplier` & `Frm_SupplierSrm`(供应商与 SRM 关系)、`Frm_MesItems`/`Frm_MesItemsShow`(物料)、`Frm_MesWorkshopLine`(产线)、`Frm_Staff`、`Frm_Department` 等。 - **`BarCode/`**:条码批量生成、打印模板设置,常见窗体如 `Frm_BarcodePrint`, `Frm_BarcodeTemplate`。 - **`JJGZ/`**:夹具工装及设备点检相关主数据,维护工装台账、点检项目。 ### 4.3 仓储管理域 - **`Ck/`(出库)**:覆盖材料、补料、其他、退货、委外等出库流程;如 `Frm_MesItemBl`(补料出库)、`Frm_MesCgthSq`(采购退货申请)、`Frm_MesInvItemOut_SCLL`(生产领料出库)。 - **`Rk/`(入库)**:来料、退库及杂项入库;如 `Frm_MesInvItemArn`(到货入库)、`Frm_MesItemTbl`(材料入库台账)、`Frm_MesItemQtrk`(其他入库)。 - **`Warehouse/`**:库内操作与条码维护;包含 `Frm_MesDbck`(调拨出库)、`Frm_MesRohIn`(原材入库)、`Frm_ArrivalBarcode`、`Frm_InitialBarcode` 等条码处理。 - **`PDA/`**:与手持设备交互的简化界面,提供扫码、理货、盘点等现场动作。 ### 4.4 质量管理域 - **`QC/`**:质量通用模块与字典维护,含缺陷代码(`DefectCode*.cs`)、检验项目(`Frm_MesQaItemsDetect01`)、AQL 抽样设置(`Frm_MesQmAql1`)等,并提供 `Models/` DTO。 - **`IPQC/`**:制程过程检验,如 `Frm_ShouJian`(首件)、`Frm_XunJian`(巡检)、H5 检验界面等。 - **`FQC/`**:成品终检,包括 `Frm_Fqc`、`Frm_FqcDetect01`、异常处理 `MesFqcExceptional`。 - **`RkQC/`**:来料质检,提供 `Frm_Cqfa`(抽检方案)、`Frm_CqfaItems`、`Frm_QtrkDetect01`、`Frm_WwrkDetect01` 等。 - **`WW/`**:委外质量管理,如委外检验、异常回传。 ### 4.5 制造执行域 - **`Work/`**:制程作业核心,如 `Frm_WorkStart`(工序开工)、`Frm_WorkProcesses`(流程卡控)、`Frm_Work01/09`(工站数据采集,含 Modbus、SQLServer 交互)、`Frm_Repair`(返工维修)等。 - **`WOM/`**:工单管理,负责生产任务下达、排产调整、工单追踪。 ### 4.6 销售、报表与统计 - **`Sales/`**:销售订单、发货、退货等前端业务。 - **`Rpt/`**:报表中心,包含 FastReport/DevExpress 报表设计、运行、数据源配置,如 `EasyRptDesign`, `EasyRptEdt`, `SysHelp` 等。 ### 4.7 系统与权限 - **`Sys/`**:系统设置与后台管理。功能包括 `SysMenu`(菜单结构)、`Organization`(组织树)、`DocNoRule`(单号规则)、`SysLog`、`SysHelp`、`Frm_Config` 等。 - **`User/`**:用户、角色、角色授权、密码变更等,如 `User`, `Role`, `RoleSelectAction`, `UserSetPwd`。 ### 4.8 其它支持域 - `JJGZ/`:夹具工装、计量设备台账与点检任务,为质量与维护模块提供基础数据。 - `WW/`:委外协同作业及质检闭环,衔接外协流程。 - `PDA/`:手持终端界面集,用于仓储、生产、质检场景的扫码作业。 - 根目录下的 `FrmMain`、`FrmLogin`、`XtraForm*` 等窗体提供通用示例或调试入口,可作为新模块参考模板。 ## 5. 工具、控件与公共能力 - `ToolBox/UtilityHelper`:封装 `HttpPost`、JSON 解析(`ReturnToDynamic/ReturnToTablePage`)、资源加载、Grid 初始化、过滤条件描述等。 - `ToolBox/LogHelper`:按日期写入 `logs/{yyyy-MM-dd}.log`;GUI 层统一通过 `MsgHelper` 提示。 - `ToolBox/UpdateParentEventArgs`:用于子窗体与主窗体之间的事件通信。 - `UserControl/`:`UcToolBarMenu`、`UcPageBar`、`UcDictionarySelect`、`UcLook*` 等控件提升复用性;`Toast` 用于轻量提示。 ## 6. 辅助项目说明 - **Gs.WeightIqc**:定时读取串口称重数据,通过 `WorkWeight/EditModel` API 上报;含线程管理、串口配置、日志记录。 - **Gs.WeightLine**:类似 IQC,但支持线体下拉选择、双计时器刷新以及更多界面交互。 - **Gs.Setup**:生成安装包或 ClickOnce 部署所需的安装工程,与 Release 构建输出配套。 ## 7. 配置与环境 - 主配置文件:`Gs.DevApp/App.config`(运行期读取 `Gs.DevApp.exe.config`)。 - 关键键值:`WebApiUrl`、`ProductName`、`Version`、`IsAutoUpdater`、`AutoUpdaterXml`、`LogPath`、`AsyncSeconds`、`TimingMailInterval` 等。 - 设备与数据库地址默认指向内网 IP(如 `192.168.0.51`、`192.168.60.51`),部署前需按环境调整。 - 称重模块使用串口参数(波特率、端口号)及 Modbus 站号/寄存器配置;建议将硬编码路径抽离到配置或后台参数表。 - 日志默认写入应用目录下 `logs/`;请确保客户端具备写权限或改为公共数据目录。 ## 8. 构建与部署 - 调试构建:`msbuild GsDevSolution.sln /p:Configuration=Debug` - 发布构建:`msbuild .\Gs.DevApp\Gs.DevApp.csproj /t:Rebuild /p:Configuration=Release` - 可执行文件位于 `bin\{Configuration}\`;发布时需携带 DevExpress、CefSharp 依赖及 `x86/x64` 子目录。 - 安装包:在 Release 构建后打开 `Gs.Setup/Gs.Setup.vdproj` 导出 MSI/EXE。 - 自动更新:若启用 `IsAutoUpdater=1`,需要部署 `AutoUpdaterXml` 指向的更新描述文件与安装包。 ## 9. 开发与调试建议 - 遵循现有目录划分,新增功能优先放置于相应业务子目录。 - 复用 `ToolBox`、`UserControl` 中的公共能力,避免重复实现 HTTP、日志、分页、选择器等逻辑。 - 关键 API 调用前后记录日志,异常时使用 `MsgHelper` 展示友好信息,并在后台日志附带上下文(工站、条码、用户等)。 - 在涉及硬件或长耗时操作时,使用后台线程/异步模式,避免阻塞 UI;替换 `Thread.Abort` 为取消标记可提升稳定性。 - 建议建立手工测试清单:登录、菜单加载、核心业务流程、称重上传、报表打印等。 - 明文凭据和环境 IP 应迁移至安全配置或环境变量,提交前注意脱敏。 --- 如需进一步扩展或培训,可基于本指南快速定位模块入口、核心配置以及构建流程。欢迎根据实际业务持续补充。***