ruoyi-vue-pro 开发指南 ruoyi-vue-pro 开发指南
  • 萌新必读
  • 后端手册
  • 中间件手册
  • 工作流手册
  • 大屏手册
  • 支付手册
  • 会员手册
  • 商城手册
  • ERP 手册
  • CRM 手册
  • MES 手册
  • WMS 手册
  • IM 即时通讯手册
  • AI 大模型手册
  • IoT 物联网手册
  • 公众号手册
  • 系统手册
  • 运维手册
  • 前端手册 Vue 3.x
  • 前端手册 Vben 5.x
  • 前端手册 Vue 2.x
  • 前端手册 Admin Uniapp
  • 工作流手册
  • 大屏手册
  • 支付手册
  • 会员手册
  • 商城手册
  • ERP 手册
  • CRM 手册
  • MES 手册
  • WMS 手册
  • IM 即时通讯手册
  • AI 大模型手册
  • IoT 物联网手册
  • 公众号手册
  • 系统手册
视频教程
  • Vue3 + element-plus (opens new window)
  • Vue3 + vben5(ant-design-vue、element-plus) (opens new window)
  • Vue2 + element-ui (opens new window)
微服务版 (opens new window)
作者博客 (opens new window)
GitHub (opens new window)
  • 萌新必读
  • 后端手册
  • 中间件手册
  • 工作流手册
  • 大屏手册
  • 支付手册
  • 会员手册
  • 商城手册
  • ERP 手册
  • CRM 手册
  • MES 手册
  • WMS 手册
  • IM 即时通讯手册
  • AI 大模型手册
  • IoT 物联网手册
  • 公众号手册
  • 系统手册
  • 运维手册
  • 前端手册 Vue 3.x
  • 前端手册 Vben 5.x
  • 前端手册 Vue 2.x
  • 前端手册 Admin Uniapp
  • 工作流手册
  • 大屏手册
  • 支付手册
  • 会员手册
  • 商城手册
  • ERP 手册
  • CRM 手册
  • MES 手册
  • WMS 手册
  • IM 即时通讯手册
  • AI 大模型手册
  • IoT 物联网手册
  • 公众号手册
  • 系统手册
视频教程
  • Vue3 + element-plus (opens new window)
  • Vue3 + vben5(ant-design-vue、element-plus) (opens new window)
  • Vue2 + element-ui (opens new window)
