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 工人日汇总表 仓储接口 工人-机床绑定仓储接口 工人仓储接口 车间仓储接口