haoliang
|
54910626b1
|
采集服务产量统计全流程测试验证:DB Schema同步、品牌映射修正、采集/模拟器代码修改、10场景测试全通过
|
1 month ago |
haoliang
|
e1f086015c
|
优化告警详情弹窗样式:加宽至720px、详情区域可滚动max-height 200px、pre-wrap换行、缩小标签宽度
|
1 month ago |
haoliang
|
689f0b1798
|
修复告警中心4个Bug:时间显示0001-01-01、统计卡片全0、新增告警类型无标签、机床下拉为空
1. AlertRepository SQL缺少列别名致Dapper无法映射created_at→CreatedAt
2. AlertStatisticsResponse返回嵌套unresolvedByType,前端期望扁平collectFail等
3. AlertPage缺少production_error/summary_error的中文标签映射
4. 机床下拉模板用m.id/m.name,API返回value/label格式不匹配
|
1 month ago |
haoliang
|
4d5cdeafe8
|
升级log4net 2.0.15→3.3.1 修复GHSA-4f7c-pmjv-c25w安全漏洞
|
1 month ago |
haoliang
|
7a7b2baafc
|
修复JSON解析异常不写log_collect_raw的遗漏
ParseAndSave内部的JSON解析异常被自吞(catch+return),外层DoCollectCycle
的WriteBatch永远走不到。修复:在ParseAndSave内部catch也调用WriteBatch
ErrorSimulation工具升级为真实代码路径验证(含HTTP服务器模拟JSON解析)
|
1 month ago |
haoliang
|
cdb03d4db3
|
增强错误诊断:递归展开异常链+分类写入DB/告警
1. CollectWorker新增GetDetailedErrorMessage递归展开AggregateException
解决HTTP异常只记录模糊的'发生一个或多个错误',现可追踪到SocketException
2. JSON解析失败新增WriteBatch写入log_collect_raw(之前丢失DB记录)
3. ProductionTracker失败→cnc_alert(alert_type=production_error)
4. DailySummaryJob失败→cnc_alert(alert_type=summary_error)
5. CollectRecordWriter.DB写失败时本地日志记录完整异常链
6. log_collect_raw.error_message VARCHAR(500)→TEXT
7. 新增ErrorSimulation验证工具(模拟4类异常→验证DB/日志)
|
1 month ago |
haoliang
|
e6b941f9e1
|
修复产量报表分页翻页无效:改用watch监听page变化自动加载数据
Element Plus的@current-change事件中v-model更新时序导致
loadData()读到旧的page值,使翻页后数据不变化。
改为watch([page.page, page.pageSize])监听,数据变化后自动重载。
|
1 month ago |
haoliang
|
87d7dfeee1
|
新增产量重建工具RebuildProduction:从log_collect_raw原始JSON重放修复后的ProductionTracker算法,修正2026-05-07产量数据
工具用法: dotnet run --project tools/RebuildProduction
产量修正结果(2026-05-07):
- 总产量: 5,732 → 14,770 (+158%)
- manual_reset段: 0 → 8,740 (50段全部修正)
- program_change段: 830 → 1,128 (76段中偏差的已修正)
- end_of_day段: 4,902 (无变化)
修正后工人产量:
- 郭浩: 4,176 → 11,359
- 李文科: 692 → 1,574
- 公用: 214 → 642
- 冷春英: 211 → 367
- 赵福新: 132 → 253
- 宋志国: 95 → 226
- 赵双,胡东歌: 137 → 205
- 李梦梦,李玉蒙: 75 → 144
- 王涛: 0 (机床实际未运行)
|
1 month ago |
haoliang
|
f83364ec7a
|
修复产量统计3个Bug:manual_reset/program_change产量丢失、日终汇总失败不重试、日志归档文件锁冲突
Bug#1(核心): ProductionTracker.Track()中manual_reset和program_change段结账时
endPartCount传入了复位后/新程序的值而非结账段最后已知值,导致50个manual_reset
段产量全部为0,program_change段产量偏差
Bug#2: _lastSummaryDate在DailySummaryJob.Execute()执行前就设置,若汇总失败则
永久无法重试。修改为Execute返回bool,成功后设置;时间窗口扩大到±2分钟
Bug#3: log4net RollingFileAppender默认排他锁与LogArchiveJob的File.WriteAllText冲突
导致IOException。改用Date滚动+MinimalLock模式,删除手写LogArchiveJob
|
1 month ago |
haoliang
|
bdf0e6b085
|
WebAPI增加log4net错误日志:GlobalExceptionFilter记录异常堆栈到App_Data\logs
|
1 month ago |
haoliang
|
09efa51b0c
|
安装脚本v3.0:脚本与exe同级,基于PSScriptRoot自动定位,无需硬编码路径
|
1 month ago |
haoliang
|
9b12c76323
|
日志按天归档到日期子目录:log4net改Size滚动+LogArchiveJob凌晨归档+过期目录自动清理
|
2 months ago |
haoliang
|
943a532dc0
|
修复log4net日志文件运行时不写入问题:rollingStyle改为Composite+staticLogFileName
|
2 months ago |
haoliang
|
3f1e998f8e
|
系统设置明文化+仪表盘apiKey数据库化+日志分类+安装脚本防闪退
|
2 months ago |
haoliang
|
f703f92098
|
完善采集日志功能:原始数据详情弹窗、周期详情弹窗、修复排行榜日期格式
|
2 months ago |
haoliang
|
4366cf9347
|
修复仪表盘三个bug:采集状态精确区分5种+暂停恢复、产量结算保留实时值、车间平均产量排除停用机床
|
2 months ago |
haoliang
|
724183997b
|
在线状态显示Ping延迟(在线-1ms/离线-1ms格式)
|
2 months ago |
haoliang
|
711149199b
|
修复采集服务心跳service_id不匹配+机床在线判断简化为20秒+Ping 4次取平均延迟
|
2 months ago |
haoliang
|
b9555b807c
|
合并功能分支:模拟采集集成+仪表盘优化+采集服务部署修复
|
2 months ago |
haoliang
|
1600570b60
|
仪表盘优化:修复采集服务状态判断、去掉切削总时、数字保留两位小数、产量排行增加排序和TOP N
|
2 months ago |
haoliang
|
06d04c244e
|
feat: 模拟采集E2E测试(7项IIS模式全通过)+修复mock插件RegExp兼容问题
|
2 months ago |
haoliang
|
72cb43c493
|
feat: 模拟采集集成——后端SimulatorController(22端点代理转发)+前端总览/详情页+路由+侧边栏菜单+Mock数据
|
2 months ago |
haoliang
|
4b70b8eacf
|
feat: 日志分区管理优化——sp_ensure_partitions覆盖3张分区表(含log_collect_raw);LogCleanupJob改用DROP PARTITION清理;修复分区边界计算bug
|
2 months ago |
haoliang
|
b74c3db6af
|
清理根目录临时文件和旧代码;修复采集服务名称不匹配(collector-service→CncCollector)
|
2 months ago |
haoliang
|
add981876b
|
docs: 添加前端构建与部署规范文档
|
2 months ago |
haoliang
|
ccdfec31bb
|
feat: 在线状态改为基于last_ping_time实时判断,删除is_online列;新增online_timeout配置项(默认300秒);全链路修改Repository/Service/Collector/测试
|
2 months ago |
haoliang
|
0563da73e8
|
feat: 品牌字段映射增加启用/禁用开关(is_enabled);前端增加开关列和行样式;新增6个Repository测试+6个Service/Controller测试;迁移脚本幂等执行
|
2 months ago |
haoliang
|
089f3e502a
|
添加 BrandFieldMappingRepositoryTests 测试用例; 扩展 BrandServiceTests/BrandControllerTests 的测试覆盖 IsEnabled 字段
|
2 months ago |
haoliang
|
78b7dfea19
|
fix: 移除跨库JOIN避免权限问题;修复raw端点参数默认值
|
2 months ago |
haoliang
|
2d698b277d
|
fix: 修复 LogDashboard 类型定义缺少 messageSnippet 属性
|
2 months ago |
haoliang
|
e09fdc1329
|
feat: 实现数据回放功能(ReplayService + API端点)
- 新增 IReplayService/ReplayService 回放服务(预览+执行)
- 新增 ReplayController(POST preview/execute)
- 新增 ReplayDto 请求/响应DTO
- 回放流程:读取原始日志→清空业务数据→重新解析写入→日终汇总
- ServiceResolver DI注册
- 编译通过 0错误
|
2 months ago |
haoliang
|
c9cca32757
|
实现 D1-D2 数据回放:新增 ReplayService、ReplayController、ReplayDto,DI 注册,API 端点,预览与执行回放逻辑,基于现有 SQL 迁移。
|
2 months ago |
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 months ago |
haoliang
|
7d9634af48
|
feat(采集日志): 新增前端实现,包括 API 封装、Mock 数据、Vue 页面、路由和菜单;新增 CollectLog 页面组件、Mock 数据、API 接口,以及路由与侧边栏集成
|
2 months 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 months ago |
haoliang
|
23eda3751f
|
新增采集日志服务接口 ICollectLogService、实现 CollectLogService、控制器 CollectLogController,并更新 API 文档 3.14 采集日志模块
|
2 months ago |
haoliang
|
5a7c1b3436
|
fix(ci): 移除不必要的 setup-dotnet 步骤,windows-latest 自带 .NET Framework 4.7.2 环境
|
2 months ago |
haoliang
|
eedf5fa8be
|
fix: 修复前端类型错误(CollectorStatus重复声明、serviceStatusLabel位置);修复CI配置SDK版本;新增上线回滚文档
|
2 months ago |
haoliang
|
acdc502be2
|
test(cnc-service): 新增 Starting 状态测试用例,验证服务启动中状态返回正确
|
2 months ago |
haoliang
|
0212ed6afc
|
test(ci): add Windows workflow and extended tests stage4-5; stabilize dashboard service tests
|
2 months ago |
haoliang
|
d69817bf45
|
test(cnc-service): expand DashboardServiceTests with DI-enabled scenario using FakeDashboardRepository + FakeCollectorHeartbeatRepository + FakeWindowsServiceChecker; fix tests for Run Running state
|
2 months ago |
haoliang
|
d8f59250d7
|
feat: 自动化推进 Windows 服务状态检查相关改造,阶段4-6 全流程实现(前端适配、后端测试扩展、CI/Playwright E2E)
|
2 months 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
|
2 months ago |
haoliang
|
9e3a759646
|
修复仪表盘采集服务状态判断:增加心跳超时检测
原来只检查心跳表最后一条记录的status字段是否为running,
没有判断心跳是否已过期(服务停止后旧心跳数据仍在)。
现在增加90秒超时判断(3个心跳间隔),超时则显示已停止。
|
2 months 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),交互式清理安装目录
|
2 months 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()(批量更新)
|
2 months 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 转发
|
2 months ago |
haoliang
|
4b8657553b
|
新增端到端联动测试方案文档
覆盖模拟器+采集服务+管理后台+数据库全链路,129个测试点
|
2 months ago |
haoliang
|
592ebfbe08
|
修复采集服务启动后仪表盘状态不刷新的问题
根因:CollectorEngine.Start()不立即写心跳,仪表盘读心跳表仍显示stopped
修复:Start()中_isRunning=true后立即WriteHeartbeat('running')
附带:ForwardToCollector连接失败时返回错误码(code=50001)而非成功
|
2 months ago |
haoliang
|
f1fad812aa
|
测试规范补充维度23:操作按钮闭环验证,新增反模式第17条
|
2 months ago |