「流程设计」是一个跨模块通用的审批流程配置入口:课程归档、课程增免修及补选、教学课件报送各自拥有独立的流程配置,但都通过同一个页面(/admin/workflows/<module_key>)按学院维护。管理员在这里逐节点启用/停用审核环节、决定教师审核方式、开关业务申请项目、配置代审与全校同步,配置按学院保存在中央库 workflow_configs.config_json。
核心要点:流程完全由开关拼装——没有启用任何审核节点就表示「无流程」(提交后直接完成);只要启用了某个节点,系统就会校验该学院是否配齐了对应角色人员,缺人会强提醒并中断提交/审核。
课程归档列表 → 流程设计(module_key=course_archives)。增免修列表 → 流程设计(module_key=course_change)。报送列表 → 流程设计(module_key=teaching_material_submission)。module_key 合法,其它一律 404。course_changes 校级管理动作的成员。is_admin 且无 college_id)、或持有教务处「校级管理」动作(MATERIAL_ACTION_SCHOOL_MANAGE)的成员可进入;二级学院管理员被拒绝。进入后顶部显示当前「模块」,课程归档与教学课件报送还有归档类型 Tab(如考核材料、达成度报告等),每个类型的流程单独配置、互不影响。
4.(仅课程归档)切到「签名设置」面板可启用电子签名、按角色配置锚点关键词与生效材料(成绩登记表 / 课程考核分析表 / 课程目标达成度评估报告)。教学课件报送不提供签名设置,保存时固定禁用签名。
无流程 vs 流程缺角色(核心区分)
| 情形 | 判定 | 系统行为 |
|---|---|---|
| 无流程 | 校、院两级均未启用任何审核节点 | 提交后直接完成,不需要审批 |
| 流程缺角色 | 启用了某节点,但该学院未配置对应角色人员 | 强提醒并中断提交/审核;必须先在用户管理分配角色 |
| 流程完整 | 启用的每个节点都有对应角色人员 | 按节点顺序逐级流转 |
教学课件报送页面对「默认(全关)」明确标注为「不启用审核流程:提交后直接完成」;课程归档「默认(全关)」标注为「保持现状:仅做权限控制,不引入强约束」。
审核节点 → 对应学院角色(缺人即触发中断校验)
| 流程开关 | 角色代码 | 中文角色 |
|---|---|---|
| course_professor_enabled | course_professor | 课程(群)责任教授 |
| program_director_enabled | program_director | 专业负责人(仅教学课件报送) |
| dept_archivist_enabled | dept_archivist | 系室主任 |
| teaching_office_enabled | teaching_office_admin | 教学办主任 |
| leader_enabled | leader | 分管教学副院长 |
节点流转顺序:教师提交 → 责任教授 → 专业负责人 → 系室主任 → 教学办主任 → 分管教学副院长 → 完成(只走已启用的节点,任一节点退回则教师补充后再提交继续流转)。
课程增免修教师审核模式
| 模式 | teacher_enabled / teacher_mode | 含义 |
|---|---|---|
| 关闭 | off / A | 不经教师,直接进学院审核 |
| 模式 A | on / A | 教师节点仅做材料/签字校验,不产生教师待办 |
| 模式 B | on / B | 按教师账号派单,产生教师待办,可通过/退回 |
配置存储口径:所有流程配置按「学院 + 模块」保存在中央库 workflow_configs.config_json;课程归档/教学课件报送按归档类型分组存储。缺角色判定按学院在 UserRole 中精确匹配 role + college_id。