微服务版 (opens new window)
作者博客 (opens new window)
GitHub (opens new window)
  • 萌新必读

    • 简介
    • 交流群
    • 视频教程
    • 功能列表
    • 快速启动(后端项目)
    • 快速启动(前端项目)
    • 接口文档
    • 技术选型
    • 项目结构
    • 代码热加载
    • 一键改包
    • 迁移模块(适合新项目)
    • 删除功能(以租户为例)
    • 表结构变更(版本升级)
    • 国产信创数据库(DM 达梦、大金、OpenGauss、瀚高)
    • 如何去除 Redis 缓存
    • 内网穿透
    • 面试题、简历模版、简历优化
    • 项目外包
  • 后端手册

    • 新建模块
    • 代码生成【单表】(新增功能)
    • 代码生成【主子表】
    • 代码生成(树表)
    • 代码生成(移动端)
    • 功能权限
    • 数据权限
    • 用户体系
    • 三方登录
    • OAuth 2.0(SSO 单点登录)
    • SaaS 多租户【字段隔离】
    • SaaS 多租户【数据库隔离】
    • WebSocket 实时通信
    • 异常处理(错误码)
    • 参数校验、时间传参
    • 分页实现
    • VO 对象转换、数据翻译
    • 文件存储(上传下载)
    • Excel 导入导出
    • 操作日志、访问日志、异常日志
    • MyBatis 数据库
    • MyBatis 联表&分页查询
    • 多数据源(读写分离)、事务
    • Redis 缓存
    • 本地缓存
    • 异步任务
    • 分布式锁
    • 幂等性(防重复提交)
    • 请求限流(RateLimiter)
    • HTTP 接口签名(防篡改)
    • HTTP 接口加解密
    • 单元测试
    • 验证码
    • 工具类 Util
    • 配置管理
    • 数据库文档
  • 中间件手册

    • 定时任务
    • 消息队列(内存)
    • 消息队列(Redis)
    • 消息队列(RocketMQ)
    • 消息队列(RabbitMQ)
    • 消息队列(Kafka)
    • 限流熔断
  • 工作流手册

    • 工作流演示
    • 功能开启
    • 工作流(达梦适配)
    • 审批接入(流程表单)
    • 审批接入(业务表单)
    • 流程设计器(BPMN)
    • 流程设计器(钉钉、飞书)
    • 选择审批人、发起人自选
    • 会签、或签、依次审批
    • 流程发起、取消、重新发起
    • 审批通过、不通过、驳回
    • 审批加签、减签
    • 审批转办、委派、抄送
    • 执行监听器、任务监听器
    • 流程表达式
    • 流程审批通知
    • 移动端审批
  • 大屏手册

    • 报表设计器
    • 大屏设计器
  • 支付手册

    • 功能开启
    • 支付宝支付接入
    • 微信公众号支付接入
    • 微信小程序支付接入
    • 支付宝、微信退款接入
    • 支付宝转账接入
    • 微信转账接入
    • 钱包充值、支付、退款
    • 模拟支付、退款
    • 移动端支付管理
  • 会员手册

    • 功能开启
    • 微信公众号登录
    • 微信小程序登录
    • 微信小程序订阅消息
    • 微信小程序码
    • 会员用户、标签、分组
    • 会员等级、积分、签到
    • 移动端会员管理
  • 商城手册

    • 商城演示
    • 功能开启
    • 商城装修
    • 在线客服
    • 【商品】商品分类
    • 【商品】商品属性
    • 【商品】商品 SPU 与 SKU
    • 【商品】商品评价
    • 【交易】购物车
    • 【交易】交易订单
    • 【交易】售后退款
    • 【交易】快递发货
    • 【交易】门店自提
    • 【交易】分销返佣
    • 【营销】优惠劵
    • 【营销】积分商城
    • 【营销】拼团活动
    • 【营销】秒杀活动
    • 【营销】砍价活动
    • 【营销】满减送活动
    • 【营销】限时折扣
    • 【营销】内容管理
    • 【统计】会员、商品、交易统计
    • 移动端商城管理
  • ERP手册

    • ERP 演示
    • 功能开启
    • 【产品】产品信息、分类、单位
    • 【库存】产品库存、库存明细
    • 【库存】其它入库、其它出库
    • 【库存】库存调拨、库存盘点
    • 【采购】采购订单、入库、退货
    • 【销售】销售订单、出库、退货
    • 【财务】采购付款、销售收款
    • 移动端 ERP
  • CRM手册

    • CRM 演示
    • 功能开启
    • 【线索】线索管理
    • 【客户】客户管理、公海客户
    • 【商机】商机管理、商机状态
    • 【合同】合同管理、合同提醒
    • 【回款】回款管理、回款计划
    • 【产品】产品管理、产品分类
    • 【通用】数据权限
    • 【通用】跟进记录、待办事项
    • 移动端 CRM
  • AI大模型手册

    • AI 大模型演示
    • 功能开启
    • AI 聊天对话
    • AI 绘画创作
    • AI 知识库(RAG)
    • AI 音乐创作
    • AI 写作助手
    • AI 思维导图
    • AI 工具(function calling)
    • AI 工作流
    • Dify 工作流
    • FastGPT 工作流
    • Coze 智能体
    • 推理模式(thinking)
    • 联网搜索
    • MCP Client 客户端
    • MCP Server 服务端
    • 【模型接入】Claude
    • 【模型接入】OpenAI
    • 【模型接入】通义千问
    • 【模型接入】DeepSeek
    • 【模型接入】字节豆包
    • 【模型接入】腾讯混元
    • 【模型接入】硅基流动
    • 【模型接入】MiniMax
    • 【模型接入】月之暗面
    • 【模型接入】百川智能
    • 【模型接入】文心一言
    • 【模型接入】LLAMA
    • 【模型接入】智谱 GLM
    • 【模型接入】讯飞星火
    • 【模型接入】微软 OpenAI
    • 【模型接入】谷歌 Gemini
    • 【模型接入】Stable Diffusion
    • 【模型接入】Midjourney
    • 【模型接入】Suno
    • 【模型接入】Grok
    • 【模型接入】阶跃星辰
    • 移动端 AI 大模型
  • IoT物联网手册

    • 功能开启
    • 产品管理
    • 设备管理
    • 物模型配置
    • 设备网关与子设备
    • 设备动态注册
    • 设备接入(概述)
    • 设备接入(HTTP 协议)
    • 设备接入(MQTT 协议)
    • 设备接入(EMQX 协议)
    • 设备接入(TCP 协议)
    • 设备接入(UDP 协议)
    • 设备接入(WebSocket 协议)
    • 设备接入(CoAP 协议)
    • 设备接入(Modbus Client 模式)
    • 设备接入(Modbus Server 模式)
    • 设备接入(自定义协议)
    • 场景联动
    • 数据流转
    • 告警配置
    • OTA 固件升级
    • 移动端 IoT 物联网
  • MES手册

    • MES 演示
    • 功能开启
    • 【基础】物料产品、分类、计量单位
    • 【基础】客户管理、供应商管理
    • 【基础】车间设置、工作站设置
    • 【基础】编码规则
    • 【生产】工序设置、工艺流程
    • 【生产】生产工单
    • 【生产】生产排产、工序流转卡
    • 【生产】生产报工
    • 【生产】安灯配置、安灯呼叫
    • 【生产】工作记录
    • 【仓库】仓库与库区库位、条码赋码、SN码
    • 【仓库】批次管理、库存现有量、库存事务
    • 【仓库】到货通知、采购入库、采购退货
    • 【仓库】生产领料、生产退料、物料消耗
    • 【仓库】产品产出、产品入库
    • 【仓库】发货通知、销售出库、销售退货
    • 【仓库】外协发料、外协入库
    • 【仓库】其他入库、其他出库
    • 【仓库】调拨单、装箱管理
    • 【仓库】库存盘点
    • 【质量】检测项设置、常见缺陷
    • 【质量】质检方案
    • 【质量】来料检验(IQC)
    • 【质量】过程检验(IPQC)
    • 【质量】出货检验(OQC)
    • 【质量】退货检验(RQC)
    • 【质量】待检任务、检验结果、缺陷记录
    • 【设备】设备类型、设备台账
    • 【设备】点检保养项目、点检保养方案
    • 【设备】点检记录、保养记录、维修单
    • 【工具】工具类型、工装夹具台账
    • 【排班】班组设置、节假日设置
    • 【排班】排班计划、排班日历
    • 移动端 MES
  • WMS手册

    • WMS 演示
    • 功能开启
    • 【基础】仓库
    • 【基础】商品、SKU、分类、品牌
    • 【基础】往来企业(供应商、客户)
    • 【库存】库存记录、流水、统计
    • 【单据】入库
    • 【单据】出库
    • 【单据】移库
    • 【单据】盘库
    • 【其它】WMS、MES、ERP 对比
    • 移动端 WMS
  • HRM人力资源

    • HRM 演示
    • 功能开启
    • 【组织】工作台、组织架构
    • 【员工】员工管理
    • 【招聘】招聘管理
    • 【考勤】考勤管理
    • 【社保】社保管理
    • 【薪资】薪资管理
    • 【绩效】绩效模板、绩效计划
      • 1. 考核指标模板
        • 1.1 表结构
        • 1.2 管理后台
      • 2. 结果模板
        • 2.1 表结构
        • 2.2 管理后台
      • 3. 绩效计划
        • 3.1 表结构
        • 3.2 管理后台
        • 3.3 四步创建
        • 3.4 状态流转
      • 4. 管理端与员工端的分工
    • 【绩效】绩效考核、绩效档案
  • IM即时通讯手册

    • IM 演示
    • 功能开启
    • 【好友】好友关系、好友申请
    • 【群聊】群组、群成员、入群申请
    • 【消息】私聊、群聊、频道消息
    • 【频道】频道、频道素材
    • 【内容】表情、敏感词
    • 【通话】语音通话、视频通话、共享屏幕
    • 【WebSocket】实时推送与离线消息
    • 移动端 IM 即时通讯
  • 公众号手册

    • 功能开启
    • 公众号接入
    • 公众号粉丝
    • 公众号标签
    • 公众号消息
    • 模版消息
    • 自动回复
    • 公众号菜单
    • 公众号素材
    • 公众号图文
    • 公众号统计
    • 移动端公众号管理
  • 系统手册

    • 短信配置
    • 邮件配置
    • 站内信配置
    • Webhook(钉钉、飞书、企微)
    • 数据脱敏、字段权限
    • 敏感词
    • 地区 & IP 库
  • 运维手册

    • 开发环境
    • Linux 部署
    • Docker 部署
    • Jenkins 部署
    • 宝塔部署
    • 1Panel 部署
    • HTTPS 证书
    • 服务监控
    • Tomcat WAR 部署
  • 前端手册 Vue 3.x

    • 开发规范
    • 菜单路由
    • Icon 图标
    • 字典数据
    • 系统组件
    • 通用方法
    • 配置读取
    • CRUD 组件
    • 国际化
    • IDE 调试
    • 代码格式化
  • 前端手册 Vben 5.x

    • 开发规范
    • 菜单路由
    • 图标、主题、国际化
    • 字典数据
    • 系统组件
    • 通用方法
    • 配置读取
    • IDE 调试
    • 代码格式化
  • 前端手册 Vue 2.x

    • 开发规范
    • 菜单路由
    • Icon 图标
    • 字典数据
    • 系统组件
    • 通用方法
    • 配置读取
  • 前端手册 Admin Uniapp

    • 开发规范
    • 菜单路由
    • 图标、主题、国际化
    • 字典数据
    • 系统组件
    • 通用方法
    • IDE 调试
    • 代码格式化
    • 运行发布
  • 更新日志

    • 【v2026-07】
    • 【v2026-06】
    • 【v2026-05】
    • 【v2026-04】
    • 【v2026-03】
    • 【v2026-01】
    • 【v2025-12】
    • 【v2025-11】
    • 【v2025-10】
    • 【v2025-09】
    • 【v2025-08】
    • 【v2-6-1】2025-07-19
    • 【v2-6-0】2025-06-07
    • 【v2.5.0】2025-05-13
    • 【v2.4.2】2025-04-12
    • 【v2.4.1】2025-02-09
    • 【v2.4.0】2024-12-31
    • 【v2.3.0】2024-10-07
    • 【v2.2.0】2024-08-02
    • 【v2.1.0】2024-05-05
    • 【v2.0.1】2024-03-01
    • 【v2.0.0】2024-01-26
  • 开发指南
  • HRM人力资源
