# OKR 绩效考核系统 — 产品需求文档

## 1. 项目背景

医梦AI 内部缺乏一套统一的绩效考核体系。当前考核存在以下痛点：

- **标准不统一**：各部门、各岗位考核标准各异，缺乏横向可比性
- **过程不可见**：上级无法实时了解下属的目标制定和执行进展情况
- **数据无追溯**：考核结果调整缺乏留痕机制，无法回溯历史决策
- **工具碎片化**：目标制定、进度更新、打分、反馈分散在不同工具中

基于上述痛点，决定自研一套轻量级 OKR 绩效考核系统，统一考核流程、建立数据追溯机制，支撑公司绩效管理闭环。

### 核心目标

1. 建立 OKR + 绩效双轨考核模型，OKR 占 60%、工作成果占 40%
2. 实现自上而下的目标对齐机制，下级 O 必须承接上级方向
3. 为管理者提供下属 OKR 实时可见能力，随时掌握团队运转情况
4. 全程留痕、数据可审计，满足内部管理与合规要求
5. 轻量部署、低运维成本，适合中小企业使用场景

---

## 2. 用户角色与权限

| 角色 | 定义 | 核心权限 |
|------|------|----------|
| 超级管理员 | 系统最高权限者，由系统初始化时设定 | 组织架构维护、考核周期管理、绩效模板配置、考核维度配置、操作日志查看 |
| 上级/管理者 | 在组织树中有直接下属的用户 | 审核下属 OKR、评估下属绩效、面谈记录、查看团队 OKR 全景 |
| 普通员工 | 无下属的用户 | 制定个人 OKR、提交绩效自评、查看个人绩效结果、确认终审结果 |

**权限推导规则**：系统不基于固定角色分配权限，而是通过 `sys_user.superior_id` 构建的汇报树动态推导。拥有下属即自动获得管理者权限，无需额外授权。

---

## 3. 核心考核模型

### 3.1 双轨模型

绩效考核总分 = **OKR 目标达成（60 分）** + **工作成果自评（40 分）** + 专项加分 − 专项扣分

| 模块 | 满分 | 评分方式 |
|------|------|----------|
| OKR 目标达成 | 60 分 | 逐条 KR 以 0.0-1.0 打分，取算数平均后 × 60 |
| 工作成果 | 40 分 | 按考核维度逐项打分，各维度满分之和固定为 40 |
| 专项加减分 | ±5 分 | 加分上限 5 分，扣分无下限，须附说明 |

### 3.2 考核维度（可配置）

工作成果部分拆分为若干维度，由管理员在系统设置中配置。系统默认配置如下：

| 维度 | 满分 | 说明 |
|------|------|------|
| 交付质量 | 10 分 | 工作任务完成度、交付物质量、时效性 |
| 协作沟通 | 10 分 | 跨部门协作、团队配合、信息同步 |
| 学习成长 | 10 分 | 技能提升、知识沉淀、工具与流程改进 |
| 创新贡献 | 10 分 | 主动发现问题、提出解决方案、业务创新 |

管理员可增删维度并调整分值，系统自动校验所有维度满分之和 = 40。

### 3.3 评级标准

| 评级 | 分数区间 | 含义 |
|------|----------|------|
| S | ≥ 90 | 卓越产出，团队标杆 |
| A | 75–89 | 超出预期，高质量完成 |
| B | 60–74 | 符合预期，满足岗位要求 |
| C | < 60 | 未达预期，需整改辅导 |

---

## 4. 业务流程

### 4.1 考核周期状态机

```
DRAFT（待发布） → OKR_ALIGN（对齐中） → EXECUTING（执行中） → ASSESSING（考评中） → ARCHIVED（已归档）
```

| 状态转换 | 触发方式 | 系统行为 |
|----------|----------|----------|
| DRAFT → OKR_ALIGN | 管理员手动 | 开放 OKR 制定，上级先制定、下级对齐后制定 |
| OKR_ALIGN → EXECUTING | 管理员手动 | OKR 锁定，进入执行阶段，员工可更新 KR 进度 |
| EXECUTING → ASSESSING | 周期结束日 2:00 自动 | 开放自评与打分，员工先自评、上级再审评 |
| ASSESSING → ARCHIVED | 管理员手动 | 数据快照归档，全部锁定不可修改 |

### 4.2 OKR 制定与对齐流程

```
管理员发布周期
    │
    ▼
上级制定 OKR → 提交审核 → 管理员/上级审核通过
    │
    ▼
下级在"我的 OKR"页面查看上级 OKR
    ├── 勾选要承接的上级 KR（自动创建引用条目）
    ├── 被 @ 指定的 KR 自动加入个人 KR 列表（不可取消）
    ├── 编辑后可自定义标题，但保留对上级 KR 的引用关系
    └── 提交 → 上级审核 → 通过/驳回
```

**对齐规则**：
- 下级需等待直属上级 OKR 通过后方可提交
- 顶部用户（无上级）提交即自动通过
- 被上级 @ 的 KR 始终携带 `sourceKrId` 引用，编辑不影响归属关系
- 自愿对齐的 KR 也可持久化引用关系

