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

GS MES 服务

项目概览

GS MES Service 基于 ASP.NET Core 8.0 构建,Gs.HostIIS 负责托管 Web API、加载配置并暴露分组化 Swagger 文档。各业务模块(BaseInfo、Sales、Warehouse 等)以 Gs.<Module> 项目存在,控制器放在 Services/,数据模型位于 Models/,共享实体和 DTO 集中在 Gs.Entity。通用组件(授权、Excel、HTTP、依赖注入扩展等)统一封装在 Gs.Toolbox

目录结构

  • GsMesSolution.sln:解决方案入口,统一执行构建、测试。
  • Gs.HostIIS/:宿主项目,包含 Program.csappsettings*.json、Swagger 配置以及 /down/upload 静态资源映射。
  • Gs.<Module>/:业务模块(如 Gs.BaseInfoGs.SalesGs.Warehouse),遵循 Models/ + Services/ 文件夹布局。
  • Gs.Entity/:SqlSugar 实体与跨模块共享的 DTO。
  • Gs.Toolbox/:依赖注入扩展、API 约定、日志、Excel 工具等基础设施能力。
  • Gs.HostIIS/.config/:部署阶段使用的环境配置转换文件。

快速开始

  1. 安装 .NET SDK 8.0,确认数据库连接信息与 appsettings.json 对应。
  2. 恢复依赖:
    bash dotnet restore GsMesSolution.sln
  3. 构建项目:
    bash dotnet build GsMesSolution.sln -c Release
  4. 启动 API:
    bash dotnet run --project Gs.HostIIS/Gs.HostIIS.csproj
    启动后访问 http://localhost:<端口>/swagger 查看分组 API 文档。静态下载目录映射 /down,上传目录映射 /upload,路径由配置中的 DownPathUploadPath 控制。

测试说明

仓库暂未引入自动化测试。新增功能时请在相应模块旁创建 xUnit 项目(示例:Gs.Sales.Tests),测试文件统一命名为 *Tests.cs。Mock SqlSugar 依赖保持测试可重复,并在解决方案根目录执行:
bash dotnet test
提交变更前记录手工冒烟结果(Swagger 可用性、核心接口、关键存储过程)并写入 PR。

配置与安全

  • 禁止提交任何硬编码的连接字符串或密码,开发阶段通过 User Secrets 或环境变量注入。
  • 环境差异配置放入 .config 目录,发布时执行转换,不直接修改基础配置。
  • 调整 SqlSugar 数据结构前务必在预发布环境验证,并在公开部署前检查 Swagger 暴露范围。

贡献指南

  • 遵循四空格缩进、类型 PascalCase、局部变量 camelCase、常量 ALL_CAPS 的命名规范,保持可空引用启用。
  • 新增服务通过 Gs.Toolbox 的扩展方法注册,确保 builder.AddCustomInject() 流程定义统一。
  • 提交信息沿用历史风格:简洁的中文单行说明,例如 Baobiao: 修复导出异常
  • PR 中需列出受影响模块、配置或数据库变更、自动化测试与手工冒烟结果,并附上示例请求或截图。