芋道源码
2026-08-02
目录

【绩效】绩效模板、绩效计划

绩效模板与计划用于定义“考什么、谁来评分、如何确认结果”。管理端先维护考核指标模板和结果模板,再通过四步表单创建绩效计划并确定参评范围。计划启动后的员工任务与绩效档案,详见 《【绩效】绩效考核、绩效档案》。

模块由 yudao-module-hrm 后端的 performance.config、performance.plan 包实现,前端位于 @/views/hrm/performance/config 和 @/views/hrm/performance/plan。相关表关系如下:

绩效模块表关系

# 1. 考核指标模板

考核指标模板保存可复用的维度和指标,例如“业绩指标 60% + 行为态度 40%”。维度、指标以内嵌 JSON 保存,不建立独立模板子表。

# 1.1 表结构

省略 creator/create_time/updater/update_time/deleted/tenant_id 等通用字段,下同。

CREATE TABLE `hrm_performance_assessment_template` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `name` varchar(500) NOT NULL COMMENT '模板名称',
  `illustrate` varchar(1000) DEFAULT NULL COMMENT '模板说明',
  `score_calculation` tinyint DEFAULT '1' COMMENT '计分方式',
  `upper_limit_type` tinyint DEFAULT '0' COMMENT '分数上限类型',
  `upper_limit_score` decimal(10,2) DEFAULT '100.00' COMMENT '分数上限',
  `dimension_count` int DEFAULT '0' COMMENT '维度数量',
  `quota_count` int DEFAULT '0' COMMENT '指标数量',
  `dimensions` varchar(20000) NOT NULL COMMENT '维度和指标 JSON',
  `status` tinyint DEFAULT '0' COMMENT '状态',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='HRM 绩效考核指标模板';

