14 KiB
14 KiB
RailwaySystem Phase 3:Epic 架构概览 (Epic Overview)
设计基线: 紧扣 PRD V1.0 业务闭环与 API Contract V1.0,严禁按 21 张数据库表机械建 Epic。 Epic 规划原则: 每一个 Epic 代表一个高内聚、有明确业务价值、对主链路有明确支撑的业务能力域。
1. Epic 汇总视图
系统一期 P0 研发共划分为 12 个核心 Epic,覆盖从基础设施、主数据、开班排课、过程执行、效果评估到端到端验收的完整闭环:
flowchart TB
subgraph CoreBase["支撑基线与基础数据"]
E11[EPIC-11 权限/字典/系统基线]
E01[EPIC-01 基础主数据必要集合]
E06[EPIC-06 门禁与外部设备Mock]
end
subgraph PlanCore["开班与排课核心"]
E02[EPIC-02 培训计划与本期课程]
E03[EPIC-03 参训人员管理]
E04[EPIC-04 排课与课表管理]
end
subgraph Execution["过程执行支撑"]
E05[EPIC-05 住宿与报到管理]
E07[EPIC-07 课次考勤管理]
E09[EPIC-09 外部学习记录接入]
end
subgraph Assessment["效果评估与结训"]
E08[EPIC-08 成绩项目与成绩台账]
E10[EPIC-10 计划统计与综合工作台]
end
subgraph Acceptance["端到端验收"]
E12[EPIC-12 P0端到端业务闭环验收]
end
E11 --> E01
E06 --> E05
E06 --> E07
E06 --> E09
E01 --> E02
E02 --> E03
E02 --> E04
E03 --> E05
E04 --> E07
E05 --> E07
E07 --> E08
E03 --> E09
E08 --> E10
E07 --> E10
E02 --> E10
E10 --> E12
style CoreBase fill:#f5f5f5,stroke:#9e9e9e,stroke-width:1px
style PlanCore fill:#e8f5e9,stroke:#4caf50,stroke-width:1px
style Execution fill:#e1f5fe,stroke:#03a9f4,stroke-width:1px
style Assessment fill:#fff8e1,stroke:#ffc107,stroke-width:1px
style Acceptance fill:#fce4ec,stroke:#e91e63,stroke-width:2px
2. Epic 详细定义
EPIC-01 基础主数据必要集合 (Base Master Data)
- Epic ID:
EPIC-01 - 业务目标: 为整个智慧培训业务链路提供最小必需的师资、人员、课程、教室、场地和宿舍主数据底座,支撑后续计划选课、排课冲突校验与住宿分配。
- 包含 P0 Issue:
ISSUE-01-01: 师资主数据管理能力 (Teacher CRUD)ISSUE-01-02: 学员主档建档与安全脱敏管理 (Student Security & Masking)ISSUE-01-03: 课程库基础资料管理 (Course Base CRUD)ISSUE-01-04: 教学空间资源维护(普通教室与实训场地) (Classroom & Site)ISSUE-01-05: 宿舍房间与楼宇基础数据维护 (Dormitory Info & Cascading Options)
- 对应 P0 API:
GET /train/teacher/list,GET /train/teacher/{tId},POST /train/teacher,PUT /train/teacher/{tId}GET /train/student/list,GET /train/student/{sId},POST /train/studentGET /train/course/list,GET /train/course/{cId},POST /train/courseGET /train/classroom/list,GET /train/classroom/{classRoomId},POST /train/classroomGET /train/training-site/list,GET /train/training-site/{siteId},POST /train/training-siteGET /train/dormitory/list,GET /train/dormitory/{dormId},POST /train/dormitory,GET /train/dormitory/options
- 涉及数据表:
train_teacher,train_student,train_course,train_classroom,train_training_site,train_dormitory_info - 明确不做什么: 不做教师资质多版本审批、不做学员主档多机构合并、不做课程版本流转、不做独立教学资源管理与班牌注册管理(属于 P1)。
EPIC-02 培训计划与本期课程 (Plan & Plan-Course)
- Epic ID:
EPIC-02 - 业务目标: 实现培训班级项目的立项、编辑、周期维护与结训归档,并支撑本期教学课程的选定与课时引入。
- 包含 P0 Issue:
ISSUE-02-01: 培训计划全生命周期创建与管理 (Plan Lifecycle)ISSUE-02-02: 本期培训课程引入与配置 (Plan-Course Mapping)
- 对应 P0 API:
GET /train/plans,POST /train/plans,GET /train/plans/{planId},PUT /train/plans/{planId},POST /train/plans/{planId}/completeGET /train/plans/{planId}/courses,POST /train/plans/{planId}/courses
- 涉及数据表:
train_class_plan,train_plan_course - 明确不做什么: 不做多级立项审批流;一期结训不设考核不及格阻断结业的强制卡点(Review Round 1 明确剔除)。
EPIC-03 参训人员管理 (Enrollment Lifecycle)
- Epic ID:
EPIC-03 - 业务目标: 建立特定培训计划与学员的强业务绑定关系(形成
enrollment_id),支持单名录入与 Excel 批量解析导入,提供参训全景档案查询。 - 包含 P0 Issue:
ISSUE-03-01: 本期参训名单维护与单条录入 (Enrollment Core & Detail)ISSUE-03-02: 参训人员 Excel 批量导入与防重校验 (Batch Enrollment Import)
- 对应 P0 API:
GET /train/plans/{planId}/enrollments,POST /train/plans/{planId}/enrollments,GET /train/enrollments/{enrollmentId}POST /train/plans/{planId}/enrollments/batch
- 涉及数据表:
train_enrollment,train_student - 明确不做什么: 不做复杂的退宿连带手续审批(仅做参训状态变更);批量导入错误行不引入异步消息通知,直接返回同步解析结果列表。
EPIC-04 排课与课表管理 (Scheduling & Timetable)
- Epic ID:
EPIC-04 - 业务目标: 支撑培训班课程的教学时段排定,实现教师、普通教室、实训场地、班级时段四维冲突检测与数据库行级排他锁保护,聚合生成本班完整课程表。
- 包含 P0 Issue:
ISSUE-04-01: 课次编排与多维度排课并发冲突检测 (Lesson Scheduling & Conflict Lock)ISSUE-04-02: 培训计划完整课程表聚合展示 (Plan Timetable Aggregation)
- 对应 P0 API:
POST /train/plans/{planId}/lessons,PUT /train/lessons/{lessonId},POST /train/lessons/check-conflictGET /train/plans/{planId}/timetable
- 涉及数据表:
train_lesson,train_plan_course,train_teacher,train_classroom,train_training_site - 明确不做什么: 不做遗传算法自动智能排课;不做复杂的周循环与双周排课规则;教师个人课表属于 P1。
EPIC-05 住宿与报到管理 (Accommodation & Report)
- Epic ID:
EPIC-05 - 业务目标: 管理学员参训期间的生活保障与入班核验,包含批量智能预分房(严格按性别隔离与行锁防超卖)、单人调房、走读设定,以及学员现场报到与生命周期时限告警控制。
- 包含 P0 Issue:
ISSUE-05-01: 批量住宿智能预分配与防超卖控制 (Batch Accommodation Allocation)ISSUE-05-02: 住宿人工调房、走读设置与住宿安排查看 (Accommodation Adjustment & Roster)ISSUE-05-03: 学员报到确认与生命周期时限控制 (Student Report & Lifecycle Policy)
- 对应 P0 API:
POST /train/plans/{planId}/accommodations/preallocatePUT /train/enrollments/{enrollmentId}/accommodation,PUT /train/enrollments/{enrollmentId}/accommodation/day-student,GET /train/plans/{planId}/accommodationsPOST /train/enrollments/{enrollmentId}/report
- 涉及数据表:
train_accommodation,train_report_record,train_dormitory_info,train_enrollment - 明确不做什么: 不做水电费计量结算;房态实时网格看板属于 P1;报到逾期不做硬阻断数据库约束,采用弹性时限告警策略。
EPIC-06 门禁与外部设备Mock (Device Integration & Mock)
- Epic ID:
EPIC-06 - 业务目标: 建立防腐适配器体系 (SPI),提供电子班牌人脸考勤、智能门禁授权、外部 VR/3D 学习记录对接的 Mock 实现与测试桩,并通过事务提交后(
afterCommit)轻量解耦触发门禁同步,支持失败重试。 - 包含 P0 Issue:
ISSUE-06-01: 外部设备适配器 SPI 体系与 Mock 桩实现 (Adapter SPI & Mocks)ISSUE-06-02: 门禁授权事务后解耦下发与失败手工重试 (Door Auth After-Commit & Manual Retry)
- 对应 P0 API:
POST /train/accommodations/{accommodationId}/auth/sync
- 涉及数据表:
train_dorm_auth,train_accommodation,train_student - 明确不做什么: 严禁对接真实厂家硬件私有协议;严禁引入 MQ、Kafka、RabbitMQ、Outbox 等重型中间件;门禁授权下发流水查询属于 P1。
EPIC-07 课次考勤管理 (Lesson Attendance)
- Epic ID:
EPIC-07 - 业务目标: 围绕具体课次 (
lesson_id) 与参训档案 (enrollment_id) 开展出勤管理,支撑班牌刷脸打卡签到/签退、任课教师实时查看课次考勤明细,以及异常出勤的人工修正与留痕。 - 包含 P0 Issue:
ISSUE-07-01: 课次班牌打卡签到签退与跨班不变量防护 (Check-in/Check-out & Invariant INV-01)ISSUE-07-02: 课次考勤名单查看与人工考勤状态修正 (Lesson Attendance Roster & Manual Rectification)
- 对应 P0 API:
POST /train/attendance/sign-in,POST /train/attendance/sign-outGET /train/lessons/{lessonId}/attendance,PUT /train/attendance/{checkinId}
- 涉及数据表:
train_attendance_record,train_lesson,train_enrollment - 明确不做什么: 不做基于 GPS 地理围栏的移动端打卡;人工补录未打卡记录属于 P1;不变量 INV-01(课次所属班级 == 学员参训班级)在此强制阻断。
EPIC-08 成绩项目与成绩台账 (Score Management)
- Epic ID:
EPIC-08 - 业务目标: 实现培训班成绩考核科目与百分制权重配置,支持教师对单学员或批量录入成绩,强校验满分上限与跨班归属,生成全班加权综合得分台账大表与单人成绩单。
- 包含 P0 Issue:
ISSUE-08-01: 本期成绩考核项与权重配置 (Score Items & Weight Config, Invariant INV-04)ISSUE-08-02: 学员成绩录入、上限校验与全班成绩台账大表 (Score Entry, Matrix VO, Invariant INV-02 & INV-05)
- 对应 P0 API:
GET /train/plans/{planId}/score-items,POST /train/plans/{planId}/score-itemsPOST /train/scores/entry,GET /train/plans/{planId}/scores/matrix,GET /train/enrollments/{enrollmentId}/scores
- 涉及数据表:
train_score_item,train_student_score,train_enrollment - 明确不做什么: 不做成绩发布审批流程;Excel 批量导入成绩属于 P1;严禁硬编码及格线与不合格阻断(仅计算
weightedTotalScore)。
EPIC-09 外部学习记录接入 (External Learning Records)
- Epic ID:
EPIC-09 - 业务目标: 对接高铁驾驶模拟舱、VR 实训室、3D 拆装等外部专业设备推送的学习学时流水,提供防重复推送的唯一幂等处理与三态响应。
- 包含 P0 Issue:
ISSUE-09-01: 外部实训系统自主学习流水幂等接入 (Learning Record Ingestion & Invariant INV-03)
- 对应 P0 API:
POST /train/study-records/receive
- 涉及数据表:
train_study_duration,train_enrollment,train_plan_course - 明确不做什么: 不对接大文件视频播放断点与心跳上报;自主学习记录分页检索与单人流水详情属于 P1。
EPIC-10 计划统计与综合工作台 (Plan Workbench & Statistics)
- Epic ID:
EPIC-10 - 业务目标: 为培训管理人员提供开班期间的“一站式计划综合工作台”与结训阶段的“计划综合统计概览”,聚合展示报到率、出勤率、课表进度、成绩分布与自主学时。
- 包含 P0 Issue:
ISSUE-10-01: 培训计划综合工作台聚合服务 (Plan Workbench Aggregation)ISSUE-10-02: 培训计划综合成效统计概览 (Plan Statistics Aggregation)
- 对应 P0 API:
GET /train/plans/{planId}/workbenchGET /train/plans/{planId}/statistics/overview
- 涉及数据表: 跨表只读聚合查询(
train_class_plan,train_enrollment,train_lesson,train_attendance_record,train_student_score,train_study_duration) - 明确不做什么: 不做复杂的多维 OLAP 钻取报表;不引入 Elasticsearch / ClickHouse 等外部大数据分析引擎;多维度成绩下钻图表属于 P2。
EPIC-11 权限字典与系统基线支撑 (RBAC, Dict & System Baseline)
- Epic ID:
EPIC-11 - 业务目标: 夯实系统运行底座,全面统一以
train:*为前缀的 RBAC 菜单与按钮授权体系,规范化分类梳理 16 组培训业务字典,消除旧系统权限混乱扩散。 - 包含 P0 Issue:
ISSUE-11-01: RuoYi RBAC 权限体系与按钮授权集成 (RBAC Migration & Train Permissions)ISSUE-11-02: 培训业务数据字典与参数配置初始化方案 (Dictionary & SysConfig Strategy)
- 对应 P0 API:
- 支撑全部 49 个 P0 API 的鉴权拦截与前端按钮
v-hasPermi显隐控制。
- 支撑全部 49 个 P0 API 的鉴权拦截与前端按钮
- 涉及数据表:
sys_menu,sys_role_menu,sys_dict_type,sys_dict_data,sys_config - 明确不做什么: 本轮严禁执行
007_dicts.sql物理入库;不做动态自定义数据权限过滤规则(一期采用基于角色的标准 RBAC)。
EPIC-12 P0端到端业务闭环验收 (End-to-End Acceptance)
- Epic ID:
EPIC-12 - 业务目标: 串联 17 个 P0 核心用例(UC-01 ~ UC-29),构建完整的端到端自动化测试链路与基线集成回归用例,确保最小业务闭环能够流畅无缝运转。
- 包含 P0 Issue:
ISSUE-12-01: 智慧培训全生命周期主链路端到端集成测试与验收 (End-to-End Acceptance Suite)
- 对应 P0 API:
- 贯穿覆盖全部 49 个 P0 API 的链路式调用与数据验证。
- 业务价值: 彻底杜绝“各个单接口测试通过,连起来无法走通完整培训班”的集成陷阱,作为 Phase 3 研发交付的最终质量闸门。