指导手册:统计规则、实现逻辑与业务定义
该模块是配电运行分析的核心,用于监控线路和具体开关的跳闸频次,支撑设备消缺和改造决策。
| 监控对象 | 累计跳闸次数 | 告警定义 / 业务动作 |
|---|---|---|
| 同一线路 | 3 - 4 次 | 预警 (一级) |
| 5 次 | 告警 (二级) + 线路资产复飞 | |
| 6 - 7 次 | 特别告警 (三级) | |
| ≥ 8 次 | 越限告警 (四级) | |
| 单一开关 | ≥ 3 次 | 资产复飞 + 9.9万改造项目入库 |
# 分组聚合时的显式字段声明 $agg_ref->{$group_key} = { district_bureau => $row->{district_bureau}, equipment_name => $row->{equipment_name}, # 关键:双参数拆分,防止用户对“开关”定义产生模糊 line_switch => $row->{line_switch}, # 调度端原始开关 trip_switch_name => $row->{trip_switch_name}, # 人工核实后的开关 count => 0, events => [], };
专门针对因用户内部资产故障导致公用电网跳闸的情况。通过该统计,管理人员可以精准锁定高风险用户。
fault_major_category 为“用户故障出门”的记录。dispatch_logs_dedup 完成 6 小时时间窗去重。| 累计次数 | 业务级别 | 处置建议 |
|---|---|---|
| 2 次 | 预警 | 告知用户检查其侧保护定值 |
| ≥ 3 次 | 告警 | 纳入资产复飞,建议停电整改 |
# 数据采集逻辑:严格过滤非空用户名称 my $sql = qq{ SELECT ... FROM dispatch_logs_dedup d INNER JOIN dispatch_logs_backfilling b ON d.id = b.dispatch_logs_id WHERE b.fault_major_category = ? AND b.user_fault_exit IS NOT NULL }; # 结果包统一参数结构 my $packet = { customer_name => $data->{customer_name}, line_switch => $data->{line_switch}, trip_switch_name => $data->{trip_switch_name}, count => $count, };
统计因施工、吊车碰线、异物挂线等第三方责任引起的跳闸。用于指导运维班组加强特定地段的防外破巡视。
third_party_liability 字段必须标记为“是”。# 无论统计维度为何,最终返回给前端的明细包均保持结构一致 my $packet = { district_bureau => $data->{district_bureau}, equipment_name => $data->{equipment_name}, # 统一参数:即使外破统计主要看线路,也要带出具体的开关信息 line_switch => $data->{line_switch}, trip_switch_name => $data->{trip_switch_name}, count => $count, };
为了保证“每日报表”只展示今日受影响的设备,同时又不丢失其年度历史背景,三个模块统一采用了以下算法:
遍历所有事件,检查是否有至少一条记录落在用户选定的 [start_dt, end_dt](通常是当日)内。
价值: 解决了“历史跳闸多”与“今日关注点”的矛盾,让报表具备极强的实战指导意义。