docs: update README with detailed features and deployment guide
This commit is contained in:
184
README.md
184
README.md
@@ -5,15 +5,16 @@
|
|||||||
## 技术栈
|
## 技术栈
|
||||||
|
|
||||||
### 后端
|
### 后端
|
||||||
- **FastAPI** - 高性能异步Web框架
|
- **FastAPI** - 高性能异步 Web 框架
|
||||||
- **SQLAlchemy 2.0** - 异步ORM
|
- **SQLAlchemy 2.0** - 异步 ORM
|
||||||
- **PostgreSQL** - 数据库
|
- **PostgreSQL** - 数据库(端口:15432)
|
||||||
- **Alembic** - 数据库迁移
|
- **Alembic** - 数据库迁移
|
||||||
- **Pydantic** - 数据验证
|
- **Pydantic v2** - 数据验证
|
||||||
|
- **asyncpg** - PostgreSQL 异步驱动
|
||||||
|
|
||||||
### 前端
|
### 前端
|
||||||
- **Vue 3** - 渐进式JavaScript框架
|
- **Vue 3** - 渐进式 JavaScript 框架(Composition API)
|
||||||
- **Element Plus** - UI组件库
|
- **Element Plus** - UI 组件库
|
||||||
- **Pinia** - 状态管理
|
- **Pinia** - 状态管理
|
||||||
- **ECharts** - 图表库
|
- **ECharts** - 图表库
|
||||||
- **Vite** - 构建工具
|
- **Vite** - 构建工具
|
||||||
@@ -45,26 +46,57 @@ hospital-performance/
|
|||||||
|
|
||||||
## 功能模块
|
## 功能模块
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
graph TD
|
||||||
|
A[医院绩效考核系统] --> B[基础数据管理]
|
||||||
|
A --> C[绩效考核流程]
|
||||||
|
A --> D[数据分析报表]
|
||||||
|
A --> E[绩效工资核算]
|
||||||
|
B --> B1[科室管理]
|
||||||
|
B --> B2[员工管理]
|
||||||
|
B --> B3[考核指标库]
|
||||||
|
B --> B4[模板管理]
|
||||||
|
C --> C1[考核计划]
|
||||||
|
C --> C2[指标分配]
|
||||||
|
C --> C3[考核提交]
|
||||||
|
C --> C4[多级审核]
|
||||||
|
C --> C5[批量考核]
|
||||||
|
D --> D1[科室统计]
|
||||||
|
D --> D2[员工排名]
|
||||||
|
D --> D3[趋势分析]
|
||||||
|
D --> D4[分布分析]
|
||||||
|
E --> E1[自动计算]
|
||||||
|
E --> E2[公式配置]
|
||||||
|
E --> E3[批量生成]
|
||||||
|
E --> E4[发放确认]
|
||||||
|
```
|
||||||
|
|
||||||
### 1. 基础数据管理
|
### 1. 基础数据管理
|
||||||
- 科室信息管理(支持树形结构)
|
- 科室信息管理(支持树形结构,含临床、医技、行政等类别)
|
||||||
- 员工信息管理
|
- 员工信息管理(工号、岗位、职称、入职时间等)
|
||||||
- 考核指标管理
|
- 考核指标管理(KPI 指标库、平衡计分卡维度)
|
||||||
|
- 模板管理(考核表模板、指标分配方案)
|
||||||
|
|
||||||
### 2. 绩效考核流程
|
### 2. 绩效考核流程
|
||||||
|
- 考核计划制定(月度、季度、年度)
|
||||||
- 考核记录创建与编辑
|
- 考核记录创建与编辑
|
||||||
- 考核提交与审核流程
|
- 考核提交与多级审核流程
|
||||||
- 批量创建考核
|
- 批量创建考核
|
||||||
|
- 绩效反馈与申诉
|
||||||
|
|
||||||
### 3. 数据分析报表
|
### 3. 数据分析报表
|
||||||
- 科室绩效统计
|
- 科室绩效统计(工作量、质量、满意度等)
|
||||||
- 员工绩效排名
|
- 员工绩效排名与分析
|
||||||
- 趋势分析图表
|
- 趋势分析图表(同比、环比)
|
||||||
- 绩效分布分析
|
- 绩效分布分析(按科室、岗位、职称)
|
||||||
|
- 平衡计分卡四维分析
|
||||||
|
|
||||||
### 4. 绩效工资核算
|
### 4. 绩效工资核算
|
||||||
- 根据考核自动计算工资
|
- 根据考核结果自动计算工资
|
||||||
|
- 绩效工资公式配置
|
||||||
- 批量生成工资记录
|
- 批量生成工资记录
|
||||||
- 工资确认与发放
|
- 工资确认与发放
|
||||||
|
- 工资条导出
|
||||||
|
|
||||||
## 快速开始
|
## 快速开始
|
||||||
|
|
||||||
@@ -76,25 +108,31 @@ hospital-performance/
|
|||||||
### 后端启动
|
### 后端启动
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 创建虚拟环境
|
# 进入后端目录
|
||||||
cd backend
|
cd backend
|
||||||
|
|
||||||
|
# 创建虚拟环境
|
||||||
python -m venv venv
|
python -m venv venv
|
||||||
source venv/bin/activate # Linux/Mac
|
|
||||||
# venv\Scripts\activate # Windows
|
# 激活虚拟环境
|
||||||
|
# Windows PowerShell
|
||||||
|
.\venv\Scripts\Activate.ps1
|
||||||
|
# 或 CMD
|
||||||
|
venv\Scripts\activate.bat
|
||||||
|
|
||||||
# 安装依赖
|
# 安装依赖
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
|
|
||||||
# 配置环境变量
|
# 配置环境变量
|
||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
# 编辑 .env 文件配置数据库连接
|
# 编辑 .env 文件配置数据库连接(默认使用 PostgreSQL:15432)
|
||||||
|
|
||||||
# 创建数据库
|
|
||||||
createdb hospital_performance
|
|
||||||
|
|
||||||
# 运行数据库迁移
|
# 运行数据库迁移
|
||||||
alembic upgrade head
|
alembic upgrade head
|
||||||
|
|
||||||
|
# 初始化测试数据(可选)
|
||||||
|
python init_db.py
|
||||||
|
|
||||||
# 启动服务
|
# 启动服务
|
||||||
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
|
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
|
||||||
```
|
```
|
||||||
@@ -102,13 +140,20 @@ uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
|
|||||||
### 前端启动
|
### 前端启动
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
# 进入前端目录
|
||||||
cd frontend
|
cd frontend
|
||||||
|
|
||||||
# 安装依赖
|
# 安装依赖
|
||||||
npm install
|
npm install
|
||||||
|
|
||||||
# 启动开发服务器
|
# 启动开发服务器(自动代理到后端 http://localhost:8000)
|
||||||
npm run dev
|
npm run dev
|
||||||
|
|
||||||
|
# 构建生产版本
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
# 预览生产构建
|
||||||
|
npm run preview
|
||||||
```
|
```
|
||||||
|
|
||||||
### 访问系统
|
### 访问系统
|
||||||
@@ -128,46 +173,109 @@ npm run dev
|
|||||||
## 数据库设计
|
## 数据库设计
|
||||||
|
|
||||||
### 主要表结构
|
### 主要表结构
|
||||||
- `departments` - 科室信息表
|
- `departments` - 科室信息表(含树形结构支持)
|
||||||
- `staff` - 员工信息表
|
- `staff` - 员工信息表(关联科室、岗位、职称)
|
||||||
- `indicators` - 考核指标表
|
- `indicators` - 考核指标表(KPI、平衡计分卡维度)
|
||||||
|
- `indicator_templates` - 指标模板表
|
||||||
- `assessments` - 考核记录表
|
- `assessments` - 考核记录表
|
||||||
- `assessment_details` - 考核明细表
|
- `assessment_details` - 考核明细表(多维度评分)
|
||||||
|
- `performance_plans` - 绩效计划表
|
||||||
- `salary_records` - 工资核算表
|
- `salary_records` - 工资核算表
|
||||||
- `users` - 系统用户表
|
- `users` - 系统用户表
|
||||||
|
- `menus` - 菜单权限表
|
||||||
|
|
||||||
|
### 核心业务模型
|
||||||
|
- **DeptType**: 科室类型枚举(临床手术/非手术、医技、行政等)
|
||||||
|
- **BSCDimension**: 平衡计分卡四维度(财务、客户、内部流程、学习成长)
|
||||||
|
- **IndicatorType**: 指标类型(数量、质量、成本、满意度等)
|
||||||
|
|
||||||
|
## 项目截图
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
> 更多截图请查看 [screenshots](screenshots) 目录
|
||||||
|
|
||||||
|
## 开发规范
|
||||||
|
|
||||||
|
### 代码风格
|
||||||
|
- **后端**: Python PEP 8,使用 type hints
|
||||||
|
- **前端**: ESLint + Prettier(待配置)
|
||||||
|
- **Git**: 遵循 conventional commits 规范
|
||||||
|
|
||||||
|
### 分支管理
|
||||||
|
- `main`: 主分支,仅接受合并请求
|
||||||
|
- `develop`: 开发分支(待创建)
|
||||||
|
- `feature/*`: 功能分支
|
||||||
|
|
||||||
|
### 提交规范
|
||||||
|
```bash
|
||||||
|
feat: 新功能
|
||||||
|
fix: 修复 bug
|
||||||
|
docs: 文档更新
|
||||||
|
style: 代码格式调整
|
||||||
|
refactor: 重构
|
||||||
|
test: 测试相关
|
||||||
|
chore: 构建/工具链相关
|
||||||
|
```
|
||||||
|
|
||||||
## 性能优化
|
## 性能优化
|
||||||
|
|
||||||
1. **数据库层面**
|
1. **数据库层面**
|
||||||
- 合理的索引设计
|
- 合理的索引设计
|
||||||
- 连接池配置
|
- 连接池配置(asyncpg)
|
||||||
- 异步查询
|
- 异步查询
|
||||||
|
- 批量操作优化
|
||||||
|
|
||||||
2. **应用层面**
|
2. **应用层面**
|
||||||
- 异步IO处理
|
- FastAPI 异步 IO 处理
|
||||||
- 分页查询
|
- 分页查询
|
||||||
- 缓存策略
|
- 响应缓存策略
|
||||||
|
- 后台任务队列(待实现)
|
||||||
|
|
||||||
3. **前端层面**
|
3. **前端层面**
|
||||||
- 路由懒加载
|
- 路由懒加载
|
||||||
- 组件按需加载
|
- 组件按需加载
|
||||||
- 图表数据缓存
|
- ECharts 图表数据缓存
|
||||||
|
- API 请求防抖
|
||||||
|
|
||||||
## 可维护性设计
|
## 可维护性设计
|
||||||
|
|
||||||
1. **代码规范**
|
1. **代码规范**
|
||||||
- 模块化设计
|
- 模块化设计(按业务领域划分)
|
||||||
- 分层架构
|
- 分层架构(API -> Service -> Model)
|
||||||
- 类型注解
|
- 类型注解(Python type hints)
|
||||||
|
- 统一的错误处理
|
||||||
|
|
||||||
2. **文档完善**
|
2. **文档完善**
|
||||||
- API自动文档
|
- API 自动文档(Swagger/OpenAPI)
|
||||||
- 代码注释
|
- 代码注释(Google Style)
|
||||||
- README文档
|
- README 文档
|
||||||
|
- 开发者指南(docs/目录)
|
||||||
|
|
||||||
3. **测试覆盖**
|
3. **测试覆盖**
|
||||||
- 单元测试
|
- 单元测试(pytest)
|
||||||
- 集成测试
|
- 集成测试
|
||||||
|
- API 测试
|
||||||
|
- E2E 测试(待实现)
|
||||||
|
|
||||||
|
## 常见问题
|
||||||
|
|
||||||
|
### Q: 数据库连接失败?
|
||||||
|
A: 检查 PostgreSQL 是否运行在 15432 端口,确认 `.env` 文件中 `DATABASE_URL` 配置正确。
|
||||||
|
|
||||||
|
### Q: 前端无法访问后端 API?
|
||||||
|
A: Vite 开发服务器已配置代理,确保后端运行在 `http://localhost:8000`。
|
||||||
|
|
||||||
|
### Q: 如何重置数据库?
|
||||||
|
A: 删除所有表后重新运行 `alembic upgrade head`,或使用 `backend/create_database.py` 脚本。
|
||||||
|
|
||||||
|
## 贡献指南
|
||||||
|
|
||||||
|
欢迎提交 Issue 和 Pull Request!
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user