From 8826dd39adbfe265979cf0c028076aea4d02e6db Mon Sep 17 00:00:00 2001 From: let5sne Date: Tue, 14 Jul 2026 03:47:04 +0800 Subject: [PATCH] fix(aihr): clarify static incentive rules --- docs/BRD_IMPLEMENTATION_AUDIT.md | 1 + frontend/src/views/competency/growth.vue | 3 +-- scripts/demo-check.sh | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/BRD_IMPLEMENTATION_AUDIT.md b/docs/BRD_IMPLEMENTATION_AUDIT.md index bb02594a..31bb17d0 100644 --- a/docs/BRD_IMPLEMENTATION_AUDIT.md +++ b/docs/BRD_IMPLEMENTATION_AUDIT.md @@ -35,6 +35,7 @@ | 缺口 | BRD依据 | 当前事实 | 建议实现顺序 | |---|---|---|---| | 岗位-SOP匹配与上岗资格 gating | 3.1、4.2、TechSpec P1 | 已补 `GET /api/knowledge/position-sop` 和员工学习页状态提示:一期只确认生活顾问内置学习导航;尚无 `sop_applicability`、`onboard_task`、`qualification_gate` 正式数据闭环,不能作为上岗资格判断 | 先接正式岗位/项目与 SOP 适用范围数据,再补培训任务状态;资格 gating 必须由 HR 明确规则和证据来源后实现 | +| 认证等级与激励规则可配置 | 4.5、10.2-A、TechSpec M6 | 成长激励页已有初/中/高级证据包和学分口径展示,但规则仍是前端硬编码;原“排行榜”开关无实际业务作用,已移除并明确标记只读;尚无 `cert_rule`/`incentive_rule` 的持久化、版本、角色权限和生效记录 | 先由 HR 确认学分来源、分值、防刷和初/中/高级条件,再设计规则表与管理员 CRUD;在规则契约明确前,不把静态展示称为可配置 | | 智能错题本 | 3.1、4.4、TechSpec P1 | 已补 `/api/aihr/mobile/practice/mistakes` 和员工“学”页错题本:按本人聚合低分/红线回合,展示原因、分数、再练状态,支持按现有归因筛选,并可跳已有 retry assignment;尚未做独立错题表和主管侧聚合 | 后续复用现有 session/assignment/annotation 补复盘详情关联和主管侧聚合,不新增独立错题事实表 | | 案例学习/视频详情 | 3.1、4.6、矩阵第35行 | `AihrCaseService` 当前用内存 `CaseState` + `aihr_case_record` 保存转写/摘要,没有稳定 media URL、学习点、主管点评和案例详情 API;仓库也没有可用于一期验收的预渲染样片资产 | 先由业务提供样片或正式媒体 URL,并确定案例详情、学习点、主管点评字段,再扩持久化契约和权限;没有真实媒体 URL 时不造播放按钮 | | 案例库质量与数量 | L1-B、4.6/4.7 | 上传/整理/筛选路径已有;“至少20条脱敏案例”和每周每项目一条需要正式数据证明,当前也没有可用于一期样片验收的真实视频资产 | 先按项目窗口采集并脱敏检查,再补案例统计/学习详情导出;不使用空壳视频或演示 seed 冒充 | diff --git a/frontend/src/views/competency/growth.vue b/frontend/src/views/competency/growth.vue index d9babba1..257fb474 100644 --- a/frontend/src/views/competency/growth.vue +++ b/frontend/src/views/competency/growth.vue @@ -125,7 +125,7 @@

学分规则最小集

- + 当前运营口径(只读)
@@ -160,7 +160,6 @@ import { const extPartyId = ref(''); const selectedProjectCode = ref(''); const loading = ref(false); -const leaderboardEnabled = ref(false); const profile = ref(null); const evidence = ref(null); const alerts = ref([]); diff --git a/scripts/demo-check.sh b/scripts/demo-check.sh index 192b45ba..42c7efd3 100755 --- a/scripts/demo-check.sh +++ b/scripts/demo-check.sh @@ -325,6 +325,7 @@ contains frontend/src/views/knowledge/sop.vue "训练题已生成" contains frontend/src/views/system/model/index.vue "调用优先级" contains frontend/src/views/system/model/index.vue "提示词模板" contains frontend/src/views/system/prompts.vue "保存并启用" +contains frontend/src/views/competency/growth.vue "当前运营口径(只读)" contains frontend/src/router/index.ts "/system/prompts" contains frontend/src/api/aihr/interview.ts "/api/recruit/interview/start" contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrInterviewController.java "/api/recruit/interview"