Commit Graph

24 Commits (724183997ba56a62538603a753d181080ea795fe)

Author SHA1 Message Date
haoliang 711149199b 修复采集服务心跳service_id不匹配+机床在线判断简化为20秒+Ping 4次取平均延迟 5 hours ago
haoliang 1600570b60 仪表盘优化:修复采集服务状态判断、去掉切削总时、数字保留两位小数、产量排行增加排序和TOP N 5 hours ago
haoliang ccdfec31bb feat: 在线状态改为基于last_ping_time实时判断,删除is_online列;新增online_timeout配置项(默认300秒);全链路修改Repository/Service/Collector/测试 11 hours ago
haoliang 0563da73e8 feat: 品牌字段映射增加启用/禁用开关(is_enabled);前端增加开关列和行样式;新增6个Repository测试+6个Service/Controller测试;迁移脚本幂等执行 13 hours ago
haoliang 78b7dfea19 fix: 移除跨库JOIN避免权限问题;修复raw端点参数默认值 1 day ago
haoliang e3f37d5433 feat: 实现采集分析引擎(AnalysisEngine)+ 后台管理API + 前端设计文档
- 新增 log_collect_analysis + log_collect_cycle 两张按月分区表DDL
- 完整实现 AnalysisEngine:9种分析类型检测、DB写入、异常告警联动
- 修改 CollectRecordWriter.WriteBatch 返回 rawLogId
- 集成 AnalysisEngine 到 CollectWorker 采集主流程
- 新增 CollectLogController 5个API端点(分析查询/详情/周期/原始日志)
- 新增 Entity/Enum/DTO/Repository/Service 全链路代码
- 修复子代理创建的文件:DTO命名空间、Repository方法名、SQL列映射、using引用
- 新增13-采集日志前端设计文档(索引+规范+页面)
- 全部5个主项目编译通过,0错误
2 days ago
haoliang cb3a6071bd 修复管理后台4个Bug + 改进Ping逻辑
Bug1(告警中心分页不工作): AlertPage.vue添加watch监听page.page和page.pageSize变化触发loadData

Bug2(仪表盘按钮报错): DashboardPage.vue为刷新配置/停止采集/启动采集添加ElMessage成功提示,导入ElMessage

Bug3(设备详情页数据不对): MachineService四个方法从返回空数据改为查询实际数据
- GetStatus: 从Machine entity的last_*字段获取实时状态
- GetTodayProduction: 从cnc_daily_production或cnc_production_segment查今日产量
- GetProductionTrend: 从cnc_daily_production或segment查7天趋势
- GetCollectRecords: 从cnc_collect_record查最近20条采集记录
- IMachineRepository新增4个方法声明,MachineRepository实现SQL查询

Bug4(产量报表员工筛选不正确):
- DailyProductionRepository.GetList添加WorkerId过滤(通过cnc_worker_machine关联表)
- ProductionController.GetSummary扩展参数接受startDate/endDate/machineId/workerId
- IProductionService/ProductionService.GetSummary签名同步更新

