Browse Source

管理员统计修改

wangliang 1 year ago
parent
commit
40e7fe091c

+ 19 - 8
themis-business/src/main/java/com/qmth/themis/business/service/impl/TIeReportServiceImpl.java

@@ -66,15 +66,18 @@ public class TIeReportServiceImpl implements TIeReportService {
     @Resource
     TOeExamRecordMapper tOeExamRecordMapper;
 
-    @Resource
-    TOeExamRecordService tOeExamRecordService;
-
     @Resource
     ThemisCacheService themisCacheService;
 
     @Resource
     TEExamService teExamService;
 
+    @Resource
+    TEExamActivityService teExamActivityService;
+
+    @Resource
+    TEExamStudentService teExamStudentService;
+
     /**
      * 考试概览
      *
@@ -94,15 +97,23 @@ public class TIeReportServiceImpl implements TIeReportService {
         Integer examTotal = 0, actualExamTotal = 0, absentNum = 0, completeOffExamTotal = 0;
         ExamCacheBean exam = examService.getExamCacheBean(examId);
         // 应考人数&实考人数
-        List<Integer> list = tOeExamRecordService.findByViewAdmin(orgId, examId, examActivityId, roomCode, courseCode, exam.getMonitorStatus());
-        if (Objects.nonNull(list) && list.size() > 0) {
-            examTotal = list.get(0);
-            actualExamTotal = list.get(1);
-            completeOffExamTotal = list.get(2);
+//        List<Integer> list = tOeExamRecordService.findByViewAdmin(orgId, examId, examActivityId, roomCode, courseCode, exam.getMonitorStatus());
+//        if (Objects.nonNull(list) && list.size() > 0) {
+//            examTotal = list.get(0);
+//            actualExamTotal = list.get(1);
+//            completeOffExamTotal = list.get(2);
+//        }
+        List<TEExamSummary> teExamSummaryList = themisCacheService.getExamSummaryCache(examId, examActivityId, roomCode);
+        for (TEExamSummary t : teExamSummaryList) {
+            examTotal = examTotal + t.getTotalCount();
+            actualExamTotal = actualExamTotal + t.getFinishCount();
+            absentNum = absentNum + t.getAbsentCount();
         }
+
         if (exam.getMonitorStatus() == InvigilateMonitorStatusEnum.FINISHED) {// 结束监考的,未考试的都是缺考
             absentNum = examTotal.intValue() - actualExamTotal.intValue();
         }
+        completeOffExamTotal = absentNum;
         // 每日已考人数
         List<Map<String, Object>> doneCountByDay = tOeExamRecordMapper.getDoneCountByDay(orgId, examId, examActivityId, roomCode, courseCode);