# 数字档案标准系统 (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。