编辑 | blame | 历史 | 原始文档

pipIrr 智能灌溉系统

项目概述

pipIrr是一套基于Java的智能管道灌溉系统解决方案,用于实现水资源的智能化管理与灌溉控制。系统集成了远程终端控制、GIS地理信息、水资源监测与分析、微信接入等多种功能,为智慧农业和水利工程提供全面的技术支持。

系统架构

系统采用微服务架构,基于Spring Boot 3构建,主要包括以下几个核心部分:

  • 前端应用层:提供Web界面、移动应用、微信公众号等多种交互方式
  • 业务服务层:处理核心业务逻辑,包括灌溉管理、项目管理、数据统计等
  • 中间件层:提供RTU(远程终端单元)通信、第三方系统集成等功能
  • 基础设施层:提供数据存储、缓存、消息队列等基础服务

模块说明

父模块 (pipIrr-platform)

作为整个项目的父模块,管理依赖版本和构建配置。

核心子模块

  • pipIrr-common: 公共组件,提供工具类、通用配置等
  • pipIrr-global: 全局配置和服务
  • pipIrr-web: Web应用模块集合
  • pipIrr-web-base: 基础数据服务
  • pipIrr-web-sso: 单点登录服务
  • pipIrr-web-irrigate: 灌溉管理
  • pipIrr-web-gis: GIS地理信息服务
  • pipIrr-web-project: 项目管理
  • pipIrr-web-statistics: 数据统计分析
  • pipIrr-web-remote: 远程控制
  • pipIrr-web-wechat: 微信集成
  • pipIrr-web-app: 移动应用服务
  • pipIrr-web-file: 文件管理
  • pipIrr-web-operation: 运维管理
  • pipIrr-web-sell: 销售管理
  • pipIrr-web-temp: 临时模块
  • pipIrr-mw: 中间件服务
  • pipIrr-mw-rtu: RTU设备通信
  • pipIrr-mw-rtu3rd: 第三方RTU集成
  • pipIrr-mw-simulate-rtu: RTU模拟器
  • pipIrr-mwTest-server: 测试服务器
  • pipIrr-mwTest-client: 测试客户端

技术栈

  • 基础框架: Spring Boot 3.1.3
  • JDK版本: Java 20
  • Web服务: Tomcat 10.1.12
  • 数据库: MySQL 8.0.33
  • ORM框架: MyBatis-Plus 3.5.3.2
  • 数据库连接池: Druid 1.2.20
  • API文档: SpringDoc OpenAPI 2.2.0
  • JSON处理: FastJSON 2.0.40
  • 对象映射: MapStruct 1.5.5.Final
  • 工具集: Hutool 5.8.22
  • 日志框架: Log4j2 2.20.0

开发环境搭建

前置条件

  • JDK 20
  • Maven 3.8+
  • MySQL 8.0+
  • IDE推荐: IntelliJ IDEA

构建步骤

  1. 克隆代码库
    bash git clone <repository-url>

  2. 导入项目到IDE
    使用IDEA导入Maven项目

  3. 配置数据库
    在相应配置文件中设置数据库连接信息

  4. 编译项目
    bash mvn clean package

部署说明

开发环境

mvn spring-boot:run -Dspring.profiles.active=dev

生产环境

  1. 打包应用
    bash mvn clean package -Dspring.profiles.active=prod

  2. 运行jar包
    bash java -jar <模块名>-<版本号>.jar

项目文档

详细的项目文档位于 pipIrr-platform/文档/ 目录下,包括:
- API接口文档
- 数据库设计
- 部署指南
- 编码规范

版本信息

当前版本: 1.0.0

贡献指南

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