235 lines
14 KiB
Markdown
235 lines
14 KiB
Markdown
# RailwaySystem Phase 3:Epic 架构概览 (Epic Overview)
|
||||
|
|
|
|||
|
|
> **设计基线:** 紧扣 PRD V1.0 业务闭环与 API Contract V1.0,严禁按 21 张数据库表机械建 Epic。
|
|||
|
|
> **Epic 规划原则:** 每一个 Epic 代表一个**高内聚、有明确业务价值、对主链路有明确支撑的业务能力域**。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1. Epic 汇总视图
|
|||
|
|
|
|||
|
|
系统一期 P0 研发共划分为 **12 个核心 Epic**,覆盖从基础设施、主数据、开班排课、过程执行、效果评估到端到端验收的完整闭环:
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
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/student`
|
|||
|
|
- `GET /train/course/list`, `GET /train/course/{cId}`, `POST /train/course`
|
|||
|
|
- `GET /train/classroom/list`, `GET /train/classroom/{classRoomId}`, `POST /train/classroom`
|
|||
|
|
- `GET /train/training-site/list`, `GET /train/training-site/{siteId}`, `POST /train/training-site`
|
|||
|
|
- `GET /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}/complete`
|
|||
|
|
- `GET /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-conflict`
|
|||
|
|
- `GET /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/preallocate`
|
|||
|
|
- `PUT /train/enrollments/{enrollmentId}/accommodation`, `PUT /train/enrollments/{enrollmentId}/accommodation/day-student`, `GET /train/plans/{planId}/accommodations`
|
|||
|
|
- `POST /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-out`
|
|||
|
|
- `GET /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-items`
|
|||
|
|
- `POST /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}/workbench`
|
|||
|
|
- `GET /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:**
|
|||
|
|
- 支撑全部 53 个 P0 API 的鉴权拦截与前端按钮 `v-hasPermi` 显隐控制。
|
|||
|
|
- **涉及数据表:** `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:**
|
|||
|
|
- 贯穿覆盖全部 53 个 P0 API 的链路式调用与数据验证。
|
|||
|
|
- **业务价值:** 彻底杜绝“各个单接口测试通过,连起来无法走通完整培训班”的集成陷阱,作为 Phase 3 研发交付的最终质量闸门。
|