Ping逻辑改进: CollectWorker从Ping采集URL主机改为Ping每台机床IP地址
- 新增PingAllMachines()并行Ping所有机床IP,逐台更新在线状态
- 新增PingHost()执行单次ICMP Ping(超时2秒)
- 移除旧的PingAddress()(Ping URL主机)和UpdateMachineOnlineStatus()(批量更新)
4 days ago
haoliang 7354ae1641 修复仪表盘6个数据问题+补充测试规范图表维度
1. 最新告警:修复createdAt映射(snake_case→PascalCase),补齐alertType/machineName/title/isResolved字段
2. 机床状态分布:从原始group-by改为返回{online,offline,disabled}结构
3. 产量趋势:Controller包装为{items:[]}格式
4. 机床排行:补齐rank/program/status字段
5. 工人排行:补齐rank/machineCount/totalQuantity字段
6. 测试规范:新增维度3.1图表验证,扩展仪表盘速查表维度覆盖(1,2,3,3.1,5,6,9,12,17,20),新增反模式第14条
4 days ago
haoliang de5e636fdc 修复产量报表:下拉框字段映射、汇总卡片数值、表格运行时间/切削时间 4 days ago
haoliang ee0b5da1c1 产量报表改为混合查询:已汇总用daily_production,未汇总从segment实时计算;默认日期改为今天;参数名统一为startDate/endDate 4 days ago
haoliang 1c1698f9dd 仪表盘查询优化:已汇总日期用daily_production,未汇总日期实时计算segment,车间产量/机床排行/工人排行/产量趋势均采用混合查询 4 days ago
haoliang c836393d3f 仪表盘和产量报表全部改为从实时表查询:今日总产量、切削时间、车间产量、机床排行、工人排行、产量趋势均直接查cnc_production_segment;产量报表默认日期改为今天 4 days ago
haoliang 6ac639ecb7 采集成功率保留2位小数(Math.Round) 4 days ago
haoliang 45cb84c08d 修复采集成功率计算bug、添加IIS localhost绑定和Vite proxy配置
- DashboardRepository: 采集成功率改用 log_collect_raw 的成功/失败比率计算(修复-800%的bug)
- Web.config: 添加 runAllManagedModulesForAllRequests=true 使API路由生效
- Vite: 添加/api代理到IIS后端(127.0.0.1),前端显示真实数据
- 测试脚本: 阶段6指定原端口重启避免URL不同步,添加仪表盘API验证
4 days ago
haoliang b76f1acc55 新增三模块批量删除API+采集地址启用停用+安装测试脚本 5 days ago
haoliang 74b611d6e1 采集地址关联机床改为穿梭框:后端DTO加MachineIds+SetCollectAddress,前端el-transfer替换checkbox 1 week ago
haoliang 71f8e7fbc7 修复机床排行machineId缺失+清理gitignore(移除publish/tools/dll/测试报告) 1 week ago
haoliang 3e7c34c52f 修复设备详情关联名称为空(Bug6)+布尔字段类型(Bug7)+异常过滤器生产模式 1 week ago
haoliang 126cecfa09 补齐产量报表2个端点(adjustment-history/export占位)+修复前端API路径参数 + 新增DTO + Repository方法 1 week ago
haoliang 8845ffb3f6 新增CncService.Tests(180个测试全部通过)+ 修复Repository层SQL字段名bug
- 新增12个Service测试文件(180个测试用例,覆盖全部Service方法)
- 修复BrandFieldMappingRepository.BatchCreate连接未打开的bug
- 修复DailyProductionRepository中引用不存在的worker_id列的bug
- 修复DashboardRepository.GetWorkerRank中引用不存在的worker_id列的bug
- 修复SystemLogRepository.GetList参数未添加Limit/Offset的bug
1 week ago
haoliang 3a1912f4a1 修复所有Repository SQL列名为snake_case,新增CncRepository.Tests(37个测试全部通过)
- 修复20个Repository文件中SQL列名从PascalCase改为snake_case匹配数据库
- 新增TestDb.cs测试辅助类(DELETE+重置自增+种子数据)
- 新增5个测试类(Alert/Brand/Machine/SysConfig/Workshop)共37个测试
- 添加[Collection(Database)]串行执行避免并行竞争
- 解决TRUNCATE外键约束问题改用DELETE FROM
1 week ago
haoliang 03aaeb11c2 feat(webapi): CncWebApi完整实现 - 13控制器+DI+JWT认证,编译通过
- Controllers: 13个API控制器(Auth/Dashboard/Machine/Brand/CollectAddress/Worker/Production/Alert/Settings/Log/ScreenConfig/Screen/Option)
- Infrastructure: ServiceResolver(手动DI)+JwtAuthFilter(HMACSHA256签名验证)
- 路由: 属性路由覆盖,管理后台/api/admin/**+大屏/api/screen/**
- 认证: JwtAuthFilter标记admin接口,ScreenController免认证
- DI: WebApiConfig注册ServiceResolver,手动解析Repository+Service依赖链
- WorkshopRepository: 从CncRepository.Impl移入CncRepository/Impl统一管理
1 week ago
haoliang fc7d350c3d feat(repository): CncRepository完整实现 - 20接口+16实现,编译通过
- Interface: 20个仓储接口(ISysConfig/IWorkshop/IBrand/IBrandFieldMapping/ICollectAddress/IMachine/IWorker/IWorkerMachine/IDailyProduction/IProductionSegment/IMachineDailyStatus/IWorkerDailySummary/IProductionAdjustment/IAlert/IScreenConfig/IScreenFilter/ICollectRaw/ISystemLog/ICollectorHeartbeat/IDashboard)
- Impl: 16个仓储实现(BusinessRepository子类+LogRepository子类)
- 包含: 基础CRUD/分页查询/多表JOIN/统计聚合/仪表盘查询
- 修复: AlertRepository继承修正(BusinessRepository)/dynamic替换为强类型
1 week ago
haoliang 0ba5cede73 feat: 搭建VS2017解决方案骨架(8项目+前端文件夹),编译通过0错误
- CncDataSystem.sln: 4层源码项目 + 4测试项目 + frontend解决方案文件夹
- CncModels: ApiResponse/PagedResult/PagedQuery/ErrorCode 基础类
- CncRepository: BaseRepository 双库连接管理(BusinessRepository/LogRepository)
- CncService: BusinessException 业务异常基类
- CncWebApi: WebApiConfig路由配置/GlobalExceptionFilter/HealthController/Web.config
- 测试项目: xUnit + Moq + Microsoft.NET.Test.Sdk
- NuGet: Dapper + MySqlConnector + Newtonsoft.Json + log4net + JWT
- 编译: dotnet build 8项目全部通过
1 week ago