feat(practice): complete five-position training operations
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
-- 训练内容运营闭环:会话评分规则快照、五岗位 Rubric 补齐、旧每日任务场景修正。
|
||||
-- 依赖:aihr_20260717_practice_five_position_catalog_mysql8.sql 已执行。
|
||||
-- 可重复执行;仅补结构和内置规则,不生成员工业务任务。
|
||||
|
||||
SET @aihr_schema = DATABASE();
|
||||
|
||||
SET @rubric_code_exists = (
|
||||
SELECT COUNT(*) FROM information_schema.columns
|
||||
WHERE table_schema = @aihr_schema AND table_name = 'aihr_practice_session' AND column_name = 'rubric_code'
|
||||
);
|
||||
SET @rubric_code_ddl = IF(@rubric_code_exists = 0,
|
||||
'ALTER TABLE aihr_practice_session ADD COLUMN rubric_code varchar(100) DEFAULT NULL COMMENT ''训练开始时评分规则编码'' AFTER dim_marketing',
|
||||
'SELECT 1');
|
||||
PREPARE aihr_rubric_code_stmt FROM @rubric_code_ddl;
|
||||
EXECUTE aihr_rubric_code_stmt;
|
||||
DEALLOCATE PREPARE aihr_rubric_code_stmt;
|
||||
|
||||
SET @rubric_version_exists = (
|
||||
SELECT COUNT(*) FROM information_schema.columns
|
||||
WHERE table_schema = @aihr_schema AND table_name = 'aihr_practice_session' AND column_name = 'rubric_version'
|
||||
);
|
||||
SET @rubric_version_ddl = IF(@rubric_version_exists = 0,
|
||||
'ALTER TABLE aihr_practice_session ADD COLUMN rubric_version varchar(30) DEFAULT NULL COMMENT ''训练开始时评分规则版本'' AFTER rubric_code',
|
||||
'SELECT 1');
|
||||
PREPARE aihr_rubric_version_stmt FROM @rubric_version_ddl;
|
||||
EXECUTE aihr_rubric_version_stmt;
|
||||
DEALLOCATE PREPARE aihr_rubric_version_stmt;
|
||||
|
||||
SET @rubric_snapshot_exists = (
|
||||
SELECT COUNT(*) FROM information_schema.columns
|
||||
WHERE table_schema = @aihr_schema AND table_name = 'aihr_practice_session' AND column_name = 'rubric_snapshot_json'
|
||||
);
|
||||
SET @rubric_snapshot_ddl = IF(@rubric_snapshot_exists = 0,
|
||||
'ALTER TABLE aihr_practice_session ADD COLUMN rubric_snapshot_json text DEFAULT NULL COMMENT ''训练开始时评分规则快照'' AFTER rubric_version',
|
||||
'SELECT 1');
|
||||
PREPARE aihr_rubric_snapshot_stmt FROM @rubric_snapshot_ddl;
|
||||
EXECUTE aihr_rubric_snapshot_stmt;
|
||||
DEALLOCATE PREPARE aihr_rubric_snapshot_stmt;
|
||||
|
||||
-- 对五岗位目录中没有 Rubric 的场景创建初始 v1.0 规则;已有版本不改写。
|
||||
INSERT INTO aihr_practice_rubric
|
||||
(tenant_id, rubric_code, scenario_code, rubric_name, version, enabled, description, create_time, update_time)
|
||||
SELECT s.tenant_id, CONCAT('rubric-', s.scenario_code), s.scenario_code,
|
||||
CONCAT(s.position, '基础评分规则'), 'v1.0', 1,
|
||||
'五岗位内容目录补齐的初始版本;后续由训练运营维护。', NOW(), NOW()
|
||||
FROM aihr_practice_scenario s
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM aihr_practice_rubric r
|
||||
WHERE r.tenant_id = s.tenant_id AND r.scenario_code = s.scenario_code AND r.enabled = 1
|
||||
)
|
||||
ON DUPLICATE KEY UPDATE update_time = VALUES(update_time);
|
||||
|
||||
-- 一个场景仅保留最新的已启用版本,避免运行时随机取到历史 Rubric。
|
||||
UPDATE aihr_practice_rubric r
|
||||
JOIN (
|
||||
SELECT tenant_id, scenario_code, MAX(id) AS keep_id
|
||||
FROM aihr_practice_rubric
|
||||
WHERE enabled = 1
|
||||
GROUP BY tenant_id, scenario_code
|
||||
) current_rule
|
||||
ON current_rule.tenant_id = r.tenant_id AND current_rule.scenario_code = r.scenario_code
|
||||
SET r.enabled = CASE WHEN r.id = current_rule.keep_id THEN 1 ELSE 0 END,
|
||||
r.update_time = NOW()
|
||||
WHERE r.enabled = 1;
|
||||
|
||||
-- 每个生效 Rubric 具备稳定的五个机器可评分维度,前端只能调整名称、描述和权重。
|
||||
INSERT IGNORE 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_practice_rubric 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
|
||||
WHERE r.enabled = 1;
|
||||
|
||||
-- 旧硬编码每日题把 repair-leak 写成不存在编码;仅在目标场景已存在时修正历史未完成任务。
|
||||
UPDATE aihr_practice_assignment a
|
||||
JOIN aihr_practice_scenario s
|
||||
ON s.tenant_id = a.tenant_id AND s.scenario_code = 'repair-leak-followup'
|
||||
SET a.scenario_id = s.scenario_code,
|
||||
a.scenario_name = s.scenario_name,
|
||||
a.update_time = NOW()
|
||||
WHERE a.source = 'daily' AND a.scenario_id = 'repair-leak' AND a.status = '待训练';
|
||||
Reference in New Issue
Block a user