-- ============================================================================== -- RailwaySystem QA Bootstrap: 05_synthetic_demo_data.sql -- 目标数据库: railwaysystem_fusion_qa_20261013 (schema: public) -- 来源追溯: sql/demo/ (001_demo_accounts, 002_demo_master_data, 003_demo_business_data, 004_demo_scenario_data) -- 数据合规保证: -- 1. 100% 纯脱敏合成数据,杜绝导入生产或共享库真实备份 -- 2. 学员电话全部为 188000001xx,身份证仅存储 hash 与 last4 (如 1000, 1001) -- 3. 宿舍与门锁 SN 均使用标准虚拟测试编码 (LOCK-ZY-101, LOCK-BX-101) -- ============================================================================== SET search_path TO public, pg_catalog, sys_catalog; -- >>> 来源: sql/demo/001_demo_accounts.sql >>> -- ============================================================================== -- RailwaySystem Clean Demo 资产: 001_demo_accounts.sql -- 适用数据库: KingbaseES V009R003C018 (schema: public) -- 执行目标: 预置演示专属业务角色账号 (培训管理员、培训教师、培训学员) -- 安全要求: 严禁在脚本注释或交付报告中泄露明文口令,统一采用标准安全口令哈希预置 -- 角色绑定: -- 1. demo_admin -> role_id = 3 (train_admin) 一期业务全局管理 -- 2. demo_teacher -> role_id = 4 (train_teacher) 教师专属工作台 (绑定教师 T101) -- 3. demo_teacher2-> role_id = 4 (train_teacher) 教师专属工作台 (绑定教师 T102) -- 4. demo_student -> role_id = 5 (train_student) 学员专属个人中心 (绑定学员 S101) -- 5. demo_student2-> role_id = 5 (train_student) 学员专属个人中心 (绑定学员 S102) -- ============================================================================== BEGIN; -- 1. 预置业务演示账号 (sys_user) -- 密码哈希统一采用系统标准安全初始口令散列 INSERT INTO public.sys_user (user_id, dept_id, user_name, nick_name, user_type, email, phonenumber, sex, password, status, del_flag, login_ip, login_date, create_by, create_time, remark) VALUES (10, 112, 'demo_admin', '演示培训管理员', '00', 'demo_admin@sict.railway.cn', '18800000001', '0', '!ROUND5S_DISABLED_NO_LOGIN', '0', '0', '127.0.0.1', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '演示专用培训管理员账号'), (11, 112, 'demo_teacher', '崔宏伟(教师)', '00', 'cuihw@sict.railway.cn', '18800000011', '0', '!ROUND5S_DISABLED_NO_LOGIN', '0', '0', '127.0.0.1', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '演示专用主讲教师账号(绑定T101)'), (12, 116, 'demo_teacher2', '张建国(教师)', '00', 'zhangjg@sict.railway.cn', '18800000012', '0', '!ROUND5S_DISABLED_NO_LOGIN', '0', '0', '127.0.0.1', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '演示专用第二教师账号(绑定T102)'), (21, 119, 'demo_student', '李强(学员)', '00', 'liqiang@sict.railway.cn', '18800000101', '0', '!ROUND5S_DISABLED_NO_LOGIN', '0', '0', '127.0.0.1', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '演示专用参训学员账号(绑定S101)'), (22, 120, 'demo_student2', '王芳(学员)', '00', 'wangfang@sict.railway.cn', '18800000102', '1', '!ROUND5S_DISABLED_NO_LOGIN', '0', '0', '127.0.0.1', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '演示专用参训学员账号(绑定S102)') ON CONFLICT (user_id) DO UPDATE SET user_name = EXCLUDED.user_name, nick_name = EXCLUDED.nick_name, dept_id = EXCLUDED.dept_id, password = EXCLUDED.password, status = '0', del_flag = '0'; -- 2. 绑定用户角色 (sys_user_role) DELETE FROM public.sys_user_role WHERE user_id IN (10, 11, 12, 21, 22); INSERT INTO public.sys_user_role (user_id, role_id) VALUES (10, 3), -- demo_admin -> 培训管理员 (role_id=3) (11, 4), -- demo_teacher -> 培训教师 (role_id=4) (12, 4), -- demo_teacher2-> 培训教师 (role_id=4) (21, 5), -- demo_student -> 培训学员 (role_id=5) (22, 5); -- demo_student2-> 培训学员 (role_id=5) -- 3. 演示环境优化:关闭登录验证码要求 (提升演示流畅度) UPDATE public.sys_config SET config_value = 'false' WHERE config_key = 'sys.account.captchaEnabled'; COMMIT; -- Round 5S: seeded demo identities remain disabled until an authorized administrator provisions credentials. UPDATE public.sys_user SET status = '1' WHERE password = '!ROUND5S_DISABLED_NO_LOGIN'; -- >>> 来源: sql/demo/002_demo_master_data.sql >>> -- ============================================================================== -- RailwaySystem Clean Demo 资产: 002_demo_master_data.sql -- 适用数据库: KingbaseES V009R003C018 (schema: public) -- ============================================================================== BEGIN; -- 1. 教师主档 UPDATE public.train_teacher SET org_name = '沈阳房建公寓段安全培训科', job_title = '首席技师/教授级高工', t_phone = '18800000000', t_email = 'zhaodm@sict.railway.cn', status = 1, del_flag = '0' WHERE t_id = 'T001'; INSERT INTO public.train_teacher (t_id, t_name, t_gender, t_birth, org_name, job_title, t_phone, t_email, status, del_flag, user_id, create_by, create_time, remark) VALUES ('T101', '崔宏伟', '0', '1982-05-14', '沈阳房建公寓段安全培训科', '高级工程师', '18800000011', 'cuihw@sict.railway.cn', 1, '0', 11, 'admin', CURRENT_TIMESTAMP, '演示主讲教师(绑定账号demo_teacher)'), ('T102', '张建国', '0', '1985-11-20', '沈阳房建公寓段技术科', '副高级工程师', '18800000012', 'zhangjg@sict.railway.cn', 1, '0', 12, 'admin', CURRENT_TIMESTAMP, '技术专家讲师(绑定账号demo_teacher2)'), ('T103', '刘文波', '0', '1979-08-03', '沈阳房建公寓段公寓科', '主任技师', '18800000013', 'liuwb@sict.railway.cn', 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '门禁与后勤管理特聘讲师'), ('T104', '孙亚萍', '1', '1988-03-22', '沈阳房建公寓段安全培训科', '专职讲师', '18800000014', 'sunyp@sict.railway.cn', 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '营业线施工安全专职培训师'), ('T105', '陈广林', '0', '1976-12-09', '大连项目部', '特级技师', '18800000015', 'chengl@sict.railway.cn', 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '防汛抢险实训专家'), ('T106', '马志强', '0', '1990-07-18', '丹东项目部', '工程师', '18800000016', 'mazhq@sict.railway.cn', 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '电气防火与智能化安全监控讲师') ON CONFLICT (t_id) DO UPDATE SET t_name = EXCLUDED.t_name, org_name = EXCLUDED.org_name, job_title = EXCLUDED.job_title, user_id = EXCLUDED.user_id, status = EXCLUDED.status, del_flag = '0'; -- 2. 课程标准库 INSERT INTO public.train_course (c_id, c_name, c_code, c_type, c_duration, teaching_objective, course_content, status, del_flag, create_by, create_time, remark) VALUES ('C001', '高速铁路房建设施检修规范', 'DEMO-CRS-001', 1, 24, '熟练掌握高铁站房、雨棚及站台设施的巡检标准与养护规程', '第一章 高铁站房结构特性;第二章 日常巡检与重点隐患排查;第三章 结构裂缝与屋面防水检修实务', 1, '0', 'admin', CURRENT_TIMESTAMP, '重点理论课程'), ('C002', '铁路营业线施工安全与应急处置', 'DEMO-CRS-002', 1, 16, '强化营业线天窗点内施工安全红线意识,掌握突发险情应急处置规程', '第一章 营业线施工防护等级;第二章 施工要点与天窗管理;第三章 典型事故案例分析与应急预案响应', 1, '0', 'admin', CURRENT_TIMESTAMP, '必修安全红线课程'), ('C003', '铁路公寓智能门禁与物联系统应用', 'DEMO-CRS-003', 2, 16, '掌握公寓智能门禁终端、电子门锁、身份下发及离线对账完整业务链', '第一章 智能门禁拓扑与权限机制;第二章 凭据下发与卡密配置;第三章 离线对账与异常流调实操', 1, '0', 'admin', CURRENT_TIMESTAMP, '理论实作一体化课程'), ('C004', '给排水与暖通设备标准化检修', 'DEMO-CRS-004', 2, 20, '掌握铁路车站及公寓给排水管网、变频泵组与采暖供热设备标准化实操演练', '第一章 供暖锅炉与变频供水设备;第二章 管路试压与漏水排查;第三章 冬季防冻保温与实操演练', 1, '0', 'admin', CURRENT_TIMESTAMP, '核心实训操作课程'), ('C005', '房建设施防汛防台演练', 'DEMO-CRS-005', 2, 16, '掌握极端恶劣天气下地下构筑物防倒灌、泵坑强排及抗台防风应急抢险技能', '第一章 铁路防汛预警机制;第二章 移动防洪挡水板与抽水泵组布设实操;第三章 突发强降雨抢险实操演练', 1, '0', 'admin', CURRENT_TIMESTAMP, '实操抢险演练'), ('C006', '电气防火安全与智能巡检规范', 'DEMO-CRS-006', 1, 12, '掌握铁路配电房、公寓配电间电气火灾隐患红外热成像及阻燃检测技术', '第一章 铁路电气火灾成因与预防;第二章 热成像与绝缘阻抗巡检;第三章 电气火灾报警联动处置', 1, '0', 'admin', CURRENT_TIMESTAMP, '专业理论课程'), ('C007', '特种作业人员安全资质培训', 'DEMO-CRS-007', 1, 16, '高处作业、焊接作业及有限空间作业安全规程与特种作业防护规范', '第一章 高空作业双钩安全带使用规程;第二章 动火作业审批及监护;第三章 有限空间气体检测与通风防护', 1, '0', 'admin', CURRENT_TIMESTAMP, '资质考评必修课程'), ('C008', '智能电子班牌与数字化报到实务', 'DEMO-CRS-008', 2, 8, '掌握智能电子班牌的屏幕互动、无感签到、通知推发与日程核验', '第一章 智能班牌终端交互;第二章 课次无感签到与异常补录;第三章 班级通知与应急插播实演', 1, '0', 'admin', CURRENT_TIMESTAMP, '数字化教学应用课程') ON CONFLICT (c_id) DO UPDATE SET c_name = EXCLUDED.c_name, c_code = EXCLUDED.c_code, c_type = EXCLUDED.c_type, c_duration = EXCLUDED.c_duration, status = EXCLUDED.status, del_flag = '0'; -- 3. 教学教室 INSERT INTO public.train_classroom_info (class_room_id, room_name, room_location, capacity, room_status, create_by, create_time, del_flag, remark) VALUES ('CR01', '教学楼101多功能多媒体教室', '教学楼一楼东侧101室', 60, 1, 'admin', CURRENT_TIMESTAMP, '0', '配备智慧黑板与双屏投影'), ('CR02', '教学楼102信息化研讨教室', '教学楼一楼西侧102室', 40, 1, 'admin', CURRENT_TIMESTAMP, '0', '支持分组讨论与互动教学'), ('CR03', '教学楼201安全实训理论教室', '教学楼二楼东侧201室', 50, 1, 'admin', CURRENT_TIMESTAMP, '0', '安全案例沉浸式视听教室'), ('CR04', '综合楼305智慧学术报告厅', '综合楼三楼报告厅', 100, 1, 'admin', CURRENT_TIMESTAMP, '0', '承办大型培训开班仪式与结训典礼') ON CONFLICT (class_room_id) DO UPDATE SET room_name = EXCLUDED.room_name, room_location = EXCLUDED.room_location, capacity = EXCLUDED.capacity, room_status = EXCLUDED.room_status, del_flag = '0'; -- 4. 实训场地 INSERT INTO public.train_training_site (site_id, site_name, site_location, capacity, site_device, site_status, create_by, create_time, del_flag, remark) VALUES ('SITE01', '沈阳房建综合实训基地', '沈阳段综合实训园区A区', 50, '高仿真站台接缝模型、雨棚防脱索具、钢结构无损探伤仪', 1, 'admin', CURRENT_TIMESTAMP, '0', '高铁房建全构件检修实训场'), ('SITE02', '高铁给排水检修实作工场', '沈阳段综合实训园区B区1号工场', 30, '变频调速供水泵组、管道高压疏通机、法兰热熔焊接设备', 1, 'admin', CURRENT_TIMESTAMP, '0', '暖通给排水专业工场'), ('SITE03', '应急抢险与高空作业演练场', '沈阳段演练拓展场C区', 40, '移动防汛挡水钢板、大流量潜水排污泵、高空悬吊防护训练架', 1, 'admin', CURRENT_TIMESTAMP, '0', '防汛防台与高空实操基地') ON CONFLICT (site_id) DO UPDATE SET site_name = EXCLUDED.site_name, site_location = EXCLUDED.site_location, capacity = EXCLUDED.capacity, site_status = EXCLUDED.site_status, del_flag = '0'; -- 5. 电子班牌 INSERT INTO public.train_electronic_board (board_id, board_sn, board_name, bind_classroom_id, board_ip, support_checkin_type, board_status, last_heartbeat, create_by, create_time, del_flag, remark) VALUES ('BP001', 'BOARD-CR01-01', '教学楼101班牌', 'CR01', '192.168.10.101', 'FACE,CARD,QR', 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '0', '教学楼101门外终端'), ('BP002', 'BOARD-CR02-01', '教学楼102班牌', 'CR02', '192.168.10.102', 'FACE,CARD,QR', 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '0', '教学楼102门外终端') ON CONFLICT (board_id) DO UPDATE SET board_sn = EXCLUDED.board_sn, board_name = EXCLUDED.board_name, bind_classroom_id = EXCLUDED.bind_classroom_id, board_status = EXCLUDED.board_status, del_flag = '0'; -- 6. 宿舍房间 (20间) INSERT INTO public.train_dormitory_info (dorm_id, dorm_building, dorm_floor, dorm_room, capacity, gender_type, dorm_status, lock_device_sn, create_by, create_time, del_flag, remark) VALUES ('DORM-ZY-101', '致远楼', '1层', '101', 4, 1, 1, 'LOCK-ZY-101', 'admin', CURRENT_TIMESTAMP, '0', '男生宿舍'), ('DORM-ZY-102', '致远楼', '1层', '102', 4, 1, 1, 'LOCK-ZY-102', 'admin', CURRENT_TIMESTAMP, '0', '男生宿舍'), ('DORM-ZY-103', '致远楼', '1层', '103', 4, 1, 1, 'LOCK-ZY-103', 'admin', CURRENT_TIMESTAMP, '0', '男生宿舍'), ('DORM-ZY-104', '致远楼', '1层', '104', 4, 1, 1, 'LOCK-ZY-104', 'admin', CURRENT_TIMESTAMP, '0', '男生宿舍'), ('DORM-ZY-105', '致远楼', '1层', '105', 4, 1, 1, 'LOCK-ZY-105', 'admin', CURRENT_TIMESTAMP, '0', '男生宿舍'), ('DORM-ZY-201', '致远楼', '2层', '201', 4, 1, 1, 'LOCK-ZY-201', 'admin', CURRENT_TIMESTAMP, '0', '男生宿舍'), ('DORM-ZY-202', '致远楼', '2层', '202', 4, 1, 1, 'LOCK-ZY-202', 'admin', CURRENT_TIMESTAMP, '0', '男生宿舍'), ('DORM-ZY-203', '致远楼', '2层', '203', 4, 1, 1, 'LOCK-ZY-203', 'admin', CURRENT_TIMESTAMP, '0', '男生宿舍'), ('DORM-ZY-204', '致远楼', '2层', '204', 4, 1, 1, 'LOCK-ZY-204', 'admin', CURRENT_TIMESTAMP, '0', '男生宿舍'), ('DORM-ZY-205', '致远楼', '2层', '205', 4, 1, 1, 'LOCK-ZY-205', 'admin', CURRENT_TIMESTAMP, '0', '男生宿舍'), ('DORM-BX-101', '博学楼', '1层', '101', 4, 2, 1, 'LOCK-BX-101', 'admin', CURRENT_TIMESTAMP, '0', '女生宿舍'), ('DORM-BX-102', '博学楼', '1层', '102', 4, 2, 1, 'LOCK-BX-102', 'admin', CURRENT_TIMESTAMP, '0', '女生宿舍'), ('DORM-BX-103', '博学楼', '1层', '103', 4, 2, 1, 'LOCK-BX-103', 'admin', CURRENT_TIMESTAMP, '0', '女生宿舍'), ('DORM-BX-104', '博学楼', '1层', '104', 4, 2, 1, 'LOCK-BX-104', 'admin', CURRENT_TIMESTAMP, '0', '女生宿舍'), ('DORM-BX-105', '博学楼', '1层', '105', 4, 2, 1, 'LOCK-BX-105', 'admin', CURRENT_TIMESTAMP, '0', '女生宿舍'), ('DORM-BX-201', '博学楼', '2层', '201', 4, 2, 1, 'LOCK-BX-201', 'admin', CURRENT_TIMESTAMP, '0', '女生宿舍'), ('DORM-BX-202', '博学楼', '2层', '202', 4, 2, 1, 'LOCK-BX-202', 'admin', CURRENT_TIMESTAMP, '0', '女生宿舍'), ('DORM-BX-203', '博学楼', '2层', '203', 4, 2, 1, 'LOCK-BX-203', 'admin', CURRENT_TIMESTAMP, '0', '女生宿舍'), ('DORM-BX-204', '博学楼', '2层', '204', 4, 2, 1, 'LOCK-BX-204', 'admin', CURRENT_TIMESTAMP, '0', '女生宿舍'), ('DORM-BX-205', '博学楼', '2层', '205', 4, 2, 1, 'LOCK-BX-205', 'admin', CURRENT_TIMESTAMP, '0', '女生宿舍') ON CONFLICT (dorm_id) DO UPDATE SET dorm_building = EXCLUDED.dorm_building, dorm_floor = EXCLUDED.dorm_floor, dorm_room = EXCLUDED.dorm_room, capacity = EXCLUDED.capacity, dorm_status = EXCLUDED.dorm_status, del_flag = '0'; -- 7. 学员主档 (35名) INSERT INTO public.train_student (s_id, s_name, s_gender, s_birth, org_name, s_phone, s_email, id_card_hash, id_card_last4, source_type, status, del_flag, user_id, create_by, create_time, remark) VALUES ('S101', '李强', '0', '1990-01-01', '沈阳房建公寓段沈阳车间', '18800000101', 's101@sict.railway.cn', '57ecc1436745329b620ccbfaebbed22cda4ba9b33ec44de468d2e3acd61f63c2', '1000', 1, 1, '0', 21, 'admin', CURRENT_TIMESTAMP, '演示学员样本1'), ('S102', '王芳', '1', '1991-02-02', '沈阳房建公寓段大连车间', '18800000102', 's102@sict.railway.cn', 'f6d29eac73f7ea39158b909683cc36f50a2ea9298be8a453bf8922488e499b29', '1001', 1, 1, '0', 22, 'admin', CURRENT_TIMESTAMP, '演示学员样本2'), ('S103', '张伟', '0', '1992-03-03', '沈阳房建公寓段丹东车间', '18800000103', 's103@sict.railway.cn', 'eb005ec042b0171ab34dc5e7d038c2eec40e4456c4378db6b2578159489fc6b1', '1002', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本3'), ('S104', '赵敏', '0', '1993-04-04', '沈阳房建公寓段安全培训科', '18800000104', 's104@sict.railway.cn', '8dd4b314cf479f0d60d00282548381a52489a0849f6dd499c57d1765fb6ba9b3', '1003', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本4'), ('S105', '陈涛', '0', '1994-05-05', '沈阳房建公寓段技术科', '18800000105', 's105@sict.railway.cn', 'd3b26d75218164246b036037504e03ce9f66052bfbefdf2a247613cfa38c04ad', '1004', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本5'), ('S106', '杨洋', '1', '1995-06-06', '沈阳房建公寓段沈阳车间', '18800000106', 's106@sict.railway.cn', 'c8e5d6133037dda5303504512c11b281413b25a40acfa0a70b65922f8966a97a', '1005', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本6'), ('S107', '周杰', '0', '1996-07-07', '沈阳房建公寓段大连车间', '18800000107', 's107@sict.railway.cn', '6bdcd2c0e867be8cfef52c987e959097099c5188c26f20add1311ac723278ab2', '1006', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本7'), ('S108', '徐静', '0', '1997-08-08', '沈阳房建公寓段丹东车间', '18800000108', 's108@sict.railway.cn', 'ef2d043c2b0f983a77bed02077c12ef30886f7e54d2980f7c64f06407bc7e579', '1007', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本8'), ('S109', '孙磊', '0', '1990-09-09', '沈阳房建公寓段安全培训科', '18800000109', 's109@sict.railway.cn', '1c387866619ee10c7205cf503df503adc694fc3280eef104b32b07803fdb8e95', '1008', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本9'), ('S110', '朱燕', '1', '1991-10-10', '沈阳房建公寓段技术科', '18800000110', 's110@sict.railway.cn', 'f8e31ba15a77222416e139b597c35a9e49f536a1dcbb2d37384c557853c224e0', '1009', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本10'), ('S111', '郭超', '0', '1992-11-11', '沈阳房建公寓段沈阳车间', '18800000111', 's111@sict.railway.cn', '608ba9ded7bc99069a88ce2004c2cf9bc7801c967a5d0f32e8d662b248113e7c', '1010', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本11'), ('S112', '何伟', '0', '1993-12-12', '沈阳房建公寓段大连车间', '18800000112', 's112@sict.railway.cn', 'ce9c847788ad8f0e583faa78e3ef21de612251371e4641f5b52226ee1ae795e0', '1011', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本12'), ('S113', '高健', '0', '1994-01-13', '沈阳房建公寓段丹东车间', '18800000113', 's113@sict.railway.cn', '314ca3c9b0e77d808031970e25bc462c7890647b1d3470b0aa877d8882138314', '1012', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本13'), ('S114', '林峰', '1', '1995-02-14', '沈阳房建公寓段安全培训科', '18800000114', 's114@sict.railway.cn', 'e0f33d968d5b6f053be67e5bb3ae20e6a3301080f9821c452efd6b05d785815f', '1013', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本14'), ('S115', '罗娜', '0', '1996-03-15', '沈阳房建公寓段技术科', '18800000115', 's115@sict.railway.cn', '0f6eb52d873f3a3bc423b973c4ff942e640f1798b584c25292a8e3a6138a1a8f', '1014', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本15'), ('S116', '梁勇', '0', '1997-04-16', '沈阳房建公寓段沈阳车间', '18800000116', 's116@sict.railway.cn', 'd1d72a50041621372868c6622fcc7d941d21c3455b7579aba7c097e3c64a6835', '1015', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本16'), ('S117', '宋佳', '0', '1990-05-17', '沈阳房建公寓段大连车间', '18800000117', 's117@sict.railway.cn', '228dd61eadab8e0f70e14a9a800c2ed80c208cd2c7944f464d8282e4e1d95db8', '1016', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本17'), ('S118', '郑阳', '1', '1991-06-18', '沈阳房建公寓段丹东车间', '18800000118', 's118@sict.railway.cn', '245f22b87575afaff6fbe16fc50e56731da51e2c1d8a9ee1866d5638df3ec31f', '1017', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本18'), ('S119', '谢明', '0', '1992-07-19', '沈阳房建公寓段安全培训科', '18800000119', 's119@sict.railway.cn', '941f0156c2eeb2626f76539d3f62e7fa050799ac1e29a9f42eb00f8dd336760f', '1018', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本19'), ('S120', '韩梅', '0', '1993-08-20', '沈阳房建公寓段技术科', '18800000120', 's120@sict.railway.cn', 'addc31f5380151d90621e63ab40471fc749b47651705fb6e8fbe61b33e8ae51a', '1019', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本20'), ('S121', '唐浩', '0', '1994-09-21', '沈阳房建公寓段沈阳车间', '18800000121', 's121@sict.railway.cn', 'a2f6e5faf5d400013b4d6238f0370d43e5b02744f2898dd8ea6f3fa10dfe04e8', '1020', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本21'), ('S122', '冯霞', '1', '1995-10-22', '沈阳房建公寓段大连车间', '18800000122', 's122@sict.railway.cn', '16d6c76f2bdbd69c504435da2010d436f3c7d597fec78199cc3649f1a6680d91', '1021', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本22'), ('S123', '于洋', '0', '1996-11-23', '沈阳房建公寓段丹东车间', '18800000123', 's123@sict.railway.cn', '57b98c33d6c9ef93e68c7d6bdcf4ac2b98670d0ea998449886b7acefafd6690c', '1022', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本23'), ('S124', '董欣', '0', '1997-12-24', '沈阳房建公寓段安全培训科', '18800000124', 's124@sict.railway.cn', 'c54e399999d52c0a2d33f8dd8e29ae0c00bd293e40750abb59af87dbe453d4d5', '1023', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本24'), ('S125', '萧然', '0', '1990-01-25', '沈阳房建公寓段技术科', '18800000125', 's125@sict.railway.cn', 'e721a7b054a254c3fde7b8ce646c2a9986937b369c61b46e9dee8510cd4ca3f9', '1024', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本25'), ('S126', '程功', '1', '1991-02-26', '沈阳房建公寓段沈阳车间', '18800000126', 's126@sict.railway.cn', '9934af5948c05404c1cfeb75b023d9658273b5f76f2222da1df7c176d6b3c092', '1025', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本26'), ('S127', '曹操', '0', '1992-03-27', '沈阳房建公寓段大连车间', '18800000127', 's127@sict.railway.cn', '6f846b87db0308be283250ecb918511719c4dffaa69dc347bb800ac05b0108ff', '1026', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本27'), ('S128', '袁方', '0', '1993-04-28', '沈阳房建公寓段丹东车间', '18800000128', 's128@sict.railway.cn', '2b21a13ef131923b0966138af218abc111adf31e85320211f86efa178a02b46d', '1027', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本28'), ('S129', '邓超', '0', '1994-05-01', '沈阳房建公寓段安全培训科', '18800000129', 's129@sict.railway.cn', '3cbf1be25fb8561ec9091fc2ad1bdab477465da4aea11b27c9b0642a8a5146a5', '1028', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本29'), ('S130', '许巍', '1', '1995-06-02', '沈阳房建公寓段技术科', '18800000130', 's130@sict.railway.cn', '5d0fca144d4443ecd4bcd85f58f21b369df20a9369b4daccc4b6667b095773fe', '1029', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本30'), ('S131', '沈冰', '0', '1996-07-03', '沈阳房建公寓段沈阳车间', '18800000131', 's131@sict.railway.cn', 'd47b05367012f7166a7a8a6c5d4313a14e234297d6017482493d0f98e383389e', '1030', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本31'), ('S132', '曾诚', '0', '1997-08-04', '沈阳房建公寓段大连车间', '18800000132', 's132@sict.railway.cn', '5dd752b8826ac0258509f27458aa4599ba23c3bced53888d5b001492c468477b', '1031', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本32'), ('S133', '彭飞', '0', '1990-09-05', '沈阳房建公寓段丹东车间', '18800000133', 's133@sict.railway.cn', 'ac7afdf09e2f07d66d3f320d60a11abe0167187455dfd15438229f906ef3e8ef', '1032', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本33'), ('S134', '吕梁', '1', '1991-10-06', '沈阳房建公寓段安全培训科', '18800000134', 's134@sict.railway.cn', '65a78d3839aef33f4059ea214e8faac94125c6c82cfa3001580fa208430b0ad3', '1033', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本34'), ('S135', '卢伟', '0', '1992-11-07', '沈阳房建公寓段技术科', '18800000135', 's135@sict.railway.cn', '2df5ae45334850de9e4ba87333f2388e2b71f5d75ead96fdd7c8734dd73f7147', '1034', 1, 1, '0', NULL, 'admin', CURRENT_TIMESTAMP, '演示学员样本35') ON CONFLICT (s_id) DO UPDATE SET s_name = EXCLUDED.s_name, org_name = EXCLUDED.org_name, s_phone = EXCLUDED.s_phone, s_email = EXCLUDED.s_email, id_card_hash = EXCLUDED.id_card_hash, id_card_last4 = EXCLUDED.id_card_last4, user_id = EXCLUDED.user_id, status = EXCLUDED.status, del_flag = '0'; COMMIT; -- >>> 来源: sql/demo/003_demo_business_data.sql >>> -- ============================================================================== -- RailwaySystem Clean Demo 资产: 003_demo_business_data.sql -- 适用数据库: KingbaseES V009R003C018 (schema: public) -- ============================================================================== BEGIN; -- 1. 开班计划 INSERT INTO public.train_class_plan (plan_id, plan_name, start_time, end_time, report_deadline, train_address, recruit_num, apply_condition, plan_status, create_by, create_time, del_flag, remark) VALUES ('PLAN-2026-01', '2026年秋季高铁房建设施高级研修班', '2026-09-15 08:30:00', '2026-09-30 17:30:00', '2026-09-14 18:00:00', '沈阳房建综合实训园区', 30, '沈阳段各车间从事高铁站房设备检修2年以上技术骨干', 1, 'admin', CURRENT_TIMESTAMP, '0', '核心演示班级(进行中)'), ('PLAN-2026-02', '2026年铁路营业线安全施工与应急处置实训班', '2026-10-10 08:30:00', '2026-10-25 17:30:00', '2026-10-09 18:00:00', '教学楼101多功能多媒体教室', 40, '营业线施工现场防护员及施工负责人', 0, 'admin', CURRENT_TIMESTAMP, '0', '即将开班班级(未开始)'), ('PLAN-2026-03', '2026年夏季铁路给排水设备技术比武集训班', '2026-08-01 08:30:00', '2026-08-15 17:30:00', '2026-07-31 18:00:00', '高铁给排水检修实作工场', 25, '全段给排水与暖通特级技师与高级工选拔参赛人员', 2, 'admin', CURRENT_TIMESTAMP, '0', '历史结训班级(已结束)'), ('PLAN-2026-04', '2026年智能门禁与数字化后勤储备干部培训班', '2026-11-01 08:30:00', '2026-11-15 17:30:00', '2026-10-31 18:00:00', '综合楼305智慧学术报告厅', 30, '公寓管理人员及信息化骨干', 3, 'admin', CURRENT_TIMESTAMP, '0', '计划筹备班级(草稿/未发布)') ON CONFLICT (plan_id) DO UPDATE SET plan_name = EXCLUDED.plan_name, start_time = EXCLUDED.start_time, end_time = EXCLUDED.end_time, plan_status = EXCLUDED.plan_status, del_flag = '0'; -- 2. 计划绑定课程 INSERT INTO public.train_plan_course (plan_course_id, plan_id, c_id, sort_no, create_by, create_time) VALUES (1, 'PLAN-2026-01', 'C001', 1, 'admin', CURRENT_TIMESTAMP), (2, 'PLAN-2026-01', 'C003', 2, 'admin', CURRENT_TIMESTAMP), (3, 'PLAN-2026-01', 'C004', 3, 'admin', CURRENT_TIMESTAMP), (4, 'PLAN-2026-01', 'C008', 4, 'admin', CURRENT_TIMESTAMP), (5, 'PLAN-2026-02', 'C002', 1, 'admin', CURRENT_TIMESTAMP), (6, 'PLAN-2026-02', 'C005', 2, 'admin', CURRENT_TIMESTAMP), (7, 'PLAN-2026-02', 'C007', 3, 'admin', CURRENT_TIMESTAMP), (8, 'PLAN-2026-03', 'C004', 1, 'admin', CURRENT_TIMESTAMP), (9, 'PLAN-2026-03', 'C006', 2, 'admin', CURRENT_TIMESTAMP) ON CONFLICT (plan_id, c_id) DO UPDATE SET sort_no = EXCLUDED.sort_no; -- 3. 参训名单 INSERT INTO public.train_enrollment (enrollment_id, plan_id, student_id, enrollment_status, source_type, accommodation_required, join_time, create_by, create_time) VALUES (101, 'PLAN-2026-01', 'S101', 1, 2, 1, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (102, 'PLAN-2026-01', 'S102', 1, 2, 1, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (103, 'PLAN-2026-01', 'S103', 1, 2, 1, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (104, 'PLAN-2026-01', 'S104', 1, 2, 1, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (105, 'PLAN-2026-01', 'S105', 1, 2, 1, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (106, 'PLAN-2026-01', 'S106', 1, 2, 1, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (107, 'PLAN-2026-01', 'S107', 1, 2, 1, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (108, 'PLAN-2026-01', 'S108', 1, 2, 1, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (109, 'PLAN-2026-01', 'S109', 1, 2, 1, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (110, 'PLAN-2026-01', 'S110', 1, 2, 1, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (111, 'PLAN-2026-01', 'S111', 1, 2, 1, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (112, 'PLAN-2026-01', 'S112', 1, 2, 1, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (113, 'PLAN-2026-01', 'S113', 1, 2, 1, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (114, 'PLAN-2026-01', 'S114', 1, 2, 1, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (115, 'PLAN-2026-01', 'S115', 1, 2, 1, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (116, 'PLAN-2026-01', 'S116', 1, 2, 1, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (117, 'PLAN-2026-01', 'S117', 0, 2, 1, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (118, 'PLAN-2026-01', 'S118', 0, 2, 1, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (119, 'PLAN-2026-01', 'S119', 2, 2, 0, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (120, 'PLAN-2026-01', 'S120', 3, 2, 0, '2026-09-10 10:00:00', 'admin', CURRENT_TIMESTAMP), (201, 'PLAN-2026-02', 'S121', 0, 1, 1, '2026-09-20 09:00:00', 'admin', CURRENT_TIMESTAMP), (202, 'PLAN-2026-02', 'S122', 0, 1, 1, '2026-09-20 09:00:00', 'admin', CURRENT_TIMESTAMP), (203, 'PLAN-2026-02', 'S123', 0, 1, 1, '2026-09-20 09:00:00', 'admin', CURRENT_TIMESTAMP), (204, 'PLAN-2026-02', 'S124', 0, 1, 1, '2026-09-20 09:00:00', 'admin', CURRENT_TIMESTAMP), (205, 'PLAN-2026-02', 'S125', 0, 1, 1, '2026-09-20 09:00:00', 'admin', CURRENT_TIMESTAMP), (206, 'PLAN-2026-02', 'S126', 0, 1, 1, '2026-09-20 09:00:00', 'admin', CURRENT_TIMESTAMP), (207, 'PLAN-2026-02', 'S127', 0, 1, 1, '2026-09-20 09:00:00', 'admin', CURRENT_TIMESTAMP), (208, 'PLAN-2026-02', 'S128', 0, 1, 1, '2026-09-20 09:00:00', 'admin', CURRENT_TIMESTAMP), (209, 'PLAN-2026-02', 'S129', 0, 1, 1, '2026-09-20 09:00:00', 'admin', CURRENT_TIMESTAMP), (210, 'PLAN-2026-02', 'S130', 0, 1, 1, '2026-09-20 09:00:00', 'admin', CURRENT_TIMESTAMP), (301, 'PLAN-2026-03', 'S101', 4, 3, 1, '2026-07-25 09:00:00', 'admin', CURRENT_TIMESTAMP), (302, 'PLAN-2026-03', 'S102', 4, 3, 1, '2026-07-25 09:00:00', 'admin', CURRENT_TIMESTAMP), (303, 'PLAN-2026-03', 'S103', 4, 3, 1, '2026-07-25 09:00:00', 'admin', CURRENT_TIMESTAMP), (304, 'PLAN-2026-03', 'S104', 4, 3, 1, '2026-07-25 09:00:00', 'admin', CURRENT_TIMESTAMP), (305, 'PLAN-2026-03', 'S105', 4, 3, 1, '2026-07-25 09:00:00', 'admin', CURRENT_TIMESTAMP), (306, 'PLAN-2026-03', 'S106', 4, 3, 1, '2026-07-25 09:00:00', 'admin', CURRENT_TIMESTAMP), (307, 'PLAN-2026-03', 'S107', 4, 3, 1, '2026-07-25 09:00:00', 'admin', CURRENT_TIMESTAMP), (308, 'PLAN-2026-03', 'S108', 4, 3, 1, '2026-07-25 09:00:00', 'admin', CURRENT_TIMESTAMP), (309, 'PLAN-2026-03', 'S109', 4, 3, 1, '2026-07-25 09:00:00', 'admin', CURRENT_TIMESTAMP), (310, 'PLAN-2026-03', 'S110', 4, 3, 1, '2026-07-25 09:00:00', 'admin', CURRENT_TIMESTAMP), (311, 'PLAN-2026-03', 'S111', 4, 3, 1, '2026-07-25 09:00:00', 'admin', CURRENT_TIMESTAMP), (312, 'PLAN-2026-03', 'S112', 4, 3, 1, '2026-07-25 09:00:00', 'admin', CURRENT_TIMESTAMP), (313, 'PLAN-2026-03', 'S113', 4, 3, 1, '2026-07-25 09:00:00', 'admin', CURRENT_TIMESTAMP), (314, 'PLAN-2026-03', 'S114', 4, 3, 1, '2026-07-25 09:00:00', 'admin', CURRENT_TIMESTAMP), (315, 'PLAN-2026-03', 'S115', 4, 3, 1, '2026-07-25 09:00:00', 'admin', CURRENT_TIMESTAMP) ON CONFLICT (plan_id, student_id) DO UPDATE SET enrollment_status = EXCLUDED.enrollment_status, accommodation_required = EXCLUDED.accommodation_required; -- 4. 报到确认流水 INSERT INTO public.train_class_report (report_id, enrollment_id, report_way, report_device_sn, report_time, verify_result, verify_note, create_by, create_time, remark) VALUES (101, 101, 1, 'DEV-SN-001', '2026-09-14 09:13:00', 1, '现场人脸核验通过', 'admin', CURRENT_TIMESTAMP, '按期现场报到'), (102, 102, 3, 'DEV-SN-001', '2026-09-14 10:16:00', 1, '现场人脸核验通过', 'admin', CURRENT_TIMESTAMP, '按期现场报到'), (103, 103, 2, 'DEV-SN-001', '2026-09-14 11:19:00', 1, '现场人脸核验通过', 'admin', CURRENT_TIMESTAMP, '按期现场报到'), (104, 104, 1, 'DEV-SN-001', '2026-09-14 08:22:00', 1, '现场人脸核验通过', 'admin', CURRENT_TIMESTAMP, '按期现场报到'), (105, 105, 3, 'DEV-SN-001', '2026-09-14 09:25:00', 1, '现场人脸核验通过', 'admin', CURRENT_TIMESTAMP, '按期现场报到'), (106, 106, 2, 'DEV-SN-001', '2026-09-14 10:28:00', 1, '现场人脸核验通过', 'admin', CURRENT_TIMESTAMP, '按期现场报到'), (107, 107, 1, 'DEV-SN-001', '2026-09-14 11:31:00', 1, '现场人脸核验通过', 'admin', CURRENT_TIMESTAMP, '按期现场报到'), (108, 108, 3, 'DEV-SN-001', '2026-09-14 08:34:00', 1, '现场人脸核验通过', 'admin', CURRENT_TIMESTAMP, '按期现场报到'), (109, 109, 2, 'DEV-SN-001', '2026-09-14 09:37:00', 1, '现场人脸核验通过', 'admin', CURRENT_TIMESTAMP, '按期现场报到'), (110, 110, 1, 'DEV-SN-001', '2026-09-14 10:40:00', 1, '现场人脸核验通过', 'admin', CURRENT_TIMESTAMP, '按期现场报到'), (111, 111, 3, 'DEV-SN-001', '2026-09-14 11:43:00', 1, '现场人脸核验通过', 'admin', CURRENT_TIMESTAMP, '按期现场报到'), (112, 112, 2, 'DEV-SN-001', '2026-09-14 08:46:00', 1, '现场人脸核验通过', 'admin', CURRENT_TIMESTAMP, '按期现场报到'), (113, 113, 1, 'DEV-SN-001', '2026-09-14 09:49:00', 1, '现场人脸核验通过', 'admin', CURRENT_TIMESTAMP, '按期现场报到'), (114, 114, 3, 'DEV-SN-001', '2026-09-14 10:52:00', 1, '现场人脸核验通过', 'admin', CURRENT_TIMESTAMP, '按期现场报到'), (115, 115, 2, 'DEV-SN-001', '2026-09-14 11:55:00', 1, '现场人脸核验通过', 'admin', CURRENT_TIMESTAMP, '按期现场报到'), (116, 116, 1, 'DEV-SN-001', '2026-09-14 08:58:00', 1, '现场人脸核验通过', 'admin', CURRENT_TIMESTAMP, '按期现场报到') ON CONFLICT (enrollment_id) DO UPDATE SET report_time = EXCLUDED.report_time, report_way = EXCLUDED.report_way; -- 5. 住宿安排 (0:预分配, 1:在住, 2:已退宿) INSERT INTO public.train_accommodation (accommodation_id, enrollment_id, dorm_id, bed_no, assigned_time, accommodation_status, create_by, create_time, remark) VALUES (101, 101, 'DORM-ZY-101', '1号床', '2026-09-14 10:00:00', 1, 'admin', CURRENT_TIMESTAMP, '正常在住'), (102, 102, 'DORM-ZY-101', '2号床', '2026-09-14 10:00:00', 1, 'admin', CURRENT_TIMESTAMP, '正常在住'), (103, 103, 'DORM-ZY-101', '3号床', '2026-09-14 10:00:00', 1, 'admin', CURRENT_TIMESTAMP, '正常在住'), (104, 104, 'DORM-ZY-101', '4号床', '2026-09-14 10:00:00', 1, 'admin', CURRENT_TIMESTAMP, '正常在住'), (105, 105, 'DORM-ZY-102', '1号床', '2026-09-14 10:00:00', 1, 'admin', CURRENT_TIMESTAMP, '正常在住'), (106, 106, 'DORM-ZY-102', '2号床', '2026-09-14 10:00:00', 1, 'admin', CURRENT_TIMESTAMP, '正常在住'), (107, 107, 'DORM-ZY-102', '3号床', '2026-09-14 10:00:00', 1, 'admin', CURRENT_TIMESTAMP, '正常在住'), (108, 108, 'DORM-ZY-102', '4号床', '2026-09-14 10:00:00', 1, 'admin', CURRENT_TIMESTAMP, '正常在住'), (109, 109, 'DORM-ZY-103', '1号床', '2026-09-14 10:00:00', 0, 'admin', CURRENT_TIMESTAMP, '预分配待办理入住(现场演示)'), (110, 110, 'DORM-ZY-103', '2号床', '2026-09-14 10:00:00', 0, 'admin', CURRENT_TIMESTAMP, '预分配待办理入住(现场演示)'), (111, 111, 'DORM-ZY-103', '3号床', '2026-09-14 10:00:00', 1, 'admin', CURRENT_TIMESTAMP, '正常在住'), (112, 112, 'DORM-ZY-103', '4号床', '2026-09-14 10:00:00', 1, 'admin', CURRENT_TIMESTAMP, '正常在住'), (113, 113, 'DORM-ZY-104', '1号床', '2026-09-14 10:00:00', 1, 'admin', CURRENT_TIMESTAMP, '正常在住'), (114, 114, 'DORM-ZY-104', '2号床', '2026-09-14 10:00:00', 1, 'admin', CURRENT_TIMESTAMP, '正常在住'), (115, 115, 'DORM-ZY-104', '3号床', '2026-09-14 10:00:00', 2, 'admin', CURRENT_TIMESTAMP, '因车间抢险提前退宿'), (116, 116, 'DORM-ZY-104', '4号床', '2026-09-14 10:00:00', 2, 'admin', CURRENT_TIMESTAMP, '因病提前退宿') ON CONFLICT (accommodation_id) DO UPDATE SET accommodation_status = EXCLUDED.accommodation_status, dorm_id = EXCLUDED.dorm_id, bed_no = EXCLUDED.bed_no; -- 门禁凭据与授权 INSERT INTO public.train_dorm_auth (auth_id, accommodation_id, auth_start, auth_end, face_sync_status, credential_type, auth_status, create_by, create_time, remark) VALUES (101, 101, '2026-09-14 00:00:00', '2026-09-30 23:59:59', 1, 'ONLINE_PASSWORD', 'ACTIVE', 'admin', CURRENT_TIMESTAMP, '[DEMO MOCK] 智能门禁凭据已下发'), (102, 102, '2026-09-14 00:00:00', '2026-09-30 23:59:59', 1, 'ONLINE_PASSWORD', 'ACTIVE', 'admin', CURRENT_TIMESTAMP, '[DEMO MOCK] 智能门禁凭据已下发'), (103, 103, '2026-09-14 00:00:00', '2026-09-30 23:59:59', 1, 'ONLINE_PASSWORD', 'ACTIVE', 'admin', CURRENT_TIMESTAMP, '[DEMO MOCK] 智能门禁凭据已下发'), (104, 104, '2026-09-14 00:00:00', '2026-09-30 23:59:59', 1, 'ONLINE_PASSWORD', 'ACTIVE', 'admin', CURRENT_TIMESTAMP, '[DEMO MOCK] 智能门禁凭据已下发'), (105, 105, '2026-09-14 00:00:00', '2026-09-30 23:59:59', 1, 'ONLINE_PASSWORD', 'ACTIVE', 'admin', CURRENT_TIMESTAMP, '[DEMO MOCK] 智能门禁凭据已下发'), (106, 106, '2026-09-14 00:00:00', '2026-09-30 23:59:59', 1, 'ONLINE_PASSWORD', 'ACTIVE', 'admin', CURRENT_TIMESTAMP, '[DEMO MOCK] 智能门禁凭据已下发'), (107, 107, '2026-09-14 00:00:00', '2026-09-30 23:59:59', 1, 'ONLINE_PASSWORD', 'ACTIVE', 'admin', CURRENT_TIMESTAMP, '[DEMO MOCK] 智能门禁凭据已下发'), (108, 108, '2026-09-14 00:00:00', '2026-09-30 23:59:59', 1, 'ONLINE_PASSWORD', 'ACTIVE', 'admin', CURRENT_TIMESTAMP, '[DEMO MOCK] 智能门禁凭据已下发'), (109, 109, '2026-09-14 00:00:00', '2026-09-30 23:59:59', 1, 'ONLINE_PASSWORD', 'ACTIVE', 'admin', CURRENT_TIMESTAMP, '[DEMO MOCK] 智能门禁凭据已下发'), (110, 110, '2026-09-14 00:00:00', '2026-09-30 23:59:59', 1, 'ONLINE_PASSWORD', 'ACTIVE', 'admin', CURRENT_TIMESTAMP, '[DEMO MOCK] 智能门禁凭据已下发'), (111, 111, '2026-09-14 00:00:00', '2026-09-30 23:59:59', 1, 'ONLINE_PASSWORD', 'ACTIVE', 'admin', CURRENT_TIMESTAMP, '[DEMO MOCK] 智能门禁凭据已下发'), (112, 112, '2026-09-14 00:00:00', '2026-09-30 23:59:59', 1, 'ONLINE_PASSWORD', 'ACTIVE', 'admin', CURRENT_TIMESTAMP, '[DEMO MOCK] 智能门禁凭据已下发'), (113, 113, '2026-09-14 00:00:00', '2026-09-30 23:59:59', 1, 'ONLINE_PASSWORD', 'ACTIVE', 'admin', CURRENT_TIMESTAMP, '[DEMO MOCK] 智能门禁凭据已下发'), (114, 114, '2026-09-14 00:00:00', '2026-09-30 23:59:59', 1, 'ONLINE_PASSWORD', 'ACTIVE', 'admin', CURRENT_TIMESTAMP, '[DEMO MOCK] 智能门禁凭据已下发') ON CONFLICT (accommodation_id) DO UPDATE SET auth_status = EXCLUDED.auth_status, face_sync_status = EXCLUDED.face_sync_status; -- 6. 排课日程 (教室与场地互斥,包含确定性冲突用例) INSERT INTO public.train_lesson (lesson_id, plan_course_id, t_id, venue_type, class_room_id, site_id, start_time, end_time, create_by, create_time, remark) VALUES (101, 1, 'T101', 1, 'CR01', NULL, '2026-09-16 09:00:00', '2026-09-16 11:30:00', 'admin', CURRENT_TIMESTAMP, '已结课:高铁站房巡检理论'), (102, 1, 'T101', 1, 'CR01', NULL, '2026-09-17 14:00:00', '2026-09-17 16:30:00', 'admin', CURRENT_TIMESTAMP, '已结课:雨棚构件防脱专项理论'), (103, 3, 'T102', 2, NULL, 'SITE02', '2026-09-18 09:00:00', '2026-09-18 12:00:00', 'admin', CURRENT_TIMESTAMP, '已结课:给排水变频调速泵组实作演练'), (104, 2, 'T103', 1, 'CR02', NULL, '2026-09-19 14:00:00', '2026-09-19 17:00:00', 'admin', CURRENT_TIMESTAMP, '已结课:智能公寓门禁联动实演'), (105, 1, 'T101', 1, 'CR01', NULL, '2026-09-24 09:00:00', '2026-09-24 11:30:00', 'admin', CURRENT_TIMESTAMP, '今日核心课次:站台沉降观测技术(预留演示排课四维冲突拦截)'), (106, 3, 'T102', 2, NULL, 'SITE01', '2026-09-25 09:00:00', '2026-09-25 12:00:00', 'admin', CURRENT_TIMESTAMP, '待上课:实训场结构探伤实作'), (107, 4, 'T104', 1, 'CR01', NULL, '2026-09-26 14:00:00', '2026-09-26 16:30:00', 'admin', CURRENT_TIMESTAMP, '待上课:电子班牌数字化实务'), (108, 1, 'T101', 1, 'CR01', NULL, '2026-09-28 09:00:00', '2026-09-28 11:30:00', 'admin', CURRENT_TIMESTAMP, '待上课:研修班综合答辩与结业') ON CONFLICT (lesson_id) DO UPDATE SET start_time = EXCLUDED.start_time, end_time = EXCLUDED.end_time, t_id = EXCLUDED.t_id; -- 7. 考勤签到流水 (包含缺勤0、正常1、迟到2、早退3、请假4) INSERT INTO public.train_student_checkin (checkin_id, enrollment_id, lesson_id, board_id, checkin_way, sign_in_time, sign_out_time, attendance_status, manual_flag, create_by, create_time, remark) VALUES (1, 101, 101, 'BP001', 1, '2026-09-16 08:52:00', '2026-09-16 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (2, 102, 101, 'BP001', 1, '2026-09-16 08:52:00', '2026-09-16 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (3, 103, 101, 'BP001', 1, '2026-09-16 08:52:00', '2026-09-16 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (4, 104, 101, 'BP001', 1, '2026-09-16 08:52:00', '2026-09-16 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (5, 105, 101, 'BP001', 1, '2026-09-16 09:12:00', '2026-09-16 11:32:00', 2, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (6, 106, 101, 'BP001', 1, '2026-09-16 08:52:00', '2026-09-16 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (7, 107, 101, 'BP001', 1, '2026-09-16 08:52:00', '2026-09-16 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (8, 108, 101, 'BP001', 1, '2026-09-16 08:52:00', '2026-09-16 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (9, 109, 101, 'BP001', 1, '2026-09-16 08:52:00', '2026-09-16 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (10, 110, 101, 'BP001', 1, '2026-09-16 08:52:00', '2026-09-16 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (11, 111, 101, 'BP001', 1, '2026-09-16 08:52:00', '2026-09-16 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (12, 112, 101, 'BP001', 1, '2026-09-16 08:52:00', '2026-09-16 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (13, 113, 101, 'BP001', 1, '2026-09-16 08:52:00', '2026-09-16 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (14, 114, 101, 'BP001', 1, '2026-09-16 08:52:00', '2026-09-16 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (15, 115, 101, 'BP001', 1, '2026-09-16 08:52:00', '2026-09-16 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (16, 116, 101, 'BP001', 1, '2026-09-16 08:52:00', '2026-09-16 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (17, 101, 102, 'BP001', 1, '2026-09-17 08:52:00', '2026-09-17 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (18, 102, 102, 'BP001', 1, '2026-09-17 08:52:00', '2026-09-17 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (19, 103, 102, 'BP001', 1, '2026-09-17 08:52:00', '2026-09-17 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (20, 104, 102, 'BP001', 1, '2026-09-17 08:52:00', '2026-09-17 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (21, 105, 102, 'BP001', 1, '2026-09-17 08:52:00', '2026-09-17 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (22, 106, 102, 'BP001', 1, '2026-09-17 08:52:00', '2026-09-17 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (23, 107, 102, 'BP001', 1, '2026-09-17 08:52:00', '2026-09-17 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (24, 108, 102, 'BP001', 1, NULL, NULL, 0, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (25, 109, 102, 'BP001', 1, '2026-09-17 08:52:00', '2026-09-17 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (26, 110, 102, 'BP001', 1, '2026-09-17 08:52:00', '2026-09-17 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (27, 111, 102, 'BP001', 1, '2026-09-17 08:52:00', '2026-09-17 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (28, 112, 102, 'BP001', 1, '2026-09-17 08:52:00', '2026-09-17 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (29, 113, 102, 'BP001', 1, '2026-09-17 08:52:00', '2026-09-17 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (30, 114, 102, 'BP001', 1, '2026-09-17 08:52:00', '2026-09-17 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (31, 115, 102, 'BP001', 1, '2026-09-17 08:52:00', '2026-09-17 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (32, 116, 102, 'BP001', 1, '2026-09-17 08:52:00', '2026-09-17 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (33, 101, 103, 'BP001', 1, '2026-09-18 08:52:00', '2026-09-18 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (34, 102, 103, 'BP001', 1, '2026-09-18 08:52:00', '2026-09-18 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (35, 103, 103, 'BP001', 1, '2026-09-18 08:52:00', '2026-09-18 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (36, 104, 103, 'BP001', 1, '2026-09-18 08:52:00', '2026-09-18 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (37, 105, 103, 'BP001', 1, '2026-09-18 08:52:00', '2026-09-18 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (38, 106, 103, 'BP001', 1, '2026-09-18 08:52:00', '2026-09-18 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (39, 107, 103, 'BP001', 1, '2026-09-18 08:52:00', '2026-09-18 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (40, 108, 103, 'BP001', 1, '2026-09-18 08:52:00', '2026-09-18 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (41, 109, 103, 'BP001', 1, '2026-09-18 08:52:00', '2026-09-18 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (42, 110, 103, 'BP001', 1, '2026-09-18 08:52:00', '2026-09-18 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (43, 111, 103, 'BP001', 1, '2026-09-18 08:52:00', '2026-09-18 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (44, 112, 103, 'BP001', 4, '2026-09-18 09:00:00', '2026-09-18 11:30:00', 4, 1, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (45, 113, 103, 'BP001', 1, '2026-09-18 08:52:00', '2026-09-18 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (46, 114, 103, 'BP001', 1, '2026-09-18 08:52:00', '2026-09-18 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (47, 115, 103, 'BP001', 1, '2026-09-18 08:52:00', '2026-09-18 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (48, 116, 103, 'BP001', 1, '2026-09-18 08:52:00', '2026-09-18 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (49, 101, 104, 'BP001', 1, '2026-09-19 08:52:00', '2026-09-19 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (50, 102, 104, 'BP001', 1, '2026-09-19 08:52:00', '2026-09-19 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (51, 103, 104, 'BP001', 1, '2026-09-19 08:52:00', '2026-09-19 16:10:00', 3, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (52, 104, 104, 'BP001', 1, '2026-09-19 08:52:00', '2026-09-19 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (53, 105, 104, 'BP001', 1, '2026-09-19 08:52:00', '2026-09-19 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (54, 106, 104, 'BP001', 1, '2026-09-19 08:52:00', '2026-09-19 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (55, 107, 104, 'BP001', 1, '2026-09-19 08:52:00', '2026-09-19 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (56, 108, 104, 'BP001', 1, '2026-09-19 08:52:00', '2026-09-19 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (57, 109, 104, 'BP001', 1, '2026-09-19 08:52:00', '2026-09-19 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (58, 110, 104, 'BP001', 1, '2026-09-19 08:52:00', '2026-09-19 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (59, 111, 104, 'BP001', 1, '2026-09-19 08:52:00', '2026-09-19 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (60, 112, 104, 'BP001', 1, '2026-09-19 08:52:00', '2026-09-19 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (61, 113, 104, 'BP001', 1, '2026-09-19 08:52:00', '2026-09-19 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (62, 114, 104, 'BP001', 1, '2026-09-19 08:52:00', '2026-09-19 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (63, 115, 104, 'BP001', 1, '2026-09-19 08:52:00', '2026-09-19 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水'), (64, 116, 104, 'BP001', 1, '2026-09-19 08:52:00', '2026-09-19 11:32:00', 1, 0, 'admin', CURRENT_TIMESTAMP, '课次签到流水') ON CONFLICT (enrollment_id, lesson_id) DO UPDATE SET attendance_status = EXCLUDED.attendance_status, sign_in_time = EXCLUDED.sign_in_time, sign_out_time = EXCLUDED.sign_out_time; -- 8. Score V2 成绩 INSERT INTO public.train_score_item (score_item_id, plan_id, plan_course_id, item_name, item_type, weight, full_score, sort_no, create_by, create_time, remark) VALUES (1, 'PLAN-2026-01', 1, '高铁房建检修规范-期末笔试', 1, 40.00, 100.00, 1, 'admin', CURRENT_TIMESTAMP, '闭卷理论测试'), (2, 'PLAN-2026-01', 3, '给排水设备标准化操作考核', 2, 40.00, 100.00, 2, 'admin', CURRENT_TIMESTAMP, '实操工场考核'), (3, 'PLAN-2026-01', 1, '课堂考勤与平时研讨成绩', 1, 20.00, 100.00, 3, 'admin', CURRENT_TIMESTAMP, '平时出勤与课堂提问') ON CONFLICT (score_item_id) DO UPDATE SET item_name = EXCLUDED.item_name, weight = EXCLUDED.weight, full_score = EXCLUDED.full_score; INSERT INTO public.train_student_score (score_id, enrollment_id, score_item_id, score, source_type, import_time, create_by, create_time, remark) VALUES (1, 101, 1, 92.50, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (2, 101, 2, 95.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (3, 101, 3, 98.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (4, 102, 1, 88.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (5, 102, 2, 86.50, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (6, 102, 3, 92.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (7, 103, 1, 95.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (8, 103, 2, 91.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (9, 103, 3, 96.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (10, 104, 1, 78.50, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (11, 104, 2, 82.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (12, 104, 3, 85.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (13, 105, 1, 84.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (14, 105, 2, 80.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (15, 105, 3, 88.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (16, 106, 1, 68.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (17, 106, 2, 72.50, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (18, 106, 3, 75.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (19, 107, 1, 90.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (20, 107, 2, 94.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (21, 107, 3, 95.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (22, 108, 1, 58.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (23, 108, 2, 65.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (24, 108, 3, 70.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (25, 109, 1, 85.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (26, 109, 2, 88.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (27, 109, 3, 90.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (28, 110, 1, 82.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (29, 110, 2, 84.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (30, 110, 3, 86.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (31, 111, 1, 91.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (32, 111, 2, 93.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (33, 111, 3, 95.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (34, 112, 1, 75.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (35, 112, 2, 78.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (36, 112, 3, 80.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (37, 113, 1, 88.50, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (38, 113, 2, 90.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (39, 113, 3, 92.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (40, 114, 1, 86.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (41, 114, 2, 89.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (42, 114, 3, 91.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (43, 115, 1, 80.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (44, 115, 2, 83.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (45, 115, 3, 85.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (46, 116, 1, 83.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (47, 116, 2, 85.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入'), (48, 116, 3, 87.00, 1, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '正式考评录入') ON CONFLICT (score_id) DO UPDATE SET score = EXCLUDED.score; COMMIT; -- >>> 来源: sql/demo/004_demo_scenario_data.sql >>> -- ============================================================================== -- RailwaySystem Clean Demo 资产: 004_demo_scenario_data.sql -- 适用数据库: KingbaseES V009R003C018 (schema: public) -- ============================================================================== BEGIN; -- 1. 教学资源 INSERT INTO public.train_resource (resource_id, resource_name, resource_type, resource_url, description, status, del_flag, create_by, create_time, remark) VALUES ('RES-001', '高速铁路站房构造与检修工艺图集.pdf', 1, '/profile/upload/train/docs/gt_station_arch_2026.pdf', '站房核心结构权威图册', 1, '0', 'admin', CURRENT_TIMESTAMP, '高清图册'), ('RES-002', '站台雨棚防脱拉索安装与探伤教学视频.mp4', 2, '/profile/upload/train/video/canopy_cable_inspection.mp4', '实操演练视频', 1, '0', 'admin', CURRENT_TIMESTAMP, '实操视频'), ('RES-003', '给排水变频供水泵组交互式3D拆解模型.glb', 3, '/profile/upload/train/models/water_pump_assembly.glb', '3D数字孪生模型', 1, '0', 'admin', CURRENT_TIMESTAMP, '3D模型'), ('RES-004', '营业线施工天窗防护与避车VR交互仿真课件.vr', 4, '/profile/upload/train/vr/rail_safety_window_vr.pkg', '沉浸式VR课件', 1, '0', 'admin', CURRENT_TIMESTAMP, 'VR课件'), ('RES-005', '智能公寓门禁物联通信协议与故障排查指南.pdf', 1, '/profile/upload/train/docs/dms_protocol_guide.pdf', '公寓物联技术指南', 1, '0', 'admin', CURRENT_TIMESTAMP, '协议指南'), ('RES-006', '极端强对流天气防汛防台演练复盘实况.mp4', 2, '/profile/upload/train/video/flood_defense_drill.mp4', '防汛演练纪实视频', 1, '0', 'admin', CURRENT_TIMESTAMP, '演练纪实') ON CONFLICT (resource_id) DO UPDATE SET resource_name = EXCLUDED.resource_name, resource_type = EXCLUDED.resource_type, status = EXCLUDED.status, del_flag = '0'; -- 2. 课程资源关联 INSERT INTO public.train_course_resource (id, c_id, resource_id, sort_no, create_by, create_time) VALUES (1, 'C001', 'RES-001', 1, 'admin', CURRENT_TIMESTAMP), (2, 'C001', 'RES-002', 2, 'admin', CURRENT_TIMESTAMP), (3, 'C004', 'RES-003', 1, 'admin', CURRENT_TIMESTAMP), (4, 'C002', 'RES-004', 1, 'admin', CURRENT_TIMESTAMP), (5, 'C003', 'RES-005', 1, 'admin', CURRENT_TIMESTAMP), (6, 'C005', 'RES-006', 1, 'admin', CURRENT_TIMESTAMP) ON CONFLICT (c_id, resource_id) DO NOTHING; -- 3. 自主学习时长 INSERT INTO public.train_study_duration (dur_id, enrollment_id, plan_course_id, resource_id, learning_content, source_system, source_event_id, start_time, end_time, study_seconds, sync_time, create_by, create_time, remark) VALUES (1, 101, 1, 'RES-001', '站房结构日常维护规程阅读', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0001', '2026-09-18 19:00:00', '2026-09-18 19:53:00', 3180, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (2, 101, 1, 'RES-002', '雨棚探伤高清教学视频回放', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0002', '2026-09-20 19:00:00', '2026-09-20 20:04:00', 3840, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (3, 101, 1, 'RES-003', '暖通变频供水泵组3D模拟拆卸', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0003', '2026-09-22 19:00:00', '2026-09-22 20:15:00', 4500, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (4, 102, 1, 'RES-001', '站房结构日常维护规程阅读', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0004', '2026-09-18 19:00:00', '2026-09-18 20:00:00', 3600, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (5, 102, 1, 'RES-002', '雨棚探伤高清教学视频回放', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0005', '2026-09-20 19:00:00', '2026-09-20 20:11:00', 4260, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (6, 102, 1, 'RES-003', '暖通变频供水泵组3D模拟拆卸', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0006', '2026-09-22 19:00:00', '2026-09-22 20:22:00', 4920, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (7, 103, 1, 'RES-001', '站房结构日常维护规程阅读', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0007', '2026-09-18 19:00:00', '2026-09-18 20:07:00', 4020, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (8, 103, 1, 'RES-002', '雨棚探伤高清教学视频回放', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0008', '2026-09-20 19:00:00', '2026-09-20 20:18:00', 4680, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (9, 103, 1, 'RES-003', '暖通变频供水泵组3D模拟拆卸', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0009', '2026-09-22 19:00:00', '2026-09-22 19:39:00', 2340, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (10, 104, 1, 'RES-001', '站房结构日常维护规程阅读', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0010', '2026-09-18 19:00:00', '2026-09-18 20:14:00', 4440, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (11, 104, 1, 'RES-002', '雨棚探伤高清教学视频回放', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0011', '2026-09-20 19:00:00', '2026-09-20 19:35:00', 2100, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (12, 104, 1, 'RES-003', '暖通变频供水泵组3D模拟拆卸', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0012', '2026-09-22 19:00:00', '2026-09-22 19:46:00', 2760, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (13, 105, 1, 'RES-001', '站房结构日常维护规程阅读', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0013', '2026-09-18 19:00:00', '2026-09-18 20:21:00', 4860, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (14, 105, 1, 'RES-002', '雨棚探伤高清教学视频回放', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0014', '2026-09-20 19:00:00', '2026-09-20 19:42:00', 2520, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (15, 105, 1, 'RES-003', '暖通变频供水泵组3D模拟拆卸', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0015', '2026-09-22 19:00:00', '2026-09-22 19:53:00', 3180, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (16, 106, 1, 'RES-001', '站房结构日常维护规程阅读', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0016', '2026-09-18 19:00:00', '2026-09-18 19:38:00', 2280, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (17, 106, 1, 'RES-002', '雨棚探伤高清教学视频回放', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0017', '2026-09-20 19:00:00', '2026-09-20 19:49:00', 2940, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (18, 106, 1, 'RES-003', '暖通变频供水泵组3D模拟拆卸', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0018', '2026-09-22 19:00:00', '2026-09-22 20:00:00', 3600, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (19, 107, 1, 'RES-001', '站房结构日常维护规程阅读', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0019', '2026-09-18 19:00:00', '2026-09-18 19:45:00', 2700, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (20, 107, 1, 'RES-002', '雨棚探伤高清教学视频回放', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0020', '2026-09-20 19:00:00', '2026-09-20 19:56:00', 3360, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (21, 107, 1, 'RES-003', '暖通变频供水泵组3D模拟拆卸', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0021', '2026-09-22 19:00:00', '2026-09-22 20:07:00', 4020, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (22, 108, 1, 'RES-001', '站房结构日常维护规程阅读', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0022', '2026-09-18 19:00:00', '2026-09-18 19:52:00', 3120, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (23, 108, 1, 'RES-002', '雨棚探伤高清教学视频回放', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0023', '2026-09-20 19:00:00', '2026-09-20 20:03:00', 3780, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (24, 108, 1, 'RES-003', '暖通变频供水泵组3D模拟拆卸', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0024', '2026-09-22 19:00:00', '2026-09-22 20:14:00', 4440, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (25, 109, 1, 'RES-001', '站房结构日常维护规程阅读', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0025', '2026-09-18 19:00:00', '2026-09-18 19:59:00', 3540, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (26, 109, 1, 'RES-002', '雨棚探伤高清教学视频回放', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0026', '2026-09-20 19:00:00', '2026-09-20 20:10:00', 4200, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (27, 109, 1, 'RES-003', '暖通变频供水泵组3D模拟拆卸', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0027', '2026-09-22 19:00:00', '2026-09-22 20:21:00', 4860, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (28, 110, 1, 'RES-001', '站房结构日常维护规程阅读', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0028', '2026-09-18 19:00:00', '2026-09-18 20:06:00', 3960, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (29, 110, 1, 'RES-002', '雨棚探伤高清教学视频回放', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0029', '2026-09-20 19:00:00', '2026-09-20 20:17:00', 4620, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (30, 110, 1, 'RES-003', '暖通变频供水泵组3D模拟拆卸', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0030', '2026-09-22 19:00:00', '2026-09-22 19:38:00', 2280, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (31, 111, 1, 'RES-001', '站房结构日常维护规程阅读', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0031', '2026-09-18 19:00:00', '2026-09-18 20:13:00', 4380, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (32, 111, 1, 'RES-002', '雨棚探伤高清教学视频回放', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0032', '2026-09-20 19:00:00', '2026-09-20 20:24:00', 5040, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (33, 111, 1, 'RES-003', '暖通变频供水泵组3D模拟拆卸', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0033', '2026-09-22 19:00:00', '2026-09-22 19:45:00', 2700, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (34, 112, 1, 'RES-001', '站房结构日常维护规程阅读', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0034', '2026-09-18 19:00:00', '2026-09-18 20:20:00', 4800, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (35, 112, 1, 'RES-002', '雨棚探伤高清教学视频回放', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0035', '2026-09-20 19:00:00', '2026-09-20 19:41:00', 2460, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (36, 112, 1, 'RES-003', '暖通变频供水泵组3D模拟拆卸', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0036', '2026-09-22 19:00:00', '2026-09-22 19:52:00', 3120, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (37, 113, 1, 'RES-001', '站房结构日常维护规程阅读', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0037', '2026-09-18 19:00:00', '2026-09-18 19:37:00', 2220, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (38, 113, 1, 'RES-002', '雨棚探伤高清教学视频回放', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0038', '2026-09-20 19:00:00', '2026-09-20 19:48:00', 2880, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (39, 113, 1, 'RES-003', '暖通变频供水泵组3D模拟拆卸', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0039', '2026-09-22 19:00:00', '2026-09-22 19:59:00', 3540, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (40, 114, 1, 'RES-001', '站房结构日常维护规程阅读', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0040', '2026-09-18 19:00:00', '2026-09-18 19:44:00', 2640, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (41, 114, 1, 'RES-002', '雨棚探伤高清教学视频回放', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0041', '2026-09-20 19:00:00', '2026-09-20 19:55:00', 3300, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (42, 114, 1, 'RES-003', '暖通变频供水泵组3D模拟拆卸', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0042', '2026-09-22 19:00:00', '2026-09-22 20:06:00', 3960, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (43, 115, 1, 'RES-001', '站房结构日常维护规程阅读', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0043', '2026-09-18 19:00:00', '2026-09-18 19:51:00', 3060, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (44, 115, 1, 'RES-002', '雨棚探伤高清教学视频回放', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0044', '2026-09-20 19:00:00', '2026-09-20 20:02:00', 3720, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (45, 115, 1, 'RES-003', '暖通变频供水泵组3D模拟拆卸', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0045', '2026-09-22 19:00:00', '2026-09-22 20:13:00', 4380, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (46, 116, 1, 'RES-001', '站房结构日常维护规程阅读', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0046', '2026-09-18 19:00:00', '2026-09-18 19:58:00', 3480, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (47, 116, 1, 'RES-002', '雨棚探伤高清教学视频回放', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0047', '2026-09-20 19:00:00', '2026-09-20 20:09:00', 4140, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡'), (48, 116, 1, 'RES-003', '暖通变频供水泵组3D模拟拆卸', 'RAIL_ELEARNING_V2', 'EVT-STUDY-2026-0048', '2026-09-22 19:00:00', '2026-09-22 20:20:00', 4800, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '移动端自主学习打卡') ON CONFLICT (dur_id) DO UPDATE SET study_seconds = EXCLUDED.study_seconds, end_time = EXCLUDED.end_time; -- 4. 学员360画像 INSERT INTO public.train_student_portrait (portrait_id, enrollment_id, attendance_rate, theory_score, practical_score, total_study_hour, label_tag, portrait_content, generated_time, create_by, create_time, remark) VALUES (101, 101, 100.00, 92.50, 95.00, 24.50, '优秀学员,技术骨干,全勤标兵', '{"attendance":100.0,"theory":92.5,"practice":95.0,"studyHour":24.5,"safetySense":98.0,"discipline":96.0}', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '综合画像智能测算'), (102, 102, 100.00, 88.00, 86.50, 18.00, '全勤标兵,实作能手', '{"attendance":100.0,"theory":88.0,"practice":86.5,"studyHour":18.0,"safetySense":98.0,"discipline":96.0}', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '综合画像智能测算'), (103, 103, 100.00, 95.00, 91.00, 26.00, '技术骨干,防汛骨干,理论前沿', '{"attendance":100.0,"theory":95.0,"practice":91.0,"studyHour":26.0,"safetySense":98.0,"discipline":96.0}', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '综合画像智能测算'), (104, 104, 100.00, 78.50, 82.00, 15.50, '勤勉好学,安全卫士', '{"attendance":100.0,"theory":78.5,"practice":82.0,"studyHour":15.5,"safetySense":98.0,"discipline":96.0}', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '综合画像智能测算'), (105, 105, 75.00, 84.00, 80.00, 20.00, '作风优良,综合骨干', '{"attendance":75.0,"theory":84.0,"practice":80.0,"studyHour":20.0,"safetySense":98.0,"discipline":96.0}', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '综合画像智能测算'), (106, 106, 100.00, 68.00, 72.50, 12.00, '稳步提升,出勤良好', '{"attendance":100.0,"theory":68.0,"practice":72.5,"studyHour":12.0,"safetySense":98.0,"discipline":96.0}', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '综合画像智能测算'), (107, 107, 100.00, 90.00, 94.00, 25.00, '拔尖人才,实作标杆', '{"attendance":100.0,"theory":90.0,"practice":94.0,"studyHour":25.0,"safetySense":98.0,"discipline":96.0}', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '综合画像智能测算'), (108, 108, 75.00, 58.00, 65.00, 10.50, '需重点帮扶,理论待补强', '{"attendance":75.0,"theory":58.0,"practice":65.0,"studyHour":10.5,"safetySense":98.0,"discipline":96.0}', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '综合画像智能测算'), (109, 109, 100.00, 85.00, 88.00, 19.50, '全勤学员,技术标兵', '{"attendance":100.0,"theory":85.0,"practice":88.0,"studyHour":19.5,"safetySense":98.0,"discipline":96.0}', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '综合画像智能测算'), (110, 110, 100.00, 82.00, 84.00, 17.00, '勤恳踏实,业务能手', '{"attendance":100.0,"theory":82.0,"practice":84.0,"studyHour":17.0,"safetySense":98.0,"discipline":96.0}', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '综合画像智能测算'), (111, 111, 100.00, 91.00, 93.00, 23.00, '理论扎实,排头兵', '{"attendance":100.0,"theory":91.0,"practice":93.0,"studyHour":23.0,"safetySense":98.0,"discipline":96.0}', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '综合画像智能测算'), (112, 112, 100.00, 75.00, 78.00, 14.50, '作风硬朗,安全先锋', '{"attendance":100.0,"theory":75.0,"practice":78.0,"studyHour":14.5,"safetySense":98.0,"discipline":96.0}', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '综合画像智能测算'), (113, 113, 100.00, 88.50, 90.00, 21.00, '技术能手,优秀学员', '{"attendance":100.0,"theory":88.5,"practice":90.0,"studyHour":21.0,"safetySense":98.0,"discipline":96.0}', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '综合画像智能测算'), (114, 114, 100.00, 86.00, 89.00, 20.50, '全勤标兵,严谨细致', '{"attendance":100.0,"theory":86.0,"practice":89.0,"studyHour":20.5,"safetySense":98.0,"discipline":96.0}', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '综合画像智能测算'), (115, 115, 100.00, 80.00, 83.00, 16.00, '学习积极,出勤达标', '{"attendance":100.0,"theory":80.0,"practice":83.0,"studyHour":16.0,"safetySense":98.0,"discipline":96.0}', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '综合画像智能测算'), (116, 116, 100.00, 83.00, 85.00, 18.50, '业务骨干,善于钻研', '{"attendance":100.0,"theory":83.0,"practice":85.0,"studyHour":18.5,"safetySense":98.0,"discipline":96.0}', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '综合画像智能测算') ON CONFLICT (enrollment_id) DO UPDATE SET total_study_hour = EXCLUDED.total_study_hour, theory_score = EXCLUDED.theory_score, practical_score = EXCLUDED.practical_score, attendance_rate = EXCLUDED.attendance_rate, label_tag = EXCLUDED.label_tag, portrait_content = EXCLUDED.portrait_content; -- 5. 外部系统映射与审计流水 INSERT INTO public.train_external_resource_mapping (mapping_id, dorm_id, vendor_code, local_resource_type, external_resource_type, external_resource_id, is_primary, mapping_status, last_sync_time, create_by, create_time) VALUES (1, 'DORM-ZY-101', 'DMS', 'DORM', 'ROOM', 'MOCK-DMS-ROOM-101', 1, 'ACTIVE', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP), (2, 'DORM-ZY-102', 'DMS', 'DORM', 'ROOM', 'MOCK-DMS-ROOM-102', 1, 'ACTIVE', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP) ON CONFLICT (mapping_id) DO NOTHING; INSERT INTO public.train_external_operation (operation_id, door_auth_id, business_type, vendor_code, operation_type, operation_status, idempotency_key, attempt_count, requested_at, completed_at, create_by, create_time, remark) VALUES (1, 101, 'DOOR_AUTH', 'DMS', 'ISSUE_CREDENTIAL', 'SUCCESS', 'IDEMP-DMS-CRED-001', 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '[DEMO MOCK] 门禁凭据下发成功'), (2, 102, 'DOOR_AUTH', 'DMS', 'RECONCILE', 'SUCCESS', 'IDEMP-DMS-RECON-001', 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '[DEMO MOCK] 离线对账完成') ON CONFLICT (operation_id) DO NOTHING; COMMIT;