feat(aihr): finalize practice growth and access boundaries
This commit is contained in:
@@ -32,6 +32,15 @@ CREATE TABLE IF NOT EXISTS `aihr_practice_session` (
|
||||
`trainee_name` varchar(100) DEFAULT NULL COMMENT '学员名称',
|
||||
`scenario_id` varchar(80) DEFAULT NULL COMMENT '场景ID',
|
||||
`scenario_name` varchar(100) DEFAULT NULL COMMENT '场景名称',
|
||||
`position_snapshot` varchar(80) DEFAULT NULL COMMENT '训练开始时岗位快照',
|
||||
`project_type_snapshot` varchar(80) DEFAULT NULL COMMENT '训练开始时项目类型快照',
|
||||
`growth_level` varchar(20) DEFAULT NULL COMMENT '训练开始时成长层级快照',
|
||||
`competency_code` varchar(100) DEFAULT NULL COMMENT '训练开始时能力项快照',
|
||||
`collaboration_positions` varchar(500) DEFAULT NULL COMMENT '训练开始时协同岗位快照',
|
||||
`curriculum_version` varchar(30) DEFAULT NULL COMMENT '训练开始时成长目录版本快照',
|
||||
`growth_confirmation_level` varchar(20) DEFAULT NULL COMMENT '主管确认可进入的训练层级',
|
||||
`growth_confirmed_by` varchar(100) DEFAULT NULL COMMENT '训练层级确认主管',
|
||||
`growth_confirmed_time` datetime DEFAULT NULL COMMENT '训练层级确认时间',
|
||||
`mode` varchar(30) DEFAULT 'text' COMMENT '训练模式',
|
||||
`total_score` int DEFAULT NULL COMMENT '总分',
|
||||
`dim_task_completion` int DEFAULT NULL COMMENT '任务完成度分',
|
||||
@@ -181,6 +190,17 @@ CREATE TABLE IF NOT EXISTS `aihr_practice_scenario` (
|
||||
`scenario_type` varchar(50) NOT NULL COMMENT '场景类型',
|
||||
`project_type` varchar(80) DEFAULT NULL COMMENT '项目类型',
|
||||
`difficulty` tinyint DEFAULT 1 COMMENT '难度',
|
||||
`growth_level` varchar(20) NOT NULL DEFAULT '初级' COMMENT '训练成长层级:初级/中级/高级',
|
||||
`competency_code` varchar(100) NOT NULL DEFAULT '待归类' COMMENT '岗位能力项编码;由内容运营归入固定矩阵',
|
||||
`collaboration_positions` varchar(500) NOT NULL DEFAULT '' COMMENT '协同岗位,使用中文顿号分隔',
|
||||
`review_status` varchar(20) NOT NULL DEFAULT '草稿' COMMENT '内容状态:草稿/待业务审核/已发布/已下线',
|
||||
`risk_level` varchar(20) NOT NULL DEFAULT '待评估' COMMENT '内容风险:待评估/常规/高风险',
|
||||
`reviewer` varchar(100) DEFAULT NULL COMMENT '首位内容审核操作人',
|
||||
`reviewer_user_id` bigint DEFAULT NULL COMMENT '首位内容审核人稳定用户ID',
|
||||
`reviewed_time` datetime DEFAULT NULL COMMENT '首位内容审核时间',
|
||||
`second_reviewer` varchar(100) DEFAULT NULL COMMENT '高风险内容第二位审核操作人',
|
||||
`second_reviewer_user_id` bigint DEFAULT NULL COMMENT '高风险内容第二位审核人稳定用户ID',
|
||||
`second_reviewed_time` datetime DEFAULT NULL COMMENT '高风险内容第二位审核时间',
|
||||
`customer_persona` varchar(500) DEFAULT NULL COMMENT '业主人设',
|
||||
`opening_text` varchar(500) DEFAULT NULL COMMENT '开场白',
|
||||
`explicit_need` varchar(300) DEFAULT NULL COMMENT '显性诉求',
|
||||
@@ -191,17 +211,21 @@ CREATE TABLE IF NOT EXISTS `aihr_practice_scenario` (
|
||||
`success_criteria` varchar(500) DEFAULT NULL COMMENT '成功条件',
|
||||
`strategy` varchar(500) DEFAULT NULL COMMENT '训练策略',
|
||||
`goal` varchar(500) DEFAULT NULL COMMENT '训练目标',
|
||||
`curriculum_version` varchar(30) NOT NULL DEFAULT '住宅五岗-v1' COMMENT '成长目录版本',
|
||||
`trainee_name` varchar(100) DEFAULT '张三' COMMENT '默认学员',
|
||||
`trust_start` int DEFAULT 60 COMMENT '起始信任',
|
||||
`trust_end` int DEFAULT 80 COMMENT '目标信任',
|
||||
`rounds_json` text DEFAULT NULL COMMENT '回合seed JSON',
|
||||
`content_version` varchar(30) NOT NULL DEFAULT 'v1.0' COMMENT '内容版本',
|
||||
`content_hash` char(64) DEFAULT NULL COMMENT '内容快照哈希',
|
||||
`enabled` tinyint DEFAULT 1 COMMENT '是否启用',
|
||||
`sort_order` int DEFAULT 0 COMMENT '排序',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_aihr_practice_scenario` (`tenant_id`, `scenario_code`),
|
||||
KEY `idx_aihr_practice_scenario_filter` (`tenant_id`, `position`, `scenario_type`, `enabled`, `sort_order`)
|
||||
KEY `idx_aihr_practice_scenario_filter` (`tenant_id`, `position`, `scenario_type`, `enabled`, `sort_order`),
|
||||
KEY `idx_aihr_practice_scenario_curriculum` (`tenant_id`, `position`, `growth_level`, `competency_code`, `review_status`, `enabled`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 对练场景';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `aihr_practice_rubric` (
|
||||
@@ -398,6 +422,34 @@ ON DUPLICATE KEY UPDATE
|
||||
`sort_order` = VALUES(`sort_order`),
|
||||
`update_time` = VALUES(`update_time`);
|
||||
|
||||
-- 此文件仅用于全新开发库初始化;内置种子只是待审核素材,不能从 enabled 推断为正式发布。
|
||||
-- 新增/编辑内容必须走审核状态流转后才向员工可见。
|
||||
UPDATE `aihr_practice_scenario`
|
||||
SET `risk_level` = CASE
|
||||
WHEN CONCAT_WS('\n', `scenario_name`, `scenario_type`, `customer_persona`, `opening_text`, `explicit_need`, `hidden_need`,
|
||||
`irritants`, `delights`, `sop_refs`, `success_criteria`, `strategy`, `goal`, `rounds_json`)
|
||||
REGEXP '投诉|客诉|纠纷|收费|催费|费用|停车费|退款|减免|安全|事故|消防|燃气|漏电|电梯|高空|受伤|人身伤害|舆情' THEN '高风险'
|
||||
WHEN `risk_level` IS NULL OR `risk_level` = '' OR `risk_level` NOT IN ('待评估', '常规', '高风险') THEN '待评估'
|
||||
ELSE `risk_level`
|
||||
END,
|
||||
`review_status` = CASE
|
||||
WHEN `review_status` IS NULL OR `review_status` = '' OR `review_status` = '草稿' THEN '待业务审核'
|
||||
WHEN `review_status` = '已发布' AND (`competency_code` IS NULL OR `competency_code` = '' OR `competency_code` = '待归类'
|
||||
OR `risk_level` = '待评估'
|
||||
OR (`risk_level` = '高风险' AND (`reviewer_user_id` IS NULL OR `second_reviewer_user_id` IS NULL))) THEN '待业务审核'
|
||||
ELSE `review_status`
|
||||
END,
|
||||
-- 重跑初始化脚本时不得清空“待业务审核”中的首审记录;高风险场景可能正等待第二人复核。
|
||||
-- 草稿没有有效审核结论,才允许清除其历史审核字段。
|
||||
`reviewer` = CASE WHEN `review_status` = '草稿' THEN NULL ELSE `reviewer` END,
|
||||
`reviewer_user_id` = CASE WHEN `review_status` = '草稿' THEN NULL ELSE `reviewer_user_id` END,
|
||||
`reviewed_time` = CASE WHEN `review_status` = '草稿' THEN NULL ELSE `reviewed_time` END,
|
||||
`second_reviewer` = CASE WHEN `review_status` = '草稿' THEN NULL ELSE `second_reviewer` END,
|
||||
`second_reviewer_user_id` = CASE WHEN `review_status` = '草稿' THEN NULL ELSE `second_reviewer_user_id` END,
|
||||
`second_reviewed_time` = CASE WHEN `review_status` = '草稿' THEN NULL ELSE `second_reviewed_time` END,
|
||||
`curriculum_version` = COALESCE(NULLIF(`curriculum_version`, ''), '住宅五岗-v1')
|
||||
WHERE `tenant_id` = '000000';
|
||||
|
||||
INSERT INTO `aihr_practice_rubric`
|
||||
(`tenant_id`, `rubric_code`, `scenario_code`, `rubric_name`, `version`, `enabled`, `description`, `create_time`, `update_time`)
|
||||
SELECT
|
||||
|
||||
Reference in New Issue
Block a user