4. 核心功能模块
4.1 项目与组织管理
系统以项目为核心组织业务数据。每个项目可独立配置能源分类、设备、户号、区域、网关、价格、能耗看版和用户权限。
主要能力:
- 项目创建、详情、删除、列表查询
- 项目参数配置,支持上传项目图片、Logo 和图标
- 项目与能源分项绑定
- 多项目隔离,数据采集桶、实时缓存和业务查询均围绕 projectId 展开
4.2 用户、角色与权限
后台管理端具备基础账号体系:
- 用户登录获取 token
- 用户账号新增、编辑、删除、列表查询
- 角色模板、角色创建、角色查询与权限关联
- 菜单创建、编辑、删除和菜单列表
- 用户与项目关联,支持不同项目维度的数据访问
4.3 设备接入与基础配置
系统支持从能源分类、设备模型、测点属性到实际设备的完整配置链路:
- 能源分类管理:水、电等能源或设备类型
- 分项管理:按用能分项配置计量属性、价格类型和计费属性
- 设备管理:设备列表、编辑、导入、导出、属性配置、变更记录
- 网关管理:网关列表、新增、编辑、删除
- 区域管理:支持区域树,按园区、楼栋、楼层、户号逐级配置
- 标签管理:支持为设备打标签、批量标记与取消,可按标签筛选与归类设备
- 户号管理:户号创建、编辑、删除、列表查询,以及户号与仪表绑定
4.4 数据采集与实时监控
数据总线服务通过 MQTT 协议接收网关上报的测点数据,完成以下处理:
- 校验网关与设备关系
- 自动更新网关在线状态和设备状态
- 将原始测点数据持久化到时序数据库
- 将实时数据写入缓存,供前端快速查询
- 将实时数据转发到监控主题,驱动大屏等监控界面
后台监控端支持:
- 网关监控与设备状态查询
- 设备实时监控列表
- 指定设备、测点的历史数据查询
- 设备单点控制、批量控制和控制历史查询(详见后续章节)
4.5 能耗分析与报表
系统基于时序数据库提供多维度能耗分析:
- 按设备、区域、分项、标签统计能耗
- 支持时段报表、日报表、月报表、年报表等周期报表
- 支持各类报表导出
- 支持同类维度的对比分析
- 支持综合分析(按区域、标签、设备、能耗分项多维度展示)
能耗计算根据测点类型选择不同算法:
- 累计量型:首尾读数差计算,支持排除特定时间段
- 用量型:区间求和计算
- 统一倍率:PT × CT × 属性倍率,自动应用倍率换算
4.6 费用统计与账单管理
EMS 提供面向户号、区域等维度的费用统计和账单查询能力:
- 户号费用树和费用统计
- 费用结算查询
- 费用分析,支持按户号或区域查看费用数据
- 同比分析,支持不同对象或周期的费用对比
- 月账单列表、按户号账单查询、账单详情查询
- 微信端账单查询通过微信端服务模块对外提供
费用统计的计费分支:当检测到设备为分时价格或分项启用阶梯规则时,系统自动切换至统一计费引擎计算用量和金额,并将计费明细附加到户号设备数据中一并返回。
4.7 预付费与余额结算
EMS 支持以户号为单位的水电预付费管理,系统定时自动执行户号余额结算任务。
系统定时对每个户号进行结算:根据绑定的计量设备,自动计算当日用量与费用,更新账户余额,并依据余额自动判定户号状态(正常 / 告警 / 欠费)。
户号余额实时扣减,系统根据余额自动判定状态并触发对应策略(正常使用、余额预警、欠费拉闸)。
预付费管理能力:
- 户号列表、户号详情、冻结账号、充值记录
- 充值订单列表、充值导出、后台补录缴费
- 户号余额统计和结算
- 欠费、余额正常、余额告警等户号状态维护
- 欠费或策略触发后的设备开关控制
- 手动/自动控制历史记录
4.8 分时电价(TOU)
EMS 支持按尖、峰、平、谷、深等时段分别计价的分时电价功能。以项目为单位配置时段划分与各时段单价,系统自动校验时段合法性(不重叠、覆盖 24 小时、支持跨天时段),在结算时按实际用电时段匹配对应单价完成计费,并与阶梯电价规则联合生效。
4.9 阶梯电价(Tier)
EMS 支持按月、季度、年度周期累计用电量,对超出阈值部分加价的阶梯电价功能。
阶梯规则配置
在能耗分项上配置阶梯价格规则:
- 绑定能耗分项
- 是否启用
- 统计周期:月、季度、年
- 统计范围:按户号(户号)累计
- 加价方式:仅超出部分加价 / 超过后全量加价
- 分时时段绑定:固定价时不区分时段;分时价可指定特定时段独立阶梯
- 阶梯阈值(单位:度)
- 基础价格上调金额(元/度)
两种加价方式
- 仅超出部分加价:仅超出阈值的部分按加价后单价计算。示例:年累计 1990 度,本次用 30 度 → 10 度 × 原价 + 20 度 × 加价
- 全量加价:超过阈值后,本次全部用量按加价后单价计算(不推荐用于预付费场景,会回溯历史金额)
多阶梯计算示例
基础价:0.80 元/度
阶梯规则:
500 度以上 +0.03
1000 度以上 +0.08
已累计:450 度,本次用 700 度
→ 450-500:50 度 × 0.80 = 40.00 元
→ 500-1000:500 度 × 0.83 = 415.00 元
→ 1000-1150:150 度 × 0.88 = 132.00 元
合计:587.00 元
周期累计
- 月:当月 1 日 00:00:00 到下月 1 日 00:00:00
- 季度:当前季度首月 1 日 00:00:00 到下一季度首月 1 日 00:00:00
- 年:当年 1 月 1 日 00:00:00 到次年 1 月 1 日 00:00:00
累计用量来源:
- 已落库的历史结算明细
- 同一次计算内未落库的片段用量(内存游标累加,防止重复套用低阶梯)
4.10 计费引擎
系统引入统一计费引擎,作为所有计费计算的核心入口。
支持的计费组合
- 固定价:按单一固定单价计费,可叠加阶梯规则
- 分时价:按不同时段分别计费,每个时段可独立设置阶梯或共享阶梯
- 混合模式:同一户号可同时绑定固定价和分时价设备,金额累加
计费输出结构
每次计算返回标准计费结果,包含:
- 总用电量
- 总费用
- 基础费用(不含阶梯加价)
- 阶梯额外加价
- 计费明细列表
每条计费明细包含价格类型、能耗分项、计费属性、分时时段、用电量、基础单价、阶梯加价、最终单价、各项费用金额及阶梯分段明细。
4.11 计费明细落库
每次日结,系统将计费明细写入数据库的计费明细表,支持账单追溯与审计。
表中记录:项目 ID、户号 ID、能源分类与分项、计费属性、价格类型(固定价/分时价)、阶梯周期、分时时段编码、结算日期、用电量、各级单价(基础/阶梯/最终)及分项费用金额、阶梯分段明细等完整字段。
防重复机制:每次日结前,按户号、日期、分类、属性维度删除旧明细,再写入新明细。保存明细时会扣减历史已入库金额,确保累计结果不会重复。
4.12 排除时间段管理
系统支持配置排除时间段,用于剔除不参与计费或统计的时间窗口(如设备维护期间)。
业务规则:
- 同一项目下排除时间段不允许重叠
- 开始时间不能晚于结束时间
- 支持增删改查和批量删除
- 在计费计算中自动排除这些时间段内的数据
4.13 设备远程控制
系统支持通过 MQTT 向设备下发控制命令,并记录控制历史。主要能力包括:预付费场景下按户号控制电表开关、监控中心按设备控制测点、按项目和分类批量控制,控制前自动校验设备状态避免重复下发,全流程可追溯。
4.14 告警与任务管理
EMS 包含完整的告警系统,支持多种告警类型和通知渠道。
告警类型
- 阈值告警:数值超限告警,支持大于、小于或区间范围检测
- 存活监测:设备离线或无数据告警,当设备停止上报数据时触发
- 读数回退告警:累计量读数出现回退(差值为负数)时触发
- 通讯告警:网关或设备离线超过指定时间时触发
告警等级
- 严重:设备离线、读数异常
- 紧急:数值超限
- 一般:提示性告警
通知渠道
系统支持多种通知方式,通过告警选项配置管理:
- 邮件通知:通过邮件服务发送
- 短信通知:通过短信服务发送
- 微信通知:通过 Webhook 推送到微信
- Webhook 通知:自定义 HTTP 推送
每种通知渠道独立配置,支持启用/禁用。
告警处理流程
- 监控检测触发告警,通过 HTTP 回调通知系统
- 系统解析告警参数
- 写入告警计数到时序数据库
- 检查是否重复告警(同一检测规则 + 标签 + 数值)
- 重复:计数器 +1,不重复推送通知
- 不重复:创建新告警记录
- 根据告警选项异步推送通知
- 存入告警记录表
边缘告警(设备离线检测)
系统定期自动检测离线设备和网关:
- 遍历所有启用的边缘告警规则
- 检查离线设备和网关
- 同一告警对象在检测周期内不重复推送
- 批量写入告警记录
4.15 微信端与微信支付
微信端服务模块提供面向租户或终端用户的微信端能力和微信支付集成。
微信端能力
- 微信授权登录、用户信息获取
- 户号列表查询
- 户号详情查询
- 用户与户号绑定、解绑、绑定信息查询
- 缴费记录查询
- 户号账单和账单详情查询
支付能力
- 微信支付 JSAPI 下单
- 支付订单查询
- 支付回调处理
- 退款回调处理
- 定时检查或处理支付状态