84 lines
4.8 KiB
Markdown
84 lines
4.8 KiB
Markdown
# RailwaySystem v1.0 Final Candidate 发版说明 (Release Notes)
|
||
|
||
> **发版版本号**:v1.0.0-final-candidate
|
||
> **Git 提交基线**:`5a49b2e2988bf23ca2a70568264c05b24dfda1b6` (`origin/feat/cicd-pipeline`)
|
||
> **发布日期**:2026-09-15
|
||
> **发布增量状态**:`CURRENT_RELEASE_DB_DELTA = 3`
|
||
> **整体就绪度**:后端核心与场景集成通过(154/154 PASS,6/6 Scenarios PASS);端到端浏览器验收与 Swagger 探测 `PASS`(0 阻断 / 0 个 500);正式部署 `FORMAL_DEPLOYMENT = PENDING`。
|
||
|
||
---
|
||
|
||
## 1. 版本核心特性亮点
|
||
|
||
本版本作为 RailwaySystem 智慧培训系统的首个完整正式交付候选版本,全面实现了从基础资源、开班计划、学员名单、现场报到、智能排课、课堂考勤到结训归档的全流程数字化闭环:
|
||
|
||
1. **教务排课四维智能冲突检测**:
|
||
- 实现了对授课教师、理论教室、实训演练基地及本班课次的时间重叠实时失焦预检;
|
||
- 建立明确的 Warning 机制,警告不阻断正常保存,彻底消除非法 `force/override` 参数。
|
||
2. **敏感个人信息脱敏与散列存储**:
|
||
- 全面落地学员二代身份证号的散列索引 + 密文存盘机制,前端全链路脱敏只显后 4 位。
|
||
3. **开班报到与考勤动作正式对齐**:
|
||
- 现场报到支持人脸、刷卡、扫码与人工多模式核验,成功后强事务联动参训档案流转为“已报到”;
|
||
- 课次考勤支持打卡、任课教师代签与事假人工调整,状态严格统一为 0缺勤、1正常、2迟到、3早退、4请假,代签自动置位 `manual_flag=1`。
|
||
4. **强事务驱动的一键结训联动**:
|
||
- 计划结训时自动将班内正常参训在读学员批量更新为“已完成”,并严密保护历史退训学员状态防误覆盖。
|
||
5. **国产人大金仓数据库与架构解耦**:
|
||
- 全量 21 张表完成 KingbaseES V9 物理重构与序列自增补丁适配;
|
||
- 后端核心业务彻底收敛至独立模块 `ruoyi-train`,实现架构高内聚。
|
||
|
||
---
|
||
|
||
## 2. 数据库增量发布说明 (Database Delta)
|
||
|
||
当前版本包含针对底层数据库的 3 个正式发布增量脚本:
|
||
|
||
* **Delta 001**:`RuoYi-Vue/sql/system/kingbase/001_sys_oper_log_cost_time.sql`
|
||
- 修复 Kingbase 操作日志中缺少 `cost_time` 字段的问题。
|
||
* **Delta 002**:`RuoYi-Vue/sql/system/kingbase/002_legacy_analytics_permissions.sql`
|
||
- 收敛 Legacy Analytics 接口与 V2 只读契约,补齐报表只读查询与导出权限。
|
||
* **Delta 003**:`RuoYi-Vue/sql/system/kingbase/003_report_attendance_action_permissions.sql`
|
||
- 补齐现场开班报到确认(`train:report:confirm`)、课次打卡(`train:attendance:checkin`)与考勤调整(`train:attendance:edit`)三项原子动作权限。
|
||
|
||
> ⚠️ **数据库禁令提醒**:
|
||
> `007_dicts.sql` 明确标记为 `DO NOT EXECUTE`,生产环境严禁执行。
|
||
|
||
---
|
||
|
||
## 3. 质量门禁与当前验收状态
|
||
|
||
```mermaid
|
||
graph LR
|
||
G1["1. 单元与契约测试<br/>154/154 PASS"] --> G2["2. 核心场景集成<br/>6/6 PASS"]
|
||
G2 --> G3["3. 物理数据库断言<br/>11/11 PASS (0残留)"]
|
||
G3 --> G4["4. 浏览器端到端验收<br/>0阻断 / 0个500 PASS"]
|
||
G4 --> G5["5. Swagger接口文档<br/>无502 / 无死链 PASS"]
|
||
G5 --> G6["6. 生产集群部署<br/>FORMAL_DEPLOYMENT: PENDING"]
|
||
|
||
style G1 fill:#1a3a2a,stroke:#52c41a,stroke-width:2px;
|
||
style G2 fill:#1a3a2a,stroke:#52c41a,stroke-width:2px;
|
||
style G3 fill:#1a3a2a,stroke:#52c41a,stroke-width:2px;
|
||
style G4 fill:#1a3a2a,stroke:#52c41a,stroke-width:2px;
|
||
style G5 fill:#1a3a2a,stroke:#52c41a,stroke-width:2px;
|
||
style G6 fill:#3a2e1a,stroke:#faad14,stroke-width:2px;
|
||
```
|
||
|
||
| 质量验证项 | 当前状态 | 备注说明 |
|
||
| :--- | :---: | :--- |
|
||
| **后端单元与契约测试 (154 项)** | **PASS** | 154 / 154 全部通过 |
|
||
| **核心业务场景集成套件 (6 大场景)** | **PASS** | 6 / 6 全闭环通过 |
|
||
| **真实 HTTP 请求链路探测 (110 次)** | **PASS** | 零 500 异常 |
|
||
| **Kingbase 物理数据完整性断言 (11 项)**| **PASS** | 11 / 11 吻合 |
|
||
| **测试环境物理数据清理 (Residue)** | **PASS** | 0 脏数据残留 (Cleaned) |
|
||
| **端到端浏览器自动化验收** | **PASS** | Console 0 阻断,0 个 500 异常 |
|
||
| **Swagger 在线文档服务探测** | **PASS** | 真实入口:系统工具→系统接口,UI加载正常 |
|
||
| **目标生产环境集群部署** | **PENDING** | 等待生产发布窗口统一执行 |
|
||
|
||
---
|
||
|
||
## 4. 技术参考链接 (Technical References)
|
||
|
||
* 综合测试报告:[final-test-report.md](final-test-report.md)
|
||
* 部署与准备度报告:[deployment-report.md](deployment-report.md)
|
||
* 浏览器端到端验收报告:[browser-acceptance-report.md](browser-acceptance-report.md)
|
||
* 人类手册:[docs/handbook/01-project-overview.md](../handbook/01-project-overview.md)
|