LB_MesClient 解决方案提供面向工厂现场的桌面客户端套件,核心是基于 .NET Framework 4.8 的 DevExpress WinForms 应用 Gs.DevApp,同时配套 Gs.WeightIqc、Gs.WeightLine 等串口称重采集站点以及 Gs.Setup 安装项目。整体采用汉化界面,围绕 WebApi (App.config 中默认为 http://192.168.0.51:8081/) 提供的 MES 服务进行数据交互。
Gs.DevApp/:主客户端,DevFrm/ 按业务领域拆分(QC 质检、Work 制程、Sys 系统配置、Warehouse 仓储等),UserControl/ 提供跨窗体复用的工具条、分页、字典选择器,ToolBox/ 聚合工具类(HTTP、对话框、日志、事件传递等),Entity/ 存放轻量级 DTO。Gs.WeightIqc/ 与 Gs.WeightLine/:串口/Modbus 采集程序,周期性读取重量数据并调用 WorkWeight/EditModel WebApi 上传。Gs.Setup/:Visual Studio Installer (.vdproj) 用于打包发布。packages/:本地 NuGet 缓存,包含 DevExpress、CefSharp、NModbus、System.* 各版本。IsAutoUpdater=1 时启用)。App.config。FrmLogin 处理自动更新、字体加载、账号记忆,调用 User/UserLogin 并将登录 GUID 写入 LoginInfoModel。错误通过 MsgHelper 封装的 MessageBox 呈现。
FrmMain 基于 DevExpress FluentDesignForm,实现:
- 仿 ERP 左侧导航树,通过 UtilityHelper.HttpPost("User/GetUserLoginInfo") 获得菜单、组织信息;
- 页签管理(Dictionary<string, XtraTabPage> 缓存),右键菜单支持关闭当前/其它页;
- 工具栏组织切换、字体显示、版本提示;
- 事件委托 UpdateParentEventArgs 用于子窗体请求父窗体刷新。
DevFrm 下按业务拆分,例如:
- QC:缺陷代码、检验模板、异常管理等窗体,配套 Models DTO;
- Work:生产报工、工序启动 (Frm_WorkStart)、工艺参数采集 (Frm_Work01 包含 Modbus 轮询、SQL Server 数据读取);
- Sys:菜单、组织、编号规则、日志管理等系统配置界面。
窗体普遍调用 UtilityHelper.HttpPost 与后端交互,并使用 WaitDialogForm 指示加载。
UserControl/UcToolBarMenu、UcPageBar 封装常见操作按钮、分页逻辑;ToolBox/UtilityHelper 集成 HTTP 请求、JSON 解析 (ReturnToDynamic/ReturnToTablePage)、资源加载、Grid 默认化、FilterEntity 等;ToolBox/LogHelper 将日志按日期写入 logs/{yyyy-MM-dd}.log。Gs.WeightIqc 与 Gs.WeightLine 共用 ToolBox,利用 SerialPort + NModbus.Serial 读取称重仪寄存器,并通过线程/计时器异步上传;界面提供串口参数、采集开关、线体选择。
Gs.DevApp/App.config 配置 WebApi 地址、日志目录、自动更新、超时(AsyncSeconds)、称重等待等;需按环境调整 IP 与端口。Frm_Work01 等处存在硬编码 SQL Server 连接串(含账号 mesUser 与明文密码)及 Modbus 设备 IP (192.168.60.51:502),部署前必须审查并抽取至配置。logs/,需确保客户端具备写权限。msbuild GsDevSolution.sln /p:Configuration=Debug 编译;Gs.DevApp、Gs.WeightIqc、Gs.WeightLine 默认 AnyCPU 输出至 bin\{Configuration}。msbuild Gs.DevApp\Gs.DevApp.csproj /t:Rebuild /p:Configuration=Release 构建,再通过 Gs.Setup 打包。x86/x64 子目录)。UtilityHelper.HttpPost 捕捉异常后直接抛出原始 ex,缺少重试与具体错误提示;串口线程异常多为吞掉处理。Frm_Work01 超 600 行),业务逻辑与界面混杂,建议拆分服务类或引入 MVP/MVVM 模式。WaitDialogForm、HTTP 请求未显式释放 HttpWebResponse,需注意资源回收与 UI 阻塞。msbuild 构建脚本在 CI 中运行;关键流程(登录、称重上传)可使用集成测试验证。LogHelper 支持日志级别配置、文件滚动和云端收集,并在 HTTP 请求中增加详细上下文。Thread.Abort,改用取消标记与 Task。Frm_Work01、串口相关模块)进行代码审计与重构。Gs.Setup 自动化打包,并记录变更日志。