教师信息维护是本学院教师基础信息库的统一维护入口,对应导航「教师信息」一级菜单(图标 fa-users-cog),下设两个子项:
这份教师库是监考排班、教师电话/一卡通自动填写、达成度报送等多个模块的共同数据来源。注意区分:本页是面向全院的通用教师信息维护;它与监考模块共用同一张 Invigilator 表与同一个 /maintain_invigilators 路由,但「教师信息」菜单本身不依赖监考排班逻辑,定位是教师档案而非监考轮次/安排(轮次、预安排、推荐见 监考安排管理)。
教师信息 → 教师信息维护(路由 /maintain_invigilators)教师信息 → 一卡通号查询(路由 /teacher_cardid_lookup)can_access_teacher_directory 统一控制(模板变量同名),后端校验为 _can_access_teacher_directory / _ensure_teacher_directory_access,不满足直接 abort(403)。判定规则:invigilation、course_archives、course_changes、science_city_attendance、teaching_material_submission 中任一模块即可见。注意:仅开通「教学课件报送」的学院管理员也应能看到本菜单——历史上漏算该模块导致这类管理员无「教师信息」入口,已于 2026-05-22 修正。_block_preview_only_user 拦截;列表中一卡通号、手机、QQ 做脱敏显示。_can_manage_invigilator_special_status 控制(需当前学院开通监考且账号具监考模块权限);无此权限者看不到也改不了特殊状态字段,但仍可维护其余基础信息。/upload_invigilators)。导入按 一卡通号 为主键 upsert:已存在则更新,不存在则新增;识别的列含 一卡通号、姓名、性别、手机号码、QQ号码、所在院系、最高学历、职务或职称、毕业院校、紧急联系电话、特殊状态。无一卡通号的行跳过;导入会先自动备份数据库。* 的为必填项:一卡通号、姓名、性别(默认「男」)、手机号码、QQ号码、所在系室;前后端均做必填校验,口径一致。保存走 /add_teacher(新增)或 /update_invigilator/<card_id>(更新)。/export_invigilators),默认文件名为「教师基础信息表_时间.xlsx」。/teacher_cardid_lookup/search 对教师库全字段匹配。re.split(r'[、,,\s]+', ...)),点「批量查询」(POST 到 /teacher_cardid_lookup)。结果按输入 token 的原始顺序逐条返回。超管使用同一个关键词框时,/teacher_cardid_lookup/search 除返回教师库结果外,还并行返回中央用户与角色范围(/teacher_cardid_lookup/users 仅超管可调,非超管 403);一卡通号查询页对超管聚合全部学院教师库。
教师档案字段(Invigilator 表):
| 字段 | 含义 | 备注 |
|---|---|---|
| 一卡通号 card_id | 教师唯一标识/主键 | 必填;改号时同步更新监考安排外键引用,新号查重 |
| 姓名 name | 教师姓名 | 必填;保存时自动生成 name_pinyin 拼音用于排序/检索 |
| 性别 gender | 男 / 女 | 必填,默认「男」 |
| 手机号码 phone_number | 联系电话 | 必填;预览账号脱敏 |
| QQ号码 qq_number | 必填;预览账号脱敏 | |
| 所在系室 department | 教研室/系室名 | 必填;文案统一为「系室」(原「院系/系部」),新增系室名规范化建议走标准清单 |
| 最高学历 / 职务或职称 / 毕业院校 / 紧急联系电话 | 扩展档案 | 非必填 |
| 特殊状态 special_status | 排班可用性标记 | 需监考状态管理权限才可见可写 |
| 初始轮次 initial_count | 监考排班用基数 | 默认 0,含义见 监考安排管理 |
「系室」文案:2026-06-01 起,本页面可见的「院系/系部」一律改称「系室」,覆盖筛选项、列名、编辑标签与系室维护面板;同期为关键必填字段加红色 * 标记。导入模板表头仍兼容「所在院系」列名。
删除替代「离校归档」(2026-06-02):早期用「离校归档」特殊状态做软删过渡,现已改为直接删除教师记录。删除时会先把该教师基础信息写入其关联监考安排的备注快照(_append_assignment_teacher_snapshot),再清理这些安排记录,避免非空外键悬挂。前端已移除归档筛选、归档统计与「恢复在册」入口;_active_invigilator_filter() 仍兼容过滤历史遗留的「离校归档」标签,使旧数据不混入当前排班候选。