### 4.3 绩效考评流程

```
周期进入 ASSESSING（考评中）
    │
    ▼
第 1 步：员工自评（/scores/my）
    ├── 逐条 KR 自评（0.0-1.0），系统自动计算 OKR 得分（avg × 60）
    ├── 按维度逐项填写工作成果自述 + 自评打分（合计 ≤ 40）
    ├── 填写专项加减分及说明
    ├── 预览总分与评级
    └── 提交 → 生成 SELF 类型评分记录
    │
    ▼
第 2 步：上级终审（/scoring/:userId）
    ├── 左侧面板：OKR 执行记录 + 员工自评完整内容（三部分对照）
    ├── 右侧面板：上级逐项审核调整
    │   ├── KR 得分调整（员工自评分数作为参考）
    │   ├── 工作成果维度得分调整（员工自述作为参考）
    │   └── 加减分审核
    └── 提交 → 生成 SUPERIOR + FINAL 类型评分记录
    │
    ▼
第 3 步：员工确认（/scores/my）
    ├── 查看 FINAL 结果（总分、评级、各模块得分）
    ├── 对比自评 vs 终审差异
    └── 确认 → 流程结束
```

---

## 5. 功能模块

### 5.1 组织架构管理

- 部门 CRUD，支持树形层级（父部门/子部门）
- 用户 CRUD，关联部门与直属上级
- 部门负责人设置
- 仅超级管理员可操作

### 5.2 考核周期管理

- 周期 CRUD（名称、起止日期、周期类型）
- 周期状态手动/自动流转
- 支持月度/季度/年度周期
- 管理员操作

### 5.3 个人 OKR

- 1O + 2~5KR 结构，权重之和 = 100
- 上级 OKR 展示与 KR 级对齐
- 被 @ 的 KR 自动纳入列表
- OKR 编辑后引用关系持久保留
- 执行阶段 KR 进度更新（数值 + 状态 + 备注）
- 阻塞标记与进度日志全记录

### 5.4 团队 OKR

- 管理者查看全部直接下属的 OKR 状态
- 统计面板：已通过 / 待审核 / 未提交 / 已驳回
- 按周期筛选，支持执行阶段看进度
- 实时掌握团队运转情况

### 5.5 绩效自评

- ASSESSING 阶段向员工开放自评表单
- 逐条 KR 打分（0.0-1.0 滑块）
- 按维度填写工作成果自述 + 打分
- 自动计算总分与预览评级
- 提交后不可重复提交

### 5.6 绩效考评

- 管理者查看下属列表，含自评状态与分数
- 同屏布局：左侧 OKR 记录 + 员工自评参考，右侧考评打分
- 逐项对照审核，员工自评结果作为参考标注
- 自动计算总分与评级
- 提交后同步生成终审记录

### 5.7 绩效反馈

- 面谈记录：亮点、待改进、改进建议、面谈纪要
- 员工回复
- 同屏布局呈现

### 5.8 绩效模板（可配置）

- 按岗位分类的指标模板库
- 模板列表按岗位大类筛选（技术开发/产品设计/人力资源/财务管理/运营市场/高管）
- 每个模板包含若干指标项及满分分值
- 员工制定 OKR 时可查看岗位模板作为参考

### 5.9 考核维度配置

- 管理员可增删改考核维度
- 维度排序（拖拽/上下移动）
- 实时校验满分之和 = 40
- 全局生效，所有员工自评使用同一套维度

### 5.10 操作日志

- 记录操作人、操作类型、操作对象、变更前后数据（JSON）
- IP 地址追踪
- 仅超级管理员可查看

---

## 6. 非功能性需求

| 类别 | 要求 |
|------|------|
| 部署方式 | 单 JAR 文件 + SQLite 数据库文件，`java -jar` 一键启动 |
| 运行环境 | JDK 17 LTS，无外部数据库依赖 |
| 并发能力 | 支持 50 人同时在线（中小企业内部使用） |
| 数据安全 | JWT 认证、BCrypt 密码加密、操作全程留痕 |
| 浏览器兼容 | Chrome 90+、Edge 90+、Firefox 90+ |
| 响应式布局 | 评分页宽屏(≥1100px)左右分栏、窄屏上下分区 |
| 性能 | 页面首屏加载 < 3s、API 响应 < 500ms |

---

## 7. 项目范围

### 一期范围（已实现）

- 账号与组织架构管理
- 考核周期管理（含状态机）
- OKR 制定、对齐、审核、进度更新
- 团队 OKR 实时查看
- KPI / 绩效模板管理
- 考核维度配置
- 绩效自评 → 上级终审 → 员工确认（全流程）
- 绩效反馈（面谈记录）
- 操作日志

### 后续规划

- 数据统计仪表盘
- 历史趋势曲线
- 自动备份与恢复
- 邮件/钉钉通知集成
- 多周期批量对比分析
