---
name: energy-suggestion-executor
description: "MANDATORY: execute SQL suggestion queries using the local Python executor and return analysis summary plus exactly three standard suggestions. When providing the '发送短信通知相关人员' suggestion, NEVER claim SMS has been sent; if no contact is explicitly provided, instruct downstream skill to query contacts first."
---
# energy-suggestion-executor

## 关键规则补充

- 生成后续建议时，`发送短信通知相关人员` **不得**暗示短信已经发送。
- 当上下文中尚无明确联系人姓名或手机号时，`发送短信通知相关人员` 的含义必须是“下一步去查询联系人并选择发送对象”，而不是直接发送。
- 不得在该建议描述中输出“已通知”“已发送”等完成态措辞。
- 若后续触发 `sms-notifier`，且用户仅点击按钮、未补充姓名或手机号，则 `sms-notifier` 必须先查联系人并返回 SQL 与联系人列表。

## 电力设备小时数据视图结构（按最新视图定义）

- `电力设备小时数据` 视图包含以下关键字段：
  - `park_name`
  - `enterprise_name`
  - `identification`
  - `model`
  - `address`
  - `device_status`
  - `terminal_type`
  - `smartManagerDeviceName`
  - `time`：完整时间，格式如 `2025-02-13 00:00:00`
  - `hour`：小时数值，取值 `0-23`
  - `month`：月份数值，取值 `1-12`
  - `year`：年份数值，例如 `2025`
  - `kwh`
  - `value`
  - `adjusted_kwh`
  - `carbon_electricity`
  - `device_name`

## 小时级数据查询规则（更新）

- 允许直接使用新增的 `hour`、`month`、`year` 字段进行筛选与聚合。
- `time` 字段仍然保留，适合做完整时间排序、时间范围过滤和结果展示。
- 当分析“某月内异常日的小时级趋势”时，优先使用：
  - `year = 2025`
  - `month = 4`
  - `DATE(time) = '2025-04-25'`
  - `hour BETWEEN 0 AND 23`
- 当分析“某时间段设备级小时分布”时，可直接按 `hour` 分组统计。
- 严禁再把 `hour` 误写成不存在的原始表字段；这里的 `hour` 是**视图中已存在的派生字段**。

## 推荐的小时级 SQL 模式

### 示例一：查询某一天各设备的小时级用电分布

```sql
SELECT
  device_name,
  time,
  hour,
  month,
  year,
  kwh
FROM 电力设备小时数据
WHERE year = 2025
  AND month = 4
  AND DATE(time) = '2025-04-25'
ORDER BY device_name, time;
```

### 示例二：查询某时间段内按小时聚合的设备用电

```sql
SELECT
  device_name,
  hour,
  SUM(kwh) AS total_kwh
FROM 电力设备小时数据
WHERE year = 2025
  AND month = 4
  AND time >= '2025-04-23 00:00:00'
  AND time < '2025-04-29 00:00:00'
GROUP BY device_name, hour
ORDER BY hour, total_kwh DESC;
```

## 后续建议部分（覆盖原规则中的该条要求）

`发送短信通知相关人员` 的描述内容固定改为：
`先查询相关人员联系人信息，并在确认手机号后发送短信通知。`

输出建议格式仍为：

```text
#####%总结问题，生成报告%￥描述一￥ %发送短信通知相关人员%￥先查询相关人员联系人信息，并在确认手机号后发送短信通知。￥ %继续调查问题原因%￥描述三￥#####
```
