biss
52e4a8a5be
1. 教室容量按 1/2 计算
- ExamArrangementService.cs: SelectRooms() 使用 Capacity / 2 选择房间、计算剩余座位和总容量
- MakeupExamArrangementService.cs: 数据库查询用 x.Capacity >= enrolledCount * 2(等价于 Capacity/2 >=
enrolledCount),消息显示有效座位数
2. 教学楼限制多选
- Domain: ExamSession 和 MakeupExamSession 新增 RequiredBuildingIds (JSON string),保留旧 RequiredBuildingId 向后兼容
- Service: RoomGroupKey 改为字符串键确保值相等;GroupKey() 合并新旧字段
- Controller: 请求 DTO 增加 RequiredBuildingIds (Guid 数组),响应包含该字段
- DB: MySQL 迁移 + SQLite migrator 添加新列
- Frontend: <el-select> 改为 multiple,新增 parseBuildingIds() 解析服务器返回的 JSON
3. 导出签名单后台任务
- 新增: ExamSignInExportJob 实体、ExamSignInExportJobProcessor、ExamSignInExportJobStatus 枚举
- BackgroundJobKind: 新增 ExamSignInExport = 5
- RabbitMQ: routing key exam.sign-in-export,队列 jiaowu.background-jobs.exam.sign-in-export
- API: POST /sign-in-export 创建任务返回 202;GET /sign-in-exports/{jobId} 查询状态;GET
/sign-in-exports/{jobId}/download 下载文件
- Frontend: 导出改为异步任务 + 轮询 + 自动下载,显示进度条
- 恢复: OutboxPublisher 启动时恢复未完成的任务,重试超限自动标记失败
History
..
2026-07-27 12:20:29 +08:00
2026-07-27 12:20:29 +08:00
2026-07-26 15:13:22 +08:00
2026-07-26 14:12:52 +08:00
2026-07-26 10:49:06 +08:00
2026-07-26 14:42:27 +08:00
2026-07-27 19:31:19 +08:00
2026-07-24 21:55:07 +08:00
2026-07-26 21:05:18 +08:00
2026-07-26 14:42:27 +08:00
2026-07-26 20:11:56 +08:00
2026-07-27 08:59:02 +08:00
2026-07-26 16:12:21 +08:00
2026-07-26 19:12:42 +08:00
2026-07-25 09:42:09 +08:00
2026-07-27 17:11:51 +08:00
2026-07-24 19:43:24 +08:00
2026-07-24 17:30:05 +08:00
2026-07-26 21:32:51 +08:00
2026-07-25 21:15:32 +08:00
2026-07-27 21:40:14 +08:00
2026-07-27 22:00:35 +08:00
2026-07-24 15:43:55 +08:00
2026-07-27 21:40:14 +08:00
2026-07-27 21:40:14 +08:00
2026-07-27 18:24:32 +08:00
2026-07-24 18:12:56 +08:00
2026-07-25 08:53:42 +08:00
2026-07-25 20:21:42 +08:00
2026-07-27 08:59:02 +08:00
2026-07-24 18:56:25 +08:00
2026-07-26 22:16:58 +08:00
2026-07-24 17:30:05 +08:00
2026-07-24 12:42:51 +08:00
2026-07-27 21:40:14 +08:00
2026-07-27 16:06:02 +08:00
2026-07-26 18:24:53 +08:00
2026-07-27 16:37:45 +08:00
2026-07-24 18:56:25 +08:00
2026-07-26 17:22:58 +08:00
2026-07-26 14:42:27 +08:00
2026-07-24 19:35:49 +08:00
2026-07-24 19:19:18 +08:00
2026-07-26 14:42:27 +08:00
2026-07-26 20:51:42 +08:00
2026-07-27 21:40:14 +08:00
2026-07-26 21:32:51 +08:00
2026-07-25 09:23:10 +08:00
2026-07-25 08:18:25 +08:00
2026-07-26 14:42:27 +08:00
2026-07-27 21:40:14 +08:00
2026-07-25 20:21:42 +08:00
2026-07-24 12:42:51 +08:00