功能简介
全校课表统一管理是校级共享数据的统一入口,把本科 / 研究生课表集中维护在中央库(而非按学院切片),全校只保留一份权威课表与一个「学期首周周一」,供各学院的监考人员推荐(按课表排除当天有课的老师)与科学城出勤统计(按周次 / 星期 / 节次自动生成出勤)共用。同一菜单下还提供「导入全校监考安排表」:上传一份覆盖全校的监考安排 Excel,系统按「监考学院」列自动分流到各学院库,生成各院的高亮临时预安排,免去逐院重复导入。两者都是校级运维动作,不依赖、也不切换当前学院上下文。
入口与权限
入口都在 监考安排管理 菜单内(菜单底部、与监考查询 / 维护用分隔线隔开),仅当账号满足校级条件时才显示:
- 全校课表统一管理
监考安排管理 → 全校课表统一管理(/admin/central_course_schedule)。 - 导入全校监考安排表
监考安排管理 → 导入全校监考安排表(/admin/school_invigilation_import)。
可用角色:
- 超级管理员:两项均可见、可操作全部动作。
- 教务处-运行科(角色
edu_office_ops,跨学院范围内持有即可):两项均可见、可操作。 - 校务监督 / 校领导账号(校务监督单位成员):只显示「全校课表统一管理」,用于查看全校课表概况;不显示、也不能访问「导入全校监考安排表」。仅有查看身份时不显示写操作;在当前校务监督单位获授校级管理/配置管理权限的成员可上传、修改首周周一及停用课表。
- 其余角色(含普通学院管理员、教师、学生)一律不可见;直接访问返回 403。
- 测试预览 / 只读账号:若具备上述身份可进入页面查看,但所有写动作(上传、改学期首周周一、停用课表、确认分流导入)被只读拦截。
说明:这是校级功能,不随当前学院切换变化——无论选了哪个学院,看到的都是同一份全校课表与全校学期首周一。
操作步骤(分角色)
以下动作仅超级管理员 / 教务处-运行科执行。
维护全校课表(本科 / 研究生)
页面分三块:顶部「学期首周周一(全校默认)」、本科课表槽位、研究生课表槽位。每个类型只保留一份 active。
- 设置学期首周周一:在顶部填日期(YYYY-MM-DD)点「保存」。该日期是全校唯一基准,监考推荐与科学城出勤都用它把「周次」换算成「真实日期」。至少已上传一份课表后才能单独保存该日期。
- 上传 / 替换课表:在对应槽位选
.xlsx / .xls 文件,可填「学期标签」(如 2025-2026-2,会拼进保存与展示文件名)、可顺带填「学期首周周一」(勾在这里则上传时一并更新全校默认)。点「上传并替换」。 - 系统按科学城出勤统计同一套列头识别逻辑解析文件(不按学院过滤,取全校所有行):
- 解析出的课表类型会与你选的槽位比对,传错文件(如把研究生课表传到本科槽)会被拦截并提示;
- 解析到 0 条有效记录会提示检查列头,不写库。
- 导入成功后,槽位显示当前文件名、有效行数、上传人、上传时间、学期标签,以及「按开课单位条数」前 12 项徽标,便于核对各学院命中量。
- 停用当前课表:点槽位右上「停用当前课表」,把该类型 active 置为 inactive(历史行保留、不物理删除,可重新上传覆盖)。
导入全校监考安排表(按学院分流)
复用「监考人员推荐」的预安排空表上传预览流程,当前入口仅支持预安排空表模式(生成高亮临时预安排 + 在考试备注写 slots=N,正式安排仍回「监考人员推荐」生成转正)。
- 进入「导入全校监考安排表」,选监考安排 Excel;可填「学期」(格式
YYYY-YYYY-1/2/3,留空自动识别,格式不对会改用系统生成的学期并提示)、在「导入方式」勾「按日期分别导入」(每天拆成 考试名-M月D日)。点「上传并预览」。页面右上角「返回监考人员推荐」回到推荐页。 - 在「预览并选择要分流导入的列」页确认要导入的列:必需列(含「考试班级」「监考学院」等)固定勾选不可取消,另默认预勾「教学班名称 / 考试校区 / 授课教师 / 主讲老师 / 监考老师」(文件中存在时)。文件必须含「监考学院」列(或可识别别名「部门一」),它是分流依据。
- 点「按监考学院分流导入」。系统会:
- 先做一次全库备份(提示「全库备份完成,开始按学院分流导入。」;备份未完全成功时提示后仍继续);
- 按「监考学院」值匹配到各学院库(支持「XX学院 / XX / XX工程」等别名归一),在每个命中学院的 bind 内导入;
- 命中已锁定学期的学院会被跳过并标失败,不影响其他学院。
- 看「最近一次导入结果」表:逐学院列出源行数、导入场次、主讲监考数、跳过行、成功 / 失败原因;「监考学院」为空或匹配不到学院的行进「未匹配」清单(可展开查看 Excel 行号与原因)。
字段与状态口径
课表类型与 active
| 项 | 含义 |
|---|
| 本科课表 / 研究生课表 | 两个独立槽位(undergraduate / graduate),各自只保留一份 active |
| 有效行 | 当前 active 课表解析出的课程行数(row_count) |
| 停用 | 把 active 置 inactive,旧行保留作历史,可重新上传覆盖;不物理删除 |
| 学期首周周一 | 全校唯一基准(中央库管理);学院级同名字段已停用,UI 不再可改 |
| 按开课单位条数 | 按课表「开课单位 / 学院」维度统计的命中行数,用于核对各院数据量 |
课表解析所需列(与科学城出勤一致):本科要求「开课单位 / 开课课程 / 授课教师 / 开课时间 / 上课地点 / 上课周次 / 星期 / 教学楼 / 单双周」;研究生要求「课程名称 / 任课教师 / 时间 / 上课地址」(学院名称 / 学院 / 开课单位可选)。
全校监考导入结果
| 状态 | 含义 |
|---|
| 成功 | 该学院库已写入预安排场次 / 主讲监考 |
| 失败 | 未配置可用 db_bind_key、学期已锁定、或写库异常(附原因) |
| 未匹配行 | 「监考学院」为空或匹配不到系统内学院的行,不会被导入 |
导入产生的预安排为高亮临时记录,备注写 slots=N(同场次取已有与新值的较大者);其中按「监考老师 / 主讲老师」列匹配到本院老师库的,写入高亮的「主讲」安排,正式转正仍在「监考人员推荐」完成。
常见问题
- 菜单里看不到这两个入口:仅超级管理员 / 教务处-运行科可见(校务监督账号只见「全校课表统一管理」);普通学院管理员、教师、学生不可见。确认账号在跨学院范围内有教务处-运行科角色。
- 提示「文件识别为 X 课表,但你选择的是 Y 课表」:传错槽位了,按识别结果重选类型或文件。
- 解析到 0 条 / 列头报错:列名需符合科学城出勤同套识别逻辑(见上表),先核对表头再传。
- 监考推荐 / 科学城没按课表排除有课老师:先确认全校课表已上传 active、且「学期首周周一」已设置且不晚于考试 / 出勤日期;学期跨度超 30 周的日期视为学期外不参与。
- 全校监考导入某学院失败:多为该学院学期已锁定或未配置 db_bind_key;其余学院不受影响,按结果表逐院处理。
- 某些行进了「未匹配」清单:「监考学院」列为空或写法匹配不到系统内学院;规范该列学院名后重传。
- 改了课表 / 学期首周一,本学院页面没变化:这是全校共享数据,改动对所有学院一次性生效;若仍未生效,确认上传是否成功(看槽位文件名 / 上传时间)。
相关页面
- 监考安排管理 监考人员推荐用本页课表「按整天 / 按时段排除当天有课的老师」;本页是该排除能力的课表数据来源
- 科学城出勤统计 科学城出勤按本页课表的周次 / 星期 / 节次与「学期首周周一」自动生成出勤记录