“企业能源驾驶舱” —— 一个基于浏览器的高密度数据监控与管理中心。
采用 边缘接入层 -> 核心服务层 -> Web管理层 的三层架构。
automation, script 等垃圾实体。批量设为虚拟计量 -> 输入额定功率 (15W)。批量关联空间 -> 弹出空间树选择。
复合实体聚合: 在详情弹窗中,手动或自动勾选主实体 (switch) 对应的传感器 (sensor.power, sensor.temp)。
实测功率 与 虚拟计算功率 的趋势。位置 | 设备名 | 状态 | 电流 | 功率 | 温度 | 操作。楼层总表 - Σ(房间设备)。以柱状图显示每月“未知损耗”最大的楼层。额定功率,系统自动更新计算参数。2023-10-27 10:00:05 | 张三(运维) | 远程关闭 | 301空调 | 成功。角色管理:
Level 1 (全部数据): 查看所有。Level 2 (自定义权限): 手动勾选指定的楼宇/园区 (关联 sys_location)。Level 3 (本部门及以下): 查看用户所在部门及子部门关联的设备。Level 4 (仅本人): 仅查看分配给自己的设备或自己创建的记录。部门管理: 组织架构树,支持无限层级。
00:00-08:00 (谷), 08:00-12:00 (峰), 12:00-14:00 (平)...保留核心业务表,移除移动端相关字段。
-- 1. 接入源
CREATE TABLE integration_source (
id UUID PRIMARY KEY,
name VARCHAR(50),
driver_type VARCHAR(20), -- HA, MODBUS
config JSONB, -- IP, Token
status VARCHAR(20)
);
-- 2. 设备资产 (核心)
CREATE TABLE device (
id UUID PRIMARY KEY,
source_id UUID,
external_id VARCHAR(100),
name VARCHAR(100),
original_name VARCHAR(100),
device_type VARCHAR(50), -- LIGHT, SWITCH
location_id UUID, -- 关联空间
dept_id UUID, -- 关联部门(可选,用于Level 3权限)
metering_mode VARCHAR(20), -- VIRTUAL, REAL
rated_power NUMERIC(10,2), -- 额定功率
attribute_mapping JSONB, -- 复合实体映射
status VARCHAR(20), -- NORMAL, MAINTENANCE
UNIQUE(source_id, external_id)
);
-- 3. 空间拓扑
CREATE TABLE sys_location (
id UUID PRIMARY KEY,
parent_id UUID,
name VARCHAR(50),
type VARCHAR(20) -- PARK, BUILDING, FLOOR, ROOM
);
-- 4. 告警记录 (替代工单)
CREATE TABLE alarm_log (
id UUID PRIMARY KEY,
device_id UUID,
type VARCHAR(50),
content TEXT,
status VARCHAR(20), -- ACTIVE, ACKED, RESOLVED
start_time TIMESTAMP
);
-- 5. 操作日志 (审计)
CREATE TABLE sys_oper_log (
id UUID PRIMARY KEY,
user_id UUID,
action VARCHAR(50), -- TURN_ON, UPDATE_CONFIG
target VARCHAR(100),
result BOOLEAN,
time TIMESTAMP
);
-- 6. 巡检台账 (手动录入记录)
CREATE TABLE inspection_ledger (
id UUID PRIMARY KEY,
device_id UUID,
inspector_id UUID, -- 录入人
status VARCHAR(20), -- NORMAL, ABNORMAL
calibrated_power NUMERIC,-- 仅针对虚拟设备,校准后的功率
check_time TIMESTAMP
);
-- 7. 系统组织架构 & 权限
CREATE TABLE sys_dept (
id UUID PRIMARY KEY,
parent_id UUID,
name VARCHAR(50),
leader VARCHAR(50),
phone VARCHAR(20),
order_num INT
);
CREATE TABLE sys_role (
id UUID PRIMARY KEY,
name VARCHAR(50),
role_key VARCHAR(50), -- admin, common
data_scope VARCHAR(20), -- 1:ALL, 2:CUSTOM, 3:DEPT, 4:SELF
menu_check_strictly BOOLEAN DEFAULT TRUE,
status VARCHAR(1) -- 0:Normal, 1:Disable
);
CREATE TABLE sys_user (
id UUID PRIMARY KEY,
dept_id UUID,
username VARCHAR(50) UNIQUE,
password VARCHAR(100),
name VARCHAR(50),
email VARCHAR(100),
status VARCHAR(1) -- 0:Normal, 1:Disable
);
CREATE TABLE sys_user_role (
user_id UUID,
role_id UUID,
PRIMARY KEY(user_id, role_id)
);
-- 角色-部门/地点 数据权限关联 (仅当 data_scope=2 时使用)
CREATE TABLE sys_role_dept (
role_id UUID,
dept_id UUID,
PRIMARY KEY(role_id, dept_id)
);
-- 8. 系统配置
CREATE TABLE sys_config (
config_id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
config_key VARCHAR(100) UNIQUE,
config_value TEXT,
config_type VARCHAR(10), -- Y/N (System built-in?)
remark VARCHAR(500)
);