fix(aihr): add practice catalog schema migration
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
-- AIHR BRD 补充场景迁移(MySQL 8.x)
|
-- AIHR BRD 补充场景迁移(MySQL 8.x)
|
||||||
-- 补齐 BRD 4.3.4 的服务推介与日常服务场景;不写入正式试点训练、校准或评审数据,可重复执行。
|
-- 补齐 BRD 4.3.4 的服务推介与日常服务场景;不写入正式试点训练、校准或评审数据,可重复执行。
|
||||||
|
-- 执行前先运行 aihr_20260714_practice_catalog_schema_mysql8.sql。
|
||||||
|
|
||||||
INSERT INTO `aihr_practice_scenario`
|
INSERT INTO `aihr_practice_scenario`
|
||||||
(`tenant_id`, `scenario_code`, `scenario_name`, `position`, `scenario_type`, `project_type`, `difficulty`,
|
(`tenant_id`, `scenario_code`, `scenario_name`, `position`, `scenario_type`, `project_type`, `difficulty`,
|
||||||
|
|||||||
@@ -0,0 +1,66 @@
|
|||||||
|
-- AIHR 对练场景与 Rubric 基础表迁移(MySQL 8.x)
|
||||||
|
-- 仅补齐旧库缺失的结构,不写入场景/Rubric业务数据;可重复执行。
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `aihr_practice_scenario` (
|
||||||
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||||||
|
`scenario_code` varchar(80) NOT NULL COMMENT '场景编码',
|
||||||
|
`scenario_name` varchar(100) NOT NULL COMMENT '场景名称',
|
||||||
|
`position` varchar(80) NOT NULL COMMENT '岗位',
|
||||||
|
`scenario_type` varchar(50) NOT NULL COMMENT '场景类型',
|
||||||
|
`project_type` varchar(80) DEFAULT NULL COMMENT '项目类型',
|
||||||
|
`difficulty` tinyint DEFAULT 1 COMMENT '难度',
|
||||||
|
`customer_persona` varchar(500) DEFAULT NULL COMMENT '业主人设',
|
||||||
|
`opening_text` varchar(500) DEFAULT NULL COMMENT '开场白',
|
||||||
|
`explicit_need` varchar(300) DEFAULT NULL COMMENT '显性诉求',
|
||||||
|
`hidden_need` varchar(300) DEFAULT NULL COMMENT '隐性诉求',
|
||||||
|
`irritants` varchar(500) DEFAULT NULL COMMENT '雷点',
|
||||||
|
`delights` varchar(500) DEFAULT NULL COMMENT '爽点',
|
||||||
|
`sop_refs` varchar(500) DEFAULT NULL COMMENT 'SOP引用',
|
||||||
|
`success_criteria` varchar(500) DEFAULT NULL COMMENT '成功条件',
|
||||||
|
`strategy` varchar(500) DEFAULT NULL COMMENT '训练策略',
|
||||||
|
`goal` varchar(500) DEFAULT NULL 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',
|
||||||
|
`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`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 对练场景';
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `aihr_practice_rubric` (
|
||||||
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||||||
|
`rubric_code` varchar(100) NOT NULL COMMENT 'Rubric编码',
|
||||||
|
`scenario_code` varchar(80) NOT NULL COMMENT '场景编码',
|
||||||
|
`rubric_name` varchar(100) NOT NULL COMMENT 'Rubric名称',
|
||||||
|
`version` varchar(30) DEFAULT 'v1' COMMENT '版本',
|
||||||
|
`enabled` tinyint DEFAULT 1 COMMENT '是否启用',
|
||||||
|
`description` varchar(500) DEFAULT NULL COMMENT '说明',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `uk_aihr_practice_rubric` (`tenant_id`, `rubric_code`),
|
||||||
|
KEY `idx_aihr_practice_rubric_scenario` (`tenant_id`, `scenario_code`, `enabled`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 对练评分标准';
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `aihr_practice_rubric_dimension` (
|
||||||
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||||||
|
`rubric_code` varchar(100) NOT NULL COMMENT 'Rubric编码',
|
||||||
|
`dimension_code` varchar(50) NOT NULL COMMENT '维度编码',
|
||||||
|
`dimension_name` varchar(50) NOT NULL COMMENT '维度名称',
|
||||||
|
`weight` decimal(5,2) NOT NULL COMMENT '权重',
|
||||||
|
`description` varchar(500) DEFAULT NULL 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_rubric_dimension` (`tenant_id`, `rubric_code`, `dimension_code`),
|
||||||
|
KEY `idx_aihr_practice_rubric_dimension` (`tenant_id`, `rubric_code`, `sort_order`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 对练评分维度';
|
||||||
@@ -367,4 +367,5 @@
|
|||||||
- 2026-07-14 BRD 4.6 案例数量与媒体资产门禁:当前 `aihr_case_record` 只有 2 条“已入库”案例,严格预检要求至少 20 条;知识库中的案例类 PPT/文档附件不等同于已完成转写、整理、脱敏和人工入库的案例,暂不自动改写为“已入库”以避免伪造正式资产。案例页现有真实音频上传→ASR→整理→人工入库链路可继续采集,预渲染视频样片、学习点和主管点评仍需业务媒体字段/素材。
|
- 2026-07-14 BRD 4.6 案例数量与媒体资产门禁:当前 `aihr_case_record` 只有 2 条“已入库”案例,严格预检要求至少 20 条;知识库中的案例类 PPT/文档附件不等同于已完成转写、整理、脱敏和人工入库的案例,暂不自动改写为“已入库”以避免伪造正式资产。案例页现有真实音频上传→ASR→整理→人工入库链路可继续采集,预渲染视频样片、学习点和主管点评仍需业务媒体字段/素材。
|
||||||
- 2026-07-14 BRD 发布状态复核:本地 `HEAD=0a30fe70` 新增场景与住宅 SOP 的 reset/版本化迁移已在开发库验证,但尚未发布或在生产执行;线上 `wygj-aihr.service` 仍为 `active`,根站与 `/h5/` 返回 `200`,线上资源/后端仍对应上一发布批次。发布继续受两份用户未提交 Figma 文档和生产迁移执行窗口约束,未执行生产写入。
|
- 2026-07-14 BRD 发布状态复核:本地 `HEAD=0a30fe70` 新增场景与住宅 SOP 的 reset/版本化迁移已在开发库验证,但尚未发布或在生产执行;线上 `wygj-aihr.service` 仍为 `active`,根站与 `/h5/` 返回 `200`,线上资源/后端仍对应上一发布批次。发布继续受两份用户未提交 Figma 文档和生产迁移执行窗口约束,未执行生产写入。
|
||||||
- 2026-07-14 BRD 4.3.4 场景覆盖补齐:原生活顾问 12 条 seed 只有投诉、催费、报修、突发求助,缺少 BRD 明确要求的服务推介/增值与日常服务;现新增 `service-promotion-needs`、`daily-service-followup` 两条补充场景及五维 Rubric,保留原 12 条核心场景不变。提供幂等迁移 `aihr_20260714_practice_brd_scenarios_mysql8.sql` 和临时库回归脚本;该内容属于待业务复核的初始化素材,不等同于正式试点样本。
|
- 2026-07-14 BRD 4.3.4 场景覆盖补齐:原生活顾问 12 条 seed 只有投诉、催费、报修、突发求助,缺少 BRD 明确要求的服务推介/增值与日常服务;现新增 `service-promotion-needs`、`daily-service-followup` 两条补充场景及五维 Rubric,保留原 12 条核心场景不变。提供幂等迁移 `aihr_20260714_practice_brd_scenarios_mysql8.sql` 和临时库回归脚本;该内容属于待业务复核的初始化素材,不等同于正式试点样本。
|
||||||
|
- 2026-07-14 BRD 4.3.4 场景 schema 发布补齐:只读核验发现生产缺少 `aihr_practice_scenario`、`aihr_practice_rubric`、`aihr_practice_rubric_dimension` 三张表;现新增只建结构的 `aihr_20260714_practice_catalog_schema_mysql8.sql`,并让补充场景迁移显式依赖该基础迁移。未写入生产数据,正式发布仍需按顺序执行基础 schema、场景 seed 与 SOP seed 迁移。
|
||||||
- 2026-07-14 BRD 4.7 住宅 SOP 内容补齐:原知识库只有 3 份已解析住宅 SOP;现新增增值服务需求识别、日常服务回访两份 SOP 及各 3 个检索片段,reset SQL 与版本化迁移同步,临时库连续执行两次保持幂等。严格门禁已从 `sop_docs=3/5` 推进到 `5/5`;案例库、正式组织身份和正式试点证据仍未完成。
|
- 2026-07-14 BRD 4.7 住宅 SOP 内容补齐:原知识库只有 3 份已解析住宅 SOP;现新增增值服务需求识别、日常服务回访两份 SOP 及各 3 个检索片段,reset SQL 与版本化迁移同步,临时库连续执行两次保持幂等。严格门禁已从 `sop_docs=3/5` 推进到 `5/5`;案例库、正式组织身份和正式试点证据仍未完成。
|
||||||
|
|||||||
@@ -533,6 +533,7 @@ 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/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/aihr_practice_mysql8.sql "aihr_practice_scenario"
|
||||||
|
contains backend/script/sql/update/aihr_20260714_practice_catalog_schema_mysql8.sql "aihr_practice_rubric_dimension"
|
||||||
contains backend/script/sql/update/aihr_20260714_practice_brd_scenarios_mysql8.sql "service-promotion-needs"
|
contains backend/script/sql/update/aihr_20260714_practice_brd_scenarios_mysql8.sql "service-promotion-needs"
|
||||||
contains backend/script/sql/update/aihr_20260714_practice_brd_scenarios_mysql8.sql "daily-service-followup"
|
contains backend/script/sql/update/aihr_20260714_practice_brd_scenarios_mysql8.sql "daily-service-followup"
|
||||||
contains backend/script/sql/update/aihr_20260714_brd_sop_seed_mysql8.sql "sop_service_promotion_v1"
|
contains backend/script/sql/update/aihr_20260714_brd_sop_seed_mysql8.sql "sop_service_promotion_v1"
|
||||||
|
|||||||
@@ -20,6 +20,11 @@ cleanup() {
|
|||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
|
|
||||||
mysql -e "CREATE DATABASE \`$DB\` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;"
|
mysql -e "CREATE DATABASE \`$DB\` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;"
|
||||||
|
mysql "$DB" < "$ROOT_DIR/backend/script/sql/update/aihr_20260714_practice_catalog_schema_mysql8.sql"
|
||||||
|
mysql "$DB" < "$ROOT_DIR/backend/script/sql/update/aihr_20260714_practice_catalog_schema_mysql8.sql"
|
||||||
|
catalog_tables="$(mysql "$DB" -N -B -e "SELECT GROUP_CONCAT(table_name ORDER BY table_name) FROM information_schema.tables WHERE table_schema='$DB' AND table_name IN ('aihr_practice_rubric','aihr_practice_rubric_dimension','aihr_practice_scenario');")"
|
||||||
|
test "$catalog_tables" = 'aihr_practice_rubric,aihr_practice_rubric_dimension,aihr_practice_scenario'
|
||||||
|
|
||||||
mysql "$DB" < "$ROOT_DIR/backend/script/sql/aihr_practice_mysql8.sql"
|
mysql "$DB" < "$ROOT_DIR/backend/script/sql/aihr_practice_mysql8.sql"
|
||||||
mysql "$DB" < "$ROOT_DIR/backend/script/sql/update/aihr_20260714_practice_brd_scenarios_mysql8.sql"
|
mysql "$DB" < "$ROOT_DIR/backend/script/sql/update/aihr_20260714_practice_brd_scenarios_mysql8.sql"
|
||||||
mysql "$DB" < "$ROOT_DIR/backend/script/sql/update/aihr_20260714_practice_brd_scenarios_mysql8.sql"
|
mysql "$DB" < "$ROOT_DIR/backend/script/sql/update/aihr_20260714_practice_brd_scenarios_mysql8.sql"
|
||||||
|
|||||||
Reference in New Issue
Block a user