Files
server/IFLOW.md
2025-10-31 16:15:47 +08:00

213 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 数字档案标准系统 (Digital Archive Standard System)
## 项目概述
这是一个基于 Spring Boot 2.3.7 的企业级数字档案管理系统专门用于档案的数字化管理、存储、检索和利用。系统支持多种数据库MySQL、人大金仓、达梦等集成了 OCR 识别、全文检索、报表生成、工作流等功能。
### 核心技术栈
- **后端框架**: Spring Boot 2.3.7.RELEASE
- **数据库**: MySQL 5.1.6 / 人大金仓 8.6.0 / 达梦数据库
- **ORM框架**: MyBatis 3.4.5 + MyBatis-Spring-Boot-Starter 1.2.0
- **分页插件**: PageHelper 4.1.0
- **连接池**: Druid 1.1.9
- **缓存**: Redis
- **搜索引擎**: Elasticsearch
- **报表工具**: UReport2 2.2.9
- **文档处理**:
- Aspose Words 15.8.0 (Word文档处理)
- Aspose Cells 8.5.2 (Excel文档处理)
- PDFBox 2.0.27 (PDF处理)
- Tess4j 4.5.3 (OCR识别)
- **API文档**: Swagger 2.9.2
- **工具类**: Hutool 5.5.2, Lombok 1.18.16
## 项目结构
```
src/main/java/com/point/strategy/
├── controller/ # 控制器层
├── service/ # 服务层
├── dao/ # 数据访问层
├── bean/ # 实体类
├── common/ # 公共工具类
├── workFlow/ # 工作流模块
├── elasticsearch/ # 搜索模块
├── ocr/ # OCR识别模块
├── pdf/ # PDF处理模块
├── webSocket/ # WebSocket模块
├── webService/ # WebService模块
└── PointStrategyApplication.java # 主启动类
```
## 核心功能模块
### 1. 档案管理
- **文件管理** (`FileManageController`): 文件上传、下载、批量操作
- **档案接收** (`ArchivesReceiveController`): 档案接收和登记
- **档案移交** (`ArchivesTransferController`): 档案移交流程
- **档案借阅** (`BorrowingFilesController`): 档案借阅管理
### 2. 库房管理
- **库房实体** (`StorehouseEntityController`): 库房实体管理
- **库房点位** (`StorehousePointController`): 库房点位管理
- **温湿度监控** (`TemperatureController`): 环境监控
- **档案装具** (`FileBoxController`, `FileFrameController`): 装具管理
### 3. 检索与统计
- **全文检索** (`FulltextSearchLogController`): 基于 Elasticsearch 的全文搜索
- **统计分析** (`StatisticsController`, `HomeStatisticsController`): 各类统计报表
- **四性检测** (`fourCheck`): 档案四性检测功能
### 4. 工作流与审批
- **工作流** (`workFlow`): 档案审批流程
- **审批设置** (`ApproveSettingController`): 审批流程配置
- **预约管理** (`ArchiveAppointmentController`): 档案预约
### 5. 元数据管理
- **元数据标准** (`metaData`): 元数据标准管理
- **实体结构** (`TentityStructDescriptionController`): 实体结构描述
- **数据字典** (`DictController`): 数据字典管理
## 构建和运行
### 环境要求
- JDK 1.8+
- Maven 3.6+
- MySQL 5.7+ / 人大金仓 8.6.0 / 达梦数据库
- Redis 3.0+
- Elasticsearch 7.x (可选)
### 构建命令
```bash
# 编译项目
mvn clean compile
# 打包项目
mvn clean package
# 跳过测试打包
mvn clean package -DskipTests
# 运行项目
mvn spring-boot:run
# 生成 MyBatis 代码
mvn mybatis-generator:generate
```
### 运行配置
#### 开发环境 (application-dev.yml)
- 服务端口: 9081
- 数据库: MySQL (100.64.11.2:3311)
- Redis: 100.64.11.2:6379
#### 生产环境配置
修改 `application.properties` 中的数据库连接和相关配置:
```properties
# 数据库配置
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://your-host:port/database
spring.datasource.username=your-username
spring.datasource.password=your-password
# 人大金仓配置 (取消注释使用)
#spring.datasource.driverClassName=com.kingbase8.Driver
#spring.datasource.url=jdbc:kingbase8://your-host:port/database
```
## 开发约定
### 代码规范
- 使用 Lombok 简化代码
- 遵循 RESTful API 设计规范
- 统一使用 `AjaxJson` 作为返回格式
- 接口文档使用 Swagger 注解
### 数据库规范
- 表名使用小写字母和下划线
- 字段名使用驼峰命名MyBatis 自动转换
- 主键统一使用 `id`
- 时间字段使用 `datetime` 类型
### 文件存储规范
- 上传文件路径: `${upload.path}`
- 临时文件路径: `${temp.path}`
- 解压文件路径: `${unzip.path}`
- 图片上传路径: `${img.upload}`
- 报表生成路径: `${report.path}`
## 部署说明
### 传统部署
1. 打包生成 WAR 文件
2. 部署到 Tomcat 8.5+
3. 配置数据库连接和 Redis 连接
4. 配置文件上传路径
### Docker 部署
```dockerfile
FROM openjdk:8-jre-alpine
COPY target/point-strategy.war app.war
EXPOSE 9081
CMD ["java", "-jar", "app.war"]
```
## 第三方集成
### OCR 集成
- 友虹 OCR: 通过 HTTP API 调用
- Tess4j: 本地 OCR 识别
### 报表集成
- UReport2: 可视化报表设计器
- 访问路径: `/ureport/*`
### 全文检索
- Elasticsearch: 基于 Spring Data Elasticsearch
- 支持多字段检索和高亮显示
## 监控和日志
### 日志配置
- 日志文件位置: `logs/`
- 日志级别: DEBUG/INFO/WARN/ERROR
- 日志轮转: 按大小和时间轮转
- 最大文件大小: 500MB
- 保留天数: 20 天
### 性能监控
- 数据库连接池监控
- Redis 连接池监控
- 接口响应时间监控
## 常见问题
### 数据库连接问题
1. 检查数据库服务是否启动
2. 验证连接字符串和凭据
3. 确认网络连通性
### 文件上传问题
1. 检查上传路径权限
2. 确认磁盘空间充足
3. 验证文件大小限制
### OCR 识别问题
1. 确认 OCR 服务配置正确
2. 检查图片格式和质量
3. 验证 Tess4j 本地环境
## 开发工具推荐
- IDE: IntelliJ IDEA
- 数据库工具: DBeaver, Navicat
- API 测试: Postman, Swagger UI
- 版本控制: Git
## 联系方式
如有问题请联系开发团队或提交 Issue。