排课
2023-11-20 15:25:09 0 举报
AI智能生成
新版排课
作者其他创作
大纲/内容
涉及逻辑
评课
评课任务需要添加待评课的课程,来源是课表元素class_schedule_item内的数据
授课统计
独立的功能,和课表暂无关系
多视角课表
调课
班次
创建班次时会对应创建一条ClassSchedule的记录
课表导入
合班
排课
发布
发布当前版本号的课表
取消发布
版本号加一
更新发布
发布当前版本号的课表
暂存
redis中redis:schedule:tmp中暂存未发布过的课表元素
排课页面课表展示
取消发布状态
取消发布操作会使主版本号加一所以当前班次课表是
排课页面课表展示是查询class_schedule_item上个版本的课表
加上class_schedule_undo_log表中当前版本未发布的课表元素
加上redis中redis:schedule:tmp中暂存的数据
排课页面课表展示是查询class_schedule_item上个版本的课表
加上class_schedule_undo_log表中当前版本未发布的课表元素
加上redis中redis:schedule:tmp中暂存的数据
此状态所做的课表修改会记录在class_schedule_undo_log表中
此状态下的更新发布会生成调课记录,
class_schedule_exchange_log
class_schedule_exchange_log
未发布过状态
排课页面课表展示是
class_schedule_undo_log表中的排课操作记录
class_schedule_undo_log表中的排课操作记录
删除按钮有的时候不管用,点击删除迅速刷新页面后删除的元素仍然存在
发布状态
排课页面课表展示是
查询class_schedule_item当前发布版本的课表
加上redis中redis:schedule:tmp中暂存的数据
查询class_schedule_item当前发布版本的课表
加上redis中redis:schedule:tmp中暂存的数据
发布状态所做的课表修改只保存在前端内存里,一刷新页面就没有了
只有点击暂存才会保存在redis:schedule:tmp中
只有点击暂存才会保存在redis:schedule:tmp中
发布状态的更新发布也会生成调课记录,
class_schedule_exchange_log
class_schedule_exchange_log
删除,只有点击暂存再点击更新发布才能生效,
直接点击更新发布无法生效
直接点击更新发布无法生效
涉及表
class_info
班次信息
课程开始时间和结束时间
班次信息
课程开始时间和结束时间
getStudyStartTime
getStudyEndTime
class_schedule
课表信息
课表信息
version
版本
status
状态:-1 取消发布 0 未发布 1 已发布
class_id
class_schedule_item
课表所包含的元素
课表所包含的元素
class_schedule_undo_log
当前版本未发布的课表元素
当前版本未发布的课表元素
class_schedule_exchange_log
调课,每次课表更新发布时会生成调课记录
调课,每次课表更新发布时会生成调课记录
redis:schedule:tmp中存储的只是发布状态下点击暂存按钮的课表
想法
排课其实就是共享资源的分配,以班次为视角,课程、上课地点及上课时间是共享资源;老师视角,班次和上课地点及上课时间是共享资源
课程计划,需要和排课进行区分
课程计划不包含课程的具体上课日期及时间,只是计划中包含该课程
并明确该课程需要的节数、是否连堂等。
目的是将班次和课程及该课程的教师绑定在一起
课程计划不包含课程的具体上课日期及时间,只是计划中包含该课程
并明确该课程需要的节数、是否连堂等。
目的是将班次和课程及该课程的教师绑定在一起
班次课程计划
课程名称、任课老师、节数,禁排位置
课程名称、任课老师、节数,禁排位置
教师课程计划
课程名称、授课班次,节数
课程名称、授课班次,节数
排课的时候,先排课,然后选当前课程的上课场地,检测场地是否可选
课程库配置该课程同时间段最大可安排数,这是因为有场地或者教学设施的限制,一般学科不做限制。
冲突判定方法
去除无关条件,查找是否有其他记录
比如:班次调课,去除班级条件,查询指定日期时间老师是否有课,如果有课则无法再安排课
课程调教室,去除课程条件,查询指定日期某教室是否有课,如果有则无法调该时间的教室
比如:班次调课,去除班级条件,查询指定日期时间老师是否有课,如果有课则无法再安排课
课程调教室,去除课程条件,查询指定日期某教室是否有课,如果有则无法调该时间的教室
多种排课视角
班次、教师、场地,进行排课。三者虽自成体系,但实际是合为一体。调整课程简单易用
调课
需要明确排课就是排课,调课就是调课;排课所影响的课程变化不应记为调课记录
调课,一种方法:先调课,看老师是否有空;在判断地点是否存在冲突,如果有冲突就重新选择上课地点
另一种方法:直接显示同时满足老师与上课地点的调课位置。
调课,一种方法:先调课,看老师是否有空;在判断地点是否存在冲突,如果有冲突就重新选择上课地点
另一种方法:直接显示同时满足老师与上课地点的调课位置。
自动排课
先排限制条件多的,比如要求教室必须有影音录像设备的,又或者是某某领导的授课
小表驱动大表
降高维为低维
课程库可配置教学场地要求偏向,是否必须要有影音设备等;这样自动排课的时候可以有偏向
基础要素
哪个班次什么时间在什么位置,由哪位老师上课,上的是什么课
哪个班次什么时间在什么位置,由哪位老师上课,上的是什么课
班次
可通过预分配课程的方式将班次和课程及该课程的教师绑定在一起
上课时间
场地
教师及所授课程
任教老师、课程、班次、日期时间唯一确定一条排课记录
目前的功能
类型课程占比
左侧展示课程列表,按照类型分组
课程类型/教学形式
专题授课、案例教学、专题讲座等等等等
课程类型/教学形式
专题授课、案例教学、专题讲座等等等等
课程只可拖拽到当前班次的开课时间段
日历表
日历时间段和开课时间段
课程导入
发布课表
通知:小程序、短信等
存在的问题
1、排课时,由于课程太多了,而且课程检索只有课程名字关键字检索一种形式,找课非常麻烦
2、课表展示中的课程名字展示的不全。可以减小字号来展示完整
3、班次培训时间无明确展示
4、课表暂存
5、排课的改动所涉及的调课记录不好用
6、排课导入,如果所排的课不在师资库或课程库怎么办
排课查询
1、查询班次信息
classScheduleGateway.getByClassId(qry.getClassId())
表class_schedule
classScheduleGateway.getByClassId(qry.getClassId())
表class_schedule
SELECT id,class_id,class_name,version,org_id,org_code,org_name,status,del,creater,modify_time,create_time,modifier FROM class_schedule WHERE del=false AND (class_id = 1722858607073157122)
2、又查一次班次信息
classScheduleGateway.getByClassId(classId())
表class_schedule
classScheduleGateway.getByClassId(classId())
表class_schedule
3、查询class_info获取班次培训起止日期
classInfoGateway.getClassById(classId)
表class_info
classInfoGateway.getClassById(classId)
表class_info
SELECT id,name,org_id,org_name,type,year,main_term,main_type,main_attachment,main_day,master_year,study_start_time,study_end_time,study_method,student_count,report_count,study_hour,classroom_id,classroom_name,enter_type,plan,enter_start_time,enter_end_time,dept_id,dept_name,enter_place,enter_contact_person,enter_contact,remark,status,del,create_time,creater,modify_time,modifier,org_code,course_release_status,course_release_time,text_manager_name,text_attendant_name,temp_hand_book,is_on_file FROM class_info WHERE id=1722858607073157122 AND del=false
4、查询排课日志,就是哪个日期有什么课
classScheduleUndoLogGateway.list
表class_schedule_undo_log
classScheduleUndoLogGateway.list
表class_schedule_undo_log
SELECT id,class_id,schedule_id,version,version_sn,day,time_segment,time_segment_sn,action,data,del,creater,create_time,modifier,modify_time FROM class_schedule_undo_log WHERE (schedule_id = 1722858607110905858 AND version = 1 AND day >= '2023-11-11' AND day < '2023-12-31') ORDER BY id ASC
子主题
新版排课
基础信息维护
课表结构
针对每个班次可维护该班次的课表结构
针对每个班次可维护该班次的课表结构
是否有晨读晚自习
一周上几天课
各午别上课下课时间段
课程库
包含授课教师
场地库
师资库
教学计划
班次教学计划
为本班次添加本次培训时间段内需进行的课程
为本班次添加本次培训时间段内需进行的课程
课程
课程库内绑定授课老师的课程记录
课程授课场地
每个课程都需要指明所需要的场地
是本班教室还是指明其他教室
是本班教室还是指明其他教室
课程节数
指明需要安排几节目标课程
课程禁排要求
哪个时间段是不能排我这一堂课的
教师教学计划
教师视角的教学计划
合堂
针对课程创建合堂记录
只能对教学计划都包含目标课程
并且培训周期有重合的班次进行合堂操作
只能对教学计划都包含目标课程
并且培训周期有重合的班次进行合堂操作
有合堂需求的课程可以维护本次合堂要教授的班次。
排课
班次排课视角
展示该班次教学计划内所有的课程
合堂课程排课
根据该班次的教学计划,及合堂记录查出合堂课程,并标明该课程是合堂课程。
排的时候,只要有排过合堂课表的同堂班次,那么其他同堂的班次的相同课表位置也为该合堂课程。
排的时候,只要有排过合堂课表的同堂班次,那么其他同堂的班次的相同课表位置也为该合堂课程。
教师排课视角
调课
调课就是调课,是已排课程的调整
排课是未排课程的安排
调课只存在于已排课程有调课需求了才会产生调课记录。
排课是未排课程的安排
调课只存在于已排课程有调课需求了才会产生调课记录。
先要调成功(这个过程会检验原课程原位置与目标课程及目标位置的冲突检验)
然后生成调课记录(可生成通知信息)
再应用调课记录,对课表进行调整
然后生成调课记录(可生成通知信息)
再应用调课记录,对课表进行调整
同班调课
不同班调课
不同班只能是教学计划中同时包含要调课的课程的班次
如果教学计划不包含,请按照排课处理
不同班只能是教学计划中同时包含要调课的课程的班次
如果教学计划不包含,请按照排课处理
冲突校验
课表导入
自动排课
痛点
逻辑复杂,涉及课程库、师资库、教学统计、课程评价,调课记录
前端不太好展现,不易用,而且不是很美观
冲突逻辑校验
每个校区距离较远,不能一天来回跑,同一个老师来回跑不现实
多班排课怎么排
不同的党校排课模板不同
适当位置增加检索功能
0 条评论
下一页