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

模块详解指南

本指南汇总 GS MES Service 解决方案内各项目/模块的职责、核心接口以及与其他模块的依赖关系,供开发、测试与运维人员快速定位代码位置与业务边界。

通用基础组件

  • Gs.HostIISGs.HostIIS/Program.csGs.HostIIS/RequestAuthorizeAttribute.cs
  • 承载 ASP.NET Core 主机,统一注册 MVC、全局授权过滤、CORS、Swagger 分组及静态目录。
  • 通过 builder.AddCustomInject()app.AddCustomController() 扫描所有引用程序集的服务,实现模块级热插拔。
  • 解析配置项 ServicesPathDownPathUploadPath,对应 Swagger XML、下载与上传目录。
  • Gs.Toolbox(如 Gs.Toolbox\Repository.csGs.Toolbox\ApiCore\Extensions
  • 提供 SqlSugar 仓储基类、统一返回模型、Excel/日志/HTTP 工具以及 DI 标记接口(ISingletonIScopeITransient)。
  • ApplicationBuilderExtension 根据接口标记自动注入,实现模块零散类的集中注册。
  • ApplicationExtensionCustomControllerFeatureProvider 协助按模块动态装配控制器。
  • Gs.Entity
  • 集中维护 SqlSugar 实体、DTO 及公共枚举,供所有业务模块复用,减少重复定义。

业务领域模块

Gs.BaseInfo

  • 责任:维护主数据,如物料、供应商、工位、部门等,为仓储、销售、生产模块提供基础信息。
  • 主要服务:
  • Gs.BaseInfo\Services\MesItemsManager.cs:物料档案分页查询、映射单位/仓库/物料组等关联信息。
  • Gs.BaseInfo\Services\MesSupplierManager.csMesCustomerManager.cs:供应商/客户资料增删改查。
  • Gs.BaseInfo\Services\PrintInfoManager.csPrintUserManager.cs:打印模板及用户设备信息。
  • Gs.BaseInfo\Services\SysDepartmentManager.csMesPositionManager.cs:组织及岗位管理。
  • 依赖:大量复用 Repository<T> 提供的通用分页、事务封装,并读取 UtilityHelper 中的用户上下文数据。

Gs.Sales

  • 责任:销售订单、发货、退货等销售履约流程的对接与查询。
  • 主要服务:
  • Gs.Sales\SalesManager.cs:销售订单分页、条件过滤、调用存储过程。
  • Gs.Sales\SalesDeliverManager.csSalesDeliverDjManager.cs:发货单及其明细、单据打印/审核。
  • Gs.Sales\SalesReturnManager.csSalesReturnDjManager.cs:销售退货申请、执行及单据管理。
  • 特点:以 ApiGroup(ApiGroupNames.XS) 标识,在 Swagger 中归于销售分组,接口多返回动态对象,依赖 SqlClient 调用存储过程满足复杂报表需求。

Gs.Warehouse

  • 责任:仓储管理与库存处理,覆盖收发存、调拨、盘点、条码与自动入库。
  • 主要服务:
  • Gs.Warehouse\Services\MesInvItemOutsManager.cs:核心出库逻辑(成品、半成品、原材料),支持分页、批量操作、状态回写。
  • MesInvItemArnManager.csMesInvItemArnDetailManager.cs:到货通知、验收入库、异常处理。
  • MesInvItemMovesManager.csMesInvItemMovesDjManager.cs:仓库调拨及调拨单追踪。
  • MesInvItemBarcodesManager.csVArrivalBarcodeManager.cs:条码生成、校验与追溯。
  • MesShouTuoManager.csMesShouTuoDjManager.cs:收托、退托业务。
  • MesAutoRkController.cs:自动入库接口,与设备/产线集成。
  • 依赖:与 Gs.BaseInfo 的仓库、物料信息紧密关联;多处调用 InitialBarcode DTO;部分逻辑包含事务 UseTransaction

Gs.Report

  • 责任:报表查询、导出与看板呈现,覆盖生产、质量、仓储等多场景。
  • 主要服务:
  • Gs.Report\ReportController.cs:通用报表入口,按报表代码调度不同查询。
  • Gs.Report\XlsInOutController.cs:出入库统计 Excel 导出,大量使用 ExcelHelper
  • Gs.Report\CkController.csQLController.cs:仓库库存、质量统计。
  • Gs.Report\WOTraceCodes.csBTDetails.cs:工单追踪与条码明细。
  • YS_* 系列:以 YS 前缀命名的专用报表(设备保养、进货检验、首检巡检等),多返回 DataTable/Excel 文件。
  • 特点:多数接口为 POST,接受动态条件、分页及导出标记;深度依赖 SQL 存储过程和视图。

Gs.Sys

  • 责任:系统配置与权限管理。
  • 主要服务:
  • Gs.Sys\Services\UserController.cs:用户维护、角色绑定、登录校验。
  • RoleController.csMenuActionController.cs:角色与菜单权限配置,支持树形结构返回。
  • OrganizationController.cs:组织架构维护,供其他模块按组织过滤数据。
  • DocNoRuleController.cs:单号规则管理,生成业务单据编号。
  • MesConfigController.cs, MesFileController.cs:系统通用配置、文件管理。
  • MesSysPageviewManager.cs:门户页面访问统计。
  • SysLogController.cs:操作日志查询。
  • 模型:Gs.Sys\Models 包含 SysRole, SysUserRole, SysDocRule 等实体,对应数据库权限表。
  • 依赖:为全局认证和授权服务,其他模块通过 _userGuid_orgFids 控制数据权限。

GS.QC

  • 责任:质量管理(来料、制程、出货检验)及缺陷库管理。
  • 主要服务:
  • GS.QC\Service\FqcManager.csFqcItemsManager.cs:成品终检任务、抽样结果、判定。
  • IpqcShouManager.csIpqcXunManager.cs:制程首检、巡检流程。
  • MesQaItemsDetect01Manager.cs:来料检验明细处理。
  • MesDefectCodeManager.cs 与模型 MesDefectCode.cs:缺陷代码维护与层级关系。
  • RkqcManager.csRkqcSqManager.csRkqcfaManager.cs:入库质检申请、方案及执行。
  • MesQmCheckitemManager.csMesQmCheckitemDtManager.cs:检验项目及明细维护。
  • 特点:大量使用抽样方案模型 MesQmAql*;与仓储模块共享条码及到货单数据。

Gs.JJGZ

  • 责任:计件计价、工时与考勤统计。
  • 主要服务:
  • Gs.JJGZ\MesJjgzScheduleController.cs:排班计划、产线班组排程。
  • MesJjgzTimeTypeController.cs:工时类型定义(加班、请假等)。
  • MesJjgzJjsalaryController.csMesJjgzJssalaryController.cs:计件、计时薪资计算。
  • MesJjgzErrorJsController.cs:计薪异常处理与调整。
  • MesAttanConController.csMesDeToLineController.cs:考勤、岗位到线关系维护。
  • 依赖:需要来自生产、工单、人员模块的数据;可能调用存储过程生成薪资报表。

Gs.Wom

  • 责任:车间制造执行与工序采集。
  • 主要服务:
  • Gs.Wom\Service\MesProcInfoController.cs:工序工艺信息、节点维护。
  • MesProdGx0Controller.cs, WompbaManager.cs, WompbaGxManager.cs:工单排产、工序分配、生产工艺路线。
  • MesWorkProdManager.csMesScrkDjManager.cs:生产上线、入库单据。
  • FanGongManager.csMesBackFlashController.cs:返工/回冲流程。
  • WorkService\WorkCollectController.csWorkTechniqueController.cs:产线看板、工艺资料查询、工序扫码采集。
  • WorkProController.csWorkRepairController.csWorkWeightController.cs:生产进度、维修、称重等现场操作接口。
  • 依赖:与条码、仓储、工单、人员信息紧密耦合,是 MES 执行层的核心。

Gs.Ww

  • 责任:委外加工业务(外协生产)。
  • 主要服务:
  • Gs.Ww\WWBlManager.csWWBlDJManager.cs:委外补料申请与单据。
  • WWLLDJManager.csWWTBlDJManager.cs:委外领料、退料单据。
  • WWTblManager.cs:委外退补料处理。
  • ProductionOrderManager.csWWPCManager.cs:委外生产订单及排产控制。
  • 特点:与仓储共享领退料逻辑,与销售/采购模块共享供应商等基础资料。

Gs.QiTaRk & Gs.QiTaCk

  • Gs.QiTaRk:处理其他入库类业务。
  • MesItemQtrkManager.csMesItemQtrkDjManager.cs:其他入库单据及明细。
  • MesItemTblManager.csMesItemTblRkManager.cs:调整/补录入库。
  • Gs.QiTaCk:处理其他出库类业务。
  • MesItemQtManager.csMesItemQtDJManager.cs:其他出库单据与明细。
  • MesItemBlManager.csMesItemBlDJManager.cs:报溢/报损出库。
  • MesCgthSqManager.csMesCgthSqDjManager.cs:采购退货申请。
  • MesSctkSqManager.csMesSctkSqDjManager.cs:生产退库申请。
  • 这些模块为仓储提供补充业务口径,通常与会计系统或手工单据对接。

Gs.Warehouse 附属:Gs.Warehouse\Dto\InitialBarcode.cs

  • 为条码生成、初始导入提供 DTO,供 MesInvItemBarcodesManager 等服务序列化/反序列化。

Gs.Pda

  • 责任:为 PDA/手持终端提供轻量接口。
  • Gs.Pda\Service\PqcManager.cs:生产巡检相关 PDA 操作。
  • IqcManager.cs:来料检验 PDA 端。
  • 特点:接口参数通常更精简,返回 PDA 友好的结构,复用主系统的权限校验。

Gs.OpenApi

  • 责任:对外开放接口,与 ERP 等外部系统同步关键数据。
  • Gs.OpenApi\Services\ErpMesController.cs:提供 ERP 调用入口,执行物料、库存、订单等数据的推送/回传。
  • 特点:可能需要额外的安全策略(如 IP 白名单、签名),并对接消息队列或定时任务(可在拓展时加入)。

辅助项目

  • Gs.JJGZ(已说明):与薪资、考勤相关。
  • TemplateEngineHost:提供模板渲染或报表生成辅助服务,常与 Gs.Report 联动。
  • Gs.HostIIS.config:按环境拆分的发布配置,用于 Dev/Test/Prod 参数覆盖。

模块间典型流程示例

  1. 销售发货Gs.Sales\SalesDeliverManager 依据 Gs.BaseInfo 的客户/物料数据生成发货单,同时调用 Gs.Warehouse\MesInvItemOutsManager 扣减库存。
  2. 生产上线与入库Gs.Wom\WorkProController 记录工序数据,生成条码后由 Gs.Warehouse\MesInvItemArnManager 入库,并在 GS.QC\IpqcXunManager 做巡检。
  3. 质量异常处理GS.QC\MesQcExceptionalManager 记录异常,触发 Gs.Warehouse\MesInvItemMovesManager 进行不良品转库,最后在 Gs.Report\ReportController 提供统计。
  4. 计薪数据采集Gs.Wom\WorkCollectController 上传的工序完成量传给 Gs.JJGZ\MesJjgzJjsalaryController 计算计件工资。

扩展开发建议

  • 引入新模块时,创建 Gs.NewModule 项目,遵循 Models/ + Services/ 结构,并在类上应用 ApiGroup 与 DI 标记接口。builder.AddCustomInject() 会自动注册,实现零配置接入。
  • 跨模块调用时优先通过仓储或接口返回 DTO,避免直接访问其他模块数据库表;如需共享实体,请放入 Gs.Entity
  • 报表导出统一复用 Gs.Toolbox\ExcelHelper,日志及 HTTP 调用委托 LogHelperInterfaceUtil
  • 所有接口默认启用 ApiAuthorizeAttribute,新增匿名接口需显式加 [AllowAnonymous] 并评估安全风险。

以上内容可作为模块划分审阅、需求拆解和新成员培训的参考。如果需要进一步的数据库结构、存储过程说明,可在各控制器中搜索对应的 SQL/存储过程名称,与 DBA 协作维护补充文档。*** End Patch