You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

216 lines
4.3 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# CNC机床数据采集分析系统
## 项目概述
CNC机床多品牌统一化分布式数据采集分析系统实现设备状态监控、零件产量自动统计、加工过程分析、人员与设备绑定管理及BI大屏实时展示。
## 技术栈
- **后端**: .NET 8.0 Web API
- **数据库**: MySQL 8.0+ (使用 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
- MySQL 8.0+
- Visual Studio 2022 或 VS Code
### 安装步骤
1. 克隆项目
```bash
git clone <repository-url>
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并写清楚修改内容
#### 提交信息格式
```
<type>: <description>
[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 许可证