Skip to content

zhitancloud/zhitan-ems

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

148 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

智碳能源管理系统 Logo

智碳能源管理系统

Zhitan Energy Carbon Management System

基于SpringBoot和若依框架开发的企业级能源管理解决方案

star fork Version License

在线演示

演示地址:https://demo-ems.zhitancloud.com/

项目简介

智碳能源管理系统(Zhitan EMS)是一款面向政府、园区、企业等用户的综合能源管理解决方案。 系统以工信部印发《工业企业和园区数字化能碳管理中心建设指南》为参考,通过采集水、电、气、热、碳、光、储、充等多种数据,帮助工业企业和园区建立完善的能源管理体系, 实现对能耗和碳排放的精准化计量、精细化管控、智能化决策与可视化呈现,持续提升节能降碳管理能力,有效支撑能源利用效率提升和碳排放降低,为节能减排提供科学依据,促进绿色低碳转型。 本系统致力于支持中国碳达峰、碳中和目标,助力企业实现碳跟踪、碳盘查、碳交易、碳汇报的全生命周期管理。

核心亮点

输入图片说明

核心功能

📊 社区版功能

  • ✅ 首页看板 - 实时展示关键能源指标和统计数据
  • ✅ 实时数据监测 - 实时查看能源消耗数据和组态图分析
  • ✅ 历史数据分析 - 查看历史点位数据进行趋势分析
  • ✅ 综合指标分析 - 日/月/年度综合能耗分析报告
  • ✅ 重点设备分析 - 关键设备能耗监测与分析
  • ✅ 工序能耗分析 - 生产工序能耗分布与效率评估
  • ✅ 尖峰平谷分析 - 电价时段统计与优化建议
  • ✅ 能耗对比分析 - 各能源品种同环比分析
  • ✅ 建筑能耗分析 - 支路与分项建筑能耗详细分析
  • ✅ 智能报警系统 - 异常能耗预警与报警管理
  • ✅ 数据补录功能 - 手动补充缺失数据记录
  • ✅ 节能项目管理 - 节能改造项目跟踪
  • ✅ 知识库系统 - 能源管理知识与最佳实践共享
  • ✅ 设备档案管理 - 能耗设备信息维护与管理
  • ✅ 模型配置管理 - 计算模型与业务模型自定义配置
  • ✅ 基础数据管理 - 字典、能源类型等基础信息维护
  • ✅ 系统权限管理 - 用户、角色、权限统一管控

💎 增强版功能(商业版提供企业级解决方案)

  • 🚀 单耗分析 - 产品单产能耗深度分析
  • 🚀 计划与实绩对比 - 能耗计划执行情况追踪
  • 🚀 用能考核体系 - 建立科学的用能考核机制
  • 🚀 用能对标分析 - 行业标杆对比与差距分析
  • 🚀 空调节能优化 - 建筑空调系统节能策略
  • 🚀 能源平衡分析 - 能源供应与消耗平衡图表
  • 🚀 能源对标分析 - 与行业标准或历史数据对标
  • 🚀 重点设备节能 - 空压机等设备专项节能方案
  • 🚀 碳管理体系 - 碳盘查、碳路径规划、排放因子管理
  • 🚀 源网荷储协同 - 微电网能量协调优化控制
  • 🚀 低碳园区建设 - 园区级低碳发展解决方案
  • 🚀 自定义报表 - 灵活配置各类分析报表
  • 🚀 成本效益分析 - 能源成本构成与优化分析
  • 🚀 光伏运维监控 - 光伏发电系统运行状态监控
  • 🚀 充电运营管理 - 新能源汽车充电设施运营
  • 🚀 能耗对标 - 增加了基于工业重点领域能效标杆和基准水平的能耗对标功能
  • 🚀 积木报表 - 集成了积木报表设计器
  • 🚀 单点登录 - 增加了单点登录功能
  • 🚀 多种能源品种 - 实时数据兼容多能源品种

系统截图

登录页面

登录页面

首页展示(深色主题)

首页-深色

首页展示(浅色主题)

首页-浅色

实时监测(深色主题)

实时监测-深色

实时监测(浅色主题)

实时监测-浅色

区域能耗分析

区域能耗

尖峰平谷分析

尖峰平谷

系统架构

整体架构说明

完整的能碳管理平台由三个核心组件构成:

  1. 能碳平台后台管理端 (本项目,不含数据清洗服务) - 提供后台管理界面及API接口,如需面向中小型客户定制开发版本请移步仓库:zhitan-ems-mini版
  2. 数据采集程序 - MQTT网关负责从现场设备采集数据并存储到时序数据库。请参考我们另一个仓库:MQTT采集网关
  3. 数据清洗服务 - 定期将时序数据转换并存储到关系型数据库用于分析。学习者可以使用java自带的XXL job等计划任务工具自己按照业务功能,来实现数据清洗服务。

