wangliang 1 рік тому
батько
коміт
326c1d4d22

+ 2 - 2
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamSummaryServiceImpl.java

@@ -94,8 +94,8 @@ public class TEExamSummaryServiceImpl extends ServiceImpl<TEExamSummaryMapper, T
                 Integer absentCount = teExamStudentService.getAbsentCount(examId, examActivityId, s);
                 teExamSummary.setAbsentCount(Objects.nonNull(absentCount) ? absentCount : 0);
             }
-            Integer finishCount = tOeExamRecordService.findExamRecordByFinish(examId, examActivityId, s);
-            teExamSummary.setFinishCount(finishCount);
+//            Integer finishCount = tOeExamRecordService.findExamRecordByFinish(examId, examActivityId, s);
+//            teExamSummary.setFinishCount(finishCount);
             TEExamSummary teExamSummaryDb = this.getOne(new QueryWrapper<TEExamSummary>().lambda()
                     .eq(TEExamSummary::getExamId, examId)
                     .eq(TEExamSummary::getExamActivityId, examActivityId)

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

@@ -94,7 +94,7 @@ public class TIeReportServiceImpl implements TIeReportService {
         for (TEExamSummary t : teExamSummaryList) {
             examTotal = examTotal + t.getTotalCount();
             absentNum = absentNum + t.getAbsentCount();
-            actualExamTotal = t.getFinishCount();
+            actualExamTotal = examTotal.intValue() - absentNum.intValue();
         }
         // 每日已考人数
         List<Map<String, Object>> doneCountByDay = tOeExamRecordMapper.getDoneCountByDay(orgId, examId, examActivityId, roomCode, courseCode);

+ 2 - 3
themis-business/src/main/resources/mapper/TEExamSummaryMapper.xml

@@ -13,9 +13,8 @@
             sum(t.warning_count) as warningCount,
             sum(t.warning_unread) as warningUnread,
             sum(t.warning_multiple_face_count) as warningMultipleFaceCount,
-            sum(t.exception_count) as exceptionCount
-               <!--,
-            sum(case when (t.status = 'FINISHED' or t.status = 'PERSISTED' or s.already_exam_count > 0) then 1 else 0 end) as finishCount-->
+            sum(t.exception_count) as exceptionCount,
+            sum(case when ((t.status = 'FINISHED' or t.status = 'PERSISTED' and t.first_start_time is not null) or s.already_exam_count > 0) then 1 else 0 end) as finishCount
         from t_e_exam_student s
             left join t_oe_exam_record t on t.id = s.current_record_id
         <where> 1 = 1