# 1. 考务管理
# 1.1. 考生在同一个场次是否允许考核相同考站
# 真实用户场景
这里需要收集用户使用场景
# 给用户的解答
不允许,即使考站属于不同的考核专业也不可以,会影响到排考、成绩汇总等逻辑。
# 给用户的解决方案
- 建议通过名称区分开多个考站
# 开发人员解答
暂无
# 2. 排考管理
# 2.1 动态分配(随机叫号)叫号顺序是什么?
顺序:小队序号(签到批次)> 考生优先级 > 签到时间 > 名单顺序 如果考生是从excel导入的,那么名单顺序就是excel中的顺序,如果是从系统中导入的,那么名单顺序就是添加的顺序。
# 3. 规则变更 (开发人员使用)
# 3.1 动态分配
# 3.1.1 自动匹配
com.drgeek.scms.se.plan.service.PlanRuleDetailService.autoFitStudentV2
匹配范围为没有规则ID的考生
自动匹配时 只会匹配规则,不会分配规则详情,规则详情在签到时 进行分配
- 置空当前规则下学生的规则id 规则Id详情
- 查询符合的学生
- 如果已经签到 分配当前规则Id 以及规则详情Id(与签到时的分配规则保持一致)
- 如果没有签到 只会分配当前规则Id
# 3.1.2 自动创建
com.drgeek.scms.se.plan.controller.PlanRuleController.autoCreatRule
自动创建时 会根据学生的专业考站进行分组 创建。(会根据已有规则的专业考站进行过滤存在 不会创建 不会覆盖 不会自动匹配 )
创建成功后会触发自动匹配
# 3.1.3 签到
com.drgeek.scms.se.checkIn.service.CheckInService.batchCheckIn
签到时分配规则详情 进行抽签
分配规则详情是 根据每个规则详情自己的matchNum 组成数组 detailIds =[A,A,B] 然后 根据当前计数num 值 取出 detailId.get(num % detailIds.size()) 的 detailId进行分配
# 3.1.4 取消签到
com.drgeek.scms.se.checkIn.service.CheckInService.updateCheckOut
取消签到时置空 签到时间 抽签结果 与 规则详情ID
# 3.1.5 删除规则
com.drgeek.scms.se.plan.service.PlanRuleService.deleteRule
会清空当前规则下的学生的规则id 规则详情Id
# 3.1.6 删除规则详情
com.drgeek.scms.se.plan.service.PlanRuleService.deleteRule
- 删除当前规则
- 更新学生
- 如果还有规则 get(0) 因为默认有一个 正常不会为空
- 如果没有就置空
# 3.1.7 小队队伍
创建小队时 只会设置队伍名称
允许队伍里出现不同规则的考生
# 3.1.8 队伍中变更学生规则
- 不符合要更改的规则数据不变
- 符合要更改的规则
- 如果已有规则详情ID(说明是已经签到了) 更新规则id 并对当前规则下的有规则详情 则get(0)作为新的规则详情ID 否则置空
- 如果没有有规则详情ID 更新规则id即可
- 置空规则时 置空 规则ID 规则详情ID
# 3.1.9 学生信息变更
com.drgeek.scms.se.plan.service.subService.PlanTeamDynamicSubService#findRuleIdByStudent
目标:修改考生信息时找到符合规则的规则Id 规则详情 小队id
- 置空 考生的规则Id 规则详情 小队id 显示循序
- 如果匹配到规则 则 设置为当前规则
- 如果已经签到 则将规则详情(如果存在) 置为当前规则的get(0)
- 如果没有签到 则不会设置
- 如果当前场次有队伍则 将队伍id设置为get(0) 显示顺序为当地队伍人数的 ++count
# 3.1.10 (待讨论)考务信息变更
# 3.2 同进同出
# 3.2.1 自动匹配
没有自动匹配 需要在小队设置里进行设置
# 3.2.2 自动创建
该模式不支持自动创建
# 3.2.3 签到
更新签到状态 进行抽签 不会在此设置规则详情(在设置队伍时 自动分配)
# 3.2.4 取消签到
重置 签到状态 与 抽签结果 不会 重置分配的规则详情
# 3.2.5 删除规则
会清空当前规则下的学生的规则id 规则详情Id
# 3.2.6 删除规则详情
因为只有一个 所以无法删除规则详情
# 3.2.7 小队队伍
小队需要绑定一个规则
如果是先有考生小队 再 设置 规则信息
com.drgeek.scms.se.plan.service.PlanTeamService#updateTeamRule
- 小队里的学生 置空 规则id,规则详情id
- 判断是哪种变更方式
- 如果是删除小队身上的规则 -> 置空 小队身上的 规则id 考道Id
- 如果是变更规则 -> 设置小队身上的 规则id 考道 将能匹配到的学生 设置规则id 规则详情id[get0]
# 3.1.8 队伍中变更学生规则
无法对某个学生进行单独设置
移动学生
- 队伍之间移动 -> 先将要移动的学生们的ruleId,ruleDetailId,teamId设置为null -> 老队伍重新排序 -> 新队伍排序 -> 如果新队伍没有规则,则直接将学生分配到新队伍 否则需要判断学生是否符合新队伍的规则 如果符合则挂上规则 否则不挂(为空)
- 从未分配到队伍中 -> 如果新队伍没有规则,则直接将学生分配到新队伍 否则需要判断学生是否符合新队伍的规则 如果符合则挂上规则 否则不挂(为空)
- 从队伍到未分配队伍中 -> 置空 学生的小队、规则、规则详情、显示顺序
# 3.1.9 学生信息变更
没有自动匹配