功能设计方案.md 8.8 KB

企业级能耗管理平台 (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. 数据库设计 (核心精简版)

保留核心业务表,移除移动端相关字段。

-- 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)
);