① dimensions 中的维度保存名称、类型、权重、是否允许员工编辑和指标列表;每个指标保存名称、说明、评分标准、权重和排序。

② 所有维度权重之和必须为 100%。不允许员工编辑的维度,其预置指标权重也必须为 100%;允许员工编辑时,可将剩余权重留给员工填写。

③ 模板“修改”采用版本化处理:旧记录停用,再插入一条新记录。已创建的计划继续使用原模板编号和自己的配置快照,不会被新版本改写。

# 1.2 管理后台

对应 [HRM 人力资源 -> 绩效管理 -> KPI 考核设置 -> 考核指标模板] 菜单。

# 列表

进入菜单后,@/views/hrm/performance/config/assessment-template/index.vue 默认加载模板列表,可按模板名称“搜索”或“重置”。页面通过 HrmPerformanceAssessmentTemplateController 的 GET /hrm/performance/assessment-template/page 查询模板名称、维度数、指标数、创建人和创建时间。

管理后台 - 考核指标模板

# 新增 / 修改

点击“新增”,或在目标模板右侧点击“编辑”,打开 PerformanceAssessmentTemplateForm.vue。表单内的 components/PerformanceAssessmentConfigEditor.vue 支持新增、编辑和删除考核维度,并在维度下新增、编辑和删除指标项;保存前会校验维度和指标权重。新增提交 POST /hrm/performance/assessment-template/create,编辑时先用 GET /hrm/performance/assessment-template/get?id={id} 回显,再提交 PUT /hrm/performance/assessment-template/update。

