diff --git a/README.md b/README.md index df64832..bcdcacc 100644 --- a/README.md +++ b/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/test_01_login.png) +![Dashboard](screenshots/test_02_dashboard.png) +![科室列表](screenshots/test_03_department_list.png) +![员工列表](screenshots/test_04_staff_list.png) +![指标列表](screenshots/test_05_indicator_list.png) + +> 更多截图请查看 [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