Browse Source

在线考试2022/05/20临时上线需求更改,管理员报表修改

wangliang 3 years ago
parent
commit
456090ceba

+ 1 - 1
themis-business/src/main/java/com/qmth/themis/business/dao/TOeExamRecordMapper.java

@@ -464,7 +464,7 @@ public interface TOeExamRecordMapper extends BaseMapper<TOeExamRecord> {
      * @param courseCode
      * @return
      */
-    List<Integer> findByViewAdmin(@Param("orgId") Long orgId, @Param("examId") Long examId, @Param("examActivityId") Long examActivityId, @Param("roomCode") String roomCode, @Param("courseCode") String courseCode);
+    List<Integer> findByViewAdmin(@Param("orgId") Long orgId, @Param("examId") Long examId, @Param("examActivityId") Long examActivityId, @Param("roomCode") String roomCode, @Param("courseCode") String courseCode, @Param("monitorStatus") String monitorStatus);
 
     /**
      * 考试明细查询接口

+ 18 - 17
themis-business/src/main/java/com/qmth/themis/business/service/TOeExamRecordService.java

@@ -366,22 +366,22 @@ public interface TOeExamRecordService extends IService<TOeExamRecord> {
      * @return
      */
     public List<InvigilateListHistoryBean> invigilatePageListHistoryExport(Long examId,
-                                                                      Long examActivityId,
-                                                                      String roomCode,
-                                                                      String courseCode,
-                                                                      String status,
-                                                                      Integer breachStatus,
-                                                                      String finishType,
-                                                                      String name,
-                                                                      String identity,
-                                                                      Integer minMultipleFaceCount,
-                                                                      Integer maxMultipleFaceCount,
-                                                                      Integer minExceptionCount,
-                                                                      Integer maxExceptionCount,
-                                                                      Integer minWarningCount,
-                                                                      Integer maxWarningCount,
-                                                                      Long userId,
-                                                                      Long orgId);
+                                                                           Long examActivityId,
+                                                                           String roomCode,
+                                                                           String courseCode,
+                                                                           String status,
+                                                                           Integer breachStatus,
+                                                                           String finishType,
+                                                                           String name,
+                                                                           String identity,
+                                                                           Integer minMultipleFaceCount,
+                                                                           Integer maxMultipleFaceCount,
+                                                                           Integer minExceptionCount,
+                                                                           Integer maxExceptionCount,
+                                                                           Integer minWarningCount,
+                                                                           Integer maxWarningCount,
+                                                                           Long userId,
+                                                                           Long orgId);
 
 
     /**
@@ -498,9 +498,10 @@ public interface TOeExamRecordService extends IService<TOeExamRecord> {
      * @param examActivityId
      * @param roomCode
      * @param courseCode
+     * @param monitorStatus
      * @return
      */
-    List<Integer> findByViewAdmin(Long orgId, Long examId, Long examActivityId, String roomCode, String courseCode);
+    List<Integer> findByViewAdmin(Long orgId, Long examId, Long examActivityId, String roomCode, String courseCode, InvigilateMonitorStatusEnum monitorStatus);
 
     /**
      * 考试明细查询接口

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

@@ -67,14 +67,14 @@ public class TIeReportServiceImpl implements TIeReportService {
                                         String name, String identity) {
         // 缺考人数
         Integer examTotal = 0, actualExamTotal = 0, absentNum = 0, completeOffExamTotal = 0;
+        ExamCacheBean exam = examService.getExamCacheBean(examId);
         // 应考人数&实考人数
-        List<Integer> list = tOeExamRecordService.findByViewAdmin(orgId, examId, examActivityId, roomCode, courseCode);
+        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);
         }
-        ExamCacheBean exam = examService.getExamCacheBean(examId);
         if (exam.getMonitorStatus() == InvigilateMonitorStatusEnum.FINISHED) {// 结束监考的,未考试的都是缺考
             absentNum = examTotal.intValue() - actualExamTotal.intValue();
         }

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

@@ -1393,8 +1393,8 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
      * @return
      */
     @Override
-    public List<Integer> findByViewAdmin(Long orgId, Long examId, Long examActivityId, String roomCode, String courseCode) {
-        return tOeExamRecordMapper.findByViewAdmin(orgId, examId, examActivityId, roomCode, courseCode);
+    public List<Integer> findByViewAdmin(Long orgId, Long examId, Long examActivityId, String roomCode, String courseCode, InvigilateMonitorStatusEnum monitorStatus) {
+        return tOeExamRecordMapper.findByViewAdmin(orgId, examId, examActivityId, roomCode, courseCode, Objects.nonNull(monitorStatus) ? monitorStatus.name() : null);
     }
 
     /**

+ 4 - 1
themis-business/src/main/resources/mapper/TOeExamRecordMapper.xml

@@ -1563,7 +1563,10 @@
         </where>
         )) t
         where
-        t.id = toer.exam_student_id and toer.first_start_time is not null)
+        t.id = toer.exam_student_id
+        <if test="monitorStatus != null and monitorStatus != '' and monitorStatus == 'FINISHED'">
+            and toer.first_start_time is not null
+        </if>)
         union all
         select
         count(1)