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框架
|
||||
- **SQLAlchemy 2.0** - 异步ORM
|
||||
- **PostgreSQL** - 数据库
|
||||
- **FastAPI** - 高性能异步 Web 框架
|
||||
- **SQLAlchemy 2.0** - 异步 ORM
|
||||
- **PostgreSQL** - 数据库(端口:15432)
|
||||
- **Alembic** - 数据库迁移
|
||||
- **Pydantic** - 数据验证
|
||||
- **Pydantic v2** - 数据验证
|
||||
- **asyncpg** - PostgreSQL 异步驱动
|
||||
|
||||
### 前端
|
||||
- **Vue 3** - 渐进式JavaScript框架
|
||||
- **Element Plus** - UI组件库
|
||||
- **Vue 3** - 渐进式 JavaScript 框架(Composition API)
|
||||
- **Element Plus** - UI 组件库
|
||||
- **Pinia** - 状态管理
|
||||
- **ECharts** - 图表库
|
||||
- **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. 基础数据管理
|
||||
- 科室信息管理(支持树形结构)
|
||||
- 员工信息管理
|
||||
- 考核指标管理
|
||||
- 科室信息管理(支持树形结构,含临床、医技、行政等类别)
|
||||
- 员工信息管理(工号、岗位、职称、入职时间等)
|
||||
- 考核指标管理(KPI 指标库、平衡计分卡维度)
|
||||
- 模板管理(考核表模板、指标分配方案)
|
||||
|
||||
### 2. 绩效考核流程
|
||||
- 考核计划制定(月度、季度、年度)
|
||||
- 考核记录创建与编辑
|
||||
- 考核提交与审核流程
|
||||
- 考核提交与多级审核流程
|
||||
- 批量创建考核
|
||||
- 绩效反馈与申诉
|
||||
|
||||
### 3. 数据分析报表
|
||||
- 科室绩效统计
|
||||
- 员工绩效排名
|
||||
- 趋势分析图表
|
||||
- 绩效分布分析
|
||||
- 科室绩效统计(工作量、质量、满意度等)
|
||||
- 员工绩效排名与分析
|
||||
- 趋势分析图表(同比、环比)
|
||||
- 绩效分布分析(按科室、岗位、职称)
|
||||
- 平衡计分卡四维分析
|
||||
|
||||
### 4. 绩效工资核算
|
||||
- 根据考核自动计算工资
|
||||
- 根据考核结果自动计算工资
|
||||
- 绩效工资公式配置
|
||||
- 批量生成工资记录
|
||||
- 工资确认与发放
|
||||
- 工资条导出
|
||||
|
||||
## 快速开始
|
||||
|
||||
@@ -76,25 +108,31 @@ hospital-performance/
|
||||
### 后端启动
|
||||
|
||||
```bash
|
||||
# 创建虚拟环境
|
||||
# 进入后端目录
|
||||
cd backend
|
||||
|
||||
# 创建虚拟环境
|
||||
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
|
||||
|
||||
# 配置环境变量
|
||||
cp .env.example .env
|
||||
# 编辑 .env 文件配置数据库连接
|
||||
|
||||
# 创建数据库
|
||||
createdb hospital_performance
|
||||
# 编辑 .env 文件配置数据库连接(默认使用 PostgreSQL:15432)
|
||||
|
||||
# 运行数据库迁移
|
||||
alembic upgrade head
|
||||
|
||||
# 初始化测试数据(可选)
|
||||
python init_db.py
|
||||
|
||||
# 启动服务
|
||||
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
|
||||
# 进入前端目录
|
||||
cd frontend
|
||||
|
||||
# 安装依赖
|
||||
npm install
|
||||
|
||||
# 启动开发服务器
|
||||
# 启动开发服务器(自动代理到后端 http://localhost:8000)
|
||||
npm run dev
|
||||
|
||||
# 构建生产版本
|
||||
npm run build
|
||||
|
||||
# 预览生产构建
|
||||
npm run preview
|
||||
```
|
||||
|
||||
### 访问系统
|
||||
@@ -128,46 +173,109 @@ npm run dev
|
||||
## 数据库设计
|
||||
|
||||
### 主要表结构
|
||||
- `departments` - 科室信息表
|
||||
- `staff` - 员工信息表
|
||||
- `indicators` - 考核指标表
|
||||
- `departments` - 科室信息表(含树形结构支持)
|
||||
- `staff` - 员工信息表(关联科室、岗位、职称)
|
||||
- `indicators` - 考核指标表(KPI、平衡计分卡维度)
|
||||
- `indicator_templates` - 指标模板表
|
||||
- `assessments` - 考核记录表
|
||||
- `assessment_details` - 考核明细表
|
||||
- `assessment_details` - 考核明细表(多维度评分)
|
||||
- `performance_plans` - 绩效计划表
|
||||
- `salary_records` - 工资核算表
|
||||
- `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. **数据库层面**
|
||||
- 合理的索引设计
|
||||
- 连接池配置
|
||||
- 连接池配置(asyncpg)
|
||||
- 异步查询
|
||||
- 批量操作优化
|
||||
|
||||
2. **应用层面**
|
||||
- 异步IO处理
|
||||
- FastAPI 异步 IO 处理
|
||||
- 分页查询
|
||||
- 缓存策略
|
||||
- 响应缓存策略
|
||||
- 后台任务队列(待实现)
|
||||
|
||||
3. **前端层面**
|
||||
- 路由懒加载
|
||||
- 组件按需加载
|
||||
- 图表数据缓存
|
||||
- ECharts 图表数据缓存
|
||||
- API 请求防抖
|
||||
|
||||
## 可维护性设计
|
||||
|
||||
1. **代码规范**
|
||||
- 模块化设计
|
||||
- 分层架构
|
||||
- 类型注解
|
||||
- 模块化设计(按业务领域划分)
|
||||
- 分层架构(API -> Service -> Model)
|
||||
- 类型注解(Python type hints)
|
||||
- 统一的错误处理
|
||||
|
||||
2. **文档完善**
|
||||
- API自动文档
|
||||
- 代码注释
|
||||
- README文档
|
||||
- API 自动文档(Swagger/OpenAPI)
|
||||
- 代码注释(Google Style)
|
||||
- README 文档
|
||||
- 开发者指南(docs/目录)
|
||||
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user