Appearance
架构设计
整体架构
系统采用 前后端分离 + 微服务架构 的设计模式,确保系统的高可用性、可扩展性和易维护性。
后端架构
微服务模块
系统采用 Spring Boot + Spring Cloud 微服务架构,包含多个核心业务服务:
| 服务类型 | 职责说明 |
|---|---|
| 网关服务 | API 网关,统一入口,路由转发,负载均衡 |
| BFF 服务 | Backend For Frontend,前端聚合层 |
| 系统管理服务 | 用户、角色、菜单、部门、机构等管理 |
| 数据服务 | 数据填报、审核、复核、查询等业务 |
| 运维服务 | 操作日志、PDCA、评估、整改等 |
| 配置服务 | 系统配置、参数设置 |
| 常量服务 | 数据字典、枚举常量管理 |
公共模块
| 模块 | 说明 |
|---|---|
| common | 公共组件:通用工具类、异常处理、响应封装 |
| utils | 工具模块:数据处理、文件操作等 |
| mq | 消息队列:异步消息处理 |
| dependencies | 依赖管理:统一版本管理 |
数据库设计
数据源说明
- 主数据库:存储业务数据
- 源数据库:数据同步来源
核心数据表
- 用户权限相关:用户表、角色表、菜单表、部门表、机构表
- 数据管理相关:数据填报表、审核表、复核表
- 指标管理相关:指标基础表、指标分类表、指标分值表
- 记录管理相关:PDCA记录表、评估表、整改表
前端架构
技术架构
基于 Vue Vben Admin 框架,采用 Monorepo 架构。
核心特性
1. Monorepo 架构
使用 pnpm + Turbo 管理多包项目:
- 代码复用:共享组件、工具函数、类型定义
- 独立开发:各模块可独立开发和测试
- 统一构建:Turbo 提供增量构建,提升效率
2. 组件化开发
- 基础组件:基于 Ant Design Vue 封装业务组件
- 表单组件:动态表单、高级查询表单
- 表格组件:高级表格,支持展开、编辑、批量操作
- 图表组件:ECharts 数据可视化
3. 状态管理
使用 Pinia 进行状态管理:
- 用户状态:登录信息、权限信息
- 应用状态:主题配置、布局设置
- 业务状态:各模块业务数据缓存
4. 路由权限
- 动态路由:根据用户权限动态生成路由
- 路由守卫:登录验证、权限验证
- 菜单管理:后端配置菜单,前端动态加载
核心模块
数据管理模块
数据填报 → 数据审核 → 数据复核 → 数据管理 → 历史数据 → 指标查询- 支持月度、季度、年度数据周期
- 多级审核流程
- 数据同步与校验
指标管理模块
指标基础管理 → 指标分类 → 指标列表 → 指标卡 → 指标收藏 → 指标展示 → 指标体系- 完整的指标生命周期管理
- 灵活的分类体系
- 分值管理
记录管理模块
PDCA记录 → 评估记录 → 整改历史 → 数据分析- PDCA 全流程记录
- 持续改进追踪
- 数据多维度分析
系统管理模块
用户管理 → 角色管理 → 菜单管理 → 部门管理 → 机构管理 → 操作日志- RBAC 权限模型
- 多维度组织架构
- 完整的操作审计
部署架构
Docker 容器化部署
系统采用 Docker 容器化部署,包含以下服务组件:
- 数据库服务
- 网关服务
- BFF 服务
- 各业务微服务(系统管理、数据服务、运维服务等)
- Nginx 反向代理服务
访问流程
用户 → Nginx → Gateway → BFF → 业务服务 → 数据库