CncRepository
仓储基类,提供数据库连接管理
每个仓储方法应 using(CreateConnection()) 自动释放连接
初始化仓储基类
数据库连接字符串
创建新的数据库连接
调用方需使用 using 语句确保连接释放
using (var conn = CreateConnection())
{
return conn.QueryFirstOrDefault<Machine>("SELECT * FROM cnc_machine WHERE id = @Id", new { Id = id });
}
业务库仓储基类(cnc_business)
所有操作业务库的仓储继承此类
初始化业务库仓储
cnc_business 数据库连接字符串
日志库仓储基类(cnc_log)
所有操作日志库的仓储继承此类
初始化日志库仓储
cnc_log 数据库连接字符串
Alert SELECT列映射模板(snake_case列名 → PascalCase属性名)
告警类型计数内部类,用于Dapper映射
品牌字段映射实现
品牌实现
采集地址实现
采集地址SELECT列映射模板
cnc_daily_production 产量仓储实现(业务库)
仪表盘跨表统计查询实现
通用产量计算SQL片段:已汇总日期用cnc_daily_production,未汇总日期用cnc_production_segment实时计算。
与machine表JOIN时,需在外层提供 machine_id 列。
参数:@StartDate, @EndDate
返回列:machine_id, production_date, day_quantity
汇总卡片数据
按车间时间区间统计生产量(平均单机产量)
机床排行
工人排行
产量趋势(最近 days 天)
机床状态分布
NC程序产量排行
NC程序产量分布
最近告警
采集分析仓储实现(日志库 - log_collect_analysis)
按机床ID和日期查询采集分析记录
采集周期仓储实现(日志库 - log_collect_cycle)
日志库:log_collector_heartbeat 心跳仓储实现
写入心跳
获取最新心跳
清理过去的心跳记录(按日期)
日志库:log_collect_raw 原始采集记录仓储实现
通过 Id 获取原始记录
按地址分页获取原始记录
获取某地址最新的一条原始采集记录
分页获取所有原始记录
写入原始采集记录
清理过期数据(按日期)
设备最新Tag数据仓储(查询日志库 raw_json,按 Tag ID 提取指标)
初始化,同时持有日志库和业务库连接字符串
cnc_log 连接字符串
cnc_business 连接字符串
获取指定设备的最新6个Tag及其采集时间
设备ID
6个Tag数据列表(找不到时返回空列表)
机床实现
机床SELECT列映射模板(snake_case列名 → PascalCase属性名)
在线判断SQL片段:last_ping_time在20秒内视为在线
实时统计指定日期范围的产量(从分段表计算)
获取有产量记录的机床数量
获取今日切削总时间(小时),取每台机床最新-最早的cutting_time差值之和
系统配置实现
工人-机床绑定实现
工人实现
工人SELECT列映射模板
车间仓储实现
cnc_alert 告警表 仓储接口
品牌字段映射仓储接口
品牌仓储接口
采集地址仓储接口
采集分析仓储接口
按机床ID和日期查询采集分析记录
采集周期仓储接口
日志库:心跳仓储接口
日志库:原始采集记录仓储接口
cnc_daily_production 产量仓储接口(业务库)
仪表盘统计查询仓储接口(跨表聚合)
NC程序产量排行TOP N
NC程序产量分布(饼图数据)
cnc_machine_daily_status 机床日状态表 仓储接口
设备最新Tag数据仓储接口(查询日志库)
获取指定设备的最新6个Tag及其采集时间
设备ID
6个Tag数据列表
机床仓储接口
设置机床所属的采集地址
获取机床最新一条采集记录(实时状态)
获取机床今日产量按程序名分组
获取机床近N天产量趋势
获取机床最近N条采集记录
cnc_production_adjustment 产量修正审计表 仓储接口
cnc_production_segment 产量分段记录表 仓储接口
cnc_screen_config 大屏卡片配置表 仓储接口
cnc_screen_filter 大屏筛选配置表 仓储接口
系统配置仓储接口
按配置Key获取配置
获取全部配置
更新配置值
配置项ID
新值
log_system 系统日志 仓储接口
cnc_worker_daily_summary 工人日汇总表 仓储接口
工人-机床绑定仓储接口
工人仓储接口
车间仓储接口