|
@@ -32,53 +32,42 @@ public class ExamAndCourseTotalService {
|
|
|
|
|
|
public List<ExamAndCourseDepartTotalDTO> examAndCourseTotal(BaseQueryReqDTO reqDTO) {
|
|
|
|
|
|
- List<ExamAndCourseDepartTotalDTO> totalDTOS = new ArrayList<>();
|
|
|
- List<CourseDepartTotalDTO> coursedtos = courseService.courseDepartTotal(reqDTO);
|
|
|
- List<ExamDepartTotalDTO> examdtos = examService.examDepartTotal(reqDTO);
|
|
|
-
|
|
|
+ List<ExamAndCourseDepartTotalDTO> totalList = new ArrayList<>();
|
|
|
+ List<CourseDepartTotalDTO> courseList = courseService.courseDepartTotal(reqDTO);
|
|
|
+ List<ExamDepartTotalDTO> examdList = examService.examDepartTotal(reqDTO);
|
|
|
+
|
|
|
+ List<String> cours = courseList.stream().map(CourseDepartTotalDTO::getDeptCode).collect(Collectors.toList());
|
|
|
+ List<String> exams = examdList.stream().map(ExamDepartTotalDTO::getDeptCode).collect(Collectors.toList());
|
|
|
+ cours.addAll(exams);
|
|
|
+ List<String> intersection = cours.stream().distinct().collect(Collectors.toList());
|
|
|
ExamAndCourseDepartTotalDTO totalDTO = null;
|
|
|
- if (coursedtos.size() >= examdtos.size()) {
|
|
|
- Map<String, List<ExamDepartTotalDTO>> groupexamdtos = examdtos.stream().collect(Collectors.groupingBy(ExamDepartTotalDTO::getDeptCode));
|
|
|
- for (int i = 0; i < coursedtos.size(); i++) {
|
|
|
- totalDTO = new ExamAndCourseDepartTotalDTO();
|
|
|
- totalDTO.setDeptCode(coursedtos.get(i).getDeptCode());
|
|
|
- totalDTO.setDeptName(coursedtos.get(i).getDeptName());
|
|
|
- totalDTO.setEcTotalUser(coursedtos.get(i).getEcTotalUser());
|
|
|
- totalDTO.setEcActualUser(coursedtos.get(i).getEcActualUser());
|
|
|
- totalDTO.setEcPassUser(coursedtos.get(i).getEcPassUser());
|
|
|
- totalDTO.setEcTotalMin(coursedtos.get(i).getEcTotalMin());
|
|
|
- List<ExamDepartTotalDTO> groupexams = groupexamdtos.get(coursedtos.get(i).getDeptCode()) == null ? null : groupexamdtos.get(coursedtos.get(i).getDeptCode());
|
|
|
- if (null != groupexams && groupexams.size() == 1) {
|
|
|
- totalDTO.setEeTotalUser(groupexams.get(0).getEeTotalUser());
|
|
|
- totalDTO.setEeActualUser(groupexams.get(0).getEeActualUser());
|
|
|
- totalDTO.setEePassUser(groupexams.get(0).getEePassUser());
|
|
|
-
|
|
|
- }
|
|
|
- totalDTOS.add(totalDTO);
|
|
|
+ Map<String, List<CourseDepartTotalDTO>> groupcourse = courseList.stream().collect(Collectors.groupingBy(CourseDepartTotalDTO::getDeptCode));
|
|
|
+ Map<String, List<ExamDepartTotalDTO>> groupexam = examdList.stream().collect(Collectors.groupingBy(ExamDepartTotalDTO::getDeptCode));
|
|
|
+
|
|
|
+ for (String key : intersection) {
|
|
|
+
|
|
|
+ List<CourseDepartTotalDTO> groupcourses = groupcourse.get(key)== null ? null : groupcourse.get(key);
|
|
|
+ List<ExamDepartTotalDTO> groupexams = groupexam.get(key) == null ? null : groupexam.get(key);
|
|
|
+
|
|
|
+ totalDTO = new ExamAndCourseDepartTotalDTO();
|
|
|
+ totalDTO.setDeptCode(null != groupexams ? groupexams.get(0).getDeptCode() : groupcourses.get(0).getDeptCode());
|
|
|
+ totalDTO.setDeptName(null != groupexams ? groupexams.get(0).getDeptName() : groupcourses.get(0).getDeptName());
|
|
|
+ if (null != groupcourses && groupcourses.size() == 1) {
|
|
|
+ totalDTO.setEcTotalUser(groupcourses.get(0).getEcTotalUser());
|
|
|
+ totalDTO.setEcActualUser(groupcourses.get(0).getEcActualUser());
|
|
|
+ totalDTO.setEcPassUser(groupcourses.get(0).getEcPassUser());
|
|
|
+ totalDTO.setEcTotalMin(groupcourses.get(0).getEcTotalMin());
|
|
|
}
|
|
|
|
|
|
- } else {
|
|
|
- Map<String, List<CourseDepartTotalDTO>> groupcoursedtos = coursedtos.stream().collect(Collectors.groupingBy(CourseDepartTotalDTO::getDeptCode));
|
|
|
- for (int i = 0; i < examdtos.size(); i++) {
|
|
|
- totalDTO = new ExamAndCourseDepartTotalDTO();
|
|
|
- totalDTO.setDeptCode(examdtos.get(i).getDeptCode());
|
|
|
- totalDTO.setDeptName(examdtos.get(i).getDeptName());
|
|
|
- totalDTO.setEeTotalUser(examdtos.get(i).getEeTotalUser());
|
|
|
- totalDTO.setEeActualUser(examdtos.get(i).getEePassUser());
|
|
|
- totalDTO.setEePassUser(examdtos.get(i).getEePassUser());
|
|
|
- List<CourseDepartTotalDTO> groupcourses = groupcoursedtos.get(examdtos.get(i).getDeptCode()) == null ? null : groupcoursedtos.get(examdtos.get(i).getDeptCode());
|
|
|
-
|
|
|
- if (null != groupcourses && groupcourses.size() == 1) {
|
|
|
- totalDTO.setEcTotalUser(groupcourses.get(0).getEcTotalUser());
|
|
|
- totalDTO.setEcActualUser(groupcourses.get(0).getEcActualUser());
|
|
|
- totalDTO.setEcPassUser(groupcourses.get(0).getEcPassUser());
|
|
|
- totalDTO.setEcTotalMin(groupcourses.get(0).getEcTotalMin());
|
|
|
- }
|
|
|
- totalDTOS.add(totalDTO);
|
|
|
+ if (null != groupexams && groupexams.size() == 1) {
|
|
|
+ totalDTO.setEeTotalUser(groupexams.get(0).getEeTotalUser());
|
|
|
+ totalDTO.setEeActualUser(groupexams.get(0).getEeActualUser());
|
|
|
+ totalDTO.setEePassUser(groupexams.get(0).getEePassUser());
|
|
|
}
|
|
|
-
|
|
|
+ totalList.add(totalDTO);
|
|
|
}
|
|
|
- return totalDTOS;
|
|
|
+
|
|
|
+ return totalList;
|
|
|
}
|
|
|
|
|
|
|