Files
2026-02-28 15:16:15 +08:00

22 KiB
Raw Permalink Blame History

核心特性

**本文引用的文件** - [backend/app/main.py](file://backend/app/main.py) - [backend/app/api/v1/performance_plans.py](file://backend/app/api/v1/performance_plans.py) - [backend/app/api/v1/assessments.py](file://backend/app/api/v1/assessments.py) - [backend/app/api/v1/salary.py](file://backend/app/api/v1/salary.py) - [backend/app/api/v1/stats.py](file://backend/app/api/v1/stats.py) - [backend/app/services/performance_plan_service.py](file://backend/app/services/performance_plan_service.py) - [backend/app/services/assessment_service.py](file://backend/app/services/assessment_service.py) - [backend/app/services/salary_service.py](file://backend/app/services/salary_service.py) - [backend/app/services/stats_service.py](file://backend/app/services/stats_service.py) - [backend/app/models/models.py](file://backend/app/models/models.py) - [backend/app/schemas/schemas.py](file://backend/app/schemas/schemas.py) - [frontend/src/views/assessment/Assessments.vue](file://frontend/src/views/assessment/Assessments.vue) - [frontend/src/views/reports/Reports.vue](file://frontend/src/views/reports/Reports.vue) - [frontend/src/views/salary/Salary.vue](file://frontend/src/views/salary/Salary.vue) - [frontend/src/views/basic/Templates.vue](file://frontend/src/views/basic/Templates.vue)

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能考虑
  8. 故障排查指南
  9. 结论
  10. 附录

简介

本系统围绕“医院绩效管理系统”的核心业务目标,提供以下关键能力:

  • 平衡计分卡BSC多维度考核支持财务、客户、内部流程、学习与成长四个维度的指标采集与加权统计。
  • 完整的绩效考核流程管理:覆盖草稿、提交、审核、确认的全流程闭环,支持批量创建与批量处理。
  • 智能工资核算计算:基于考核加权得分与员工绩效系数自动计算绩效奖金,支持批量生成与批量确认。
  • 丰富的数据分析报表:提供维度分析、科室统计、趋势分析、排名、指标完成度等多维报表。
  • 灵活的权限控制系统:通过角色与菜单权限控制访问范围,保障数据安全。

系统同时具备良好的扩展性与定制能力,支持指标模板管理、流程自定义、报表定制等,满足不同科室与医院的差异化需求。

项目结构

后端采用 FastAPI + SQLAlchemy 2.0 + PostgreSQL 的现代化架构,按功能域划分 API、服务层、模型与数据结构前端采用 Vue 3 + Element Plus + ECharts 实现交互式报表与工作流操作。

graph TB
subgraph "后端"
A["FastAPI 应用<br/>app/main.py"]
B["API 路由层<br/>api/v1/*"]
C["服务层<br/>services/*"]
D["数据模型<br/>models/models.py"]
E["数据结构<br/>schemas/schemas.py"]
end
subgraph "前端"
F["考核管理<br/>Assessments.vue"]
G["报表中心<br/>Reports.vue"]
H["工资管理<br/>Salary.vue"]
I["模板管理<br/>Templates.vue"]
end
A --> B --> C --> D
B --> E
F --> B
G --> B
H --> B
I --> B

图示来源

章节来源

核心组件

  • 平衡计分卡BSC多维度考核通过指标维度字段与加权得分计算支持按维度聚合统计与可视化。
  • 绩效考核流程管理:提供草稿、提交、审核、确认的四级状态机,支持批量创建与批量处理。
  • 工资核算与发放:依据考核加权得分与员工绩效系数计算绩效奖金,支持批量生成与批量确认。
  • 数据分析与报表:提供维度分析、科室统计、趋势分析、排名、指标完成度等报表接口与前端图表。
  • 指标模板管理:支持模板类型、维度权重、指标集合的维护,便于快速复制与推广。
  • 权限控制:基于用户角色与菜单权限,限制对敏感流程与报表的访问。

章节来源

架构总览

系统采用前后端分离架构,后端提供 RESTful API前端通过 Element Plus 与 ECharts 进行交互与可视化展示。数据模型统一定义于 SQLAlchemy服务层封装业务逻辑API 层负责请求解析与响应格式化。

graph TB
FE["前端界面<br/>Assessments/Reports/Salary/Templates"]
API["API 路由层<br/>performance_plans/assessments/salary/stats"]
SVC["服务层<br/>performance_plan/assessment/salary/stats"]
ORM["数据模型<br/>SQLAlchemy Models"]
DB["数据库<br/>PostgreSQL"]
FE --> API --> SVC --> ORM --> DB
DB --> ORM --> SVC --> API --> FE

图示来源

详细组件分析

平衡计分卡BSC多维度考核

  • 功能亮点
    • 指标维度:财务、客户、内部流程、学习与成长四维,支持按维度聚合与加权平均。
    • 统计接口:提供维度得分、指标完成度、趋势分析等报表。
    • 可视化:前端集成 ECharts支持柱状图、饼图等展示。
  • 技术实现
    • 模型层定义维度枚举与指标权重字段。
    • 服务层按维度聚合计算总分与权重,并输出平均分。
    • API 层提供维度分析与指标完成度接口。
  • 业务价值
    • 帮助管理者从多维度审视运营成效,识别薄弱环节,指导资源投入与改进方向。
flowchart TD
Start(["开始"]) --> Load["加载考核数据<br/>按维度与权重聚合"]
Load --> Calc["计算维度总分/权重/平均分"]
Calc --> Output["输出维度统计结果"]
Output --> Chart["前端渲染图表"]
Chart --> End(["结束"])

图示来源

章节来源

绩效考核流程管理

  • 功能亮点
    • 流程状态:草稿、已提交、已审核、已确认、已驳回,支持逐级流转。
    • 批量能力:支持批量创建考核、批量生成工资、批量确认工资。
    • 明细管理:支持按指标维度录入实际值与得分,自动计算总分与加权得分。
  • 技术实现
    • 服务层封装状态机与明细计算逻辑。
    • API 层提供提交、审核、确认等动作接口。
    • 前端提供工作流操作按钮与批量处理入口。
  • 业务价值
    • 规范考核流程,提升效率与透明度,减少人工干预与错误。
sequenceDiagram
participant U as "用户"
participant FE as "前端界面"
participant API as "API 路由"
participant SVC as "服务层"
participant DB as "数据库"
U->>FE : 选择科室/周期/指标
FE->>API : POST /assessments/batch-create
API->>SVC : 批量创建考核
SVC->>DB : 插入Assessment与Details
SVC-->>API : 返回创建结果
API-->>FE : 列表刷新
FE->>U : 展示草稿状态
U->>FE : 提交/审核/确认
FE->>API : POST /assessments/{id}/submit 或 /review 或 /finalize
API->>SVC : 更新状态
SVC->>DB : 写入状态与时间戳
SVC-->>API : 返回成功
API-->>FE : 刷新状态

图示来源

章节来源

智能工资核算计算

  • 功能亮点
    • 自动计算:基于考核加权得分与员工绩效系数计算绩效奖金。
    • 批量生成:按科室批量生成工资记录,支持批量确认。
    • 可编辑:支持对绩效奖金、补贴、扣款进行微调。
  • 技术实现
    • 服务层封装奖金计算与记录生成逻辑。
    • API 层提供生成、确认、批量处理接口。
    • 前端提供编辑弹窗与批量操作按钮。
  • 业务价值
    • 减少手工计算误差,提高薪酬发放效率与一致性。
flowchart TD
S(["开始"]) --> Fetch["读取已确认考核记录"]
Fetch --> Calc["计算绩效奖金 = 基数×(得分/100)×系数"]
Calc --> Create["创建工资记录(含基本工资+奖金)"]
Create --> Pending["状态=待确认"]
Pending --> Confirm["批量确认/手动确认"]
Confirm --> Pay["薪酬发放"]
Pay --> E(["结束"])

图示来源

章节来源

丰富的数据分析报表

  • 功能亮点
    • 维度分析:按财务、客户、内部流程、学习与成长维度统计得分。
    • 科室统计:按科室汇总平均分、员工数、奖金总额等。
    • 趋势分析:按月度展示平均得分与加权得分趋势。
    • 排名:按加权得分对员工进行排名。
    • 指标完成度:统计指标平均分与完成率。
  • 技术实现
    • 服务层聚合统计并返回结构化数据。
    • API 层提供多类统计接口。
    • 前端使用 ECharts 渲染图表与表格。
  • 业务价值
    • 为管理层提供决策依据,及时发现异常与改进机会。
sequenceDiagram
participant U as "用户"
participant FE as "报表页面"
participant API as "统计接口"
participant SVC as "统计服务"
participant DB as "数据库"
U->>FE : 选择统计周期
FE->>API : GET /stats/department
API->>SVC : 聚合科室统计
SVC->>DB : 查询/聚合
SVC-->>API : 返回统计结果
API-->>FE : 渲染表格与图表
FE-->>U : 展示维度分析/趋势/排名

图示来源

章节来源

指标模板管理(扩展与定制)

  • 功能亮点
    • 模板类型:通用、手术临床、非手术有病房、非手术无病房、医技、护理、行政、后勤等。
    • 维度权重:支持为模板配置财务、客户、内部流程、学习与成长权重。
    • 指标集合:支持为模板添加/编辑/移除指标,设置目标值、权重、评分方法等。
  • 技术实现
    • 模型层定义模板与模板指标关联。
    • 服务层提供模板 CRUD 与指标管理。
    • 前端提供模板列表、详情、编辑与指标管理界面。
  • 业务价值
    • 快速复制成熟模板,降低指标设计成本,提升一致性与可复用性。
classDiagram
class IndicatorTemplate {
+template_name
+template_code
+template_type
+dimension_weights
+assessment_cycle
}
class TemplateIndicator {
+indicator_id
+category
+target_value
+weight
+scoring_method
}
IndicatorTemplate "1" o-- "many" TemplateIndicator : "包含"

图示来源

章节来源

权限控制系统(扩展与定制)

  • 功能亮点
    • 角色与菜单:支持管理员、经理、普通员工等角色,菜单权限控制。
    • 操作权限:部分流程(提交、审核、确认、生成、确认工资)需具备相应角色。
  • 技术实现
    • 安全中间件与依赖注入校验当前用户与角色。
    • API 层通过装饰器限制操作权限。
  • 业务价值
    • 确保流程合规与数据安全,防止越权操作。

章节来源

依赖关系分析

  • 组件耦合
    • API 层仅依赖服务层接口,职责清晰,便于测试与替换。
    • 服务层依赖模型层进行数据持久化,避免直接操作数据库。
    • 前端通过 API 层与后端交互,不直接依赖服务层。
  • 外部依赖
    • 数据库PostgreSQLORMSQLAlchemy。
    • WebFastAPI异步 IO 支持。
    • 前端Vue 3、Element Plus、ECharts。
  • 潜在风险
    • 统计查询复杂度随数据量增长而上升,建议在关键字段建立索引与缓存策略。
graph LR
FE["前端"] --> API["API 路由"]
API --> SVC["服务层"]
SVC --> ORM["SQLAlchemy 模型"]
ORM --> DB["PostgreSQL"]

图示来源

章节来源

性能考虑

  • 查询优化
    • 对常用筛选字段(如状态、周期、部门)建立索引,减少全表扫描。
    • 使用分页与子查询统计总数,避免一次性加载大量数据。
  • 计算优化
    • 工资计算与统计聚合尽量在服务层一次性完成,减少往返次数。
    • 对高频报表(如维度分析、趋势分析)引入缓存或物化视图。
  • 前端体验
    • 使用虚拟滚动与懒加载展示长列表,提升交互流畅度。
    • 图表渲染采用防抖与 resize 监听,避免频繁重绘。

故障排查指南

  • 常见问题
    • 状态不可逆:若状态非草稿或非已提交,提交/审核/确认接口会返回失败。
    • 重复生成:若已存在对应周期的工资记录,生成接口会拒绝重复创建。
    • 权限不足:提交、审核、确认、生成、确认工资等接口需具备相应角色。
  • 定位方法
    • 查看后端日志与异常捕获,定位具体错误原因。
    • 前端检查请求参数与响应状态码,确认必填项与格式。
  • 处理建议
    • 对状态机错误,先刷新页面查看最新状态再执行后续操作。
    • 对权限错误,确认当前用户角色与菜单权限配置。

章节来源

结论

本系统以平衡计分卡为核心,贯通“计划—考核—工资—报表—模板—权限”全链路,既满足标准化管理需求,又提供灵活的扩展与定制能力。通过前后端分离与模块化设计,系统具备良好的可维护性与可扩展性,适合在不同规模与类型的医院落地应用。

附录

  • 使用场景与案例
    • 场景一:月度绩效考核
      • 操作:管理员批量创建考核 → 考核人提交 → 主管审核 → 确认 → 自动生成工资 → 批量确认 → 发放。
      • 价值:缩短考核周期,提升薪酬发放效率。
    • 场景二:维度分析与改进
      • 操作:查看维度分析 → 识别低分维度 → 下发改进计划 → 模板化固化 → 跟踪趋势。
      • 价值:驱动持续改进,提升整体运营水平。
    • 场景三:模板复用与推广
      • 操作:选择成熟模板 → 调整权重与指标 → 应用到新科室 → 批量生成考核 → 统一口径。
      • 价值:降低设计成本,提升一致性与可比性。

章节来源