feat: 扩展心跳消息支持电力与空调设备数组字段

新增 Kafka 消息中 electricity[] 和 air_conditioner[] 数组字段支持,用于存储电力与空调设备明细数据。数据库表新增对应数组列并创建 GIN 索引优化查询性能,processor 实现数组字段校验与聚合转换逻辑。

主要变更:
- Kafka 消息规范新增 electricity 和 air_conditioner 数组字段定义
- 数据库 heartbeat_events 表新增 14 个数组列并创建 4 个 GIN 索引
- processor 实现数组字段解析、校验及聚合转换逻辑
- 更新相关文档与测试用例,确保端到端功能完整
This commit is contained in:
2026-01-16 14:45:36 +08:00
parent 7d5b9c50ea
commit 455185ac5d
16 changed files with 693 additions and 8 deletions

View File

@@ -43,8 +43,11 @@ async function main() {
`INSERT INTO heartbeat.heartbeat_events (
ts_ms, hotel_id, room_id, device_id, ip,
power_state, guest_type, cardless_state, service_mask,
pms_state, carbon_state, device_count, comm_seq, extra
) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14)`,
pms_state, carbon_state, device_count, comm_seq,
elec_address, voltage, ampere, power, phase, energy, sum_energy,
air_address, state, model, speed, set_temp, now_temp, solenoid_valve,
extra
) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28)`,
[
ts,
1,
@@ -59,6 +62,20 @@ async function main() {
0,
1,
1,
['add11', 'add12'],
[3.2, 3.3],
[1.1, 2.2],
[704.3, 705.3],
['A', 'B'],
[10.5, 11.5],
[100.5, 101.5],
['ac1'],
[1],
[2],
[3],
[26],
[25],
[1],
{ source: 'smoke-test' },
]
);