|
@@ -1,6 +1,5 @@
|
|
|
package com.qmth.themis.business.service.impl;
|
|
|
|
|
|
-import cn.hutool.core.date.DateUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.qmth.themis.business.cache.bean.ExamActivityCacheBean;
|
|
@@ -8,6 +7,7 @@ import com.qmth.themis.business.constant.SystemConstant;
|
|
|
import com.qmth.themis.business.dao.TEExamSummaryMapper;
|
|
|
import com.qmth.themis.business.entity.TEExamSummary;
|
|
|
import com.qmth.themis.business.service.TEExamActivityService;
|
|
|
+import com.qmth.themis.business.service.TEExamStudentService;
|
|
|
import com.qmth.themis.business.service.TEExamSummaryService;
|
|
|
import com.qmth.themis.business.service.ThemisCacheService;
|
|
|
import com.qmth.themis.business.util.UidUtil;
|
|
@@ -18,7 +18,6 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import java.util.Date;
|
|
|
import java.util.Objects;
|
|
|
import java.util.Set;
|
|
|
|
|
@@ -40,6 +39,9 @@ public class TEExamSummaryServiceImpl extends ServiceImpl<TEExamSummaryMapper, T
|
|
|
@Resource
|
|
|
ThemisCacheService themisCacheService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ TEExamStudentService teExamStudentService;
|
|
|
+
|
|
|
/**
|
|
|
* 统计考试信息
|
|
|
*
|
|
@@ -72,26 +74,19 @@ public class TEExamSummaryServiceImpl extends ServiceImpl<TEExamSummaryMapper, T
|
|
|
teExamSummary.setExamActivityId(examActivityId);
|
|
|
teExamSummary.setRoomCode(s);
|
|
|
ExamActivityCacheBean ac = teExamActivityService.getExamActivityCacheBean(examActivityId);
|
|
|
- //换算开始时间、侯考时间、结束时间
|
|
|
- Long startTime = ac.getStartTime() - (ac.getPrepareSeconds() * 1000);
|
|
|
- Integer openingSecondsTemp = ac.getOpeningSeconds();
|
|
|
- openingSecondsTemp = Objects.nonNull(openingSecondsTemp) && openingSecondsTemp.intValue() == 0 ? SystemConstant.DEFAULT_OPENING_SECONDS : openingSecondsTemp;
|
|
|
- Long finalPrepareTime = ac.getStartTime() + (openingSecondsTemp * 1000);
|
|
|
+// //换算开始时间、侯考时间、结束时间
|
|
|
+// Long startTime = ac.getStartTime() - (ac.getPrepareSeconds() * 1000);
|
|
|
+// Integer openingSecondsTemp = ac.getOpeningSeconds();
|
|
|
+// openingSecondsTemp = Objects.nonNull(openingSecondsTemp) && openingSecondsTemp.intValue() == 0 ? SystemConstant.DEFAULT_OPENING_SECONDS : openingSecondsTemp;
|
|
|
+// Long finalPrepareTime = ac.getStartTime() + (openingSecondsTemp * 1000);
|
|
|
Long endTime = ac.getFinishTime() + SystemConstant.FINISH_DELAY_TIME;//交卷时间加5分钟,后台交卷可能未完成
|
|
|
long timestamp = System.currentTimeMillis();
|
|
|
- if (startTime <= timestamp || teExamSummary.getPrepareCount().intValue() > 0) {//侯考
|
|
|
- teExamSummary.setAbsentCount(teExamSummary.getTotalCount() - teExamSummary.getPrepareCount());
|
|
|
- }
|
|
|
- log.info("examSummary examId:{},examActivityId:{},startTime:{},finalPrepareTime:{},endTime:{}", examId, ac.getId(), DateUtil.format(new Date(startTime), "yyyy-MM-dd HH:mm:ss"), DateUtil.format(new Date(finalPrepareTime), "yyyy-MM-dd HH:mm:ss"), DateUtil.format(new Date(endTime), "yyyy-MM-dd HH:mm:ss"));
|
|
|
- //最后侯考时间已过且未结束考试,当前侯考数设为0
|
|
|
- if (finalPrepareTime <= timestamp) {
|
|
|
- teExamSummary.setPrepareCount(0);
|
|
|
- }
|
|
|
- //交卷
|
|
|
+// //交卷
|
|
|
if (endTime <= timestamp) {//当考试场次结束时间已过,缺考=全部应考-已完成考试
|
|
|
teExamSummary.setAbsentCount(teExamSummary.getTotalCount() - teExamSummary.getFinishCount());
|
|
|
- } else {//否则缺考=全部应考-侯考数(0)-考试中-已完成考试
|
|
|
- teExamSummary.setAbsentCount(teExamSummary.getTotalCount() - teExamSummary.getPrepareCount() - teExamSummary.getExamCount() - teExamSummary.getFinishCount());
|
|
|
+ } else {
|
|
|
+ Integer absentCount = teExamStudentService.getAbsentCount(examId, examActivityId, s);
|
|
|
+ teExamSummary.setAbsentCount(Objects.nonNull(absentCount) ? absentCount : 0);
|
|
|
}
|
|
|
TEExamSummary teExamSummaryDb = this.getOne(new QueryWrapper<TEExamSummary>().lambda()
|
|
|
.eq(TEExamSummary::getExamId, examId)
|