fix(aihr): align practice scoring with BRD five dimensions
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
-- AIHR 对练五维评分迁移(MySQL 8.x)
|
||||
-- 补齐会话结构与生活顾问试点 Rubric,不写入训练业务数据;可重复执行。
|
||||
|
||||
SET @aihr_practice_table_exists := (
|
||||
SELECT COUNT(*)
|
||||
FROM information_schema.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'aihr_practice_session'
|
||||
);
|
||||
|
||||
SET @aihr_task_completion_exists := (
|
||||
SELECT COUNT(*)
|
||||
FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'aihr_practice_session'
|
||||
AND COLUMN_NAME = 'dim_task_completion'
|
||||
);
|
||||
SET @aihr_task_completion_ddl := IF(
|
||||
@aihr_practice_table_exists = 1 AND @aihr_task_completion_exists = 0,
|
||||
'ALTER TABLE aihr_practice_session ADD COLUMN `dim_task_completion` int DEFAULT NULL COMMENT ''任务完成度分'' AFTER `total_score`',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE aihr_task_completion_stmt FROM @aihr_task_completion_ddl;
|
||||
EXECUTE aihr_task_completion_stmt;
|
||||
DEALLOCATE PREPARE aihr_task_completion_stmt;
|
||||
|
||||
SET @aihr_response_timeliness_exists := (
|
||||
SELECT COUNT(*)
|
||||
FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'aihr_practice_session'
|
||||
AND COLUMN_NAME = 'dim_response_timeliness'
|
||||
);
|
||||
SET @aihr_response_timeliness_ddl := IF(
|
||||
@aihr_practice_table_exists = 1 AND @aihr_response_timeliness_exists = 0,
|
||||
'ALTER TABLE aihr_practice_session ADD COLUMN `dim_response_timeliness` int DEFAULT NULL COMMENT ''响应时效分'' AFTER `dim_task_completion`',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE aihr_response_timeliness_stmt FROM @aihr_response_timeliness_ddl;
|
||||
EXECUTE aihr_response_timeliness_stmt;
|
||||
DEALLOCATE PREPARE aihr_response_timeliness_stmt;
|
||||
|
||||
SET @aihr_response_latency_exists := (
|
||||
SELECT COUNT(*)
|
||||
FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'aihr_practice_session'
|
||||
AND COLUMN_NAME = 'response_latency_ms'
|
||||
);
|
||||
SET @aihr_response_latency_ddl := IF(
|
||||
@aihr_practice_table_exists = 1 AND @aihr_response_latency_exists = 0,
|
||||
'ALTER TABLE aihr_practice_session ADD COLUMN `response_latency_ms` int DEFAULT NULL COMMENT ''平均陪练响应时长毫秒'' AFTER `dim_response_timeliness`',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE aihr_response_latency_stmt FROM @aihr_response_latency_ddl;
|
||||
EXECUTE aihr_response_latency_stmt;
|
||||
DEALLOCATE PREPARE aihr_response_latency_stmt;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS aihr_brd_rubric_codes (
|
||||
tenant_id varchar(20) NOT NULL,
|
||||
rubric_code varchar(100) NOT NULL,
|
||||
PRIMARY KEY (tenant_id, rubric_code)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||
|
||||
DELETE FROM aihr_brd_rubric_codes;
|
||||
|
||||
INSERT INTO aihr_brd_rubric_codes (tenant_id, rubric_code)
|
||||
SELECT r.tenant_id, r.rubric_code
|
||||
FROM aihr_practice_rubric r
|
||||
JOIN aihr_practice_scenario s
|
||||
ON s.tenant_id = r.tenant_id AND s.scenario_code = r.scenario_code
|
||||
JOIN (
|
||||
SELECT tenant_id, rubric_code
|
||||
FROM aihr_practice_rubric_dimension
|
||||
WHERE dimension_code IN ('compliance', 'communication', 'emotion', 'marketing')
|
||||
GROUP BY tenant_id, rubric_code
|
||||
HAVING COUNT(*) = 4
|
||||
) old_dimensions
|
||||
ON old_dimensions.tenant_id = r.tenant_id AND old_dimensions.rubric_code = r.rubric_code
|
||||
WHERE r.tenant_id = '000000'
|
||||
AND s.position = '生活顾问';
|
||||
|
||||
DELETE d
|
||||
FROM aihr_practice_rubric_dimension d
|
||||
JOIN aihr_brd_rubric_codes r
|
||||
ON r.tenant_id = d.tenant_id AND r.rubric_code = d.rubric_code;
|
||||
|
||||
INSERT INTO aihr_practice_rubric_dimension
|
||||
(tenant_id, rubric_code, dimension_code, dimension_name, weight, description, sort_order, create_time, update_time)
|
||||
SELECT r.tenant_id, r.rubric_code, d.dimension_code, d.dimension_name, d.weight, d.description, d.sort_order, NOW(), NOW()
|
||||
FROM aihr_brd_rubric_codes r
|
||||
JOIN (
|
||||
SELECT 'task_completion' AS dimension_code, '任务完成度' AS dimension_name, 0.40 AS weight, '问题解决有效性、工单闭环率、首解率、SOP关键点执行率' AS description, 10 AS sort_order
|
||||
UNION ALL SELECT 'standardization', '话术规范性', 0.25, '流程完整性、法规引用准确性、沟通合规、用语专业度', 20
|
||||
UNION ALL SELECT 'emotion', '情绪管理能力', 0.20, '共情、语速语气控制、业主情绪引导安抚有效性', 30
|
||||
UNION ALL SELECT 'response_timeliness', '响应时效', 0.10, '首响时长、处理周期、跟进频率', 40
|
||||
UNION ALL SELECT 'marketing', '增值转化潜力', 0.05, '活动引导、产品推介时机与成功率', 50
|
||||
) d;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS aihr_brd_rubric_codes;
|
||||
Reference in New Issue
Block a user