Browse Source

监考考试批次查询

wangliang 1 year ago
parent
commit
996e7c84c2
1 changed files with 14 additions and 29 deletions
  1. 14 29
      themis-admin/src/main/java/com/qmth/themis/admin/api/SysController.java

+ 14 - 29
themis-admin/src/main/java/com/qmth/themis/admin/api/SysController.java

@@ -416,46 +416,31 @@ public class SysController {
         List<TBExamInvigilateUser> tbExamInvigilateUserList = tbExamInvigilateUserService
                 .list(examInvigilateUserQueryWrapper);
         Set<String> roomCodeSet = null;
-        if (Objects.nonNull(tbExamInvigilateUserList) && tbExamInvigilateUserList.size() > 0) {
-            Map<String, TBExamInvigilateUser> tbExamInvigilateUserMap = new LinkedHashMap<>();
-            tbExamInvigilateUserList.forEach(e -> {
-                tbExamInvigilateUserMap.put(e.getRoomCode(), e);
-            });
-            roomCodeSet = new LinkedHashSet<>();
-            tbExamInvigilateUserList.clear();
-            Set<String> finalRoomCodeSet = roomCodeSet;
-            List<TBExamInvigilateUser> finalTbExamInvigilateUserList = tbExamInvigilateUserList;
-            tbExamInvigilateUserMap.forEach((k, v) -> {
-                finalRoomCodeSet.add(k);
-                finalTbExamInvigilateUserList.add(v);
-            });
-        } else {
-            tbExamInvigilateUserList = null;
+        if (!CollectionUtils.isEmpty(tbExamInvigilateUserList)) {
+            roomCodeSet = tbExamInvigilateUserList.stream().map(s -> s.getRoomCode()).collect(Collectors.toSet());
         }
         List<TEExamActivity> teExamActivityList = null;
         Set<Map> courseSet = null;
-        if (Objects.nonNull(roomCodeSet)) {
+        if (!CollectionUtils.isEmpty(roomCodeSet)) {
             //根据roomCode获取当前老师所要监考的全部应考学生数
-            QueryWrapper<TEExamActivity> teExamActivityQueryWrapper = new QueryWrapper<>();
-            teExamActivityQueryWrapper.lambda().eq(TEExamActivity::getExamId, examId);
-            teExamActivityQueryWrapper.lambda().last(" order by CAST(code AS UNSIGNED) ");
-            teExamActivityList = teExamActivityService.list(teExamActivityQueryWrapper);
-
-            List<Long> teExamActivityIdList = teExamActivityList.stream().map(s -> s.getId()).collect(Collectors.toList());
             QueryWrapper<TEExamStudent> teExamStudentQueryWrapper = new QueryWrapper<>();
-            teExamStudentQueryWrapper.select(" distinct course_code,course_name ").lambda().eq(TEExamStudent::getExamId, examId)
-                    .in(TEExamStudent::getExamActivityId, teExamActivityIdList)
+            teExamStudentQueryWrapper.select(" distinct exam_activity_id,course_code,course_name ").lambda().eq(TEExamStudent::getExamId, examId)
                     .in(TEExamStudent::getRoomCode, roomCodeSet);
             List<TEExamStudent> teExamStudentList = teExamStudentService.list(teExamStudentQueryWrapper);
-            if (Objects.nonNull(teExamStudentList) && teExamStudentList.size() > 0) {
+            if (!CollectionUtils.isEmpty(teExamStudentList)) {
                 courseSet = new HashSet<>();
-                Set<Map> finalCourseSet = courseSet;
-                teExamStudentList.forEach(s -> {
+                Set<Long> examActivityIdSet = new HashSet<>();
+                for (TEExamStudent s : teExamStudentList) {
                     Map map = new HashMap();
                     map.put(SystemConstant.COURSE_CODE, s.getCourseCode());
                     map.put(SystemConstant.COURSE_NAME, s.getCourseName());
-                    finalCourseSet.add(map);
-                });
+                    courseSet.add(map);
+                    examActivityIdSet.add(s.getExamActivityId());
+                }
+                QueryWrapper<TEExamActivity> teExamActivityQueryWrapper = new QueryWrapper<>();
+                teExamActivityQueryWrapper.lambda().in(TEExamActivity::getId, examActivityIdSet);
+                teExamActivityQueryWrapper.lambda().last(" order by CAST(code AS UNSIGNED) ");
+                teExamActivityList = teExamActivityService.list(teExamActivityQueryWrapper);
             }
         }
         Map map = new HashMap();