|
@@ -26,6 +26,7 @@ import com.qmth.teachcloud.common.entity.BasicExam;
|
|
import com.qmth.teachcloud.common.entity.BasicExamStudent;
|
|
import com.qmth.teachcloud.common.entity.BasicExamStudent;
|
|
import com.qmth.teachcloud.common.entity.MarkQuestion;
|
|
import com.qmth.teachcloud.common.entity.MarkQuestion;
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
|
|
+import com.qmth.teachcloud.common.enums.BasicExamStudentStatusEnum;
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
import com.qmth.teachcloud.common.enums.PageSizeEnum;
|
|
import com.qmth.teachcloud.common.enums.PageSizeEnum;
|
|
import com.qmth.teachcloud.common.enums.ScanStatus;
|
|
import com.qmth.teachcloud.common.enums.ScanStatus;
|
|
@@ -613,6 +614,8 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
|
|
this.countUploadedByExamIdAndPaperNumber(student.getExamId(), student.getPaperNumber()));
|
|
this.countUploadedByExamIdAndPaperNumber(student.getExamId(), student.getPaperNumber()));
|
|
markPaperService.updateAbsentCount(student.getExamId(), student.getPaperNumber(),
|
|
markPaperService.updateAbsentCount(student.getExamId(), student.getPaperNumber(),
|
|
this.countAbsentByExamIdAndPaperNumber(student.getExamId(), student.getPaperNumber()));
|
|
this.countAbsentByExamIdAndPaperNumber(student.getExamId(), student.getPaperNumber()));
|
|
|
|
+ // 更新考生管理中考生状态
|
|
|
|
+ this.updateBasicExamStudentStatus(student.getId());
|
|
if (updateOmrTask) {
|
|
if (updateOmrTask) {
|
|
// 清除识别对照任务
|
|
// 清除识别对照任务
|
|
scanOmrTaskService.deleteByStudentId(student.getExamId(), student.getId());
|
|
scanOmrTaskService.deleteByStudentId(student.getExamId(), student.getId());
|
|
@@ -1044,10 +1047,14 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
|
|
lw.set(MarkStudent::getScanStatus, status);
|
|
lw.set(MarkStudent::getScanStatus, status);
|
|
lw.set(MarkStudent::getManualAbsent, ScanStatus.MANUAL_ABSENT.equals(status));
|
|
lw.set(MarkStudent::getManualAbsent, ScanStatus.MANUAL_ABSENT.equals(status));
|
|
lw.set(MarkStudent::getAbsent, ScanStatus.MANUAL_ABSENT.equals(status));
|
|
lw.set(MarkStudent::getAbsent, ScanStatus.MANUAL_ABSENT.equals(status));
|
|
|
|
+ lw.set(MarkStudent::getMissScan, false);
|
|
lw.eq(MarkStudent::getId, student.getId());
|
|
lw.eq(MarkStudent::getId, student.getId());
|
|
update(lw);
|
|
update(lw);
|
|
markPaperService.updateAbsentCount(examId, student.getPaperNumber(),
|
|
markPaperService.updateAbsentCount(examId, student.getPaperNumber(),
|
|
this.countAbsentByExamIdAndPaperNumber(examId, student.getPaperNumber()));
|
|
this.countAbsentByExamIdAndPaperNumber(examId, student.getPaperNumber()));
|
|
|
|
+
|
|
|
|
+ // 更新考生管理中考生状态
|
|
|
|
+ this.updateBasicExamStudentStatus(student.getId());
|
|
return AbsentManualUpdateVo.create(status);
|
|
return AbsentManualUpdateVo.create(status);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1074,6 +1081,8 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
|
|
this.countUploadedByExamIdAndPaperNumber(examId, student.getPaperNumber()));
|
|
this.countUploadedByExamIdAndPaperNumber(examId, student.getPaperNumber()));
|
|
markPaperService.updateAbsentCount(examId, student.getPaperNumber(),
|
|
markPaperService.updateAbsentCount(examId, student.getPaperNumber(),
|
|
this.countAbsentByExamIdAndPaperNumber(examId, student.getPaperNumber()));
|
|
this.countAbsentByExamIdAndPaperNumber(examId, student.getPaperNumber()));
|
|
|
|
+ // 更新考生管理状态
|
|
|
|
+ this.updateBasicExamStudentStatus(student.getId());
|
|
return UpdateTimeVo.create();
|
|
return UpdateTimeVo.create();
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1862,6 +1871,7 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Transactional
|
|
@Override
|
|
@Override
|
|
public Boolean missScanUpdate(Long examId, String coursePaperId, String studentCode, Boolean missScan) {
|
|
public Boolean missScanUpdate(Long examId, String coursePaperId, String studentCode, Boolean missScan) {
|
|
MarkStudent student = findByExamIdAndCoursePaperIdAndStudentCode(examId, coursePaperId, studentCode);
|
|
MarkStudent student = findByExamIdAndCoursePaperIdAndStudentCode(examId, coursePaperId, studentCode);
|
|
@@ -1872,9 +1882,16 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
|
|
throw new ParameterException("考生不是未扫描状态");
|
|
throw new ParameterException("考生不是未扫描状态");
|
|
}
|
|
}
|
|
LambdaUpdateWrapper<MarkStudent> lw = new LambdaUpdateWrapper<>();
|
|
LambdaUpdateWrapper<MarkStudent> lw = new LambdaUpdateWrapper<>();
|
|
|
|
+ lw.set(MarkStudent::getScanStatus, ScanStatus.UNEXIST);
|
|
|
|
+ lw.set(MarkStudent::getManualAbsent, false);
|
|
|
|
+ lw.set(MarkStudent::getAbsent, false);
|
|
lw.set(MarkStudent::getMissScan, missScan);
|
|
lw.set(MarkStudent::getMissScan, missScan);
|
|
lw.eq(MarkStudent::getId, student.getId());
|
|
lw.eq(MarkStudent::getId, student.getId());
|
|
- return this.update(lw);
|
|
|
|
|
|
+ this.update(lw);
|
|
|
|
+
|
|
|
|
+ // 更新考生管理状态
|
|
|
|
+ this.updateBasicExamStudentStatus(student.getId());
|
|
|
|
+ return true;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -1901,4 +1918,13 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
|
|
queryWrapper.lambda().eq(MarkStudent::getBasicStudentId, basicStudentId);
|
|
queryWrapper.lambda().eq(MarkStudent::getBasicStudentId, basicStudentId);
|
|
return this.getOne(queryWrapper);
|
|
return this.getOne(queryWrapper);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void updateBasicExamStudentStatus(Long markStudentId) {
|
|
|
|
+ MarkStudent markStudent = this.getById(markStudentId);
|
|
|
|
+ if (markStudent != null && markStudent.getBasicStudentId() != null) {
|
|
|
|
+ BasicExamStudentStatusEnum status = markStudent.getAbsent() || markStudent.getOmrAbsent() ? BasicExamStudentStatusEnum.M : BasicExamStudentStatusEnum.N;
|
|
|
|
+ this.baseMapper.updateBasicExamStudentStatus(status.name(), markStudent.getBasicStudentId());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|