编辑不是覆盖原记录,而是生成新版本并停用旧版本;已创建的 KPI 考核继续使用原模板快照。

# 删除 / 批量删除

点击单行“删除”,或勾选多条记录后点击“批量删除”,确认后分别调用 DELETE /hrm/performance/assessment-template/delete?id={id}、DELETE /hrm/performance/assessment-template/delete-list?ids={ids}。后端会先检查 hrm_performance_plan.assessment_template_id,模板已被计划引用时拒绝删除,未引用时才完成逻辑删除并刷新列表。

# 2. 结果模板

结果模板把最终得分映射为等级和绩效系数,例如 A、B、C 三档。它与指标模板一样采用版本化修改,被计划引用的版本不能删除。

# 2.1 表结构

CREATE TABLE `hrm_performance_result_template` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `name` varchar(255) NOT NULL COMMENT '模板名称',
  `levels` varchar(20000) NOT NULL COMMENT '等级配置 JSON',
  `status` tinyint DEFAULT '0' COMMENT '状态',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='HRM 绩效结果模板';

① levels 保存等级名称、分数下限、分数上限和绩效系数。

② 各等级区间必须连续覆盖 0~100,不能重叠或留空;等级名称不可重复,绩效系数不能小于 0。

# 2.2 管理后台

对应 [HRM 人力资源 -> 绩效管理 -> KPI 考核设置 -> 考核结果设置] 菜单。

# 列表

@/views/hrm/performance/config/result-template/index.vue 展示模板名称、结果等级、创建人和创建时间,可按模板名称“搜索”或“重置”。列表由 HrmPerformanceResultTemplateController 的 GET /hrm/performance/result-template/page 提供。

管理后台 - 结果模板

# 新增 / 修改

点击“新增”,或在单行右侧点击“编辑”,打开 PerformanceResultTemplateForm.vue;其中 components/PerformanceResultLevelForm.vue 用于新增、修改和删除等级行。保存时必须让等级区间连续覆盖 0~100,且不能重叠或留空。新增调用 POST /hrm/performance/result-template/create;编辑先调用 GET /hrm/performance/result-template/get?id={id} 回显,再调用 PUT /hrm/performance/result-template/update。

结果模板修改同样生成新版本并停用旧版本,不会改变已创建计划保存的结果快照。

# 删除 / 批量删除

点击单行“删除”,或勾选记录后点击“批量删除”,确认后分别调用 DELETE /hrm/performance/result-template/delete?id={id}、DELETE /hrm/performance/result-template/delete-list?ids={ids}。HrmPerformanceResultTemplateController 会把校验交给服务层:已被 KPI 考核引用的版本不能删除,避免历史等级和绩效系数失去来源。

# 3. 绩效计划

绩效计划是配置聚合根。它保存模板来源编号,同时把指标、结果、考评范围和流程复制成计划快照;模板后续变化不会影响已创建的计划。

# 3.1 表结构

CREATE TABLE `hrm_performance_plan` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `name` varchar(255) NOT NULL COMMENT '计划名称',
  `cycle_type` tinyint DEFAULT NULL COMMENT '周期类型',
  `cycle` varchar(255) DEFAULT NULL COMMENT '周期',
  `quarter` tinyint DEFAULT NULL COMMENT '季度',
  `start_time` datetime DEFAULT NULL COMMENT '开始时间',
  `end_time` datetime DEFAULT NULL COMMENT '结束时间',
  `description` varchar(1000) DEFAULT NULL COMMENT '说明',
  `scopes` varchar(20000) NOT NULL COMMENT '考评范围 JSON',
  `assessment_template_id` bigint NOT NULL COMMENT '指标模板编号',
  `assessment_config` varchar(20000) NOT NULL COMMENT '指标快照 JSON',
  `result_template_id` bigint NOT NULL COMMENT '结果模板编号',
  `result_config` varchar(20000) NOT NULL COMMENT '结果快照 JSON',
  `quota_setting_type` tinyint NOT NULL DEFAULT '1' COMMENT '指标制定方式',
  `target_confirmation` bit NOT NULL DEFAULT b'0' COMMENT '是否目标确认',
  `target_confirmation_stage` varchar(20000) DEFAULT NULL COMMENT '目标确认节点 JSON',
  `review_stages` varchar(20000) NOT NULL COMMENT '评分节点 JSON',
  `result_audit` bit NOT NULL DEFAULT b'1' COMMENT '是否结果审核',
  `result_audit_stages` varchar(20000) DEFAULT NULL COMMENT '结果审核节点 JSON',
  `result_confirmation` bit NOT NULL DEFAULT b'1' COMMENT '是否结果确认',
  `appeal_stages` varchar(20000) DEFAULT NULL COMMENT '申诉节点 JSON',
  `appeal_timeout_days` int NOT NULL DEFAULT '2' COMMENT '申诉超时天数',
  `appeal_timeout_action` tinyint NOT NULL DEFAULT '1' COMMENT '申诉超时动作',
  `sync_to_salary` bit DEFAULT b'0' COMMENT '是否同步薪资',
  `paid_for_month` varchar(20) DEFAULT NULL COMMENT '计薪月份',
  `stage_type` tinyint DEFAULT '0' COMMENT '当前阶段',
  `status` tinyint DEFAULT '2' COMMENT '状态',
  `operation_type` tinyint DEFAULT NULL COMMENT '下一操作',
  `terminate_time` datetime DEFAULT NULL COMMENT '终止时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='HRM 绩效计划';

① scopes 支持员工/部门、聘用形式/员工状态,以及手工移除员工形成的排除范围。系统按范围生成 hrm_performance_assessment 参评员工记录。

