|
@@ -0,0 +1,136 @@
|
|
|
+package com.gyee.exam.modules.ectotal.service;
|
|
|
+
|
|
|
+
|
|
|
+import com.gyee.boot.base.api.api.dto.BaseQueryReqDTO;
|
|
|
+import com.gyee.boot.base.api.api.dto.BaseUserQueryReqDTO;
|
|
|
+import com.gyee.exam.modules.course.dto.response.CourseDepartTotalDTO;
|
|
|
+import com.gyee.exam.modules.course.dto.response.CourseUserTotalDTO;
|
|
|
+import com.gyee.exam.modules.course.service.CourseService;
|
|
|
+import com.gyee.exam.modules.ectotal.dto.response.ExamAndCourseDepartTotalDTO;
|
|
|
+import com.gyee.exam.modules.ectotal.dto.response.ExamAndCourseUserTotalDTO;
|
|
|
+import com.gyee.exam.modules.exam.dto.response.ExamDepartTotalDTO;
|
|
|
+import com.gyee.exam.modules.exam.dto.response.ExamUserTotalDTO;
|
|
|
+import com.gyee.exam.modules.exam.service.ExamService;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.security.PublicKey;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+@Service
|
|
|
+public class ExamAndCourseTotalService {
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private CourseService courseService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ExamService examService;
|
|
|
+
|
|
|
+ public List<ExamAndCourseDepartTotalDTO> examAndCourseTotal(BaseQueryReqDTO reqDTO) {
|
|
|
+
|
|
|
+ List<ExamAndCourseDepartTotalDTO> totalDTOS = new ArrayList<>();
|
|
|
+ List<CourseDepartTotalDTO> coursedtos = courseService.courseDepartTotal(reqDTO);
|
|
|
+ List<ExamDepartTotalDTO> examdtos = examService.examDepartTotal(reqDTO);
|
|
|
+
|
|
|
+ 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).getEePassUser());
|
|
|
+ totalDTO.setEePassUser(groupexams.get(0).getEePassUser());
|
|
|
+
|
|
|
+ }
|
|
|
+ totalDTOS.add(totalDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+ } 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);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ return totalDTOS;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public List<ExamAndCourseUserTotalDTO> getExamAndCourseUserTotal(BaseUserQueryReqDTO reqDTO) {
|
|
|
+ List<ExamAndCourseUserTotalDTO> totalDTOS = new ArrayList<>();
|
|
|
+ List<CourseUserTotalDTO> courseList = courseService.getCourseUserTotal(reqDTO);
|
|
|
+ List<ExamUserTotalDTO> examList = examService.getExamUserTotal(reqDTO);
|
|
|
+ ExamAndCourseUserTotalDTO userTotalDTO = null;
|
|
|
+ if (courseList.size() >= examList.size()) {
|
|
|
+ Map<String, List<ExamUserTotalDTO>> groupexamuserdtos = examList.stream().collect(Collectors.groupingBy(ExamUserTotalDTO::getUserName));
|
|
|
+ for (int i = 0; i < courseList.size(); i++) {
|
|
|
+ userTotalDTO = new ExamAndCourseUserTotalDTO();
|
|
|
+ userTotalDTO.setDeptName(courseList.get(i).getDeptName());
|
|
|
+ userTotalDTO.setDeptCode(courseList.get(i).getDeptCode());
|
|
|
+ userTotalDTO.setRealName(courseList.get(i).getRealName());
|
|
|
+ userTotalDTO.setUserName(courseList.get(i).getUserName());
|
|
|
+ userTotalDTO.setCourseNum(courseList.get(i).getCourseNum());
|
|
|
+ userTotalDTO.setLearnCourse(courseList.get(i).getLearnCourse());
|
|
|
+ userTotalDTO.setTotalMin(courseList.get(i).getTotalMin());
|
|
|
+ List<ExamUserTotalDTO> groupusers = groupexamuserdtos.get(courseList.get(i).getUserName()) == null ? null : groupexamuserdtos.get(courseList.get(i).getUserName());
|
|
|
+ if (null != groupusers && groupusers.size() == 1) {
|
|
|
+ userTotalDTO.setTryCount(groupusers.get(0).getTryCount());
|
|
|
+ userTotalDTO.setPassed(groupusers.get(0).getPassed());
|
|
|
+ }
|
|
|
+ totalDTOS.add(userTotalDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ Map<String, List<CourseUserTotalDTO>> groupcourseuserdtos = courseList.stream().collect(Collectors.groupingBy(CourseUserTotalDTO::getUserName));
|
|
|
+
|
|
|
+ for (int i = 0; i < examList.size(); i++) {
|
|
|
+ userTotalDTO = new ExamAndCourseUserTotalDTO();
|
|
|
+ userTotalDTO.setDeptName(examList.get(i).getDeptName());
|
|
|
+ userTotalDTO.setDeptCode(examList.get(i).getDeptCode());
|
|
|
+ userTotalDTO.setRealName(examList.get(i).getRealName());
|
|
|
+ userTotalDTO.setUserName(examList.get(i).getUserName());
|
|
|
+ userTotalDTO.setTryCount(examList.get(i).getTryCount());
|
|
|
+ userTotalDTO.setPassed(examList.get(i).getPassed());
|
|
|
+ List<CourseUserTotalDTO> groupcourses = groupcourseuserdtos.get(examList.get(i).getUserName()) == null ? null : groupcourseuserdtos.get(examList.get(i).getUserName());
|
|
|
+
|
|
|
+ if (null != groupcourses && groupcourses.size() == 1) {
|
|
|
+ userTotalDTO.setCourseNum(groupcourses.get(0).getCourseNum());
|
|
|
+ userTotalDTO.setLearnCourse(groupcourses.get(0).getLearnCourse());
|
|
|
+ userTotalDTO.setTotalMin(groupcourses.get(0).getTotalMin());
|
|
|
+
|
|
|
+ }
|
|
|
+ totalDTOS.add(userTotalDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return totalDTOS;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|