# SYFJGYD学员管理系统 — 客户演示候选版本交付报告 (Clean Demo Delivery) > **交付状态判定**:`DEMO_CANDIDATE_READY = YES` > **报告生成时间**:2026-09-24 > **责任交付主体**:RailwaySystem 工程交付组 --- ## 一、交付基线与运行态证明 本候选版本严格在完全隔离的专用演示环境构建并端到端验收闭环,坚决不触碰 `training`(共享试用库)与 `railwaysystem_integrated_qa_20260916`(综合验收库),彻底杜绝跨环境脏数据干扰。 ```text ================================================================================ DEMO RUNTIME SPECIFICATIONS ================================================================================ DEMO_CANDIDATE_READY : YES ACTIVE_GIT_COMMIT : e9f468cefd20c592de3387060a7c0743c8464163 ACTIVE_GIT_BRANCH : fix/phase0-product-defects-20260923 ACTIVE_DATABASE : training_demo_clean ACTIVE_DATABASE_DRIVER : com.kingbase8.Driver (8.6.0) ACTIVE_BACKEND_PORT : 8096 ACTIVE_FRONTEND_PORT : 1024 FRONTEND_SOURCE : build_ui/ (PID: 30822, vue-cli-service serve) DATABASE_ISOLATION_STATUS : STRICTLY_ISOLATED (Verified) ORPHAN_FOREIGN_KEYS : 0 MIGRATION_FATAL_ERRORS : 0 BOOTSTRAP_RESULT : SUCCESS BACKEND_SUREFIRE_TESTS_TOTAL : 536 (ALL PASS) ================================================================================ ``` --- ## 二、演示数据库构建与数据丰富度盘点 ### 1. 结构与迁移链验证 - **引导链执行**:RuoYi 官方基础表 -> Quartz 调度表 -> Phase 0.5 生产级系统元数据基线(106 菜单、44 字典类型、500 字典数据) -> 人员/教学设施/业务表精确结构 -> Baseline 教师种子 -> V2 增量迁移链(001~010 全部 PASS) -> 系统补丁链(001~015 全部 PASS)。 - **废弃资产清理**:旧版单表 `train_score_info` 已物理下线,全面切换为结构健壮的 Score V2 架构(`train_score_item` + `train_student_score`)。 - **数据表总量统计**: - 总物理表数:`TOTAL_TABLE_COUNT = 55` - 培训业务表数:`TRAIN_TABLE_COUNT = 23` - 系统平台表数:`SYS_TABLE_COUNT = 19` - Quartz 任务表数:`QUARTZ_TABLE_COUNT = 11` - 代码生成辅助表数:`GEN_TABLE_COUNT = 2` ### 2. 受版本控制的演示数据资产 (`RuoYi-Vue/sql/demo/`) 演示数据均已固化为工程版本控制文件,支持随时无损重置: - `001_demo_accounts.sql`:预置演示管理员、主讲教师、参训学员三类业务角色; - `002_demo_master_data.sql`:主数据(教师、学员、教室、场地、宿舍、班牌); - `003_demo_business_data.sql`:开班计划、学员名单、排课课次、考勤签到、住宿分配、成绩明细; - `004_demo_scenario_data.sql`:数字资源、学习时长、学员画像雷达维度、DMS 对账审计; - `reset_demo_data.sql`:一键清空并重置黄金演示状态; - `verify_demo_data.sql`:包含 15 项核心业务指标的自动化 PL/pgSQL 强断言脚本。 ### 3. 业务数据规模达成指标 | 业务实体类别 | 交付指标要求 | 演示库实际装载数 | 状态判定 | 业务特征与代表数据 | | :--- | :--- | :--- | :--- | :--- | | **培训教师** | `>= 6` 位 | **7** 位 | **PASS** | 崔宏伟(高工,绑定T101)、张建国、刘文波等 | | **参训学员** | `>= 30` 人 | **35** 人 | **PASS** | 李强(绑定S101)、王芳、张伟等,身份证脱敏 | | **标准教室** | `>= 4` 间 | **4** 间 | **PASS** | 101/102多功能多媒体教室、201计算机室、305报告厅 | | **实训场地** | `>= 3` 处 | **3** 处 | **PASS** | 给排水工场、房建实训工场、建筑结构检测实训基地 | | **学员宿舍** | `>= 20` 间 | **20** 间 | **PASS** | A栋男生宿舍10间、B栋女生宿舍10间,容量楼层完整 | | **培训计划** | 覆盖 4 类状态 | **4** 个班期 | **PASS** | 涵盖进行中(秋季研修班)、即将开班、已结训、草稿 | | **参训学员名单** | 多状态覆盖 | **45** 条 | **PASS** | 涵盖已报到(16人)、待报到、请假、放弃等 | | **住宿分配记录** | 多状态与交互预留 | **16** 条 | **PASS** | 在住 12 人、预留现场办理入住 2 人、退宿 2 人 | | **排课日程课次** | 过去/近期/未来 | **8** 课次 | **PASS** | 涵盖理论课与实操课,预留确定性排课冲突检测 | | **考勤打卡流水** | 非空非全零多状态 | **64** 条 | **PASS** | 正常 50、迟到 6、早退 4、请假 4,分析图表饱和 | | **Score V2 成绩** | 彻底无废表 | **48** 条 | **PASS** | 3 项考评维度,自然高斯分布,360 画像数据闭环 | | **自主学习资源** | 多类别富媒体 | **6** 门 | **PASS** | 高速铁路房建设施检修规范、施工安全等 | | **学习时长记录** | 非零时长 | **48** 条 | **PASS** | 学员自学累计时长、支持画像分析提取 | | **学员 360 画像** | 五维雷达模型 | **16** 份 | **PASS** | 理论、实操、考勤、自学、日常表现全面展示 | --- ## 三、端到端 UI 页面验收矩阵 (MCP Playwright 真实浏览器实测) 利用 MCP Playwright 真实浏览器工具,对全系统各角色业务页面进行无死角巡检取证: - **验收原则**:严禁 DOM 篡改、严禁伪造测试截图、严禁硬编码虚假状态。 - **验收结果门禁**: - `PAGE_LOAD_ERROR = 0` - `BROKEN_CORE_API = 0` - `UNEXPECTED_EMPTY_PAGE = 0` | 序号 | 页面路径 / 功能模块 | 对应角色 | 加载状态 | 业务数据呈现 | 主干 API 响应 | 核心交互测试 | 演示就绪判定 | 取证截图凭据 | | :---: | :--- | :---: | :---: | :---: | :---: | :---: | :---: | :--- | | 1 | `/login` (系统登录页) | 公共 | 正常 | 免验证码已优化 | 200 (免验证码) | 账号密码秒级登录 | **PASS** | `01_login_page.png` | | 2 | `/index` (系统首页) | 培训管理员 | 正常 | 导航树完备 | 200 (`/getInfo`) | 模块导航畅通 | **PASS** | `02_admin_index.png` | | 3 | `/person/teacher` (教师管理) | 培训管理员 | 正常 | 7位教师全字段 | 200 (`/train/teacher/list`) | 账号关联/解绑操作 | **PASS** | `03_admin_teacher.png` | | 4 | `/person/student` (学员管理) | 培训管理员 | 正常 | 35位学员全字段 | 200 (`/train/student/list`) | 档案查看/脱敏身份证 | **PASS** | `04_admin_student.png` | | 5 | `/equip/classroom` (教室信息) | 培训管理员 | 正常 | 4间多功能教室 | 200 (`/train/classroom/list`) | 容纳人数/状态配置 | **PASS** | `05_admin_classroom.png` | | 6 | `/equip/site` (实训场地) | 培训管理员 | 正常 | 3处作业基地 | 200 (`/train/trainingSite/list`) | 专业工种/场地类型 | **PASS** | `06_admin_site.png` | | 7 | `/equip/dormitory` (宿舍房间) | 培训管理员 | 正常 | 20间标准宿舍 | 200 (`/train/dormitory/list`) | 男女分区/床位状态 | **PASS** | `07_admin_dormitory.png` | | 8 | `/equip/accommodation` (住宿管理) | 培训管理员 | 正常 | 16条住宿记录 | 200 (`/train/accommodation/list`) | 办理入住/退宿流转 | **PASS** | `08_admin_accommodation.png` | | 9 | `/equip/auth` (门禁管理) | 培训管理员 | 正常 | 门禁映射/凭据 | 200 (`/train/dms/credential/list`) | 外部接口契约/[DEMO MOCK] | **PASS** | `09_admin_access_auth.png` | | 10 | `/equip/board` (电子班牌) | 培训管理员 | 正常 | 2台数字化班牌 | 200 (`/train/classSignboard/list`) | 设备绑定/在线状态 | **PASS** | `10_admin_board.png` | | 11 | `/coursemgr/course` (课程管理) | 培训管理员 | 正常 | 8门房建专业课程 | 200 (`/train/course/list`) | 理论/实操学时区分 | **PASS** | `11_admin_course.png` | | 12 | `/coursemgr/plan` (开班计划) | 培训管理员 | 正常 | 4期各状态班期 | 200 (`/train/plans`) | 排课课次/参训名单入口 | **PASS** | `12_admin_class_plan.png` | | 13 | 参训名单弹窗 (开班计划内) | 培训管理员 | 正常 | 19名参训学员 | 200 (`/train/plans/1/enrollments`) | 报到/请假状态展示 | **PASS** | `13_admin_plan_enrollments_dialog.png` | | 14 | `/analysis/report` (开班签到) | 培训管理员 | 正常 | 报到流水记录 | 200 (`/train/classPlan/checkin/list`) | 报到确认打卡流转 | **PASS** | `14_admin_analysis_report.png` | | 15 | `/analysis/checkin` (课程签到) | 培训管理员 | 正常 | 考勤明细数据 | 200 (`/train/attendance/list`) | 正常/迟到/早退全覆盖 | **PASS** | `15_admin_analysis_checkin.png` | | 16 | `/analysis/duration` (学习时长) | 培训管理员 | 正常 | 自学资源时长 | 200 (`/train/duration/list`) | 统计总学时及明细 | **PASS** | `16_admin_analysis_duration.png` | | 17 | `/analysis/attendance` (考勤分析) | 培训管理员 | 正常 | 考勤图表/分布率 | 200 (`/train/analytics/attendance`) | 非零/多维度动态图表 | **PASS** | `17_admin_analysis_attendance.png` | | 18 | `/portrait` (学员画像) | 培训管理员 | 正常 | 雷达图/能力指标 | 200 (`/train/studentPortrait/list`) | 五维综合素质评价 | **PASS** | `18_admin_portrait.png` | | 19 | `/teacher` (教师工作台) | 主讲教师 | 正常 | 讲师档案/在教班级 | 200 (`/train/me/teacher/workbench`) | 认证教师身份工号T101 | **PASS** | `19_teacher_workbench.png` | | 20 | 教师专属课表 (工作台内) | 主讲教师 | 正常 | 个人授课日程表 | 200 (`/train/me/teacher/timetable`) | 日期视图/教室与课目 | **PASS** | `20_teacher_timetable.png` | | 21 | `/student` (学员个人中心) | 参训学员 | 正常 | 学员基本档案/学号 | 200 (`/train/me/student`) | 脱敏身份证/工种单位 | **PASS** | `21_student_center.png` | | 22 | 学员报到信息 (学员中心内) | 参训学员 | 正常 | 报到凭证/已分宿舍 | 200 (`/train/me/student/report`) | 宿舍A-101/床位信息 | **PASS** | `22_student_report.png` | | 23 | 学员个人考勤 (学员中心内) | 参训学员 | 正常 | 个人出勤记录流水 | 200 (`/train/me/student/attendance`) | 各课次出勤状态跟踪 | **PASS** | `23_student_attendance.png` | | 24 | 学员学业概况 (学员中心内) | 参训学员 | 正常 | 学时累计/成绩综述 | 200 (`/train/me/student/duration`) | 自主学习成长统计 | **PASS** | `24_student_academic_discipline.png` | --- ## 四、外部 DMS 门禁对接口径与安全合规边界 在与客户对接的 27 个 DMS 外部接口中,系统严格落实数据真实性与生产安全红线原则: 1. **接口真实鉴权**:系统与真实 DMS 接口服务的网络与实时 Token 鉴权完全连通(`REAL_LIVE_AUTH_SUCCESS`)。 2. **硬件资源真实反映**:由于客户现场当前尚未录入真实楼栋、房间与物理门锁资源,系统如实反映外部只读资源接口的空结果契约,绝不伪造虚假数据谎称物理硬件已部署完毕。 3. **安全红线与仿真标识**: - 远程开锁(`Remote Unlock`):遵循保卫安全策略,全面标记为 `SECURITY_PROHIBITED`,禁止远程执行。 - 凭据生命周期(密码生成/下发/删除):在演示环境下统一采用受控的 `[DEMO MOCK]` 仿真模式,并完整记录审计日志,确保客户演示流程流畅且合规。 --- ## 五、环境启动与演示维护指引 ### 1. 启动 Clean Demo 后端运行时 ```bash # 启动指向隔离演示库 training_demo_clean 的后端进程 python3 scripts/qa/start_demo_clean_backend.py ``` - 后端端口:`8096` - 数据库连接:`jdbc:kingbase8://127.0.0.1:14321/training_demo_clean` ### 2. 前端服务运行 前端工程源目录为 `build_ui/`,运行端口为 `1024`: ```bash # 访问地址 http://localhost:1024 ``` ### 3. 一键重置黄金演示数据 在多次现场演示之间,如需将已修改的数据恢复至最初纯净黄金状态: ```bash java -cp "$HOME/.m2/repository/com/kingbase/kingbase8/8.6.0/kingbase8-8.6.0.jar:." LoadAndVerifyDemoData ``` 脚本将自动重放全部 SQL 种子并执行强断言,保障系统持续处于可随时演示的高可用状态。 --- ## 六、交付结论 经严谨构建、自动化测试、真实隔离数据库环境装载与 MCP Playwright 真实浏览器 24 模块全要素巡检取证: - 系统启动正常、运行稳定; - 三业务角色无缝切换、权限严密隔离; - 演示数据饱和充实,全面消除空页面与全零图表; - 核心业务流程全线贯通; - 真实接口契约合规真实; - 客户演示文档完备清晰。 判定:**`DEMO_CANDIDATE_READY = YES`**,完全具备面向客户进行高质量业务演示的交付条件!