Files
CompanyRegister/plans/architecture_design.md
2026-01-28 23:56:33 +08:00

6.8 KiB

智能办公管理系统 - 架构设计文档

项目概述

智能办公管理系统是一个企业级应用,包含考勤管理、审批流程、文档协作和即时通讯四大核心模块。系统采用微服务架构思想,前后端分离设计。

技术栈

后端技术栈

  • 框架: 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)

系统架构图

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 作者: 架构设计团队