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

DevFrm 模块详解

本文件梳理 Gs.DevApp/DevFrm/ 目录下的业务模块、核心窗体以及与后台服务、硬件的交互方式,便于新成员快速了解各子系统职责与扩展点。

目录总览

子目录 业务范围 关键说明
FrmMain.* 主框架 DevExpress FluentDesign 主窗体,负责导航树、页签、全局事件
FrmLogin.* 登录入口 自动更新、字体配置、账号记忆、调用 User/UserLogin
BasicData/ 基础主数据 客户、供应商、物料、组织、工序、班组等
BarCode/ 条码管理 条码定义、打印、箱码/托码生成
Ck/ 仓库出库 补料、材料、其他、委外等出库流程
Rk/ 仓库入库 到货、检验、退库、其他入库
Warehouse/ 库内作业 库存调整、条码初始化、移库、报表
QC/ 质量通用 缺陷代码、检验项目、AQL 标准、质检模型
IPQC/ 过程检验 首件、巡检、过程数据采集(含 H5 版本)
FQC/ 成品检验 出厂终检、异常处理、批量判定
RkQC/ 来料检验 抽检方案、检验执行、异常反馈
Work/ 制程执行 工序开工、报工、工站采集、返修
WOM/ 工单管理 生产工单、排程、派工
WW/ 委外管理 委外工单、检验、回传
PDA/ 手持终端 PDA 扫码作业(仓储、质检、制程)
JJGZ/ 工装治具 夹具台账、点检任务、维修记录
Sales/ 销售业务 销售订单、发货、退货
Rpt/ 报表平台 FastReport/DevExpress 报表设计、运行
Sys/ 系统设置 菜单、组织、日志、编号、打印配置
User/ 权限管理 用户、角色、授权、密码

下文按模块分组说明关键窗体、功能流程以及依赖。

1. 主框架与基础设施

  • FrmMain
  • 基类:DevExpress.XtraBars.FluentDesignSystem.FluentDesignForm
  • 功能:加载用户菜单 (User/GetUserLoginInfo)、维护 TabPage 缓存、处理右键关闭、组织切换、页签间事件传递 (UpdateParentEventArgs)。
  • 关键依赖:UtilityHelper.HttpPostMsgHelperLoginInfoModel
  • FrmLogin
  • 功能:自动更新 (AutoUpdater.NET)、字体记忆 (Settings.Default.fontSizeName)、账号记忆、调用 User/UserLogin,成功后写入 LoginInfoModel.CurrentUser
  • 依赖:UtilityHelper.HttpPostMsgHelperSettings

这些文件位于 DevFrm 根目录,是项目入口,其他模块以树状菜单的形式挂载。

2. 基础数据域

2.1 BasicData/

维护系统静态主数据,为后续流程提供基础字段。典型窗体:
- Frm_Customer/Frm_Supplier:客户、供应商主数据,支持增删改查、启停用。
- Frm_MesItems/Frm_MesItemsShow:物料主档与浏览。
- Frm_MesUnitFrm_MesDepotFrm_MesWorkshopLine:计量单位、仓库、产线信息。
- Frm_StaffFrm_Department:人员、组织架构。
- Frm_MesItemType 等分类维护。
这些窗体通常继承自 XtraForm,利用 UtilityHelper.HttpPost 与 WebApi 通信,使用 UcToolBarMenuUcPageBar 等控件完成分页与操作。

2.2 BarCode/

关注条码策略:
- Frm_BoxCode:箱码生成规则设置。
- SelectBoxItem/SelectBoxDaa:条码与物料关联选择弹窗。
- 相关逻辑依赖 UserControl 中的选择控件、条码打印工具。

2.3 JJGZ/

工装、治具、点检:
- 管理夹具台账、点检计划、异常记录。
- 常与质检、制程模块联合使用,确保设备状态合格。

3. 仓储域

3.1 Ck/(出库)

覆盖多种出库流程:
- Frm_MesItemBl/Frm_MesItemBlDj:补料申请与单据。
- Frm_MesItemCl 系列:材料出库。
- Frm_MesItemQt:其他出库。
- Frm_MesCgthSq:采购退货申请。
- Frm_MesInvItemOut_SCLL:生产领料出库。
窗体结合 UcToolBarMenuSelectMesCgthSqUcDictionarySelect 等组件完成单据编制和审批。

3.2 Rk/(入库)

  • Frm_MesInvItemArn:到货入库。
  • Frm_MesInvItemIns:质检入库。
  • Frm_MesItemTbl:入库台账。
  • Frm_MesItemQtrk 系列:其他入库。
    Ck/ 类似,通过 WebApi 处理单据流转,支持附件上传、条码生成。

3.3 Warehouse/

库内操作,偏向库存调整、条码维护:
- Frm_MesDbck:调拨出库 / 库存调整。
- Frm_MesRohIn:原材入库处理。
- Frm_ArrivalBarcodeFrm_InitialBarcode:条码初始化、补打。
与 PDA 模块联动,常使用 UcLookKwUcLookCk 等控件。

