智慧水务管理系统 - 精河县供水工程综合管理平台

供水管理系统

项目简介

供水管理系统基于 Spring Cloud Alibaba 微服务架构,涵盖供水生产管理、营业收费、巡检系统、流程引擎、大数据分析等核心业务模块。

系统架构

微服务模块

  1. wm-gateway - 网关服务

    • 基于 Spring Cloud Gateway
    • 统一认证、路由、限流、跨域处理
    • API 网关,所有请求统一入口
  2. wm-base - 基础服务

    • 统一响应格式 R<T>
    • 统一异常处理 GlobalExceptionHandler
    • 公共工具类和配置
  3. wm-iot - 物联网服务

    • 设备管理
    • 数据采集
    • WebSocket 实时通信
    • MQTT 消息处理
  4. wm-data-engine - 数据引擎服务

    • 多源数据接入
    • 数据转换和清洗
    • 实时数据处理
    • 批量导入功能
  5. wm-bpm - 业务流程管理服务

    • 基于 Activiti 7 工作流引擎
    • 流程定义和管理
    • 审批流程
  6. wm-production - 生产管理服务

    • 供水生产调度
    • 设备监控
    • 生产数据分析
  7. wm-revenue - 营业收费服务

    • 用户管理
    • 收费管理
    • 账单生成
  8. wm-patrol - 巡检服务

    • 巡检路线管理
    • 巡检任务分配
    • 巡检记录管理
  9. wm-bi - 大数据分析服务

    • 经营分析
    • 预警分析
    • 数据可视化
  10. wm-notify - 通知服务

    • 短信通知
    • Push 通知
    • WebSocket 实时消息
  11. wm-job - 定时任务服务

    • 基于 Quartz 2.x
    • 分布式任务调度
    • 定时数据处理

技术栈

  • 框架: Spring Boot 3.2.1, Spring Cloud Alibaba 2023.0.0
  • 认证: Sa-Token 1.39.0
  • 服务注册: Nacos 2.2.3
  • 数据库: MySQL 8.0, PostgreSQL 16, TDengine 3.5.0
  • 缓存: Redis 7
  • 消息队列: Kafka 7.4.0, MQTT (EMQX 5.3.1)
  • 搜索引擎: Elasticsearch 8.11.0
  • 对象存储: MinIO
  • 监控: Prometheus + Grafana, SkyWalking
  • GIS: GeoServer
  • 工作流: Activiti 7

快速开始

环境要求

  • JDK 17+
  • Maven 3.6+
  • Docker & Docker Compose

启动步骤

  1. 克隆项目

    git clone <repository-url>
    cd water-management-system
    
  2. 启动中间件

    # 使用 Docker Compose 启动所有中间件
    docker-compose up -d
    
  3. 启动服务 ```bash

    启动父工程(按需启动具体服务)

    cd wm-parent mvn clean install

启动网关服务

cd wm-gateway mvn spring-boot:run

启动基础服务

cd ../wm-base mvn spring-boot:run

启动其他服务...


### 端口配置

| 服务 | 端口 | 说明 |
|------|------|------|
| Gateway | 8080 | API 网关 |
| wm-base | 8081 | 基础服务 |
| wm-iot | 8082 | 物联网服务 |
| wm-data-engine | 8083 | 数据引擎 |
| wm-bpm | 8084 | 流程管理 |
| wm-production | 8085 | 生产管理 |
| wm-revenue | 8086 | 营业收费 |
| wm-patrol | 8087 | 巡检服务 |
| wm-bi | 8088 | 大数据 |
| wm-notify | 8089 | 通知服务 |
| wm-job | 8090 | 任务调度 |
| Redis | 6379 | 缓存服务 |
| PostgreSQL | 5432 | 数据库 |
| TDengine | 6030 | 时序数据库 |
| Kafka | 9092 | 消息队列 |
| Elasticsearch | 9200 | 搜索引擎 |
| MinIO | 9000 | 对象存储 |
| EMQX | 1883 | MQTT 服务器 |
| Nacos | 8848 | 配置中心 |
| Prometheus | 9090 | 监控 |
| Grafana | 3000 | 可视化监控 |
| SkyWalking | 8080 | 分布式追踪 |
| GeoServer | 8082 | GIS 服务 |

### Nacos 配置

1. 访问 Nacos 控制台: http://localhost:8848/nacos
2. 默认账户密码: nacos/nacos
3. 创建命名空间: water-management
4. 配置文件:
   - gateway-common-config.yml
   - base-common-config.yml
   - 各服务配置

### 数据库配置

1. **MySQL** (基础数据)
```sql
CREATE DATABASE water_management;
USE water_management;
-- 导入基础表结构
  1. PostgreSQL (GIS 数据)

    CREATE DATABASE water_management_postgis;
    -- 启用 PostGIS 扩展
    
  2. TDengine (时序数据)

    CREATE DATABASE water_monitoring;
    -- 创建数据采集表
    

开发指南

模块开发规范

  1. 服务注册: 所有服务必须注册到 Nacos
  2. 统一认证: 使用 Sa-Token 进行统一认证
  3. 统一响应: 使用 R<T> 统一响应格式
  4. 异常处理: 使用 GlobalExceptionHandler 统一异常处理
  5. 日志规范: 使用 SLF4J + Logback
  6. 代码规范: 遵循阿里巴巴 Java 开发手册

配置管理

  1. 环境配置:

    • application-dev.yml (开发环境)
    • application-prod.yml (生产环境)
  2. Nacos 配置:

    • 公共配置在 base-common-config.yml
    • 服务特有配置在各服务配置文件

数据库规范

  1. 表前缀: 所有业务表使用 wm_ 前缀
  2. 逻辑删除: 使用 deleted 字段 (0-未删除, 1-已删除)
  3. 分页: 使用 MyBatis-Plus 分页插件
  4. 索引: 根据查询需求合理创建索引

API 规范

  1. RESTful API: 遵循 REST 设计原则
  2. 统一响应: 所有 API 返回 R<T> 格式
  3. 错误码: 统一错误码管理
  4. 接口文档: 使用 Swagger/OpenAPI

部署指南

生产环境部署

  1. 环境准备

    # 安装 Java 17
    # 安装 Docker 和 Docker Compose
    # 配置 Nginx 反向代理
    
  2. 编译打包

    mvn clean package -Pprod
    
  3. Docker 部署 ```bash

    构建镜像

    docker build -t water-management-system .

启动服务

docker-compose -f docker-compose.prod.yml up -d ```

监控和运维

  1. Prometheus: 监控服务状态
  2. Grafana: 可视化监控面板
  3. SkyWalking: 分布式链路追踪
  4. ELK Stack: 日志收集和分析

贡献指南

  1. Fork 项目
  2. 创建特性分支
  3. 提交更改
  4. 发起 Pull Request

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

联系方式

  • 项目地址:
  • 问题反馈:
  • 技术支持: