Files
railwaysystem/docs/reports/release-notes.md
T

84 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)