# 企业级能耗管理平台 (EMS) 完整设计方案 (PC端/Web版) ## 1. 系统定位 **“企业能源驾驶舱”** —— 一个基于浏览器的高密度数据监控与管理中心。 * **使用者:** 坐在办公室的能源经理、运维主管、财务人员、系统管理员。 * **核心场景:** 全局监控、远程控制、报表分析、设备接入配置、电子台账管理。 --- ## 2. 总体逻辑架构 采用 **边缘接入层 -> 核心服务层 -> Web管理层** 的三层架构。 ### 2.1 Web前端层 (PC Only) * **技术栈:** Vue 3 + TypeScript + Element Plus + ECharts + AntV (图关联分析)。 * **交互风格:** Admin Dashboard (左右布局),支持多Tab页签,支持大屏模式 (DataV)。 ### 2.2 核心服务层 (Backend) * **资源与物联 (Resource):** 负责设备抽象、驱动适配 (HA/PLC)。 * **计算引擎 (Compute):** 负责虚实结合的能耗计算、实时报警判断。 * **运维与日志 (O&M):** 负责告警分发、操作审计、电子巡检台账。 * **系统安全 (IAM):** 负责RBAC权限、数据隔离 (Data Scope)。 ### 2.3 边缘接入层 (Edge) * **协议适配:** Modbus/TCP, HTTP, MQTT, WebSocket (HA)。 --- ## 3. 功能模块详细设计 ### 模块一:资源与物联中心 (Resource & IoT) #### 1.1 数据源配置 * 管理 HA 实例、PLC 网关、HTTP 数据源。 * 功能:新增、编辑、连接测试、立即同步。 #### 1.2 设备管理 * **预过滤 (Pre-filter):** 后端自动清洗 `automation`, `script` 等垃圾实体。 * **交互式列表:** * 左侧:待接入设备列表(支持 Shift 多选)。 * 底部工具栏:**批量操作**。 * `批量设为虚拟计量` -> 输入额定功率 (15W)。 * `批量关联空间` -> 弹出空间树选择。 * **复合实体聚合:** 在详情弹窗中,手动或自动勾选主实体 (`switch`) 对应的传感器 (`sensor.power`, `sensor.temp`)。 #### 1.3 空间拓扑管理 * **界面:** 左侧树状结构 (园区-楼-层-房),右侧画布或列表。 * **操作:** 拖拽设备到房间,或者将“未分配设备”批量划入房间。 --- ### 模块二:监控与控制中心 (Monitoring & Control) #### 2.1 综合态势大屏 (Dashboard) * **GIS/平面图:** 展示园区/楼层能耗热力图。 * **关键指标:** 今日总能耗、实时总功率、当前告警数、设备在线率。 * **实时曲线:** 叠加显示 `实测功率` 与 `虚拟计算功率` 的趋势。 #### 2.2 设备集控视图 (SCADA Lite) * **列表模式:** 高密度表格,显示 `位置 | 设备名 | 状态 | 电流 | 功率 | 温度 | 操作`。 * **操作:** 远程开关控制 (记录操作日志)。 * **卡片模式:** 适合展示空调等复杂设备,显示面板读数。 #### 2.3 实时告警台 (Alarm Console) * **界面:** 类似邮件收件箱,左侧是未处理告警列表,右侧是详情。 * **功能:** * **声音提醒:** 浏览器播放报警音。 * **操作:** [确认(Ack)] / [清除] / [查看关联设备]。 * **告警类型:** 离线、过载、过热、虚实偏差过大。 --- ### 模块三:能耗分析引擎 (Analytics Engine) #### 3.1 统计报表 * **时间维度:** 日/周/月/年报表,支持同比/环比分析。 * **空间维度:** 按楼宇、按部门排名能耗。 * **分项计量:** 照明、空凋、动力、特殊用电 (通过设备类型标签聚合)。 #### 3.2 损耗与能效分析 * **线路损耗:** `楼层总表 - Σ(房间设备)`。以柱状图显示每月“未知损耗”最大的楼层。 * **虚拟运行分析:** 统计虚拟设备的“开启时长”,分析是否存在下班未关灯情况。 --- ### 模块四:运维台账与审计 (O&M Ledger) #### 4.1 巡检台账 (Inspection Ledger) * **场景:** 运维人员拿纸质单巡检回来,或者抱着笔记本电脑去巡检。 * **功能:** * **批量录入:** 列表显示所有设备,运维人员在“状态”列批量勾选“正常”,对异常设备单独备注。 * **功率校准:** 在台账中可以直接修正虚拟设备的 `额定功率`,系统自动更新计算参数。 #### 4.2 操作审计日志 (Operation Log) * **功能:** 记录所有“写操作”。 * **内容:** `2023-10-27 10:00:05 | 张三(运维) | 远程关闭 | 301空调 | 成功`。 * **权限:** 结合 Level 4 数据权限,普通用户只能看自己的操作记录。 #### 4.3 同比差异报告 * **功能:** 每日展示 HA/PLC 的配置变更(新增/丢失/改名)。 --- ### 模块五:系统设置 (System & Security) #### 5.1 用户与角色 (RBAC & Data Scope) * **用户管理:** 用户名、密码、关联部门、关联角色、状态(正常/禁用)。 * **角色管理:** * **基础信息:** 角色名称、角色标识 (Key)、显示顺序。 * **菜单权限:** 勾选系统菜单树 (Tree Select)。 * **数据权限 (Data Scope):** 决定用户能看到哪些设备和报表数据。 * `Level 1 (全部数据)`: 查看所有。 * `Level 2 (自定义权限)`: 手动勾选指定的**楼宇/园区** (关联 `sys_location`)。 * `Level 3 (本部门及以下)`: 查看用户所在部门及子部门关联的设备。 * `Level 4 (仅本人)`: 仅查看分配给自己的设备或自己创建的记录。 * **部门管理:** 组织架构树,支持无限层级。 * 字段: 部门名称、负责人、联系电话、排序号。 #### 5.2 字典与参数 * **电价配置 (TOU):** * 支持 **分时电价 (Time-of-Use)** 配置。 * 定义时段: 尖 (Peak)、峰 (High)、平 (Flat)、谷 (Valley)。 * 示例: `00:00-08:00 (谷)`, `08:00-12:00 (峰)`, `12:00-14:00 (平)`... * 设置各时段单价 (元/kWh)。 * **系统配置:** * 平台名称、Logo URL、备案号、默认语言。 * 数据保留策略 (例如: 历史数据保留365天)。 --- ## 4. 数据库设计 (核心精简版) 保留核心业务表,移除移动端相关字段。 ```sql -- 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) ); ```