Ver Fonte

学生库选择优化

wangliang há 2 anos atrás
pai
commit
1f5b83492b

+ 15 - 9
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -2075,8 +2075,9 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             case BASIC_CLAZZ_STUDENT:
                 // 基础班级对象
                 List<BasicStudentResult> basicStudentResultList = basicStudentService.basicStudentList(schoolId, null, null, null, null);
-                LinkedMultiValueMap<Long, StudentInfo> studentInfoLinkedMultiValueMap = new LinkedMultiValueMap<>();
                 if (!CollectionUtils.isEmpty(basicStudentResultList)) {
+                    LinkedMultiValueMap<Long, StudentInfo> studentInfoLinkedMultiValueMap = new LinkedMultiValueMap<>();
+                    Map<Long, ExamTaskStudentObjectResult> examTaskStudentObjectResultMap = new LinkedHashMap<>();
                     for (BasicStudentResult e : basicStudentResultList) {
                         StudentInfo studentInfo = new StudentInfo();
                         studentInfo.setStudentId(e.getId());
@@ -2087,15 +2088,20 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                         studentInfo.setBasicClazzId(e.getClazzId());
                         studentInfo.setBasicClazzName(e.getClazz());
                         studentInfoLinkedMultiValueMap.add(e.getClazzId(), studentInfo);
+
+                        ExamTaskStudentObjectResult examTaskStudentObjectResult = null;
+                        if (!examTaskStudentObjectResultMap.containsKey(e.getClazzId())) {
+                            examTaskStudentObjectResult = new ExamTaskStudentObjectResult();
+                            examTaskStudentObjectResult.setClazzId(e.getClazzId());
+                            examTaskStudentObjectResult.setClazzName(e.getClazz());
+                            examTaskStudentObjectResult.setStudentClazzType(examObjectType.getStudentClazzType());
+                        } else {
+                            examTaskStudentObjectResult = examTaskStudentObjectResultMap.get(e.getClazzId());
+                        }
+                        examTaskStudentObjectResult.setStudentInfoList(studentInfoLinkedMultiValueMap.get(e.getClazzId()));
+                        examTaskStudentObjectResultMap.put(e.getClazzId(), examTaskStudentObjectResult);
                     }
-                    studentInfoLinkedMultiValueMap.forEach((k, v) -> {
-                        ExamTaskStudentObjectResult examTaskStudentObjectResult = new ExamTaskStudentObjectResult();
-                        examTaskStudentObjectResult.setClazzId(k);
-                        examTaskStudentObjectResult.setClazzName(v.get(0).getBasicClazzName());
-                        examTaskStudentObjectResult.setStudentInfoList(v);
-                        examTaskStudentObjectResult.setStudentClazzType(examObjectType.getStudentClazzType());
-                        result.add(examTaskStudentObjectResult);
-                    });
+                    result.addAll(examTaskStudentObjectResultMap.values());
                 }
                 break;
             default: