Commit Graph

123 Commits (6e468089ea1a9a96e38daa80ca889188b3f18f8a)
 

Author SHA1 Message Date
haoliang 6e468089ea feat: 前端采集日志页面 + 自动分区存储过程 + 日志清理调度 + 告警类型扩展
- 新增 CollectLogPage.vue(分析记录/采集周期/原始数据 三个Tab页)
- 新增 collect-log.ts API封装和Mock数据
- 路由和侧边栏菜单添加采集日志入口
- 新增 sp_ensure_partitions 自动分区存储过程 + MariaDB Event
- 新增 LogCleanupJob 日志清理定时任务(保留天数=0不删除)
- CollectorConfig 新增日志清理配置属性
- AlertType 新增 DataAnomaly 常量
- 后端0错误,前端仅1个预存TS错误
2 days ago
haoliang 7d9634af48 feat(采集日志): 新增前端实现,包括 API 封装、Mock 数据、Vue 页面、路由和菜单;新增 CollectLog 页面组件、Mock 数据、API 接口,以及路由与侧边栏集成 2 days 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 23eda3751f 新增采集日志服务接口 ICollectLogService、实现 CollectLogService、控制器 CollectLogController,并更新 API 文档 3.14 采集日志模块 2 days ago
haoliang 5a7c1b3436 fix(ci): 移除不必要的 setup-dotnet 步骤,windows-latest 自带 .NET Framework 4.7.2 环境 3 days ago
haoliang eedf5fa8be fix: 修复前端类型错误(CollectorStatus重复声明、serviceStatusLabel位置);修复CI配置SDK版本;新增上线回滚文档 3 days ago
haoliang acdc502be2 test(cnc-service): 新增 Starting 状态测试用例,验证服务启动中状态返回正确 3 days ago
haoliang 0212ed6afc test(ci): add Windows workflow and extended tests stage4-5; stabilize dashboard service tests 4 days ago
haoliang d69817bf45 test(cnc-service): expand DashboardServiceTests with DI-enabled scenario using FakeDashboardRepository + FakeCollectorHeartbeatRepository + FakeWindowsServiceChecker; fix tests for Run Running state 4 days ago
haoliang d8f59250d7 feat: 自动化推进 Windows 服务状态检查相关改造,阶段4-6 全流程实现(前端适配、后端测试扩展、CI/Playwright E2E) 4 days ago
haoliang e9802a195d feat(cnc-service): add Windows service status checker, integrate into dashboard status, enhance startup flow; stage4 plan initialized; add frontend typings and dashboard view updates; add test scaffold for WindowsServiceChecker 4 days ago
haoliang 9e3a759646 修复仪表盘采集服务状态判断:增加心跳超时检测
原来只检查心跳表最后一条记录的status字段是否为running,
没有判断心跳是否已过期(服务停止后旧心跳数据仍在)。
现在增加90秒超时判断(3个心跳间隔),超时则显示已停止。
4 days ago
haoliang 6e5b296dd4 增加Windows Service原生支持,支持双模式运行和服务安装卸载
- 新增 CncCollectorService : ServiceBase,支持 OnStart/OnStop/OnPause/OnContinue/OnShutdown
- 新增 ProjectInstaller,支持 InstallUtil.exe 安装/卸载
- Program.cs 重构为双模式:控制台模式(--console) + 服务模式(SCM) + 安装(--install) + 卸载(--uninstall)
- csproj 添加 System.ServiceProcess 和 System.Configuration.Install 引用
- install.ps1 升级为 v2.0,支持 installutil/nssm/sc 三种安装方式,配置失败自动重启策略
- uninstall.ps1 升级为 v2.0,三级降级卸载(程序内置→InstallUtil→sc.exe),交互式清理安装目录
4 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 c2c4d15453 修复端到端测试发现的3个Bug
Bug1(中): 采集服务失败时记录实际HTTP状态码
- CollectWorker新增httpStatusCode变量,捕获响应状态码
- CollectRecordWriter.WriteBatch新增statusCode参数,失败时写入实际状态码(如500)
- ParseAndSave传入statusCode参数

Bug2(低): 模拟器Stop→Start端口冲突
- SimulatorServer.Start()复用已有HttpListener,不再重复创建
- 仅在_listener为null或未监听时才创建新HttpListener

