{"repo":"jerryxiaosa/ems4j","free":true,"listed":false,"github":"https://github.com/jerryxiaosa/ems4j","clone":"git clone https://github.com/jerryxiaosa/ems4j.git","description":"EMS4J是一款基于Spring Boot多模块架构的能源管理系统，支持预付费和能耗分析两种模式。系统具有远程设备的控制能力，支持按需、合并、包月等多种计费方式。支持微信支付与线下支付。提供尖峰平谷计量、阶梯电价、账户管理与财务核算等完整功能，兼容多协议设备接入。代码结构清晰，易于二次开发与功能扩展。","language":"Java","stars":148,"topics":["ems","energy-billing","energy-management-system","industrial-park","spring-boot"],"license":"MIT","category":"api-integrations-sdks","readme_excerpt":"EMS4J：EMS能源管理系统 English EMS4J 是一款基于 Spring Boot 多模块架构的开源 EMS 管理系统（能源管理系统），支持预付费、能耗分析、IoT 设备接入、远程控表、账户管理和财务核算。系统支持按需、合并、包月等多种计费方式，兼容多协议设备接入，适合落地为校园宿舍、园区楼宇等典型场景。 它同时也是一个适合学习复杂业务建模与 Spring Boot 多模块架构拆分的开源项目。 核心功能 - 多协议设备接入 - 计费模式（按需付费 / 合并付费 / 包月付费） - 计量计费（尖峰平谷 / 阶梯电价） - 账户管理（开户 / 销户 / 充值） - 日报快照与电费报表（单日电表/账户日报、电费报表列表与详情） - 远程控制（合闸 / 分闸 / 复费率设置） - 财务核算（账单 / 流水 / 对账） 适用场景 - 宿舍 EMS 管理系统 - 园区 EMS 管理系统 - 预付费能源管理系统 - 带 IoT 远程控表的 EMS 系统 - 需要参考多模块架构和复杂业务建模的 Java 项目 快速体验 在线体验 前端页面：http://119.45.165.253:30080 演示账号： - 用户名： admin - 密码： Abc123!@# 本地运行 默认访问地址： - 前端页面： http://127.0.0.1:4173 - 后端 API 文档： http://127.0.0.1:8080/doc.html 说明： - docker-compose.full.yml 会同时启动 frontend、backend、iot、iot-simulator 以及 MySQL / Redis / RabbitMQ - 如果是首次启动，镜像构建和依赖初始化会稍慢一些 - 如果你更希望分开调试前后端，可以查看下方\"开发与部署\"章节 开发与部署 环境要求 组件 版本 必需 ------ -------- ------ JDK 17+ 是 Maven 3.8+ 是 MySQL 8.0+ 是 Redis 6.0+ 是 RabbitMQ 4.1+ 否 Node.js 18.18+ 前端开发/构建需要 pnpm 10.32+ 前端开发/构建需要 先克隆项目： 方式 A：Docker 本地开发模式 后端依赖中间件可使用 Docker Compose 拉起： 然后分别启动后端和前端： 方式 B：Docker 全量运行 说明： - deploy/compose/docker-compose.infra.yml ：只启动 MySQL / Redis / RabbitMQ - deploy/compose/docker-compose.full.yml ：同时启动 backend / frontend / iot / iot-simulator / middleware - RabbitMQ 镜像已集成 x-delayed-message 插件 - iot 默认使用 docker,netty profile，对外监听 8880 和 19500 - iot-simulator 默认使用 docker profile，通过 iot:19500 连接 iot - iot-simulator 默认把运行状态写入 /app/.data/iot-simulator-state.json - 如果没有显式指定历史补投起止时间， iot-simulator 会默认补投“本月 1 号 00:00:00 到当前时间前 1 秒”的数据；若状态文件已存在，则按断点续传，不会每次从月初","default_branch":null,"files":null,"tree":[],"storefront":"/r/jerryxiaosa","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/jerryxiaosa/ems4j/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}