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
|
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 |
haoliang
|
126154fc7b
|
IIS部署准备:csproj输出到bin\ + 前端build输出到admin + 修复全部TS类型错误
- CncWebApi.csproj: OutputPath改为bin\,AppendTargetFrameworkToOutputPath=false
- .gitignore: 排除src/CncWebApi/admin/目录
- vite.config.ts: build.outDir指向../src/CncWebApi/admin
- deploy-admin.ps1: 一键编译后端+前端部署脚本
- request.ts: 类型安全封装,返回Promise<ApiResponse<T>>
- types/index.ts: 扩展Machine/Alert/OperationLog/ScreenCard/CollectAddress/MachineStatus字段
- 修复11个页面文件的TS类型错误(vue-tsc 0错误)
|
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
|
fd40475271
|
feat(service): CncService层完整实现 - 12接口+12实现,编译通过
- Interface: 12个服务接口(IAuthService/IDashboardService/IBrandService/ICollectAddressService/IMachineService/IWorkshopService/IWorkerService/IProductionService/IAlertService/IScreenService/ISystemLogService/ICollectDataService)
- Impl: 12个服务实现(构造函数注入Repository+参数校验+DTO转换+业务逻辑)
- 登录: BCrypt密码验证+HS256 JWT生成
- 仪表盘: 7项统计+采集服务心跳检测
- 品牌: CRUD+复制+16标准字段
- 机床/车间/员工: CRUD+唯一性校验+绑定管理
- 产量: 分页查询+汇总+修正审计
- 告警: 分页+单条/批量处理+统计
- 大屏: 卡片配置+筛选条件管理
- 采集数据: 原始记录分页+最新记录
- 系统日志: 分页查询
- 添加BCrypt.Net-Next 4.0.3 NuGet包
|
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
|
7686930525
|
feat(models): CncModels完整实现 - 10枚举+20实体+62DTO,编译通过0错误0警告
- Enum: AlertType/CollectStatus/DataStatus/CardType/DataType/MatchBy/SegmentCloseReason/CollectorServiceStatus/LogLevel/ValueType
- Entity: 20张表完整映射(Workshop/Brand/Machine/Worker/CollectRecord/DailyProduction/Alert/SysConfig/ScreenConfig等)
- DTO: 13模块请求响应类(Login/Dashboard/Machine/Brand/CollectAddress/Worker/Production/Alert/Settings/Log/ScreenConfig/Screen/Common)
- Constants: TableName(20张表名) + SensitiveConfigKey(3个敏感键) + ErrorCode(6个错误码)
- 基础类: ApiResponse/PagedResult/PagedQuery
|
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 |