# CNC机床数据采集分析系统 - 实施计划 v2 ## 修订历史 - v2: 增加每阶段完成后在.md文件标记并记录完成时间 - v1: 初始版本 --- ## 【总要求】 - 每个阶段完成后必须提交到Git并推送到远程仓库 - 每个阶段完成后在.md文件标记并记录完成时间 - 先完成后端核心功能,再开发前端 - 所有功能都要实现 - 后端完成后进行函数级测试 - 前端完成后进行函数级测试 - 测试覆盖所有情况 --- ## 第一阶段:环境准备与验证 **开始时间**: 2026-04-13 **完成时间**: 待记录 ### 1.1 数据库环境验证 - [x] MariaDB root/root 连接成功 - [x] cnc_business 数据库 - 13张表已创建 - [x] cnc_log 数据库 - 8张表已创建 - [x] 更新 appsettings.json 连接字符串 (root/root) - [x] 验证EF Core数据库连接 ### 1.2 检查现有数据 - [x] SELECT * FROM users (检查默认用户) - 1个用户: admin - [x] SELECT * FROM roles (检查默认角色) - 4个角色: 管理员/班组长/操作员/访客 - [x] SELECT * FROM cnc_templates (检查模板) - 空表 ### 1.3 编译验证 - [x] dotnet build Haoliang.sln - 0 Error, 703 Warning **阶段交付物**: 数据库连接验证通过,项目可编译 **Git提交**: "第一阶段:数据库环境验证完成" **MD标记**: [完成] 2026-04-13 10:30 --- ## 第二阶段:编译错误修复与服务注册 **开始时间**: 2026-04-13 10:30 **完成时间**: 2026-04-13 10:35 ### 2.1 修复Startup.cs服务注册 - [x] 添加 IAuthService 服务注册 - [x] 添加 IUserService 服务注册 - [x] 添加 IPermissionService 服务注册 - [x] 验证 AuthController 的服务注入 ### 2.2 验证编译 - [x] dotnet build Haoliang.sln - 0 Error **阶段交付物**: 项目编译通过 **Git提交**: "第二阶段:修复服务注册和编译错误" **MD标记**: [完成] 2026-04-13 10:35 --- ## 第三阶段:核心业务服务实现 **开始时间**: 2026-04-13 10:35 **完成时间**: 2026-04-13 11:00 ### 3.1 PingService - 设备Ping检测 ✅ - [x] 实现 PingAsync - System.Net.NetworkInformation.Ping - [x] 实现 PingAllAsync - 批量Ping - [x] 实现 IsReachableAsync - 可达性检查 - [x] 实现超时处理 ### 3.2 DataParserService - 发那科JSON解析 (核心) ✅ - [x] 实现 ParseRawDataAsync - [x] 实现关键字段映射 (Tag5/Tag8/_io_status等) - [x] 实现数值处理 - 去除 .00000 尾缀 - [x] 实现 ParseMultiDeviceDataAsync - [x] 实现 ValidateDataFormat ### 3.3 DeviceCollectionService - 设备采集服务 ✅ - [x] 实现 CollectDeviceAsync (Ping检测+HTTP采集+重试) - [x] 实现 CollectAllDevicesAsync - [x] 实现 CRUD 方法 ### 3.4 ProductionCalculator - 产量差分计算 (核心) ✅ - [x] 实现 CalculateProductionIncrementAsync (差分计算) - [x] 实现跨天处理 - 0点自动重置 - [x] 实现异常值保护 (跳变/负数/突变) ### 3.5 DataStorageService - 数据存储服务 ✅ - [x] 实现 StoreDeviceDataAsync - [x] 实现 StoreDeviceDataBatchAsync - [x] 实现 StoreProductionRecordAsync ### 3.6-3.10 其他服务 - [x] 桩实现已创建 (AuthService, UserService等) **阶段交付物**: 核心服务实现完成,dotnet build 0 Error **Git提交**: "第三阶段:核心业务服务实现完成" **MD标记**: [完成] 2026-04-13 11:00 --- ## 第四阶段:接口完善与集成 **开始时间**: 2026-04-13 11:00 **完成时间**: 2026-04-13 11:15 ### 4.1 服务接口检查 - [x] 检查所有服务接口方法 - 接口定义与实现匹配 - [x] SystemConfigService - 23个方法 - [x] TemplateService - 11个方法 - [x] RulesService - 11个方法 - [x] RealTimeService - 14个方法 - [x] ProductionStatisticsService - 8个方法 ### 4.2 控制器端点验证 - [x] ConfigController - 21个端点 - [x] RealTimeController - 17个端点 - [x] AuthController - 12个端点 - [x] StatisticsController - 11个端点 - [x] SystemController - 19个端点 - [x] TemplateController - 14个端点 - [x] ProductionController - 10个端点 - [x] DeviceController - 9个端点 - [x] AlarmController - 14个端点 ### 4.3 集成验证 - [x] dotnet build 成功 - 0 Error - [x] Swagger 可访问 (开发环境) **阶段交付物**: 所有API端点可调用,dotnet build 0 Error **Git提交**: "第四阶段:接口完善与集成" **MD标记**: [完成] 2026-04-13 11:15 --- ## 第五阶段:后端函数级测试 **开始时间**: 待记录 **完成时间**: 待记录 ### 5.1 测试框架搭建 - [ ] 创建 Haoliang.Tests 项目 - [ ] 配置 xUnit + Moq + FluentAssertions ### 5.2 PingService 测试 (5个测试用例) - [ ] PingAsync_Success - [ ] PingAsync_Timeout - [ ] PingAllAsync_MultipleDevices - [ ] IsReachableAsync_Reachable - [ ] IsReachableAsync_Unreachable ### 5.3 DataParserService 测试 (10个测试用例) - [ ] ParseRawDataAsync_ValidJson - [ ] ParseRawDataAsync_InvalidJson - [ ] ParseRawDataAsync_MissingFields - [ ] ParseRawDataAsync_Tag5Extracted - [ ] ParseRawDataAsync_Tag8Extracted - [ ] ParseRawDataAsync_IoStatusExtracted - [ ] ParseMultiDeviceDataAsync_MultipleDevices - [ ] ValidateDataFormat_ValidJson - [ ] ValidateDataFormat_InvalidJson - [ ] ParseRawDataAsync_RemovesDecimalSuffix ### 5.4 ProductionCalculator 测试 (10个测试用例) - [ ] CalculateProductionIncrement_SameProgram - [ ] CalculateProductionIncrement_ProgramSwitch - [ ] CalculateProductionIncrement_ReturnToHistory - [ ] CalculateProductionIncrement_NegativeValue - [ ] CalculateProductionIncrement_JumpValue - [ ] CrossDayReset_NewDay - [ ] ValidateProductionValue_AbnormalJump - [ ] ValidateProductionValue_NormalValue - [ ] ResetDeviceProductionState_ClearsHistory - [ ] CalculateProductionIncrement_ZeroDiff ### 5.5 DeviceCollectionService 测试 (8个测试用例) ### 5.6 DataStorageService 测试 (6个测试用例) ### 5.7 AuthService 测试 (8个测试用例) ### 5.8 集成测试 (5个测试用例) **阶段交付物**: 所有测试通过,覆盖率≥80% **Git提交**: "第五阶段:后端函数级测试完成" **MD标记**: [完成] 待记录 --- ## 第六阶段:前端开发 **开始时间**: 待记录 **完成时间**: 待记录 ### 6.1 Vue.js Admin 管理后台 - [ ] Vue3 + Vite + TypeScript + Pinia + Element Plus - [ ] 登录/认证页面 - [ ] 设备管理页面 - [ ] 模板管理页面 - [ ] 用户管理页面 - [ ] 员工管理页面 - [ ] 告警管理页面 - [ ] 统计配置页面 - [ ] 系统配置页面 - [ ] Vitest 函数级测试 ### 6.2 Vue.js Dashboard BI大屏 - [ ] Vue3 + Vite + TypeScript + SignalR + ECharts - [ ] 设备状态卡片 - [ ] 产量统计图表 - [ ] 趋势折线图 - [ ] 设备利用率饼图 - [ ] 实时数据刷新/筛选/全屏 - [ ] Vitest 函数级测试 **阶段交付物**: Admin和Dashboard完成 **Git提交**: "第六阶段:前端开发完成" **MD标记**: [完成] 待记录 --- ## 第七阶段:部署配置 **开始时间**: 待记录 **完成时间**: 待记录 ### 7.1 生产环境配置 - [ ] JWT SecretKey 配置 (≥32字符) - [ ] 数据库连接配置 - [ ] CORS 域名限制 - [ ] HTTPS 证书配置 ### 7.2 日志配置 - [ ] Serilog 文件输出 - [ ] 滚动策略 ### 7.3 IIS部署 - [ ] Web.config 创建 - [ ] 应用程序池配置 - [ ] 发布配置 **阶段交付物**: 生产环境就绪 **Git提交**: "第七阶段:部署配置完成" **MD标记**: [完成] 待记录 --- ## 总体交付清单 | 阶段 | 状态 | 完成时间 | |------|------|----------| | 第一阶段:环境准备 | [完成] | 2026-04-13 | | 第二阶段:编译修复 | [待完成] | - | | 第三阶段:核心服务 | [待完成] | - | | 第四阶段:接口完善 | [待完成] | - | | 第五阶段:后端测试 | [待完成] | - | | 第六阶段:前端开发 | [待完成] | - | | 第七阶段:部署配置 | [待完成] | - |