# 1. 考务管理

# 1.1. 考生在同一个场次是否允许考核相同考站

# 真实用户场景

这里需要收集用户使用场景

# 给用户的解答

不允许,即使考站属于不同的考核专业也不可以,会影响到排考、成绩汇总等逻辑。

# 给用户的解决方案

  1. 建议通过名称区分开多个考站

# 开发人员解答

暂无

# 2. 排考管理

# 2.1 动态分配(随机叫号)叫号顺序是什么?

顺序:小队序号(签到批次)> 考生优先级 > 签到时间 > 名单顺序 如果考生是从excel导入的,那么名单顺序就是excel中的顺序,如果是从系统中导入的,那么名单顺序就是添加的顺序。

# 3. 规则变更 (开发人员使用)

# 3.1 动态分配

# 3.1.1 自动匹配

com.drgeek.scms.se.plan.service.PlanRuleDetailService.autoFitStudentV2

匹配范围为没有规则ID的考生

自动匹配时 只会匹配规则,不会分配规则详情,规则详情在签到时 进行分配

  1. 置空当前规则下学生的规则id 规则Id详情
  2. 查询符合的学生
    1. 如果已经签到 分配当前规则Id 以及规则详情Id(与签到时的分配规则保持一致)
    2. 如果没有签到 只会分配当前规则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

  1. 删除当前规则
  2. 更新学生
    1. 如果还有规则 get(0) 因为默认有一个 正常不会为空
    2. 如果没有就置空

# 3.1.7 小队队伍

创建小队时 只会设置队伍名称

允许队伍里出现不同规则的考生

# 3.1.8 队伍中变更学生规则

  1. 不符合要更改的规则数据不变
  2. 符合要更改的规则
    1. 如果已有规则详情ID(说明是已经签到了) 更新规则id 并对当前规则下的有规则详情 则get(0)作为新的规则详情ID 否则置空
    2. 如果没有有规则详情ID 更新规则id即可
  3. 置空规则时 置空 规则ID 规则详情ID

# 3.1.9 学生信息变更

com.drgeek.scms.se.plan.service.subService.PlanTeamDynamicSubService#findRuleIdByStudent

目标:修改考生信息时找到符合规则的规则Id 规则详情 小队id

  1. 置空 考生的规则Id 规则详情 小队id 显示循序
  2. 如果匹配到规则 则 设置为当前规则
    1. 如果已经签到 则将规则详情(如果存在) 置为当前规则的get(0)
    2. 如果没有签到 则不会设置
  3. 如果当前场次有队伍则 将队伍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

  1. 小队里的学生 置空 规则id,规则详情id
  2. 判断是哪种变更方式
    1. 如果是删除小队身上的规则 -> 置空 小队身上的 规则id 考道Id
    2. 如果是变更规则 -> 设置小队身上的 规则id 考道 将能匹配到的学生 设置规则id 规则详情id[get0]

# 3.1.8 队伍中变更学生规则

无法对某个学生进行单独设置

移动学生

  1. 队伍之间移动 -> 先将要移动的学生们的ruleId,ruleDetailId,teamId设置为null -> 老队伍重新排序 -> 新队伍排序 -> 如果新队伍没有规则,则直接将学生分配到新队伍 否则需要判断学生是否符合新队伍的规则 如果符合则挂上规则 否则不挂(为空)
  2. 从未分配到队伍中 -> 如果新队伍没有规则,则直接将学生分配到新队伍 否则需要判断学生是否符合新队伍的规则 如果符合则挂上规则 否则不挂(为空)
  3. 从队伍到未分配队伍中 -> 置空 学生的小队、规则、规则详情、显示顺序

# 3.1.9 学生信息变更

没有自动匹配

上次更新时间: 3/29/2024, 10:16:21 AM