项目结构

zhitan-ems/
├── bin/                          # 批处理脚本目录
│   ├── clean.bat                 # 清理脚本
│   ├── package.bat               # 打包脚本
│   └── run.bat                   # 运行脚本
├── zhitan-admin/                 # 主应用模块
│   └── src/main/
│       ├── java/com/zhitan/web/  # Web控制器
│       ├── java/com/zhitan/AdminApplication.java     # Spring Boot主类
│       ├── java/com/zhitan/AdminServletInitializer.java
│       └── resources/            # 配置文件
│           ├── application*.yml  # 环境配置文件
│           ├── banner.txt        # 应用横幅
│           ├── logback.xml       # 日志配置
│           └── mybatis/          # MyBatis映射文件
├── zhitan-common/                # 公共工具和共享组件
│   └── src/main/java/com/zhitan/common/
│       ├── annotation/           # 自定义注解
│       ├── config/               # 公共配置
│       ├── constant/             # 常量定义
│       ├── core/                 # 核心组件(控制器、领域模型等)
│       ├── enums/                # 枚举类型
│       ├── exception/            # 异常处理
│       ├── filter/               # 过滤器(XSS、重复请求等)
│       ├── utils/                # 工具类
│       └── xss/                  # XSS防护组件
├── zhitan-framework/             # 框架组件
│   └── src/main/java/com/zhitan/framework/
│       ├── aspectj/              # 面向切面编程组件
│       ├── config/               # 配置类
│       ├── datasource/           # 数据源管理
│       ├── interceptor/          # 拦截器
│       ├── manager/              # 管理组件
│       ├── mqtt/                 # MQTT消息支持
│       ├── security/             # 安全组件
│       ├── sms/                  # 短信功能
│       └── web/                  # Web相关组件
├── zhitan-generator/             # 代码生成模块
├── zhitan-quartz/                # 定时任务模块
├── zhitan-system/                # 系统管理模块
└── zhitan-vue/                   # 前端应用(Vue.js)
    ├── html/                     # HTML文件
    ├── src/                      # 源码目录
    │   ├── api/                  # API客户端
    │   ├── assets/               # 静态资源
    │   ├── components/           # Vue组件
    │   ├── directive/            # Vue指令
    │   ├── layout/               # 布局组件
    │   ├── plugins/              # 插件
    │   ├── router/               # 路由配置
    │   ├── store/                # Vuex状态管理
    │   ├── utils/                # 前端工具
    │   ├── views/                # 视图组件
    │   ├── App.vue               # 根Vue组件
    │   ├── main.js               # 入口文件
    │   ├── permission.js         # 权限控制
    │   └── settings.js           # 应用设置
    ├── vite/plugins/             # Vite构建插件
    ├── index.html                # 主HTML文件
    ├── package.json              # Node.js依赖
    └── vite.config.js            # Vite配置

技术栈

后端技术

  • 核心框架:Spring Boot + Ruoyi Framework
  • 数据库:PostgreSQL (推荐), MySQL (需自行适配)
  • 时序数据库:InfluxDB 2.7+
  • 缓存中间件:Redis
  • 任务调度:Quartz
  • 消息通信:MQTT
  • 安全框架:Spring Security
  • 接口文档:Swagger

前端技术

  • 主框架:Vue 3 + Element Plus
  • 构建工具:Vite
  • 状态管理:Vuex
  • 路由管理:Vue Router
  • 图表库:ECharts
  • UI主题:支持深色/浅色模式切换

快速部署

本项目已支持容器化部署,可供您快速部署,学习并使用。请按照以下顺序进行执行部署:

官方镜像库:

API镜像库: https://hub.docker.com/r/zhitancorp/zhitan-api

Web镜像库:https://hub.docker.com/r/zhitancorp/zhitan-web

1. 数据库:

1.1 部署数据库
# 拉取镜像
docker pull docker.1ms.run/library/postgres:14-alpine
docker tag docker.1ms.run/library/postgres:14-alpine postgres:14-alpine

# 启动容器
docker run -d \
  --name postgres \
  --restart always \
  -p 5432:5432 \
  -v /var/lib/postgresql/data:/var/lib/postgresql/data \
  -e POSTGRES_DB=zhitan_ems \
  -e POSTGRES_USER=postgres \
  -e POSTGRES_PASSWORD=postgres \
  -e TZ=Asia/Shanghai \
  postgres:14-alpine
1.2 导入数据库脚本:
    sql -- 执行 zhitan-api/sql/public-v3.sql 文件初始化数据库

2. Redis:

# 拉取镜像
docker pull docker.1ms.run/library/redis:6.2.21
docker tag docker.1ms.run/library/redis:6.2.21 redis:6.2.21

# 启动容器
docker run -d \
  --name redis \
  --restart always \
  -p 6379:6379 \
  redis:6.2.21 \
  redis-server --appendonly yes

3. MQTT:

您可以使用免费公共MQTT服务来进行测试。 详情: https://www.emqx.com/zh/mqtt/public-mqtt5-broker

Broker: broker.emqx.io
TCP 端口: 1883
WebSocket 端口: 8083
SSL/TLS 端口: 8883
WebSocket Secure 端口: 8084
QUIC 端口: 14567

4. InfluxDB(时序数据库):

4.1 部署
# 拉取镜像
docker pull docker.1ms.run/library/influxdb:latest
docker tag docker.1ms.run/library/influxdb:latest influxdb:latest 

# 启动容器
docker run -d \
  --name influxdb \
  --restart always \
  -p 8086:8086 \
  -v /path/to/your/data:/var/lib/influxdb  \
  influxdb:latest
4.2 获得访问token
  1. 访问influxDB的 IP:8086。请填写以下信息,请记住Org NameBucket Name,点击Continue 1a0eeda6-0328-483f-ac6d-2015263e9f04

  2. 点击Continue以后:请记住该Token

2a8a88e2-57a3-4129-a473-55ed27c858a3

5. 后端API:

5.1 准备环境变量配置文件

本项目中所需要的配置,均可通过环境变量进行注入,具体参考根目录中的 .env.file 文件

请将该配置文件中的各个参数,配置为您实际的系统信息。如以下:

# ============================================
# 环境变量配置文件
# ============================================

# ===== 数据库配置 =====
DB_URL=jdbc:postgresql://192.168.0.40:5432/zhitan_ems
DB_USERNAME=postgres
DB_PASSWORD=postgres

# 从库配置(可选)
DB_SLAVE_ENABLED=false
DB_SLAVE_URL=
DB_SLAVE_USERNAME=
DB_SLAVE_PASSWORD=

# ===== Redis 配置 =====
REDIS_HOST=192.168.0.40
REDIS_PORT=6379
REDIS_DATABASE=0
REDIS_PASSWORD=

# ===== Druid 监控配置 =====
DRUID_USERNAME=admin
DRUID_PASSWORD=123456

# ===== InfluxDB 配置 =====
RTDB_HOST=http://192.168.0.40:8086
RTDB_TOKEN=2yizQ6PXpzQvmfdoUr0vcV5rxvT3L_ss99p6MR816PV8mCJnUrtveddSISK83aZGPH8LO5S3Jx-c1UcXatUQ5A==
RTDB_ORG=org
RTDB_BUCKET=bucket
RTDB_MEASUREMENT=data

# ===== MQTT 配置 =====
MQTT_HOST=tcp://broker.emqx.io:1883
MQTT_CLIENT_ID=MQTT_WK
MQTT_TOPICS=topic1
MQTT_USERNAME=
MQTT_PASSWORD=
MQTT_TIMEOUT=30
MQTT_KEEPALIVE=60
MQTT_QOS=1
MQTT_CLEAN_SESSION=false
MQTT_AUTO_RECONNECT=true

# ===== SSO 配置 =====
SINGLE_LOGIN_URL=localhost:8090/singleLogin/getInfo

# ===== 阿里云短信配置(可选) =====
ALIYUN_ACCESS_KEY_ID=
ALIYUN_ACCESS_KEY_SECRET=
ALIYUN_SMS_ENDPOINT=dysmsapi.aliyuncs.com
ALIYUN_SMS_SIGN_NAME=
ALIYUN_SMS_TEMPLATE_CODE=
ALIYUN_USER_ROLE_ID=
ALIYUN_SMS_TIME_MINUTES=40
ALIYUN_SMS_MAX_COUNT=1

# ===== SSO Ticket 配置(可选) =====
SSO_TICKET=
SSO_USERNAME=

# ===== Token 配置 =====
TOKEN_HEADER=Authorization
TOKEN_SECRET=abcdefghijklmnopqrstuvwxyzzhitancloud
TOKEN_EXPIRE_TIME=300

5.2 部署镜像

将.env.file文件复制当前目录中,并执行以下语句。

