# CNC机床数据采集分析系统 ## 项目概述 CNC机床多品牌统一化分布式数据采集分析系统,实现设备状态监控、零件产量自动统计、加工过程分析、人员与设备绑定管理,及BI大屏实时展示。 ## 技术栈 - **后端**: .NET 8.0 Web API - **数据库**: MariaDB 10.6+ (使用 Pomelo.EntityFrameworkCore.MySql) - **ORM**: Entity Framework Core 8.0 - **API文档**: Swagger/OpenAPI ## 项目结构 ``` haoliang/ ├── Haoliang.Api/ # Web API 项目 │ ├── Controllers/ # API 控制器 │ ├── Program.cs # 应用程序入口 │ └── appsettings.json # 配置文件 ├── Haoliang.Core/ # 核心业务逻辑项目 ├── Haoliang.Data/ # 数据访问层项目 │ ├── Entities/ # 实体类 │ └── Repositories/ # 数据仓储 ├── Haoliang.Models/ # 数据模型项目 ├── database/ # 数据库脚本 ├── frontend/ # 前端项目 └── test-reports/ # 测试报告 ``` ## 快速开始 ### 环境要求 - .NET 8.0 SDK - MariaDB 10.6+ - Visual Studio 2022 或 VS Code ### 安装步骤 1. 克隆项目 ```bash git clone cd haoliang ``` 2. 还原 NuGet 包 ```bash dotnet restore ``` 3. 配置数据库连接 打开 `Haoliang.Api/appsettings.json`,修改数据库连接字符串: ```json { "ConnectionStrings": { "DefaultConnection": "Server=localhost;Database=cnc_business;Uid=root;Pwd=your_password;" } } ``` 4. 更新数据库 ```bash dotnet ef database update ``` 5. 运行项目 ```bash dotnet run --project Haoliang.Api ``` ### 运行测试 ```bash # 运行所有测试 ./test.sh ``` ## 核心功能 ### 1. 设备管理 - CNC设备信息管理 - 设备状态监控 - 设备模板配置 ### 2. 生产统计 - 零件产量自动统计 - 加工过程分析 - 程序切换处理逻辑 ### 3. 用户管理 - 用户信息管理 - 权限控制 - 设备绑定管理 ### 4. 系统管理 - 系统配置 - 日志管理 - 告警管理 ## API 文档 启动项目后,访问以下地址查看 API 文档: - Swagger UI: `https://localhost:5001/swagger` ## 开发规范 ### 代码提交规范 **重要**: 每次代码修改,经过测试通过之后,提交到git,并写清楚修改内容 #### 提交信息格式 ``` : [optional body] [optional footer] ``` #### Type 类型说明 - `feat`: 新功能 - `fix`: 修复bug - `docs`: 文档更新 - `style`: 代码格式调整 - `refactor`: 代码重构 - `test`: 测试相关 - `chore`: 构建工具或依赖管理 #### 提交示例 ``` feat: 添加设备批量导入功能 - 实现Excel文件上传和解析 - 添加设备数据验证逻辑 - 批量插入优化,减少数据库查询次数 fix: 修复设备状态更新失败的问题 - 修复并发更新时的竞态条件 - 添加重试机制 - 优化错误处理逻辑 ``` ### 测试规范 - 所有新功能必须包含单元测试 - 测试覆盖率要求达到 80% 以上 - 测试用例需要覆盖正常和异常情况 - 运行测试命令:`dotnet test` ### 代码规范 - 遵循 C# 编码规范 - 使用异步编程模式 - 添加适当的 XML 注释 - 避免硬编码,使用配置文件 ## 数据库设计 ### 业务库 (cnc_business) 存储业务数据:设备、员工、模板、产量、配置、告警等 ### 日志库 (cnc_log) 存储原始采集数据、系统日志、异常日志 ## 部署说明 ### 开发环境 - 使用 IIS 或 Kestrel 服务器 - 配置开发数据库连接 ### 生产环境 - 配置生产数据库连接 - 设置适当的日志级别 - 启用 HTTPS - 配置反向代理 ## 故障排除 ### 常见问题 1. **数据库连接失败** - 检查 MySQL 服务是否运行 - 验证连接字符串配置 - 确保数据库用户权限正确 2. **编译错误** - 确保 .NET 8.0 SDK 已安装 - 运行 `dotnet restore` 更新包依赖 - 检查项目引用是否正确 3. **测试失败** - 确保测试数据库配置正确 - 检查测试数据是否准备充分 - 运行 `dotnet test --verbosity detailed` 查看详细错误信息 ## 版本历史 - v1.0.0 - 初始版本,实现基础功能模块 ## 贡献指南 1. Fork 项目 2. 创建功能分支 3. 提交变更 4. 推送到分支 5. 创建 Pull Request ## 许可证 本项目采用 MIT 许可证