SpringBoot+Vue3 绩效考核运营闭环:批次工作台 + 评估关系 + 评价单节点推进 + 绩效驾驶舱
🌐 演示地址:https://ruoyioffice.com | 📦 源码1·GitHub:ruoyi-office | 📦 源码2·GitCode:ruoyi-office | 📦 源码3·Gitee:ruoyi-office | 💬 微信:17156169080(备注「RuoYi Office」)
绩效系统最容易做成「配得挺全、跑不起来」:指标库、模板、方案都有了,一到季末仍是 HR 对着 Excel 催自评、催评审、催确认。真正难的是「批次怎么运营」——方案配置就绪后,用批次工作台一键发布并生成评估关系,用评价单状态机把人推到下一节点,用绩效驾驶舱看漏斗与风险池,用「我的绩效」给员工/主管一个统一入口。本文只讲运营闭环,评分加权与校准算法见姊妹篇。

▲ 运营闭环全景:方案/周期配置 → 发布生成(计划 + 评估关系)→ 评价单节点推进(10→50)→ 批次工作台催办与改主评 → 驾驶舱 KPI/漏斗/风险池 →「我的绩效」入口
引言:绩效考核运营到底难在哪?
做过绩效落地的 HR 都知道:难的不是「表单里有没有权重字段」,而是一个批次在组织里怎么被推着往前走。典型痛点可以压成五条:
- 发布后没有「作战沙盘」:周期状态变成「进行中」,但谁没自评、哪个部门卡在评审、主评人空缺有多少,全靠人工拉表。
- 评估关系一错全错:按部门负责人自动找主评,矩阵组织、兼岗、负责人离职立刻出洞;没有异常池和改派,评审节点会卡死。
- 催办没有节点语义:只发「请尽快完成绩效」没用,必须点到「待自评 / 待上级评 / 待校准 / 待结果确认」。
- 管理层看不见进度:领导问「这季度完了多少、哪里拖后腿、有没有申诉积压」,统计页如果只有平均分,回答不了运营问题。
- 员工入口分散:自评一个菜单、评审一个菜单、结果确认再一个菜单,角色切换成本高,待办数字也不聚合。
| 现状 | 后果 |
|---|---|
| Excel 催办 + 微信群点名 | 截止日一到,完成率仍是「大概七成」 |
| 主评写死在计划备注里 | 改主管要改数据、改流程候选人,极易漏 |
| 只有结果报表没有漏斗 | 知道「平均分 82」,不知道「卡在自评 120 人」 |
| 驾驶舱与业务单据脱节 | 看见风险却点不进单据,无法闭环处置 |
本文结论前置:RuoYi Office 把绩效运营抽象为「批次发布 → 关系落库 → 单据节点推进 → 驾驶舱穿透 → 个人入口聚合」五步;评价单状态 10→50(申诉 60—64)是贯穿主线,工作台与驾驶舱都围着这条状态机转。
说明:姊妹文《SpringBoot+Vue3 绩效管理系统设计》偏 15 表与四级评分;《绩效管理产品选型》偏选型叙事。本文刻意少写评分算法,聚焦运营视角的产品实现。
一、业务设计:从「配规则」到「跑批次」
1.1 运营闭环一句话
绩效考核运营闭环是:在已有方案(模板、指标、关系规则、等级规则)之上,按周期(批次)发布 → 为每位参与人生成计划与主评关系 → 用评价单驱动自评/上级评/校准/结果确认 → 用工作台与驾驶舱催办与复盘。评分是结果,运营是把结果按时算出来并让人认账。
1.2 角色与职责
| 角色 | 在闭环中的职责 | 主要入口 |
|---|---|---|
| HR 管理员 | 配方案、建周期、发布批次、改主评、看驾驶舱 | 周期列表 → 批次工作台 / 绩效统计 |
| 被考核人 | 目标确认(若开启)、自评、结果确认/申诉 | 「我的绩效」→ 自评 / 结果确认待办 |
| 主评人(上级) | 上级评审;异常时由 HR 改派 | 「我的绩效」→ 上级评审待办 |
| 校准人 / HR | 校准填报、对齐等级分布 | 校准待办 / 工作台卡点列表 |
| 管理者 | 看完成率、部门排名、风险池 | 绩效驾驶舱 |
1.3 评价单状态机(运营主线)
评价单是执行层的「车票」。状态码取自后端常量,运营侧必须会背:
10 待自评 → 20 待上级评 → 30 待校准 → 40 待结果确认 → 50 已完成
│(不认可)
▼
60 待发起 → 61 待审核 → 62 待校准 → 63 待确认 → 64 申诉完成| 状态 | 含义 | 当前节点 key | 典型办理人 |
|---|---|---|---|
10 | 待自评 | self_review | 员工本人 |
20 | 待上级评 | leader_review | 评估关系主评 |
30 | 待校准 | hr_calibration | 校准人 / HR |
40 | 待结果确认 | result_confirm | 员工本人 |
50 | 已完成 | — | — |
60—64 | 申诉链路 | appeal_* | 主管 / HR / 员工 |
工作台的环节统计、驾驶舱漏斗、风险池「逾期/未填」,全部按这套状态计数——统计口径与业务单据同源,避免「看板一套数、待办另一套」。
1.4 批次状态与发布语义
周期(批次)从草稿到归档,发布不是改个枚举那么简单,而是一次事务:校验配置 → 标记已发布 → 生成计划与计划项 → generateByPeriod 写评估关系并回填 leaderUserId → 若方案跳过目标确认则自动确认并开评价单。
| 关键动作 | 服务方法 | 运营含义 |
|---|---|---|
| 预览参与人 | previewParticipants | 发布前看匹配模板人数、关系异常数 |
| 发布并生成 | publishAndGenerate | 草稿→进行中,并拉起计划生成 |
| 仅生成/重生成 | generatePerformancePlan | 已发布批次补人、重算关系 |
| 改主评 | updatePrimaryAssessor | 异常池处置,同步计划/单据/BPM 变量 |
二、系统设计:模块拼装与关键决策
2.1 子模块地图(运营相关)
| 子模块 | PC 路径(web-antd) | 功能 | 面向角色 |
|---|---|---|---|
| 方案/模板/指标/等级 | views/hrm/performance/setting/* | 规则配置(本文略) | HR |
| 周期列表 | period/list | 建批次、进工作台 | HR |
| 批次工作台 | period/workbench | 发布、关系、催办、卡点列表 | HR |
| 评价任务 | assessment / assessment-task | 自评、评审、校准、确认 | 全员 |
| 绩效统计(驾驶舱) | statistics/ | KPI / 漏斗 / 部门 / 风险 | HR / 管理者 |
| 我的绩效 | my/ | 三类待办聚合 + 关系预览 | 员工 / 主管 |
2.2 设计决策对照
| 决策点 | 方案 | 理由 |
|---|---|---|
| 主评存在哪 | 独立「评估关系」表,计划/单据冗余 leaderUserId | 改派一次三处同步,且可标记异常码 |
| 待办以谁为准 | 业务 API 推进节点 + BPM 任务合并 | 菜单推进时 BPM 可能滞后,待办不能只信流程引擎 |
| 驾驶舱是否预聚合表 | 运行时聚合计划/单据/结果 | 批次量级可控,口径与业务表一致、免双写 |
| 个人入口 | 「我的绩效」聚合 taskView | 降低角色切换成本,数字可点进列表 |
| 移动端 | 当前暂无 HRM 绩效页 | 先保证 PC 运营闭环;APP 后续按待办复用同一 API |
三、PC 端:批次工作台
3.1 工作台是什么
批次工作台是周期详情的「作战指挥台」。从周期列表点进 workbench?id={periodId},HR 在同一页完成:看批次信息与截止日、预览/生成评估关系、发布并生成、按环节看进度、钻到计划/评价单/结果列表、对异常关系改主评。

▲ 批次工作台总览:截止日、发布生成、环节进度与异常提示
3.2 环节统计口径
前端 stage-stats.ts 对本批次计划与评价单做收敛统计(与个人待办菜单解耦):
| 指标 | 计数规则(摘要) |
|---|---|
| 目标待确认 / 已确认 | 计划 status === 1 / >= 2 |
| 待自评 / 待评审 / 待校准 | 评价单 10 / 20 / 30 |
| 待结果确认 | 40 或申诉确认 63 |
| 已完成 | 50 或申诉完成 64 |
| 关系异常数 | 评估关系 exceptionCode 非空 |

▲ 工作台环节进度:一眼看到卡在自评还是评审
3.3 催办怎么落地
催办不是另造一套消息产品,而是用状态切片列表 + 截止日字段驱动:
- 工作台按状态过滤本批次评价单(如只看
status=10)。 - 周期上维护
selfReviewDeadline/leaderReviewDeadline/calibrationDeadline。 - 驾驶舱风险池把「今天 > 截止日且仍停在该节点」标为逾期。
- HR 对异常主评当场改派,评审办理人与 BPM
leaderUserId一并更新。
运营动作建议:每日打开工作台 → 先清异常关系 → 再按逾期风险催自评/评审 → 校准周看校准节点积压 → 结果确认周看 40/63。
四、评估关系:生成、异常池、改主评
4.1 为什么必须独立「评估关系」
如果主评只写在计划字段里,会出现:自动找错人无法标注原因、改派不锁手工结果、BPM 候选人与业务办理人漂移。评估关系表解决三件事——自动解析、异常留痕、手工锁定。
发布链路末尾强制调用:
publishAndGenerate → generatePerformancePlan → generateByPeriod →(可选)自动确认开单4.2 自动生成逻辑(运营可读版)
对周期下每条计划:若已有关系且应保留(手工锁定等)则只回填 leader;否则按方案主评规则解析评估人(默认部门负责人),写入 relationType=主评、source=自动,并把 exceptionCode/exceptionMsg 带上(如找不到负责人)。草稿阶段工作台用 previewParticipants 预览关系,发布前就能看见 abnormalCount。

▲ 评估关系列表:异常码、主评姓名、改派入口
4.3 改主评的同步边界
updatePrimaryAssessor 不只改关系行:计划 leaderUserId、评价单 leader 与(若在 leader_review)currentAssignee*、主流程变量 leaderUserId 一并更新;手工改派后 source=手工、locked=true,并清空异常码。这样异常池处置是「一次操作,三处一致」。
五、评价单节点推进:10 → 50
5.1 节点与 API 动作
| 从 → 到 | 业务动作 | 节点 key 变化 |
|---|---|---|
| 开单 | 目标确认后创建评价单 | → self_review,status=10 |
| 10 → 20 | submitSelfReview | leader_review,办理人=主评 |
| 20 → 30 | submitLeaderReview | hr_calibration |
| 30 → 40 | submitCalibration | result_confirm,办理人=员工 |
| 40 → 50 | confirmResult(confirmed=true) | 清空当前节点/办理人 |
| 40 → 申诉 | confirmResult(false) / startAppeal | 进入 60+ |
5.2 与 BPM 的协作方式
主流程在开单时启动;每次业务提交调用 completeMainProcessTask,并按需写入 leaderUserId / calibrationUserId。校准节点常按角色候选人派发,提交评审后会 syncAssigneeFromMainProcess,避免「业务办理人」和「流程任务候选人」长期不一致。待办页则合并 BPM 待办与业务单据待办,菜单推进时流程未跟上也不会丢待办。

▲ 评价单详情:当前节点、办理人、评审/校准操作
六、绩效驾驶舱:KPI · 漏斗 · 风险池
6.1 接口契约
GET /admin-api/hrm/performance-statistics/cockpit权限:hrm:performance-result:query。前端 getPerformanceStatisticsCockpit 把多选周期压成 periodIdStr 查询串。响应核心块:
| 字段 | 含义 | 运营用途 |
|---|---|---|
kpis | 进行中批次数、完成率、逾期数、风险人数、平均分、申诉数、单据总量/完成量 | 顶部 KPI 卡 |
funnel | 目标待确认→已确认→待自评→待评审→待校准→待结果确认→已完成 | 漏斗图 |
deptCompletion | 部门完成率(升序,落后部门在前) | 催办优先级 |
gradeDistribution | 等级分布 | 校准后形态是否健康 |
periodCompletion | 多批次完成率对照 | 跨期对比 |
risks | overdue / unfilled / appeals / consecutiveLowScore | 风险池四页签 |
默认范围:未指定周期时,取状态 1—4 的进行中批次,并附加最近 3 个已结束批次,便于对照。低分阈值默认 70,连续低分期数默认 3,均可在页头筛选。
6.2 页面结构
PC 页:views/hrm/performance/statistics/。顶部筛选公司/部门/周期/低分阈值 → KPI 卡 → ECharts 漏斗与等级分布 → 部门完成率 → 风险池 Tab(可跳进计划/评价单/结果详情)。首页分析看板也可嵌入同一统计组件。

▲ 绩效驾驶舱:KPI 卡 + 漏斗 + 风险池入口

▲ 风险池:逾期、未填、申诉中、连续低分
6.3 风险池如何「可处置」
风险项带 bizType / bizId / stage,前端可路由到计划详情、评价单详情或结果详情。逾期判定绑定批次截止日字段;未填包含目标待确认与待自评;申诉中走 60—63 开放申诉;连续低分按员工最近 N 期结果分数全部低于阈值汇总。看板不是只读大屏,而是催办工作队列。
七、「我的绩效」:员工与主管的统一入口
views/hrm/performance/my/ 不做第二套业务逻辑,只做聚合:
| 入口卡片 | taskView | 角色文案 |
|---|---|---|
| 自评填报 | self_review | 我是被考核人 |
| 上级评审 | leader_review | 我是考核人 |
| 结果确认 | result_confirm | 我是被考核人 |
每个卡片用 getPerformanceAssessmentBillTodoPage({ pageSize: 1, taskView }) 取 total 作为角标;下方预览最近待办行,并可查看「我作为主评」的评估关系页。一跳进对应任务列表,避免在深层菜单里找入口。

▲ 「我的绩效」:三类待办数字与跳转
八、移动端现状(如实说明)
当前 UniApp 移动端尚未提供独立的 HRM 绩效页面(无 pages-hrm 下的绩效列表/详情)。PC 已打通工作台、驾驶舱与「我的绩效」;移动端后续可复用同一套评价单待办 API(taskView + 节点提交),按「web 转 app」规范补齐自评/评审/结果确认即可,无需改状态机。
九、后端核心实现
以下片段均来自 HRM 绩效模块真实源码,略去校验与工具方法,保留运营关键路径。
9.1 发布并生成:publishAndGenerate
草稿批次先校验配置与匹配参与人,置为已发布,再进入计划生成(内部会调评估关系生成)。
@Override
@Transactional(rollbackFor = Exception.class)
public void publishAndGenerate(Long id) {
PerformancePeriodDO period = validatePerformancePeriodExists(id);
if (period.getStatus() == null || period.getStatus() == 0) {
validateCanPublish(period);
period = preparePeriodForPublish(period);
validatePublishConfig(period);
validateHasMatchedParticipants(period);
performancePeriodMapper.updateById(new PerformancePeriodDO().setId(id)
.setStatus(1)
.setPublishDate(period.getPublishDate() != null
? period.getPublishDate() : LocalDate.now()));
}
// 生成计划 → generateByPeriod → 可选自动确认开单
generatePerformancePlan(id);
}9.2 评估关系:generateByPeriod
按方案主评规则解析;已锁定关系可保留;异常码写入关系行,并回填计划 leader。
@Override
@Transactional(rollbackFor = Exception.class)
public void generateByPeriod(Long periodId) {
PerformancePeriodDO period = validatePeriodExists(periodId);
PerformanceRelationRuleDO primaryRule = resolvePrimaryRule(period.getSchemeId());
List<PerformancePlanDO> plans = performancePlanMapper.selectListByPeriodId(periodId);
Map<Long, DeptRespDTO> deptCache = new HashMap<>();
for (PerformancePlanDO plan : plans) {
PerformanceEvalRelationDO existed = performanceEvalRelationMapper
.selectByPeriodIdAndAssesseeEmployeeId(periodId, plan.getEmployeeId());
if (existed != null && shouldPreserve(existed)) {
fillPlanLeaderFromRelation(plan, existed);
continue;
}
EmployeeDO employee = employeeMapper.selectById(plan.getEmployeeId());
AssessorResolveResult resolveResult = resolveAssessor(primaryRule, employee, deptCache);
PerformanceEvalRelationDO relation = new PerformanceEvalRelationDO()
.setPeriodId(periodId)
.setAssesseeEmployeeId(plan.getEmployeeId())
.setAssessorUserId(resolveResult.assessorUserId())
.setRelationType(RELATION_TYPE_PRIMARY)
.setSource(SOURCE_AUTO)
.setStatus(STATUS_VALID)
.setExceptionCode(resolveResult.exceptionCode())
.setExceptionMsg(resolveResult.exceptionMsg());
// insert or update ...
fillPlanLeaderFromRelation(plan, relation);
}
}9.3 节点推进:自评提交 10 → 20
写自评评审记录后,切状态与节点,办理人改为主评,并完成主流程当前任务。
performanceAssessmentBillMapper.updateById(new PerformanceAssessmentBillDO()
.setId(bill.getId())
.setStatus(BILL_STATUS_WAIT_LEADER) // 20
.setCurrentNodeKey("leader_review")
.setCurrentNodeName(resolveNodeName("leader_review"))
.setLeaderUserId(leaderUserId)
.setLeaderUserName(leaderUserName)
.setCurrentAssigneeId(leaderUserId)
.setCurrentAssigneeName(leaderUserName));
Map<String, Object> variables = new HashMap<>();
variables.put("leaderUserId", leaderUserId);
completeMainProcessTask(bill, resolveNodeName("self_review"), "提交自评", variables, false);上级评 → 校准(20→30)、校准 → 结果确认(30→40)、确认完成(40→50)同一套路:updateById 改状态/节点/办理人 + completeMainProcessTask。结果确认通过时用 UpdateWrapper 显式清空当前节点字段,避免仍出现在确认待办。
9.4 驾驶舱聚合:getCockpit
一次查出范围内计划、评价单、结果,再填充 KPI / 漏斗 / 部门 / 等级 / 风险。
@Override
public PerformanceStatisticsCockpitRespVO getCockpit(PerformanceStatisticsCockpitReqVO reqVO) {
// ... 解析周期范围、公司/部门过滤 ...
List<PerformancePlanDO> plans = performancePlanMapper.selectList(/* periodIds */);
List<PerformanceAssessmentBillDO> bills = performanceAssessmentBillMapper.selectList(/* ... */);
List<PerformanceResultDO> results = performanceResultMapper.selectList(/* score not null */);
fillKpis(resp, scopedPeriods, bills, results);
fillFunnel(resp, plans, bills);
fillDeptCompletion(resp, bills);
fillGradeDistribution(resp, results);
fillPeriodCompletion(resp, scopedPeriods, bills);
fillRisks(resp, periodMap, plans, bills, results, today, lowScoreThreshold, consecutiveCount);
return resp;
}漏斗阶段名与工作台一致(目标待确认…已完成);KPI 完成率 = 已完成单据 / 单据总量;风险池最多保留 50 条/类,防止列表爆炸。
9.5 前端工作台环节统计(TypeScript)
for (const bill of bills) {
const status = bill.status ?? 0;
if (status === 10) waitSelfReview += 1;
else if (status === 20) waitLeaderReview += 1;
else if (status === 30) waitCalibration += 1;
else if (status === 40 || status === 63) waitResultConfirm += 1;
else if (status === 50 || status === 64) billFinished += 1;
}与驾驶舱 fillFunnel 使用同一套状态语义,HR 在工作台看到的卡点,到驾驶舱漏斗上能对得上。
十、运营向创新设计(4 个亮点)
10.1 发布前预览 = 上线彩排
previewParticipants 同时返回匹配/未匹配人数、关系预览与 abnormalCount。草稿阶段就能发现「模板覆盖不到的岗位」和「找不到主评的人」,避免发布后第一天全员卡死。
10.2 异常池 + 锁定改派
自动关系允许失败(带异常码),手工改派锁定后重跑生成不会覆盖。评价单若已在上级评节点,改派即时切换办理人与 BPM 变量——这是矩阵组织和人事异动下的刚需。
10.3 业务推进与流程待办双轨合并
绩效节点可以由业务 API 直接推进(自评/评审菜单),不强制用户只会在流程中心点同意。待办查询合并两套 ID,解决「业务已到下一节点、流程任务未刷新」的运营投诉。
10.4 驾驶舱即催办队列
KPI、漏斗、风险池都从业务表实时聚合,风险行可穿透到单据。管理者问「谁拖后腿」时,答案是列表而不是截图。
十一、技术亮点总结
| 设计要点 | 实现方式 | 价值 |
|---|---|---|
| 批次一键发布 | publishAndGenerate 事务链 | 配置与执行解耦,发布可重复生成 |
| 评估关系落库 | generateByPeriod + 异常码 | 主评可审计、可改派、可锁定 |
| 状态机主线 | 评价单 10→50 / 申诉 60—64 | 工作台与驾驶舱同源计数 |
| 节点推进 | Service 改状态 + 完成 BPM 任务 | 业务菜单与流程中心都能走 |
| 改主评三同步 | 关系 / 计划 / 单据 + 流程变量 | 杜绝「人改了流程还找旧主管」 |
| 驾驶舱聚合 | GET .../cockpit → getCockpit | KPI/漏斗/部门/风险一站式 |
| 个人入口 | my/ + taskView 角标 | 降低找菜单成本 |
| 截止日催办 | 周期 deadline × 风险池 | 把「催一下」变成可量化逾期 |
| 前端环节统计 | stage-stats.ts | 本批次口径,不被个人待办污染 |
| PC 优先 | 移动端暂无绩效页 | 先稳运营闭环,再扩端 |
技术栈锚点:后端 Spring Boot 3.5 + MyBatis-Plus + Flowable;前端 Vue3 + Vben Admin + Ant Design Vue + ECharts(驾驶舱图表)。
十二、快速体验
在线演示
- 地址:https://ruoyioffice.com/web/
- 账号:
admin/admin123
推荐体验路径(8 步)
- 登录后进入 人力资源 → 绩效管理 → 周期,打开一个进行中或草稿批次。
- 进入 批次工作台,先看参与人预览与关系异常数。
- 草稿批次执行 发布并生成,观察计划数、关系数是否对齐。
- 在异常关系上 改主评,确认评价单办理人是否更新。
- 用员工账号打开 我的绩效,进入自评待办并提交(10→20)。
- 用主管账号完成上级评审(20→30),HR 完成校准(30→40)。
- 员工结果确认(40→50),回到工作台看环节进度归零卡点。
- 打开 绩效统计(驾驶舱),核验漏斗与风险池是否与工作台一致。
本地启动(摘要)
# 后端:ruoyi-office 单体启动(默认 48080)
# 前端:
cd ruoyi-office-vben
pnpm dev:antd # http://localhost:5800源码仓库
| 平台 | 地址 |
|---|---|
| GitHub | https://github.com/yuqing2026/ruoyi-office |
| GitCode | https://gitcode.com/zhouzhongyan/ruoyi-office |
| Gitee | https://gitee.com/yqzy1688/ruoyi-office |
相关阅读
- 《SpringBoot+Vue3 绩效管理系统设计:KPI/OKR + 360 + 校准申诉》——配置层与评分引擎
- 本文——批次运营、工作台、驾驶舱与个人入口
常见问题(FAQ)
RuoYi Office 的绩效考核运营闭环包含哪些能力?
包含方案配置之上的批次发布、评估关系生成与改主评、评价单节点推进(10→50,申诉 60—64)、批次工作台催办、绩效驾驶舱(KPI/漏斗/部门完成率/风险池)以及「我的绩效」待办聚合。可在在线演示环境体验;完整能力与持续维护由商业版提供。
评价单状态 10、20、30、40、50 分别是什么意思?
10 待自评,20 待上级评,30 待校准,40 待结果确认,50 已完成。员工不认可结果进入申诉链 60—64。工作台环节统计与驾驶舱漏斗都按这套状态计数。
评估关系异常时怎么处理?
在批次工作台打开评估关系 Tab,筛选带 exceptionCode 的行,使用改主评选择新的评估人。系统会同步计划、评价单办理人,并尝试更新主流程变量 leaderUserId;手工改派会锁定,避免下次自动生成覆盖。
绩效驾驶舱的数据从哪来?会不会和待办对不上?
来自 GET /hrm/performance-statistics/cockpit,由 PerformanceStatisticsServiceImpl.getCockpit 实时聚合计划、评价单、结果表,不另建汇总表。漏斗阶段名与工作台 stage-stats 对齐;若待办合并了 BPM 与业务 ID,而驾驶舱只计业务状态,个别瞬时差属正常,以评价单 status 为准排查。
移动端能做绩效自评吗?
当前 UniApp 尚未提供 HRM 绩效专用页面。PC 端「我的绩效」与任务列表已可用;移动端后续可复用同一套待办与节点提交 API,无需改状态机设计。
和「只有结果报表」的绩效系统比,差在哪?
结果报表回答「得了多少分」;运营闭环回答「卡在哪、催谁、谁异常、风险多少」。RuoYi Office 用工作台 + 驾驶舱风险池把催办变成可穿透队列,而不是季末再补一张完成率 Excel。
结语
绩效考核运营的本质,不是再加一张「统计表」,而是让每一个批次都有指挥台、每一条评价单都有下一个办理人、每一类风险都能点进去处置。RuoYi Office 用评估关系承接「谁评谁」,用 10→50 状态机承接「评到哪了」,用工作台与驾驶舱承接「HR 今天催什么」,用「我的绩效」承接「我今天要办哪几件」——评分算法可以很复杂,但运营主线必须足够短、足够硬。
同一套「发布生成 → 关系/办理人 → 节点推进 → 看板穿透」也可复用到述职评议、试用期考核、项目阶段评价等「周期性、多人、多节点」场景:换批次实体与节点枚举即可,不必重做催办体系。
你们公司现在绩效催办靠什么?Excel 邮件、企微群机器人,还是系统待办?评估关系出错时,是改主数据还是改流程候选人?欢迎在评论区聊聊你们踩过的坑。
如果这篇运营向拆解有帮助,欢迎点赞收藏,也欢迎去仓库点个 Star——评分引擎与校准申诉的细节,可继续阅读姊妹篇《绩效管理系统设计》。
💡 想要体验 RuoYi Office 的强大功能?
🌐 在线演示:https://ruoyioffice.com/web/(账号 admin / admin123)
📦 源码仓库:GitHub | GitCode | Gitee
💬 技术咨询:添加微信 17156169080,备注「RuoYi Office」
⭐ 如果觉得不错,请给个 Star 支持一下!
