|
@@ -10,8 +10,6 @@ import com.qmth.themis.business.entity.TOeExamRecord;
|
|
|
import com.qmth.themis.business.enums.ExamRecordStatusEnum;
|
|
|
import com.qmth.themis.business.enums.FinishTypeEnum;
|
|
|
import com.qmth.themis.business.service.*;
|
|
|
-import com.qmth.themis.business.util.MqUtil;
|
|
|
-import com.qmth.themis.business.util.OssUtil;
|
|
|
import com.qmth.themis.task.quartz.service.QuartzLogicService;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -20,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
|
|
@@ -49,18 +48,6 @@ public class QuartzLogicServiceImpl implements QuartzLogicService {
|
|
|
@Resource
|
|
|
CommonService commonService;
|
|
|
|
|
|
- @Resource
|
|
|
- MqUtil mqUtil;
|
|
|
-
|
|
|
- @Resource
|
|
|
- MqDtoService mqDtoService;
|
|
|
-
|
|
|
- @Resource
|
|
|
- ThemisCacheService themisCacheService;
|
|
|
-
|
|
|
- @Resource
|
|
|
- OssUtil ossUtil;
|
|
|
-
|
|
|
/**
|
|
|
* 考试场次quartz逻辑
|
|
|
*
|
|
@@ -80,6 +67,7 @@ public class QuartzLogicServiceImpl implements QuartzLogicService {
|
|
|
List<TOeExamRecord> examRecordList = tOeExamRecordService.list(tOeExamRecordQueryWrapper);
|
|
|
if (Objects.nonNull(forceFinish) && forceFinish.intValue() == 1) {//强制收卷
|
|
|
if (!CollectionUtils.isEmpty(examRecordList)) {
|
|
|
+ List<TOeExamRecord> updateExamRecordList = new ArrayList<>(examRecordList.size() / 2);
|
|
|
examRecordList.forEach(s -> {
|
|
|
ExamRecordStatusEnum examRecordStatusEnum = s.getStatus();
|
|
|
//获取该考试批次下所有未交卷的考生的考试记录
|
|
@@ -93,6 +81,9 @@ public class QuartzLogicServiceImpl implements QuartzLogicService {
|
|
|
try {
|
|
|
if (examRecordStatusEnum == ExamRecordStatusEnum.FIRST_PREPARE && Objects.isNull(s.getFirstStartTime())) {
|
|
|
commonService.deleteExamStudentCache(s.getId(), examStudentCacheBean.getStudentId());
|
|
|
+ s.setStatus(ExamRecordStatusEnum.JUNK);
|
|
|
+ s.setUpdateTime(System.currentTimeMillis());
|
|
|
+ updateExamRecordList.add(s);
|
|
|
commonService.DismissRoomByStrRoomId(s.getId());
|
|
|
} else {//交卷
|
|
|
Long recordEndTime = s.getEndTime();
|
|
@@ -105,9 +96,13 @@ public class QuartzLogicServiceImpl implements QuartzLogicService {
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
+ if (!CollectionUtils.isEmpty(updateExamRecordList)) {
|
|
|
+ tOeExamRecordService.updateBatchById(updateExamRecordList);
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
if (!CollectionUtils.isEmpty(examRecordList)) {
|
|
|
+ List<TOeExamRecord> updateExamRecordList = new ArrayList<>(examRecordList.size() / 2);
|
|
|
examRecordList.forEach(s -> {
|
|
|
ExamRecordStatusEnum examRecordStatusEnum = s.getStatus();
|
|
|
//获取该考试批次下所有未交卷的考生的考试记录
|
|
@@ -124,6 +119,9 @@ public class QuartzLogicServiceImpl implements QuartzLogicService {
|
|
|
try {
|
|
|
if (examRecordStatusEnum == ExamRecordStatusEnum.FIRST_PREPARE && Objects.isNull(s.getFirstStartTime())) {
|
|
|
commonService.deleteExamStudentCache(s.getId(), examStudentCacheBean.getStudentId());
|
|
|
+ s.setStatus(ExamRecordStatusEnum.JUNK);
|
|
|
+ s.setUpdateTime(System.currentTimeMillis());
|
|
|
+ updateExamRecordList.add(s);
|
|
|
commonService.DismissRoomByStrRoomId(s.getId());
|
|
|
} else {//交卷
|
|
|
teExamService.finish(examStudentCacheBean.getStudentId(), s.getId(), FinishTypeEnum.AUTO.name(), durationSeconds);
|
|
@@ -134,6 +132,9 @@ public class QuartzLogicServiceImpl implements QuartzLogicService {
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
+ if (!CollectionUtils.isEmpty(updateExamRecordList)) {
|
|
|
+ tOeExamRecordService.updateBatchById(updateExamRecordList);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -164,9 +165,13 @@ public class QuartzLogicServiceImpl implements QuartzLogicService {
|
|
|
firstStartTime = tOeExamRecord.getFirstStartTime();
|
|
|
}
|
|
|
//候考阶段且没有进入考试则不交卷
|
|
|
+ TOeExamRecord tOeExamRecord = null;
|
|
|
try {
|
|
|
if (examRecordStatusEnum == ExamRecordStatusEnum.FIRST_PREPARE && Objects.isNull(firstStartTime)) {
|
|
|
+ tOeExamRecord = SystemConstant.getExamRecord(recordId);
|
|
|
commonService.deleteExamStudentCache(recordId, examStudentCacheBean.getStudentId());
|
|
|
+ tOeExamRecord.setStatus(ExamRecordStatusEnum.JUNK);
|
|
|
+ tOeExamRecord.setUpdateTime(System.currentTimeMillis());
|
|
|
commonService.DismissRoomByStrRoomId(recordId);
|
|
|
} else {//交卷
|
|
|
Long recordEndTime = ExamRecordCacheUtil.getEndTime(recordId);
|
|
@@ -178,6 +183,9 @@ public class QuartzLogicServiceImpl implements QuartzLogicService {
|
|
|
} catch (Exception e) {
|
|
|
log.error(SystemConstant.LOG_ERROR, e);
|
|
|
}
|
|
|
+ if (Objects.nonNull(tOeExamRecord)) {
|
|
|
+ tOeExamRecordService.updateById(tOeExamRecord);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|