② assessment_config、result_config 是计划实际运行依据,assessment_template_id、result_template_id 只保留来源关系。

③ target_confirmation_stage、review_stages、result_audit_stages、appeal_stages 都是内嵌流程配置;计划启动后才为每名员工解析为实际阶段和处理人。

# 3.2 管理后台

对应 [HRM 人力资源 -> 绩效管理 -> KPI 考核] 菜单。

# 列表与状态页签

@/views/hrm/performance/plan/index.vue 可按计划名称“搜索”或“重置”,并按未开始、进行中、已归档、已终止页签展示数量。列表分别调用 HrmPerformancePlanController 的 GET /hrm/performance/plan/page 和 GET /hrm/performance/plan/status-count;阶段人数随列表数据一起返回,状态页签数量仍受计划名称条件约束。

# 查看详情

点击计划名称进入 @/views/hrm/performance/plan/detail/index.vue,查看“详细资料”“参评员工”和“操作日志”。页面调用 GET /hrm/performance/plan/get?id={id} 回显计划,调用 GET /hrm/performance/plan/stage-count?planId={id}、GET /hrm/performance/plan/level-count?planId={id} 统计阶段和等级;点击参评员工姓名后,由 @/views/hrm/performance/assessment/detail/index.vue 通过 GET /hrm/performance/assessment/get?id={id}、GET /hrm/performance/assessment/process-record-list?id={id} 展示指标得分与流程记录。

# 维护参评员工

只有未开始计划可以维护参评员工。在详情的“参评员工”页签点击“添加员工”,PerformancePlanAssessmentAddForm.vue 先调用 GET /hrm/performance/assessment/unassigned-employee-id-list?planId={id} 排除已加入员工,确认后提交 POST /hrm/performance/assessment/create-list;勾选员工并点击“移除员工”,确认后提交 DELETE /hrm/performance/assessment/delete-list。HrmPerformanceAssessmentController 完成增减后,页面会刷新人数、阶段统计和列表;被移除员工同时写入计划排除范围,避免按部门或员工条件重新命中。

# 启动

未开始计划在列表点击“检查并开启考核”,会先进入详情的参评员工页签;核对后点击详情顶部“启动”并二次确认,detail/index.vue 调用 POST /hrm/performance/plan/start?id={id}。HrmPerformancePlanController 会校验参评范围、流程配置和所有必办处理员工的账号绑定,校验成功后生成维度、指标和运行节点,计划变为“进行中”;任一必办人无法解析或未绑定后台账号时,计划保持未开始并返回明确错误。

# 开启评分

进行中计划的全部员工进入执行中后,列表显示“开始评分”,详情显示“开启评分”。确认后均调用 POST /hrm/performance/plan/open-scoring?id={id},系统激活首个评分节点;前置条件未满足时按钮不显示,后端仍会再次校验。此操作由 index.vue 或 detail/index.vue 发起,Controller 完成后刷新计划阶段和参评员工进度。

# 发起绩效面谈

所有参评员工完成评分与结果审核后,列表显示“发起绩效面谈”,详情的“更多”中显示“发起面谈”。确认后调用 POST /hrm/performance/plan/start-interview?id={id},系统进入面谈阶段,并按计划配置激活员工结果确认或直接推进结束;尚有评分、审核任务未完成时不能执行。

# 归档 / 终止

全员考核结束后,可点击“归档”并确认,页面提交 POST /hrm/performance/plan/archive?id={id},计划和员工考核变为已归档并写入归档时间。进行中计划也始终可以点击“终止考核”或详情“更多 -> 终止”,确认后提交 POST /hrm/performance/plan/terminate?id={id};终止后不再推进流程,但已经产生的指标、评分、阶段和动作记录继续保留。两个操作都由 HrmPerformancePlanController 处理,并根据服务端进度校验决定是否允许执行。

# 删除

