feat: 更新项目配置、数据库架构和文档路径

- 将项目文档路径从 project1.md 改为 project_management/project.md
- 启用酒店列表、房间列表和房型列表接口,并扩展启用的酒店ID范围
- 更新项目文档中的字段定义,将多个空调和能耗表字段改为数组类型以支持多设备
- 用新的 room_status_moment.sql 替换 init_db.sql,新增 bright_g 和 agreement_ver 字段,并为空调和能耗表字段使用数组类型,同时添加唯一索引支持 UPSERT
This commit is contained in:
2026-02-10 09:03:18 +08:00
parent a4763b5e30
commit daea483199
4 changed files with 39 additions and 37 deletions

View File

@@ -35,19 +35,19 @@
- 服务状态 service_mask int8
- 插卡状态 insert_card int2 (索引)
- 空调地址 air_address text[]
- 空调状态 air_state int2
- 空调模型 air_model int2
- 空调风速 air_speed int2
- 空调设置温度 air_set_temp int2
- 房间当前温度 air_now_temp int2
- 空调电磁阀状态 air_solenoid_valve int2
- 空调状态 air_state int2[]
- 空调模型 air_model int2[]
- 空调风速 air_speed int2[]
- 空调设置温度 air_set_temp int2[]
- 房间当前温度 air_now_temp int2[]
- 空调电磁阀状态 air_solenoid_valve int2[]
- 能耗表地址 elec_address text[]
- 能耗表电压 elec_voltage double precision
- 能耗表电流 elec_ampere double precision
- 能耗表功率 elec_power double precision
- 当前相位 elec_phase text
- 能耗表能耗 elec_energy double precision
- 能耗表累计能耗 elec_sum_energy double precision
- 能耗表电压 elec_voltage double precision[]
- 能耗表电流 elec_ampere double precision[]
- 能耗表功率 elec_power double precision[]
- 当前相位 elec_phase double precision[]
- 能耗表能耗 elec_energy double precision[]
- 能耗表累计能耗 elec_sum_energy double precision[]
- 碳达人状态 carbon_state int2 (索引)
- 回路状态 dev_loops jsonb
- 碳达人节能累计 energy_carbon_sum double precision

View File

@@ -40,24 +40,26 @@ CREATE TABLE IF NOT EXISTS room_status.room_status_moment (
cardless_state INT2,
service_mask INT8,
insert_card INT2,
bright_g INT2,
agreement_ver TEXT,
-- 空调相关
air_address TEXT[],
air_state INT2,
air_model INT2,
air_speed INT2,
air_set_temp INT2,
air_now_temp INT2,
air_solenoid_valve INT2,
air_state INT2[],
air_model INT2[],
air_speed INT2[],
air_set_temp INT2[],
air_now_temp INT2[],
air_solenoid_valve INT2[],
-- 能耗相关
elec_address TEXT[],
elec_voltage DOUBLE PRECISION,
elec_ampere DOUBLE PRECISION,
elec_power DOUBLE PRECISION,
elec_phase TEXT,
elec_energy DOUBLE PRECISION,
elec_sum_energy DOUBLE PRECISION,
elec_voltage DOUBLE PRECISION[],
elec_ampere DOUBLE PRECISION[],
elec_power DOUBLE PRECISION[],
elec_phase DOUBLE PRECISION[],
elec_energy DOUBLE PRECISION[],
elec_sum_energy DOUBLE PRECISION[],
-- 节能与外设
carbon_state INT2,
@@ -83,6 +85,11 @@ CREATE INDEX IF NOT EXISTS idx_room_status_moment_cardless ON room_status.room_s
CREATE INDEX IF NOT EXISTS idx_room_status_moment_insert_card ON room_status.room_status_moment (insert_card);
CREATE INDEX IF NOT EXISTS idx_room_status_moment_carbon ON room_status.room_status_moment (carbon_state);
-- 3.1 唯一索引 (支持 UPSERT)
-- 必须在 (hotel_id, room_id, device_id) 上建立唯一约束,才能使用 ON CONFLICT
CREATE UNIQUE INDEX IF NOT EXISTS idx_room_status_unique_device
ON room_status.room_status_moment (hotel_id, room_id, device_id);
-- 4. 示例:创建第一个分区 (hotel_id = 1)
-- 实际部署时,可根据 hotel_id 动态创建分区
CREATE TABLE IF NOT EXISTS room_status.room_status_moment_h1
@@ -125,6 +132,8 @@ COMMENT ON COLUMN room_status.room_status_moment.elec_phase IS '当前相位';
COMMENT ON COLUMN room_status.room_status_moment.elec_energy IS '能耗表能耗';
COMMENT ON COLUMN room_status.room_status_moment.elec_sum_energy IS '能耗表累计能耗';
COMMENT ON COLUMN room_status.room_status_moment.carbon_state IS '碳达人状态';
COMMENT ON COLUMN room_status.room_status_moment.bright_g IS '光亮值';
COMMENT ON COLUMN room_status.room_status_moment.agreement_ver IS '协议版本';
COMMENT ON COLUMN room_status.room_status_moment.dev_loops IS '回路状态';
COMMENT ON COLUMN room_status.room_status_moment.energy_carbon_sum IS '碳达人节能累计';
COMMENT ON COLUMN room_status.room_status_moment.energy_nocard_sum IS '无卡节能累计';