# 模块详解指南 本指南汇总 GS MES Service 解决方案内各项目/模块的职责、核心接口以及与其他模块的依赖关系,供开发、测试与运维人员快速定位代码位置与业务边界。 ## 通用基础组件 - **Gs.HostIIS**(`Gs.HostIIS/Program.cs`、`Gs.HostIIS/RequestAuthorizeAttribute.cs`) - 承载 ASP.NET Core 主机,统一注册 MVC、全局授权过滤、CORS、Swagger 分组及静态目录。 - 通过 `builder.AddCustomInject()` 和 `app.AddCustomController()` 扫描所有引用程序集的服务,实现模块级热插拔。 - 解析配置项 `ServicesPath`、`DownPath`、`UploadPath`,对应 Swagger XML、下载与上传目录。 - **Gs.Toolbox**(如 `Gs.Toolbox\Repository.cs`、`Gs.Toolbox\ApiCore\Extensions`) - 提供 SqlSugar 仓储基类、统一返回模型、Excel/日志/HTTP 工具以及 DI 标记接口(`ISingleton`、`IScope`、`ITransient`)。 - `ApplicationBuilderExtension` 根据接口标记自动注入,实现模块零散类的集中注册。 - `ApplicationExtension` 与 `CustomControllerFeatureProvider` 协助按模块动态装配控制器。 - **Gs.Entity** - 集中维护 SqlSugar 实体、DTO 及公共枚举,供所有业务模块复用,减少重复定义。 ## 业务领域模块 ### Gs.BaseInfo - 责任:维护主数据,如物料、供应商、工位、部门等,为仓储、销售、生产模块提供基础信息。 - 主要服务: - `Gs.BaseInfo\Services\MesItemsManager.cs`:物料档案分页查询、映射单位/仓库/物料组等关联信息。 - `Gs.BaseInfo\Services\MesSupplierManager.cs`、`MesCustomerManager.cs`:供应商/客户资料增删改查。 - `Gs.BaseInfo\Services\PrintInfoManager.cs`、`PrintUserManager.cs`:打印模板及用户设备信息。 - `Gs.BaseInfo\Services\SysDepartmentManager.cs`、`MesPositionManager.cs`:组织及岗位管理。 - 依赖:大量复用 `Repository` 提供的通用分页、事务封装,并读取 `UtilityHelper` 中的用户上下文数据。 ### Gs.Sales - 责任:销售订单、发货、退货等销售履约流程的对接与查询。 - 主要服务: - `Gs.Sales\SalesManager.cs`:销售订单分页、条件过滤、调用存储过程。 - `Gs.Sales\SalesDeliverManager.cs`、`SalesDeliverDjManager.cs`:发货单及其明细、单据打印/审核。 - `Gs.Sales\SalesReturnManager.cs`、`SalesReturnDjManager.cs`:销售退货申请、执行及单据管理。 - 特点:以 `ApiGroup(ApiGroupNames.XS)` 标识,在 Swagger 中归于销售分组,接口多返回动态对象,依赖 SqlClient 调用存储过程满足复杂报表需求。 ### Gs.Warehouse - 责任:仓储管理与库存处理,覆盖收发存、调拨、盘点、条码与自动入库。 - 主要服务: - `Gs.Warehouse\Services\MesInvItemOutsManager.cs`:核心出库逻辑(成品、半成品、原材料),支持分页、批量操作、状态回写。 - `MesInvItemArnManager.cs`、`MesInvItemArnDetailManager.cs`:到货通知、验收入库、异常处理。 - `MesInvItemMovesManager.cs`、`MesInvItemMovesDjManager.cs`:仓库调拨及调拨单追踪。 - `MesInvItemBarcodesManager.cs`、`VArrivalBarcodeManager.cs`:条码生成、校验与追溯。 - `MesShouTuoManager.cs`、`MesShouTuoDjManager.cs`:收托、退托业务。 - `MesAutoRkController.cs`:自动入库接口,与设备/产线集成。 - 依赖:与 `Gs.BaseInfo` 的仓库、物料信息紧密关联;多处调用 `InitialBarcode` DTO;部分逻辑包含事务 `UseTransaction`。 ### Gs.Report - 责任:报表查询、导出与看板呈现,覆盖生产、质量、仓储等多场景。 - 主要服务: - `Gs.Report\ReportController.cs`:通用报表入口,按报表代码调度不同查询。 - `Gs.Report\XlsInOutController.cs`:出入库统计 Excel 导出,大量使用 `ExcelHelper`。 - `Gs.Report\CkController.cs`、`QLController.cs`:仓库库存、质量统计。 - `Gs.Report\WOTraceCodes.cs`、`BTDetails.cs`:工单追踪与条码明细。 - `YS_*` 系列:以 `YS` 前缀命名的专用报表(设备保养、进货检验、首检巡检等),多返回 DataTable/Excel 文件。 - 特点:多数接口为 POST,接受动态条件、分页及导出标记;深度依赖 SQL 存储过程和视图。 ### Gs.Sys - 责任:系统配置与权限管理。 - 主要服务: - `Gs.Sys\Services\UserController.cs`:用户维护、角色绑定、登录校验。 - `RoleController.cs`、`MenuActionController.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.cs`、`FqcItemsManager.cs`:成品终检任务、抽样结果、判定。 - `IpqcShouManager.cs`、`IpqcXunManager.cs`:制程首检、巡检流程。 - `MesQaItemsDetect01Manager.cs`:来料检验明细处理。 - `MesDefectCodeManager.cs` 与模型 `MesDefectCode.cs`:缺陷代码维护与层级关系。 - `RkqcManager.cs`、`RkqcSqManager.cs`、`RkqcfaManager.cs`:入库质检申请、方案及执行。 - `MesQmCheckitemManager.cs` 及 `MesQmCheckitemDtManager.cs`:检验项目及明细维护。 - 特点:大量使用抽样方案模型 `MesQmAql*`;与仓储模块共享条码及到货单数据。 ### Gs.JJGZ - 责任:计件计价、工时与考勤统计。 - 主要服务: - `Gs.JJGZ\MesJjgzScheduleController.cs`:排班计划、产线班组排程。 - `MesJjgzTimeTypeController.cs`:工时类型定义(加班、请假等)。 - `MesJjgzJjsalaryController.cs`、`MesJjgzJssalaryController.cs`:计件、计时薪资计算。 - `MesJjgzErrorJsController.cs`:计薪异常处理与调整。 - `MesAttanConController.cs`、`MesDeToLineController.cs`:考勤、岗位到线关系维护。 - 依赖:需要来自生产、工单、人员模块的数据;可能调用存储过程生成薪资报表。 ### Gs.Wom - 责任:车间制造执行与工序采集。 - 主要服务: - `Gs.Wom\Service\MesProcInfoController.cs`:工序工艺信息、节点维护。 - `MesProdGx0Controller.cs`, `WompbaManager.cs`, `WompbaGxManager.cs`:工单排产、工序分配、生产工艺路线。 - `MesWorkProdManager.cs`、`MesScrkDjManager.cs`:生产上线、入库单据。 - `FanGongManager.cs`、`MesBackFlashController.cs`:返工/回冲流程。 - `WorkService\WorkCollectController.cs`、`WorkTechniqueController.cs`:产线看板、工艺资料查询、工序扫码采集。 - `WorkProController.cs`、`WorkRepairController.cs`、`WorkWeightController.cs`:生产进度、维修、称重等现场操作接口。 - 依赖:与条码、仓储、工单、人员信息紧密耦合,是 MES 执行层的核心。 ### Gs.Ww - 责任:委外加工业务(外协生产)。 - 主要服务: - `Gs.Ww\WWBlManager.cs`、`WWBlDJManager.cs`:委外补料申请与单据。 - `WWLLDJManager.cs`、`WWTBlDJManager.cs`:委外领料、退料单据。 - `WWTblManager.cs`:委外退补料处理。 - `ProductionOrderManager.cs`、`WWPCManager.cs`:委外生产订单及排产控制。 - 特点:与仓储共享领退料逻辑,与销售/采购模块共享供应商等基础资料。 ### Gs.QiTaRk & Gs.QiTaCk - **Gs.QiTaRk**:处理其他入库类业务。 - `MesItemQtrkManager.cs`、`MesItemQtrkDjManager.cs`:其他入库单据及明细。 - `MesItemTblManager.cs`、`MesItemTblRkManager.cs`:调整/补录入库。 - **Gs.QiTaCk**:处理其他出库类业务。 - `MesItemQtManager.cs`、`MesItemQtDJManager.cs`:其他出库单据与明细。 - `MesItemBlManager.cs`、`MesItemBlDJManager.cs`:报溢/报损出库。 - `MesCgthSqManager.cs`、`MesCgthSqDjManager.cs`:采购退货申请。 - `MesSctkSqManager.cs`、`MesSctkSqDjManager.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 调用委托 `LogHelper`、`InterfaceUtil`。 - 所有接口默认启用 `ApiAuthorizeAttribute`,新增匿名接口需显式加 `[AllowAnonymous]` 并评估安全风险。 以上内容可作为模块划分审阅、需求拆解和新成员培训的参考。如果需要进一步的数据库结构、存储过程说明,可在各控制器中搜索对应的 SQL/存储过程名称,与 DBA 协作维护补充文档。*** End Patch