# 拉取镜像
docker pull docker.1ms.run/zhitancorp/zhitan-api:latest
docker tag docker.1ms.run/zhitancorp/zhitan-api:latest zhitancorp/zhitan-api:latest 


# 启动容器
docker run -d -p 8080:8080 \
          --name zhitan-api \
          --restart=always \
          --env-file .env.file \
           zhitancorp/zhitan-api:latest

6. Web管理平台:

请注意:更改BACKEND_URL为您的API所在的IP地址与端口

# 拉取镜像
docker pull docker.1ms.run/zhitancorp/zhitan-web:latest
docker tag docker.1ms.run/zhitancorp/zhitan-web:latest zhitancorp/zhitan-web:latest 

# 启动容器
docker run -d \
  --name zhitan-web \
  -p 80:80 \
  -e API_BASE_URL=/prod-api \
  -e BACKEND_URL=http://192.168.0.40:8080 \
  -e APP_TITLE=碳未来能碳管理系统 \
  -e APP_ENV=production \
  -e APP_SYSTEM=智碳未来能碳管理系统前端 \
  --restart=always \
  zhitancorp/zhitan-web:latest
7. 访问Web管理平台

访问您的Web所在的IP与端口,使用测试账号与密码:

账号:admin
密码:123456

bf129f1b-6246-49a4-a4b0-7db51ab8e25e

文档资源

详细的开发文档和用户手册请访问我们的 Wiki:

API文档可通过本地部署后访问:http://localhost:8080/swagger-ui/index.html

开源协议

zhitan-ems 是基于 AGPLZTPL 双协议的开源软件。您在使用、修改、复制、分发本项目时,仔细阅读并理解以下该协议条款。

如果您属于以下情况,请遵循AGPL协议

  • 您是个人开发者、研究机构或教育机构,希望技术学习、研究或非商业性地使用本项目。
  • 您希望基于本项目进行修改或扩展,并愿意将您的修改成果同样开源给社区。

如果您是学生或者教师,用于技术学习或教学目的,可联系我们,我们将免费提供培训与指导(远程)

如果您属于以下情况,需要获得ZTPL协议许可

  • 您基于本项目的修改版本用于商业目的,但不希望公开您的项目代码。

  • 您在一个内部使用的系统中集成了本项目,只对组织内部使用,不打算将其对外提供服务。

  • 您计划将本项目打包成SaaS产品或云服务进行销售。

  • 您需要在专有/闭源产品中集成、修改或链接本项目的代码。

  • 您需要自行部署系统并运营,对外部用户提供收费服务。

如何获得ZTPL协议许可?

您需要通过官方渠道,包括不限于:微信、QQ群等与我们取得联系,这样确保您秉持开源精神同时,获得商业许可的自由,并能得到我们官方的技术支持

版权须知

本软件项目(包括但不限于源代码、文档、图片、配置等所有构成项目的材料)的原始版权和知识产权归 [青岛智碳未来科技有限公司] 所有。我们保留对本项目名称、品牌、Logo、专利以及商业许可的所有权利。未经明确授权,任何个人或组织不得使用与本项目相关的名称、标识进行商业性宣传或推广。

社区交流

我们非常欢迎您的参与和反馈!

QQ群交流

如果您只是技术学习与咨询等,请加入我们的QQ群:1037733518 请备注:ems+姓名

微信交流

如果您要想咨询我们的商业授权,以及培训等事宜,请优先加微信,请备注:ems+姓名

参与贡献

我们热烈欢迎任何形式的贡献!

贡献流程

  1. Fork 本仓库
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 发起 Pull Request

开发规范

  • 遵循项目现有的代码风格
  • 添加适当的注释和文档
  • 确保所有测试通过
  • 提交前进行充分测试

报告问题

如果您发现任何问题,请在 Issues 中提交,并附上详细的描述和重现步骤。


© 2026 智碳未来 - 我为地球降1℃

About

能源管理系统+能源管理系统源码+能源管理平台+EMS 能源管理系统。通过系统性的能源挖掘和深度能源适配,适用管理场景:企业能源管理、工商业能源管理、低碳园区能源管理、化工企业能源管理、工矿能源管理、公共建筑能源管理等多维度的能碳、能源管理平台。 底层系统为物联网技术,采集、监控、管理企业水、电、气、热等能耗、能源数据,同时也可以用于光伏监测能源管理运维平台、充电桩管理运营能源能碳平台等场景,帮助企业建立能源管理体系,找到跑冒滴漏,进一步实现节能节约能源、降低碳排放。 进一步为企业实现碳跟踪、碳盘查、碳交易、碳汇报的全生命过程。 为中国双碳事业做出贡献。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors