# 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冲突
### 使用方式
```java
// 依赖注入
@Autowired
private IDLongGenerator idLongGenerator;
// 生成ID
Long id = idLongGenerator.generate();
```
### 应用场景
- **管理卡创建**: createManagementCard方法中使用IDLongGenerator生成管理卡ID
- **实体主键**: 所有业务实体的主键ID生成
- **订单号**: 业务流水号生成
- **日志记录**: 操作记录的唯一标识
### 配置说明
系统启动时会自动设置ID后缀,不同的服务模块使用不同的后缀来避免ID冲突:
```xml
idSuffix
01
```
## 开发环境搭建
### 前置条件
- JDK 20
- Maven 3.8+
- MySQL 8.0+
- IDE推荐: IntelliJ IDEA
### 构建步骤
1. 克隆代码库
```bash
git clone
```
2. 导入项目到IDE
使用IDEA导入Maven项目
3. 配置数据库
在相应配置文件中设置数据库连接信息
4. 编译项目
```bash
mvn clean package
```
## 部署说明
### 开发环境
```bash
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