feat(aihr): finalize practice growth and access boundaries
This commit is contained in:
+27
-33
@@ -43,7 +43,7 @@ check_mobile_h5_shell() {
|
||||
icon_url="${MOBILE_URL%/}${href}"
|
||||
code="$(curl -k -sS -o /tmp/wygj-demo-check.favicon -w '%{http_code}' "$icon_url")"
|
||||
[[ "$code" == "200" ]] || fail "mobile H5 favicon returned HTTP $code: $icon_url"
|
||||
contains mobile-uni/src/manifest.json '"enable": false'
|
||||
contains mobile-uni/src/manifest.json '"enable" : false'
|
||||
echo "OK: mobile H5 shell"
|
||||
}
|
||||
|
||||
@@ -417,7 +417,7 @@ contains mobile-uni/src/services/home.ts "/api/aihr/mobile/home/"
|
||||
contains mobile-uni/src/services/home.ts "auth: isLoggedIn()"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrMobileSeedService.java "public HomeResponse publicHome(String role)"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "return R.ok(mobileSeedService.publicHome(role))"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "mobileSeedService.home(role, identity)"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "mobileSeedService.home(role, resolvedIdentity)"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "!UserType.APP_USER.getUserType().equals(loginUser.getUserType())"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "无权访问该录音"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "return AihrSensitiveText.forModel(value)"
|
||||
@@ -462,7 +462,6 @@ contains mobile-uni/src/pages/candidate/materials/index.vue "clearData();"
|
||||
contains mobile-uni/src/pages/candidate/progress/index.vue "const clearData = () =>"
|
||||
contains mobile-uni/src/pages/candidate/study/index.vue "searchKnowledge"
|
||||
contains mobile-uni/src/pages/user/learning/index.vue "岗位 SOP"
|
||||
contains mobile-uni/src/pages/user/learning/index.vue "当前摘要不代表正式上岗资格"
|
||||
contains mobile-uni/src/pages/user/learning/index.vue "岗位学习范围加载失败"
|
||||
contains mobile-uni/src/pages/user/learning/index.vue "getPracticeAssignments"
|
||||
contains mobile-uni/src/pages/user/learning/index.vue "searchKnowledge"
|
||||
@@ -471,8 +470,6 @@ contains frontend/src/views/recruit/interview.vue "建议复试"
|
||||
contains frontend/src/views/recruit/interview.vue 'v-loading="recordsLoading"'
|
||||
contains frontend/src/views/recruit/interview.vue "const recordsLoading = ref(true)"
|
||||
contains frontend/src/views/train/practice.vue "导师改写"
|
||||
contains frontend/src/views/train/practice.vue 'v-loading="recordsLoading"'
|
||||
contains frontend/src/views/train/practice.vue "const records = ref<Array<(typeof baseRecords)[number]>>([])"
|
||||
contains frontend/src/views/knowledge/cases.vue "真实语音"
|
||||
contains frontend/src/views/knowledge/cases.vue 'v-loading="recordsLoading"'
|
||||
contains frontend/src/views/knowledge/cases.vue "const records = ref<CaseRecord[]>([])"
|
||||
@@ -485,11 +482,8 @@ contains backend/script/sql/update/aihr_20260714_case_learning_mysql8.sql "super
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrCaseController.java "/records/{caseId}/review"
|
||||
contains frontend/src/api/aihr/case.ts "reviewKnowledgeCase"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrCaseService.java "系统用户上传案例必须明确所属项目"
|
||||
contains frontend/src/views/index.vue "核心流程覆盖待内容确认"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrDashboardService.java "核心流程覆盖待内容确认"
|
||||
contains frontend/src/views/index.vue "不等于端到端验收"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrDashboardService.java "不等于端到端验收"
|
||||
contains frontend/src/views/index.vue "正式试点身份待核对"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrDashboardService.java "正式试点身份待核对"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java "TenantHelper.getTenantId()"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrOrgSyncService.java "TenantHelper.getTenantId()"
|
||||
@@ -500,7 +494,6 @@ contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java "private String persistedTraineeName"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java "persistedTraineeName(extPartyId.matches"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java "if (!orgSnapshotTableExists() && !isDemoProfile())"
|
||||
contains frontend/src/views/index.vue "待同步"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrDashboardService.java "核心流程待确认"
|
||||
contains frontend/src/views/knowledge/sop.vue "训练题已生成"
|
||||
contains frontend/src/views/knowledge/sop.vue "不代表这些文档已真实入库"
|
||||
@@ -515,14 +508,12 @@ contains frontend/src/views/system/model/index.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 "学分规则(待 HR 配置)"
|
||||
contains frontend/src/views/competency/growth.vue "规划参考,当前不生效"
|
||||
contains frontend/src/views/competency/growth.vue "训练画像等级(参考)"
|
||||
contains frontend/src/views/competency/growth.vue "人工贡献分"
|
||||
contains frontend/src/views/train/reviews.vue "人工贡献分"
|
||||
contains frontend/src/views/train/reviews.vue "incentivePoint: null as number | null"
|
||||
contains frontend/src/views/train/reviews.vue "incentivePoint: reviewForm.incentivePoint ?? undefined"
|
||||
contains frontend/src/views/competency/growth.vue "person.personName || person.extPartyId"
|
||||
contains frontend/src/router/index.ts "path: 'reviews'"
|
||||
contains frontend/src/router/index.ts "path: 'difficulties'"
|
||||
contains frontend/src/router/index.ts "path: '/competency/growth'"
|
||||
contains frontend/src/router/index.ts "redirect: '/train/tasks'"
|
||||
contains mobile-uni/src/pages/supervisor/review/index.vue "人工贡献分"
|
||||
contains mobile-uni/src/pages/supervisor/review/index.vue "confirmedGrowthLevel"
|
||||
contains mobile-uni/src/pages/user/profile/index.vue "成长证据包(待人工复核)"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java "训练画像参考等级"
|
||||
contains frontend/src/router/index.ts "/system/prompts"
|
||||
@@ -545,8 +536,9 @@ contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service
|
||||
contains frontend/src/api/aihr/practice.ts "/api/train/practice/start"
|
||||
contains frontend/src/api/aihr/practice.ts "/api/aihr/prompt-templates"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrPracticeController.java "/api/train/practice"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrPracticeController.java "practiceSeedService.turn(request, currentAppUsername(), currentAppUserId())"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrPracticeController.java "practiceSeedService.finish(request, currentAppUsername())"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrPracticeController.java 'practiceSeedService.turn(request, requirePracticeActorIdentity("继续训练"), currentAppUserId())'
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrPracticeController.java 'practiceSeedService.finish(request, requirePracticeActorIdentity("完成训练"))'
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrPracticeController.java "private static String requirePracticeActorIdentity(String action)"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java "训练会话不存在或无权访问"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java "finished_time IS NOT NULL"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java "人工校准必须明确填写总分"
|
||||
@@ -575,12 +567,13 @@ contains backend/script/sql/aihr_practice_mysql8.sql "task_completion"
|
||||
contains backend/script/sql/update/aihr_20260714_practice_five_dimensions_mysql8.sql "aihr_brd_rubric_codes"
|
||||
contains backend/script/sql/update/aihr_20260715_practice_session_evidence_mysql8.sql "annotations_json"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/domain/AihrPracticeDto.java "MistakeAggregateResponse"
|
||||
contains mobile-uni/src/pages/supervisor/team/index.vue "团队错题本"
|
||||
contains mobile-uni/src/pages/supervisor/team/index.vue "常见难题"
|
||||
contains mobile-uni/src/pages/supervisor/team/index.vue "一键派专项"
|
||||
contains mobile-uni/src/types/api.ts "PracticeMistakeAggregate"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "/practice/mistakes"
|
||||
contains mobile-uni/src/pages/user/learning/index.vue "错题本"
|
||||
contains mobile-uni/src/pages/user/learning/index.vue "mistakeFilters"
|
||||
contains mobile-uni/src/pages/user/profile/index.vue "AI训练综合分仅作训练参考"
|
||||
contains mobile-uni/src/pages/user/profile/index.vue "AI训练综合分仅作参考"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java "aihr_practice_session"
|
||||
contains backend/script/sql/aihr_practice_mysql8.sql "aihr_practice_scenario"
|
||||
contains backend/script/sql/update/aihr_20260714_practice_catalog_schema_mysql8.sql "aihr_practice_rubric_dimension"
|
||||
@@ -596,12 +589,9 @@ contains backend/script/sql/aihr_practice_mysql8.sql "summary_card"
|
||||
contains frontend/src/views/train/practice.vue "训练前预习卡"
|
||||
contains frontend/src/views/train/practice.vue "Rubric 预览"
|
||||
contains frontend/src/views/train/practice.vue "提示词模板"
|
||||
contains frontend/src/views/train/practice.vue "导出试点CSV"
|
||||
contains frontend/src/views/train/practice.vue "训练记录接口暂不可用,当前显示演示记录"
|
||||
contains frontend/src/views/train/practice.vue "listPracticeReviews"
|
||||
contains frontend/src/views/train/reviews.vue "导出试点 CSV"
|
||||
contains frontend/src/views/train/reviews.vue "人工校准总分"
|
||||
contains frontend/src/views/train/reviews.vue "不展示演示复盘记录或猜测性试点指标"
|
||||
contains frontend/src/views/train/practice.vue "此页仅用于不绑定员工身份的运营预览"
|
||||
contains frontend/src/views/train/practice.vue "不会使用或生成员工身份"
|
||||
contains frontend/src/router/index.ts "meta: { title: '复盘校准', icon: 'finish', activeMenu: '/train/tasks' }"
|
||||
contains frontend/src/api/aihr/practice.ts "/api/train/practice/export"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java "final_adopted_score"
|
||||
contains backend/script/sql/aihr_practice_mysql8.sql "aihr_practice_calibration"
|
||||
@@ -640,7 +630,7 @@ contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/control
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java 'firstNonBlank(position, "生活顾问")'
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java "formalPositionSopTopics(position, effectiveProjectType, projectCodes)"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java "formal-applicability"
|
||||
contains mobile-uni/src/pages/user/learning/index.vue "qualificationStatus === 'NOT_CONFIGURED'"
|
||||
contains mobile-uni/src/pages/user/learning/index.vue "const qualificationStatusLabel = computed(() =>"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrSopController.java "currentAppProjectCodes()"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java "FIND_IN_SET(?, REPLACE(a.org_scope, ' ', '')) > 0"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java "normalizeSearchSource"
|
||||
@@ -668,7 +658,9 @@ contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSpeechService.java "Duration.ofSeconds(5)"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrMobileSeedService.java "待复盘对练"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "/practice/reviews"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "StpUtil.hasRoleOr(TenantConstants.SUPER_ADMIN_ROLE_KEY, \"hr_operator\")"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "private String supervisorScopeExtPartyId()"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "后台管理账号不能使用主管带教接口"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "mobileSeedService.requireMobileSupervisorIdentity(currentAppUsername())"
|
||||
contains mobile-uni/src/pages/supervisor/review/index.vue "人工贡献分"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "/practice/reviews/{id}/reviewed"
|
||||
contains mobile-uni/src/pages/supervisor/review/index.vue "标记已复盘"
|
||||
@@ -712,7 +704,8 @@ contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrCaseController.java "currentProjectScopes"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrCaseService.java "projectScopesForAppUser"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrCaseController.java "/api/knowledge/case"
|
||||
contains frontend/src/api/aihr/sop.ts "/api/knowledge/search"
|
||||
contains frontend/src/api/aihr/sop.ts "/api/knowledge/query"
|
||||
contains frontend/src/api/aihr/sop.ts "UnifiedQueryResponse"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrSopController.java "@SaCheckLogin"
|
||||
contains frontend/src/api/aihr/sop.ts "/api/knowledge/doc/upload"
|
||||
contains frontend/src/api/aihr/sop.ts "/api/knowledge/reviews"
|
||||
@@ -740,7 +733,8 @@ contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrInterviewService.java "requireSessionTenant(session, tenantId())"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrInterviewService.java "private record InterviewSession(String tenantId"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java "canReadPracticeAudioForTenant"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "mobileSeedService.canReadPracticeAudioForTenant(ossId)"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "if (!UserType.APP_USER.getUserType().equals(loginUser.getUserType()))"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "mobileSeedService.canReadPracticeAudio(ossId, currentAppUsername())"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrSpeechController.java "oss.getOssId(), \"\")"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrSpeechController.java "new TtsResponse(inlineAudioUrl, \"openai-compatible\", oss.getOssId(), inlineAudioUrl)"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java "exposedAudioUrl"
|
||||
@@ -755,7 +749,8 @@ contains backend/ruoyi-admin/src/main/resources/application-dev.yml "AIHR_REDIS_
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrOrgSyncService.java "person_phone like ?"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrOrgSyncServiceTest.java "hiddenDisplayFieldsStillAllowIdentitySearchByPhone"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java "requester_ext_party_id"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrSopController.java "currentRequesterExtPartyId"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/knowledge/service/AihrKnowledgePrincipalResolver.java "mobileSeedService.requireMobileIdentity(trim(loginUser.getUsername()))"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/knowledge/service/AihrKnowledgeQueryService.java 'principal == null ? "" : principal.extPartyId(), spaceIds'
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java "hasExplicitSopReviewDecision"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java "validateFeedbackFragmentOwnership"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java "normalizeFeedbackReviewId"
|
||||
@@ -768,7 +763,6 @@ contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrSpeechController.java "tts audio upload failed(处理错误已隐藏)"
|
||||
contains mobile-uni/src/pages/user/history/index.vue "inlineAudioSrc"
|
||||
contains mobile-uni/src/pages/supervisor/review/index.vue "inlineAudioSrc"
|
||||
contains frontend/src/views/train/reviews.vue "inlineAudioSource"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSensitiveText.java "外部 AI 模型前"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrModelSeedService.java "AihrSensitiveText.forModel(prompt)"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrModelSeedService.java "外部响应体已隐藏"
|
||||
|
||||
Reference in New Issue
Block a user