3.4 PDA/

针对手持终端的 WinForms 界面,聚焦扫码场景:
- 包含入库、出库、盘点、移库等简化窗体。
- 通常提供大按钮、扫码框,调用相同的 WebApi。

4. 质量域

4.1 QC/(通用)

  • DefectCode*.cs:缺陷代码维护(按业务场景区分:Qc, Rk, Ck 等)。
  • Frm_MesQaItemsDetect01Frm_MesQaItemsDetect01Input:检验项目与录入。
  • Frm_MesQmAql1Frm_MesQmAql2:AQL 抽样配置。
  • Models/:质检领域实体模型(如 MesDefectCode, MesSysLookups)。

4.2 IPQC/(过程检验)

  • Frm_ShouJian 系列:首件检验。
  • Frm_XunJian 系列:巡检。
  • Frm_ShouJianDetect01H5:基于 Web 的检验界面。
    通常在工序产线上使用,结合 Work/ 数据。

4.3 FQC/(成品检验)

  • Frm_Fqc:总览。
  • Frm_FqcDetect01:检验执行。
  • MesFqcExceptional:异常处理。
  • SelectFqcBox:选择批次、箱码。

4.4 RkQC/(来料检验)

  • Frm_CqfaFrm_CqfaItems:抽检方案定义。
  • Frm_Cqsq:抽检申请。
  • Frm_CqDetect01Frm_QtrkDetect01Frm_WwrkDetect01:来料/委外/完工入库检验。

4.5 WW/

  • 委外加工质量管理,如委外验收、异常回馈。
  • WOM/RkQC/ 协同,形成外协闭环。

5. 制造执行域

5.1 Work/

核心工位与报工逻辑:
- Frm_WorkStart:工序开工、人员设备绑定。
- Frm_WorkProcesses:工艺流程、过站控制。
- Frm_Work01Frm_Work09:采集 Modbus、SerialPort、SQL Server 数据,调用 WorkCollect/ API 汇报。
- Frm_Repair:返修流程。
- SelectProcess 等选择窗体辅助筛选工序、设备。

5.2 WOM/

  • 工单下达、派工、拆分合并、进度追踪。
  • Work/Warehouse/QC/ 共享数据,保证生产闭环。

5.3 PDA/(与生产关联)

  • 为产线提供的简化扫码输入界面(如报工、报废、工位切换),与 Work/ API 对接。

6. 销售与报表

6.1 Sales/

  • Frm_SalesOrderFrm_SalesDelivery 等(具体文件根据版本配置)。
  • 管理销售订单、发货、退货,与仓储模块联动。

6.2 Rpt/

  • 报表框架:EasyRptDesign, EasyRptEdt, EasyRptEdtShow
  • 支持 FastReport 与 DevExpress 报表设计器。
  • SysHelp, ShowRptWizard 等提供展示、说明。

7. 系统与权限

7.1 Sys/

  • SysMenu:菜单结构维护。
  • Organization:组织树。
  • DocNoRule:单据编号规则。
  • SysLog:系统日志。
  • Frm_Config:系统配置,可读取/写入 App.config
  • SysHelp:帮助文档编辑展示。

7.2 User/

  • User:用户维护。
  • RoleRoleSelectAction:角色与权限分配。
  • UserSelectRoleUserSetPwd:角色分配、重置密码。
  • 使用 UcDictionarySelect, UcTreeList 等控件呈现权限树。

8. 公共控件与工具

尽管位于 UserControl/ToolBox/,但与 DevFrm 模块紧密耦合:
- UcToolBarMenu, UcPageBar, UcDictionarySelect, UcLook* 控件在大部分窗体中复用。
- UtilityHelper 提供 HttpPost, JSON 解析, Grid 初始化, 资源访问;LogHelper 写日志;MsgHelper 统一弹窗。
- UpdateParentEventArgs 用于子窗体通知父窗体刷新(如审核后刷新列表)。

9. 依赖与扩展注意事项

  1. API 约定:绝大多数窗体通过 UtilityHelper.HttpPost(WebApiUrl, route, json) 调用后台,需确保 App.config 配置正确。新增模块时优先复用该方式。
  2. DevExpress 控件:窗体设计依赖 DevExpress v22.2,新增界面请使用同版本控件,保持 Look&Feel 一致。
  3. 线程与硬件交互Work/Frm_Work01Gs.Weight* 等模块使用 NModbusSerialPort,在 DevFrm 新增类似功能时需注意 UI 线程安全与资源释放。
  4. 日志与异常:使用 LogHelper.Debug 按业务模块输出日志,结合 MsgHelper 呈现用户提示。
  5. 国际化:现有窗体中文提示较多,若扩展需考虑统一的资源管理。

通过上述梳理,可快速定位 DevFrm 各模块职责与典型窗体,便于开展二次开发与模块维护。建议结合 HELP.md 总览与 ANALYSIS_REPORT.md 进一步掌握全局架构。***