Bug3(低): 新增手动触发日终汇总API
- CollectorApiServer新增 POST /api/collector/daily-summary 端点
- CollectorEngine新增 RunDailySummary(date) 公开方法
- DashboardController新增 POST /api/admin/collector/daily-summary 转发
4 days ago
haoliang 4b8657553b 新增端到端联动测试方案文档
覆盖模拟器+采集服务+管理后台+数据库全链路,129个测试点
4 days ago
haoliang 592ebfbe08 修复采集服务启动后仪表盘状态不刷新的问题
根因:CollectorEngine.Start()不立即写心跳,仪表盘读心跳表仍显示stopped
修复:Start()中_isRunning=true后立即WriteHeartbeat('running')
附带:ForwardToCollector连接失败时返回错误码(code=50001)而非成功
4 days ago
haoliang f1fad812aa 测试规范补充维度23:操作按钮闭环验证,新增反模式第17条 4 days ago
haoliang ed0ea7f632 修复采集服务状态判断:用心跳status字段替代时间推断 4 days ago
haoliang 772bc0b257 测试规范补充维度22:可点击链接跳转验证,新增反模式第16条 4 days ago
haoliang b09b653bac 测试规范补充维度21:表格布局铺满,新增反模式第15条 4 days ago
haoliang d6bbab7744 修复工人产量排行表格未铺满卡片宽度:工人姓名列改为弹性宽度 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 0acc2c7ced 精简测试规范:删除所有解释性内容(为什么/怎么做/历史复盘),只保留要求,503行→146行 4 days ago
haoliang ac08ca6cd1 测试规范新增:20维度强制测试总表、页面类型适用性速查、反模式补充3条 4 days ago
haoliang 1cf21a7245 补充冒烟测试:表格全列验证、分页、日期筛选、程序名筛选、API对账、下拉框字段映射、修正提交闭环 4 days ago
haoliang 1edcda9be5 新增测试规范文档、冒烟测试脚本、AGENTS.md铁律第5/6条 4 days ago
haoliang 3c40cbb4ab feat(铁律): 在 AGENTS.md 增加第5条测试与验证,指向 docs/06-测试规范.md 4 days ago
haoliang de5e636fdc 修复产量报表:下拉框字段映射、汇总卡片数值、表格运行时间/切削时间 4 days ago
haoliang cf9f0575a8 添加产量报表修正弹窗HTML模板,修正按钮调用doAdjust函数,Playwright 37项测试全部通过 5 days ago
haoliang 3094ede8a4 修复产量报表日期显示错误:value-format从yyyy-MM-dd改为YYYY-MM-DD(Element Plus/dayjs格式),日期格式化改用本地时间避免时区问题 5 days ago
haoliang 667e215322 修复产量报表字段映射:添加前端兼容字段(date/quantity/runTime/cuttingTime/dataStatus),产量列直接显示数值 5 days ago
haoliang ee0b5da1c1 产量报表改为混合查询:已汇总用daily_production,未汇总从segment实时计算;默认日期改为今天;参数名统一为startDate/endDate 5 days ago
haoliang 9a667e5a62 添加采集服务控制API:启动、停止、刷新配置,转发到CncCollector 5800端口 5 days ago
haoliang 28641a7ab1 修复采集服务状态不显示:serviceId与心跳查询不匹配,API返回字段与前端不匹配 5 days ago
haoliang 1c1698f9dd 仪表盘查询优化:已汇总日期用daily_production,未汇总日期实时计算segment,车间产量/机床排行/工人排行/产量趋势均采用混合查询 5 days ago
haoliang c836393d3f 仪表盘和产量报表全部改为从实时表查询:今日总产量、切削时间、车间产量、机床排行、工人排行、产量趋势均直接查cnc_production_segment;产量报表默认日期改为今天 5 days ago
haoliang 6ac639ecb7 采集成功率保留2位小数(Math.Round) 5 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验证
5 days ago
haoliang 36cb666af3 模拟器增加事件历史/异常日志/完整汇总导出功能,添加15分钟采集测试脚本
- DeviceState: 新增EventRecord类和RecordEvent方法,记录程序切换/清零/断电/开机事件
- LogRecorder: 新增ErrorRecord类和RecordError方法,记录异常状态
- SimulatorServer: 新增/admin/api/event-history、/admin/api/full-summary、/admin/api/error-log三个API端点
- SimulatorServer: 异常分支(http500/timeout/empty/malformed)自动记录异常日志
- 新增15分钟Playwright采集测试脚本(6个异常阶段+数据对比验证+自动报告生成)
5 days ago
haoliang cb504215b9 添加前端诊断和手动验证测试脚本 6 days ago
haoliang 0e932b4fad 更新测试报告:加入16个Playwright浏览器UI测试结果(116个测试全部通过) 6 days ago
haoliang 5f47164532 添加Playwright浏览器UI测试(16个测试,3个模块批量删除+启用停用)并补充mock API端点 6 days ago
haoliang 3315e1dec9 添加采集服务完整测试报告(79个单元测试+21个Playwright E2E测试,100%通过) 6 days ago
haoliang c983c4af5c 完整Playwright E2E测试:5套件21个测试全部通过(2.8分钟)
套件1: 管理API控制测试(7个)- 认证/启停/刷新/路由
套件2: 采集数据全链路验证(6个)- 原始JSON/结构化记录/机床状态/地址状态/字段映射/计数递增
套件3: 产量分段跟踪验证(3个)- 段自动创建/零件数更新/停止时结账
套件4: 异常处理与恢复验证(3个)- 不可达容错/恢复采集/失败日志
套件5: 心跳上报验证(2个)- running心跳/stopped心跳

关键技术决策:
- 使用mysql2直连数据库验证数据落库(log_collect_raw/cnc_collect_record等7张表)
- 轮询等待重试完成(3次重试×30秒=90秒)避免固定等待
- stop→改URL→start 强制重建worker(refresh不更新已存在worker的URL)
- 模拟器网关API动态启动模拟端口,DB URL动态更新
6 days ago
haoliang 5826e701fc 新增单元测试+Playwright实际测试(79个单元测试+11个E2E测试全部通过)
- 新增CollectRecordWriterTests(11个用例)和CollectorApiServerTests(11个用例)
- 修复Worker状态缺少url字段,修复Playwright配置全局API Key问题
- CncCollector共79个单元测试全部通过
- Playwright E2E测试实际执行:启动模拟器+采集服务,11个测试全部通过
- 测试覆盖:API认证、启停控制、状态查询、刷新配置、工作线程管理
6 days ago
haoliang 83ee87fa45 新增Playwright端到端测试脚本(采集服务管理API+数据流程验证) 6 days ago
haoliang b76f1acc55 新增三模块批量删除API+采集地址启用停用+安装测试脚本 6 days ago
haoliang bfb9c5a014 新增CncCollector.Tests单元测试项目(58个测试全部通过) 6 days ago
haoliang 6fd1d616ac 新增CncCollector采集服务(配置加载+JSON解析+字段映射+HTTP采集+产量跟踪+日终汇总+心跳+管理API) 6 days ago