# 智能办公管理系统 - 架构设计文档 ## 项目概述 智能办公管理系统是一个企业级应用,包含考勤管理、审批流程、文档协作和即时通讯四大核心模块。系统采用微服务架构思想,前后端分离设计。 ## 技术栈 ### 后端技术栈 - **框架**: Spring Boot 3.2.x - **安全**: Spring Security 6 + JWT - **数据库**: - PostgreSQL 15 (主业务数据) - MongoDB 7 (文档存储) - Redis 7 (缓存/会话) - **消息队列**: RabbitMQ 3.12 - **实时通信**: WebSocket + STOMP - **API文档**: SpringDoc OpenAPI 3 - **监控**: Spring Boot Actuator + Prometheus + Grafana - **测试**: JUnit 5 + Mockito + Testcontainers ### 前端技术栈 - **框架**: React 18 + TypeScript - **UI库**: Ant Design Pro 7.x - **状态管理**: Redux Toolkit + RTK Query - **路由**: React Router 6 - **构建工具**: Vite 5 - **图表**: ECharts 5 - **实时**: Socket.IO Client ### 基础设施 - **容器化**: Docker + Docker Compose - **CI/CD**: GitHub Actions - **部署**: 可部署到Kubernetes - **日志**: ELK Stack (Elasticsearch, Logstash, Kibana) ## 系统架构图 ```mermaid graph TB subgraph "客户端层" Web[Web浏览器] Mobile[移动端] Desktop[桌面应用] end subgraph "负载均衡层" Nginx[Nginx反向代理] end subgraph "应用服务层" Gateway[API网关] subgraph "微服务集群" Auth[认证服务] User[用户服务] Attendance[考勤服务] Approval[审批服务] Document[文档服务] Chat[聊天服务] Notification[通知服务] end end subgraph "数据存储层" PostgreSQL[(PostgreSQL)] MongoDB[(MongoDB)] Redis[(Redis)] RabbitMQ[(RabbitMQ)] end subgraph "监控层" Prometheus[Prometheus] Grafana[Grafana] ELK[ELK Stack] end Web --> Nginx Mobile --> Nginx Desktop --> Nginx Nginx --> Gateway Gateway --> Auth Gateway --> User Gateway --> Attendance Gateway --> Approval Gateway --> Document Gateway --> Chat Gateway --> Notification Auth --> PostgreSQL User --> PostgreSQL Attendance --> PostgreSQL Approval --> PostgreSQL Document --> MongoDB Chat --> Redis Chat --> RabbitMQ Notification --> RabbitMQ Auth --> Redis User --> Redis Prometheus --> Auth Prometheus --> User Prometheus --> Attendance Grafana --> Prometheus ELK --> Auth ELK --> User ``` ## 核心模块设计 ### 1. 用户认证授权模块 - **功能**: 用户注册、登录、JWT令牌管理、权限控制 - **技术**: Spring Security + OAuth2 + JWT - **数据库表**: users, roles, permissions, user_roles ### 2. 考勤管理模块 - **功能**: 打卡记录、请假申请、加班申请、考勤统计 - **技术**: 地理围栏、人脸识别集成、考勤规则引擎 - **数据库表**: attendance_records, leave_requests, overtime_requests ### 3. 审批流程模块 - **功能**: 工作流定义、审批节点、流程实例、审批历史 - **技术**: Activiti/Flowable工作流引擎 - **数据库表**: workflows, workflow_instances, approval_nodes ### 4. 文档协作模块 - **功能**: 文档创建、在线编辑、版本控制、权限管理 - **技术**: MongoDB GridFS + WebSocket协同编辑 - **数据库表**: documents, document_versions, collaborations ### 5. 即时通讯模块 - **功能**: 一对一聊天、群组聊天、文件传输、消息状态 - **技术**: WebSocket + STOMP + Redis Pub/Sub - **数据库表**: chat_rooms, messages, participants ## API设计原则 1. RESTful API设计 2. 版本控制 (v1, v2) 3. 统一响应格式 4. 全局异常处理 5. 请求限流和防重放 6. API接口文档自动生成 ## 安全设计 1. HTTPS强制使用 2. JWT令牌认证 3. RBAC权限模型 4. 敏感数据加密存储 5. SQL注入防护 6. XSS/CSRF防护 7. 请求频率限制 ## 性能优化 1. Redis缓存热点数据 2. 数据库读写分离 3. CDN静态资源加速 4. 图片压缩和懒加载 5. API响应压缩 6. 数据库连接池优化 ## 部署架构 1. 开发环境: Docker Compose本地部署 2. 测试环境: Kubernetes集群 3. 生产环境: 多可用区高可用部署 4. 数据库: 主从复制 + 自动备份 5. 文件存储: 对象存储(S3兼容) ## 监控告警 1. 应用性能监控(APM) 2. 业务指标监控 3. 日志集中收集 4. 错误追踪和告警 5. 健康检查和自愈 ## 项目目录结构 ``` smart-office-system/ ├── backend/ # 后端项目 │ ├── smart-office-auth/ # 认证服务 │ ├── smart-office-user/ # 用户服务 │ ├── smart-office-attendance/# 考勤服务 │ ├── smart-office-approval/ # 审批服务 │ ├── smart-office-document/ # 文档服务 │ ├── smart-office-chat/ # 聊天服务 │ ├── smart-office-gateway/ # API网关 │ └── smart-office-common/ # 公共模块 ├── frontend/ # 前端项目 │ ├── src/ │ │ ├── api/ # API接口 │ │ ├── components/ # 公共组件 │ │ ├── pages/ # 页面组件 │ │ ├── store/ # 状态管理 │ │ ├── utils/ # 工具函数 │ │ └── styles/ # 样式文件 │ ├── public/ # 静态资源 │ └── config/ # 配置文件 ├── infrastructure/ # 基础设施 │ ├── docker/ # Docker配置 │ ├── k8s/ # Kubernetes配置 │ ├── scripts/ # 部署脚本 │ └── monitoring/ # 监控配置 ├── docs/ # 项目文档 ├── tests/ # 测试文件 └── plans/ # 设计文档 ``` ## 开发计划 1. 第一阶段: 基础框架搭建 (2周) 2. 第二阶段: 核心模块开发 (4周) 3. 第三阶段: 前端界面开发 (3周) 4. 第四阶段: 集成测试和优化 (2周) 5. 第五阶段: 部署和监控 (1周) ## 风险评估和应对 1. **技术风险**: 微服务复杂度高 - 应对: 先采用单体架构,逐步拆分 2. **性能风险**: 实时通信压力大 - 应对: 使用Redis集群和消息队列削峰 3. **安全风险**: 敏感数据泄露 - 应对: 多层安全防护和审计日志 4. **部署风险**: 多环境配置复杂 - 应对: 使用配置中心和容器化部署 ## 成功指标 1. 系统可用性: 99.9% 2. API响应时间: <200ms (P95) 3. 并发用户数: 支持1000+同时在线 4. 数据一致性: 事务成功率>99.99% 5. 系统扩展性: 支持水平扩展 --- *文档版本: v1.0* *最后更新: 2026-01-27* *作者: 架构设计团队*