未开始计划可点击“删除考核”,已归档计划可点击“删除”;进行中和已终止计划没有删除入口。确认后 index.vue 或 detail/index.vue 调用 DELETE /hrm/performance/plan/delete?id={id},后端删除计划以及所属运行数据;已归档计划的绩效档案也随之清理。

管理后台 - 绩效计划

# 3.3 四步创建

# 新增 KPI 考核

在计划列表点击“新增”,进入 @/views/hrm/performance/plan/form/index.vue 的四步配置页。可以点击步骤标题定位,也可以使用“上一步”“下一步”逐项校验,最后点击“保存”调用 POST /hrm/performance/plan/create;创建结果直接是“未开始”,当前没有单独保存草稿。点击“返回”则退出配置页,不提交数据。

步骤 配置内容 关键规则
① 基础设置 周期、起止时间、考评范围 月度、季度、半年、全年需匹配自然周期;“其他”可自定义
② 指标设置 指标模板、指标制定方式 系统制定直接进入执行中;员工填写可开启目标确认
③ 流程设置 评分、审核、确认、申诉节点 评分权重合计 100%;审核、申诉各最多三级
④ 结果设置 结果模板、薪资衔接 同步薪资时必须选择 YYYY-MM 计薪月份

周期类型包括月度、季度、上半年、下半年、全年和其他。标准周期的起止日必须匹配对应自然周期;“其他”才允许填写自定义周期。

考评范围有两种主要选法:

  • 直接选择员工或部门,部门范围包含其下员工。
  • 按聘用形式和员工状态筛选;管理员在计划详情手工移除员工时,系统会把该员工写入排除范围。

处理人按以下规则解析:

类型 解析方式
上级 沿 hrm_employee.leader_employee_id 解析指定层级
部门负责人 读取 System 部门负责人账号,再找到其绑定的 HRM 员工
指定员工 直接保存选择的 hrm_employee.id
被考核人 使用当前考核对应的员工,用于自评等节点

运行态保存的是 hrm_employee.id;启动计划时,系统校验所有必办处理员工已经绑定后台账号。评分人不能重复,评分阶段权重之和必须为 100%;员工自评阶段不能配置驳回。

# 修改 / 查看考核设置

未开始计划可在详情点击“编辑”,HrmPerformancePlanController 先通过 GET /hrm/performance/plan/get?id={id} 回显,保存时调用 PUT /hrm/performance/plan/update。进行中、已归档和已终止计划只能点击“查看考核设置”,以只读方式打开相同四步配置,不显示保存按钮。@/views/hrm/performance/plan/form/index.vue 的四步内容分别由 PerformancePlanBasicForm.vue、PerformancePlanIndicatorForm.vue、PerformancePlanProcessForm.vue 和 PerformancePlanResultForm.vue 承载,状态是否允许修改由前后端共同校验。

管理后台 - 计划配置

# 3.4 状态流转

计划状态为 2 未开始、3 进行中、4 已归档、5 已终止。当前创建接口直接创建“未开始”计划,不提供单独保存草稿。

计划状态

创建 ──→ 未开始(2) ──启动──→ 进行中(3) ──全员结束、归档──→ 已归档(4)
                              │
                              └────────终止────────→ 已终止(5)

未开始阶段可编辑、增减参评员工或删除。进行中计划依次由管理员执行“开启评分 → 发起绩效面谈 → 归档”;终止和归档都会保留已经产生的考核过程数据。

# 4. 管理端与员工端的分工

模板、计划、参评范围和计划生命周期全部由管理端维护。指标填写、目标确认、自评/他评、结果审核、结果确认和申诉处理,则由计划解析出的员工在 PC 员工端完成;拥有 HR 管理菜单并不会自动获得这些待办。

计划开启 sync_to_salary 后,只有已归档考核的绩效系数才会提供给指定计薪月份。该字段用于模块衔接,不表示薪资核算会自动把系数乘入工资项。

【薪资】薪资管理
【绩效】绩效考核、绩效档案

← 【薪资】薪资管理 【绩效】绩效考核、绩效档案→

Theme by Vdoing | Copyright © 2019-2026 芋道源码 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×