|
@@ -3,6 +3,7 @@ package cn.com.qmth.scancentral.service.impl;
|
|
import cn.com.qmth.scancentral.dao.ExamSummaryDao;
|
|
import cn.com.qmth.scancentral.dao.ExamSummaryDao;
|
|
import cn.com.qmth.scancentral.entity.ExamEntity;
|
|
import cn.com.qmth.scancentral.entity.ExamEntity;
|
|
import cn.com.qmth.scancentral.entity.ExamSummaryEntity;
|
|
import cn.com.qmth.scancentral.entity.ExamSummaryEntity;
|
|
|
|
+import cn.com.qmth.scancentral.enums.ExamStatus;
|
|
import cn.com.qmth.scancentral.service.*;
|
|
import cn.com.qmth.scancentral.service.*;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
@@ -41,19 +42,7 @@ public class ExamSummaryServiceImpl extends ServiceImpl<ExamSummaryDao, ExamSumm
|
|
@Override
|
|
@Override
|
|
@Transactional
|
|
@Transactional
|
|
public ExamSummaryEntity find(Long examId) {
|
|
public ExamSummaryEntity find(Long examId) {
|
|
- // 独立模式下优先取定时计算结果
|
|
|
|
- // if (SystemMode.current() == SystemMode.STANDALONE) {
|
|
|
|
- ExamSummaryEntity es = getById(examId);
|
|
|
|
- if (es == null) {
|
|
|
|
- es = build(examId);
|
|
|
|
- saveOrUpdate(es);
|
|
|
|
- }
|
|
|
|
- return es;
|
|
|
|
- // }
|
|
|
|
- // // 云阅卷模式下每次实时计算
|
|
|
|
- // else {
|
|
|
|
- // return build(examId);
|
|
|
|
- // }
|
|
|
|
|
|
+ return getById(examId);
|
|
}
|
|
}
|
|
|
|
|
|
private ExamSummaryEntity build(Long examId) {
|
|
private ExamSummaryEntity build(Long examId) {
|
|
@@ -67,16 +56,18 @@ public class ExamSummaryServiceImpl extends ServiceImpl<ExamSummaryDao, ExamSumm
|
|
es.setPackageScannedCount(packageResultService.getCountByExam(examId));
|
|
es.setPackageScannedCount(packageResultService.getCountByExam(examId));
|
|
es.setUploadProgress(studentService.getUploadProgress(examId));
|
|
es.setUploadProgress(studentService.getUploadProgress(examId));
|
|
es.setStudentAnswerCount(studentService.getStudentAnswerCount(examId));
|
|
es.setStudentAnswerCount(studentService.getStudentAnswerCount(examId));
|
|
|
|
+ int absentCount = studentService.countByExamIdAndExamStatus(examId, ExamStatus.ABSENT);
|
|
|
|
+ int okCount = studentService.countByExamIdAndExamStatus(examId, ExamStatus.OK);
|
|
|
|
+ int todoCount = studentService.countByExamIdAndExamStatus(examId, ExamStatus.UNCHECK1, ExamStatus.UNCHECK2,
|
|
|
|
+ ExamStatus.UNCHECK3);
|
|
|
|
+ es.setAbsentCount(absentCount);
|
|
|
|
+ es.setOkCount(okCount);
|
|
|
|
+ es.setTodoCount(todoCount);
|
|
return es;
|
|
return es;
|
|
}
|
|
}
|
|
|
|
|
|
- // @Scheduled(fixedDelay = 20 * 1000, initialDelay = 20 * 1000)
|
|
|
|
- @Scheduled(cron = "0/60 * * * * ?")
|
|
|
|
|
|
+ @Scheduled(fixedDelay = 30 * 1000, initialDelay = 10 * 1000)
|
|
public void cronRefresh() {
|
|
public void cronRefresh() {
|
|
- // 只有独立模式下开启定时刷新
|
|
|
|
- // if (SystemMode.MARKINGCLOUD.equals(SystemMode.current())) {
|
|
|
|
- // return;
|
|
|
|
- // }
|
|
|
|
List<ExamEntity> list = examService.listEnable();
|
|
List<ExamEntity> list = examService.listEnable();
|
|
for (ExamEntity exam : list) {
|
|
for (ExamEntity exam : list) {
|
|
log.info("ExamSummaryJob running for examId={}", exam.getId());
|
|
log.info("ExamSummaryJob running for examId={}", exam.getId());
|