编辑 | 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

ID生成器使用说明

系统使用自定义的IDLongGenerator来生成唯一的Long型ID,确保在分布式环境下的ID唯一性。

IDLongGenerator特性

  • 格式: 年月日时分秒 + 3位自增序列 + 2位系统后缀
  • 长度: 19位数字(如:20231218104504069**00**)
  • 并发性: 支持同一秒内生成1000个不同ID
  • 分布式: 通过后缀区分不同子系统,避免ID冲突

使用方式

// 依赖注入
@Autowired
private IDLongGenerator idLongGenerator;

// 生成ID
Long id = idLongGenerator.generate();

应用场景

  • 管理卡创建: createManagementCard方法中使用IDLongGenerator生成管理卡ID
  • 实体主键: 所有业务实体的主键ID生成
  • 订单号: 业务流水号生成
  • 日志记录: 操作记录的唯一标识

配置说明

系统启动时会自动设置ID后缀,不同的服务模块使用不同的后缀来避免ID冲突:

<!-- web.xml或Spring配置 -->
<context-param>
    <param-name>idSuffix</param-name>
    <param-value>01</param-value> <!-- 不同服务使用不同后缀 -->
</context-param>

开发环境搭建

前置条件

  • 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
README 4 KB
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/说明 1,000 b
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/p206V2与p206V1有什么区别 78 b
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/说明 1,000 b
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/说明 458 b
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/说明 267 b
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/注意 134 b
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/webCtrls/说明 93 b
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/说明 84 b
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/说明 33 b
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu3rd/说明 357 b
pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/说明 48 b
pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu202404/说明 54 b
pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/说明 128 b
pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/说明 191 b
pipIrr-platform/pipIrr-mw/pipIrr-param-set/说明 263 b
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/说明 107 b
pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/说明 42 b
pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/allRound/说明 20 b
pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/说明 43 b
pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/说明 113 b
pipIrr-platform/pipIrr-web/pipIrr-web-file/src/main/java/com/dy/pipIrrWebFile/fm/说明 33 b
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/mqtt/说明 49 b
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/allRound/说明 20 b
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/allRound/说明 20 b
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/largeScreen/说明 40 b
pipIrr-platform/pipIrr-web/pipIrr-web-temp/说明 2 KB
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/mqtt/说明 49 b
pipIrr-platform/文档/Git操作 37 b
pipIrr-platform/文档/README 3 KB
pipIrr-platform/文档/gitServer 171 b
pipIrr-platform/文档/万用token 21 b
pipIrr-platform/文档/全局排除一些依赖 692 b
pipIrr-platform/文档/各系统部署/元谋+梅江+沙盘+测试 54 b
pipIrr-platform/文档/各系统部署/嘉峪关 60 b
pipIrr-platform/文档/在线需求文件访问地址 41 b
pipIrr-platform/文档/慧图晋宁系统 66 b
pipIrr-platform/文档/数据库服务器 31 b
pipIrr-platform/文档/韩月产品设计 51 b