haoliang
|
72cb43c493
|
feat: 模拟采集集成——后端SimulatorController(22端点代理转发)+前端总览/详情页+路由+侧边栏菜单+Mock数据
|
12 hours ago |
haoliang
|
4b70b8eacf
|
feat: 日志分区管理优化——sp_ensure_partitions覆盖3张分区表(含log_collect_raw);LogCleanupJob改用DROP PARTITION清理;修复分区边界计算bug
|
13 hours ago |
haoliang
|
b74c3db6af
|
清理根目录临时文件和旧代码;修复采集服务名称不匹配(collector-service→CncCollector)
|
13 hours ago |
haoliang
|
ccdfec31bb
|
feat: 在线状态改为基于last_ping_time实时判断,删除is_online列;新增online_timeout配置项(默认300秒);全链路修改Repository/Service/Collector/测试
|
16 hours ago |
haoliang
|
0563da73e8
|
feat: 品牌字段映射增加启用/禁用开关(is_enabled);前端增加开关列和行样式;新增6个Repository测试+6个Service/Controller测试;迁移脚本幂等执行
|
17 hours ago |
haoliang
|
78b7dfea19
|
fix: 移除跨库JOIN避免权限问题;修复raw端点参数默认值
|
2 days ago |
haoliang
|
e09fdc1329
|
feat: 实现数据回放功能(ReplayService + API端点)
- 新增 IReplayService/ReplayService 回放服务(预览+执行)
- 新增 ReplayController(POST preview/execute)
- 新增 ReplayDto 请求/响应DTO
- 回放流程:读取原始日志→清空业务数据→重新解析写入→日终汇总
- ServiceResolver DI注册
- 编译通过 0错误
|
2 days ago |
haoliang
|
c9cca32757
|
实现 D1-D2 数据回放:新增 ReplayService、ReplayController、ReplayDto,DI 注册,API 端点,预览与执行回放逻辑,基于现有 SQL 迁移。
|
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
|
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
|
592ebfbe08
|
修复采集服务启动后仪表盘状态不刷新的问题
根因:CollectorEngine.Start()不立即写心跳,仪表盘读心跳表仍显示stopped
修复:Start()中_isRunning=true后立即WriteHeartbeat('running')
附带:ForwardToCollector连接失败时返回错误码(code=50001)而非成功
|
4 days ago |
haoliang
|
ed0ea7f632
|
修复采集服务状态判断:用心跳status字段替代时间推断
|
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
|
667e215322
|
修复产量报表字段映射:添加前端兼容字段(date/quantity/runTime/cuttingTime/dataStatus),产量列直接显示数值
|
4 days ago |
haoliang
|
ee0b5da1c1
|
产量报表改为混合查询:已汇总用daily_production,未汇总从segment实时计算;默认日期改为今天;参数名统一为startDate/endDate
|
4 days ago |
haoliang
|
9a667e5a62
|
添加采集服务控制API:启动、停止、刷新配置,转发到CncCollector 5800端口
|
4 days ago |
haoliang
|
28641a7ab1
|
修复采集服务状态不显示:serviceId与心跳查询不匹配,API返回字段与前端不匹配
|
4 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
|
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
|
6fd1d616ac
|
新增CncCollector采集服务(配置加载+JSON解析+字段映射+HTTP采集+产量跟踪+日终汇总+心跳+管理API)
|
6 days ago |
haoliang
|
9890daf9aa
|
模拟器改为手动启动+从数据库读取机床+零件统计+设备增减
|
6 days ago |
haoliang
|
3fb5074ccf
|
新增CncSimulator模拟采集服务(设备状态机+8种场景+FANUC 19 Tag+管理界面+网络异常模拟)
|
6 days ago |
haoliang
|
6c3ca47fb7
|
采集地址:穿梭框显示全部同品牌机床、删除按钮禁用、后端Delete抛异常、数据库允许NULL
|
1 week ago |
haoliang
|
74b611d6e1
|
采集地址关联机床改为穿梭框:后端DTO加MachineIds+SetCollectAddress,前端el-transfer替换checkbox
|
1 week ago |
haoliang
|
2a5568ecfc
|
可用机床列表改为获取全部机床(不限在线状态),修复available-machines返回空的问题
|
1 week ago |
haoliang
|
f865de2a9a
|
修复员工机床绑定保存失败:DTO增加MachineIds字段,Service Create/Update增加绑定逻辑
|
1 week ago |
haoliang
|
71f8e7fbc7
|
修复机床排行machineId缺失+清理gitignore(移除publish/tools/dll/测试报告)
|
1 week ago |
haoliang
|
3e7c34c52f
|
修复设备详情关联名称为空(Bug6)+布尔字段类型(Bug7)+异常过滤器生产模式
|
1 week ago |
haoliang
|
6522b2ae49
|
补齐操作日志导出端点(adjustment/export占位)
|
1 week ago |
haoliang
|
126cecfa09
|
补齐产量报表2个端点(adjustment-history/export占位)+修复前端API路径参数 + 新增DTO + Repository方法
|
1 week ago |
haoliang
|
1168b3c4ac
|
补齐员工管理4个端点(machines/production-today/production-trend/available-machines)+修复前端详情页API路径参数 + 新增4个DTO
|
1 week ago |
haoliang
|
6fb571f565
|
补齐采集地址3个详情子端点(machines/collect-records/raw-json)+修复前端详情页API路径参数 + 新增3个DTO + DI注册
|
1 week ago |
haoliang
|
dfc18fabb5
|
设备管理联调:修复brandId缺失、batchToggle改逐个toggle、详情页添加4个子API端点
- 前端:新增/编辑机床时传递brandId字段
- 前端:启停切换改为逐个调用PUT /admin/machine/{id}/toggle
- 前端:详情页API调用从query参数改为RESTful路径参数
- 后端:新增4个详情页API(status/production-today/production-trend/collect-records)
- 后端:新增3个DTO(MachineTodayProdItem/MachineTrendItem/MachineCollectRecordItem)
- 后端:更新MachineStatusResponse字段以匹配前端展示需求
|
1 week ago |
haoliang
|
32a7bf49d0
|
fix: 修复20个列表接口返回格式与Mock不一致问题,新增5.2.1 Mock数据结构对齐规范
|
1 week ago |
haoliang
|
a094e59ffc
|
修复API返回PascalCase导致前端取不到message的问题
- WebApiConfig: 添加CamelCasePropertyNamesContractResolver
- 后端JSON输出从 Code/Message/Data 改为 code/message/data
- 前端拦截器 res.message 现在能正确取到后端错误信息
|
1 week ago |
haoliang
|
b28a89f263
|
IIS部署联调修复:OWIN禁用+程序集绑定+SPA路由回退+错误详情输出
- Web.config: 禁用OWIN自动发现(owin:AutomaticAppStartup=false),添加MySqlConnector依赖的程序集绑定重定向
- Global.asax.cs: Application_BeginRequest实现/admin/路径的SPA路由回退(无需URL Rewrite模块)
- GlobalExceptionFilter: 输出完整异常堆栈+InnerException,便于联调定位问题
- request.ts: 错误提示直接显示后端返回的message,不再覆盖为固定文案
- vite.config.ts: base设为/admin/,静态资源路径正确指向/admin/assets/
|
1 week ago |