|
@@ -27,6 +27,7 @@ import com.gyee.exam.modules.course.entity.CourseRefFile;
|
|
|
import com.gyee.exam.modules.course.enums.CourseState;
|
|
|
import com.gyee.exam.modules.course.mapper.CourseMapper;
|
|
|
import com.gyee.exam.modules.course.service.*;
|
|
|
+import com.gyee.exam.modules.stat.course.dto.StatCourseTotalDTO;
|
|
|
import com.gyee.exam.modules.sys.user.dto.SysUserDTO;
|
|
|
import com.gyee.exam.modules.sys.user.entity.SysUser;
|
|
|
import com.gyee.exam.modules.sys.user.service.SysUserService;
|
|
@@ -38,11 +39,11 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
+import java.util.stream.Stream;
|
|
|
+
|
|
|
+import static java.util.stream.Collectors.groupingBy;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -334,7 +335,31 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
|
|
|
|
|
|
@Override
|
|
|
public List<CourseDepartTotalDTO> courseDepartTotal(BaseQueryReqDTO reqDTO) {
|
|
|
- List<CourseDepartTotalDTO> dtos = baseMapper.courseDepartTotal(reqDTO);
|
|
|
+ QueryWrapper<Course> wrapper = new QueryWrapper<>();
|
|
|
+ wrapper.ge("start_time", reqDTO.getStatDateL()).le("end_time", reqDTO.getStatDateR());
|
|
|
+ List<Course> courses = baseMapper.selectList(wrapper);
|
|
|
+ Map<Integer, List<Course>> collect = courses.stream().collect(Collectors.groupingBy(Course::getOpenType));
|
|
|
+ List<String> courseId2 = collect.containsKey(2) ? collect.get(2).stream().map(m -> m.getId()).collect(Collectors.toList()) : Collections.EMPTY_LIST;
|
|
|
+ List<String> courseId3 = collect.containsKey(3) ? collect.get(2).stream().map(m -> m.getId()).collect(Collectors.toList()) : Collections.EMPTY_LIST;
|
|
|
+ List<CourseDepartTotalDTO> list = new ArrayList<>();
|
|
|
+ list.addAll(baseMapper.courseCountTotal2(courseId2));
|
|
|
+ list.addAll(baseMapper.courseCountTotal3(courseId3));
|
|
|
+ List<CourseDepartTotalDTO> dtos = list.stream().collect(groupingBy(CourseDepartTotalDTO::getDeptCode)).entrySet()
|
|
|
+ .stream().map(entry -> {
|
|
|
+ String key = entry.getKey();
|
|
|
+ List<CourseDepartTotalDTO> value = entry.getValue();
|
|
|
+ Integer totalUser = value.stream().mapToInt(CourseDepartTotalDTO::getEcTotalUser).sum();
|
|
|
+ Integer actualUser = value.stream().mapToInt(CourseDepartTotalDTO::getEcActualUser).sum();
|
|
|
+ Integer passUser = value.stream().mapToInt(CourseDepartTotalDTO::getEcPassUser).sum();
|
|
|
+ CourseDepartTotalDTO obj = new CourseDepartTotalDTO();
|
|
|
+ obj.setDeptCode(key);
|
|
|
+ obj.setDeptName(value.get(0).getDeptName());
|
|
|
+ obj.setEcTotalUser(totalUser);
|
|
|
+ obj.setEcActualUser(actualUser);
|
|
|
+ obj.setEcPassUser(passUser);
|
|
|
+ return obj;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
List<CourseDepartTotalDTO> mindtos = courseFileLearnService.courseDepartTotalMin(reqDTO);
|
|
|
Map<String,Integer> map = mindtos.stream().collect(Collectors.toMap(CourseDepartTotalDTO::getDeptCode,CourseDepartTotalDTO::getEcTotalMin));
|
|
|
dtos.stream().forEach(d->{
|
|
@@ -379,7 +404,7 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
|
|
|
}
|
|
|
|
|
|
if(null != learndtos && learndtos.size()>0){
|
|
|
- Map<String,List<CourseLearnDTO> > groupmap = learndtos.stream().collect(Collectors.groupingBy(CourseLearnDTO::getCourseId));
|
|
|
+ Map<String,List<CourseLearnDTO> > groupmap = learndtos.stream().collect(groupingBy(CourseLearnDTO::getCourseId));
|
|
|
dtoList.stream().forEach(d->{
|
|
|
d.setUpdateTime(groupmap.get(d.getId()).get(0).getUpdateTime());
|
|
|
d.setFinishTime(groupmap.get(d.getId()).get(0).getFinishTime());
|