|
@@ -1685,102 +1685,114 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
@Override
|
|
|
public List<ExamTaskStudentObjectResult> findExamTaskStudentObject(ExamObjectType examObjectType, Long examId, String courseCode, SysUser requestUser) throws Exception {
|
|
|
Long schoolId = requestUser.getSchoolId();
|
|
|
- Long userId = requestUser.getId();
|
|
|
+ Long requestUserId = requestUser.getId();
|
|
|
List<ExamTaskStudentObjectResult> result = new ArrayList<>();
|
|
|
switch (examObjectType) {
|
|
|
-// case TEACH_CLAZZ_STUDENT:
|
|
|
-// if (!SystemConstant.strNotNull(courseCode)) {
|
|
|
-// throw ExceptionResultEnum.ERROR.exception("缺少考试课程编号");
|
|
|
-// }
|
|
|
-// BasicCourse basicCourse = basicCourseService.getOne(new QueryWrapper<BasicCourse>().lambda().eq(BasicCourse::getSchoolId, schoolId).eq(BasicCourse::getCode, courseCode));
|
|
|
-// if (Objects.isNull(basicCourse)) {
|
|
|
-// throw ExceptionResultEnum.ERROR.exception("找不到课程编号对应的课程");
|
|
|
-// }
|
|
|
-// Long basicCourseId = basicCourse.getId();
|
|
|
-// TeachCourse teachCourse = teachCourseService.getOne(new QueryWrapper<TeachCourse>().lambda().eq(TeachCourse::getSchoolId, schoolId).eq(TeachCourse::getBasicCourseId, basicCourseId).eq(TeachCourse::getUserId, userId));
|
|
|
-// if (Objects.nonNull(teachCourse)) {
|
|
|
-// // 教学班对象
|
|
|
-// List<TeachStudent> teachStudentDatasource = teachStudentService.list(new QueryWrapper<TeachStudent>().lambda().eq(TeachStudent::getSchoolId, schoolId).eq(TeachStudent::getUserId, userId).eq(TeachStudent::getBasicCourseId, teachCourse.getBasicCourseId()));
|
|
|
-//
|
|
|
-// // 教学班id集合
|
|
|
-// List<Long> teachClazzIdList = teachStudentDatasource.stream().map(TeachStudent::getTeachClazzId).distinct().collect(Collectors.toList());
|
|
|
-// for (Long teachClazzId : teachClazzIdList) {
|
|
|
-// TeachClazz teachClazz = teachClazzService.getById(teachClazzId);
|
|
|
-// if (Objects.isNull(teachClazz)) {
|
|
|
-// throw ExceptionResultEnum.ERROR.exception("教学班数据异常");
|
|
|
-// }
|
|
|
-// List<TeachStudent> teachStudentList = teachStudentDatasource.stream().filter(e -> e.getTeachClazzId().equals(teachClazzId)).collect(Collectors.toList());
|
|
|
-//
|
|
|
-// // 获取学生信息数据
|
|
|
-// List<StudentInfo> studentInfoList = teachStudentList.stream().flatMap(e -> {
|
|
|
-// Long studentId = e.getStudentId();
|
|
|
-// if (!SystemConstant.longNotNull(studentId)) {
|
|
|
-// throw ExceptionResultEnum.ERROR.exception("教学学生数据异常");
|
|
|
-// }
|
|
|
-// BasicStudentResult basicStudentResult = basicStudentService.findById(studentId);
|
|
|
-// if (Objects.isNull(basicStudentResult)) {
|
|
|
-// throw ExceptionResultEnum.ERROR.exception("未找到对应的基础学生数据");
|
|
|
-// }
|
|
|
-// StudentInfo studentInfo = new StudentInfo();
|
|
|
-// studentInfo.setStudentId(studentId);
|
|
|
-// studentInfo.setStudentCode(basicStudentResult.getStudentCode());
|
|
|
-// studentInfo.setStudentName(basicStudentResult.getStudentName());
|
|
|
-// studentInfo.setCollegeName(basicStudentResult.getCollegeName());
|
|
|
-// studentInfo.setMajorName(basicStudentResult.getMajorName());
|
|
|
-// studentInfo.setTeachClazzId(teachClazzId);
|
|
|
-// studentInfo.setTeachClazzName(teachClazz.getTeachClazzName());
|
|
|
-// studentInfo.setBasicClazzId(basicStudentResult.getClazzId());
|
|
|
-// studentInfo.setBasicClazzName(basicStudentResult.getClazz());
|
|
|
-// return Stream.of(studentInfo);
|
|
|
-// }).collect(Collectors.toList());
|
|
|
-//
|
|
|
-// ExamTaskStudentObjectResult examTaskStudentObjectResult = new ExamTaskStudentObjectResult();
|
|
|
-// examTaskStudentObjectResult.setClazzId(teachClazzId);
|
|
|
-// examTaskStudentObjectResult.setClazzName(teachClazz.getTeachClazzName());
|
|
|
-// examTaskStudentObjectResult.setStudentInfoList(studentInfoList);
|
|
|
-// examTaskStudentObjectResult.setStudentClazzType(examObjectType.getStudentClazzType());
|
|
|
-// result.add(examTaskStudentObjectResult);
|
|
|
-// }
|
|
|
-// }
|
|
|
-// break;
|
|
|
- case BASIC_CLAZZ_STUDENT:
|
|
|
- // 基础班级对象
|
|
|
- List<BasicStudentResult> basicStudentResultList = basicStudentService.basicStudentList(schoolId, examId, null);
|
|
|
- if (!CollectionUtils.isEmpty(basicStudentResultList)) {
|
|
|
- LinkedMultiValueMap<Long, StudentInfo> studentInfoLinkedMultiValueMap = new LinkedMultiValueMap<>();
|
|
|
- Map<Long, ExamTaskStudentObjectResult> examTaskStudentObjectResultMap = new LinkedHashMap<>();
|
|
|
- for (BasicStudentResult e : basicStudentResultList) {
|
|
|
- // 没有班级的考生,不返回
|
|
|
- if (StringUtils.isBlank(e.getClazz())) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- StudentInfo studentInfo = new StudentInfo();
|
|
|
- studentInfo.setStudentId(e.getId());
|
|
|
- studentInfo.setStudentCode(e.getStudentCode());
|
|
|
- studentInfo.setStudentName(e.getStudentName());
|
|
|
- studentInfo.setCollegeName(e.getCollegeName());
|
|
|
- studentInfo.setMajorName(e.getMajorName());
|
|
|
- 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());
|
|
|
+ case TEACH_CLAZZ_STUDENT:
|
|
|
+ if (!SystemConstant.strNotNull(courseCode)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("缺少考试课程编号");
|
|
|
+ }
|
|
|
+ // 登录人的教学课程
|
|
|
+ TeachCourse userTeachCourse = teachCourseService.getOne(
|
|
|
+ new QueryWrapper<TeachCourse>().lambda().eq(TeachCourse::getExamId, examId).eq(TeachCourse::getCourseCode, courseCode).eq(TeachCourse::getUserId, requestUserId)
|
|
|
+ .last(SystemConstant.LIMIT1));
|
|
|
+
|
|
|
+ if (Objects.nonNull(userTeachCourse)) {
|
|
|
+ Long userTeachCourseId = userTeachCourse.getId();
|
|
|
+ Long leaderId = userTeachCourse.getCreateId();
|
|
|
+ TeachCourse leaderTeachCourse = teachCourseService.findByExamIdCourseCodeAndUserId(examId, courseCode,
|
|
|
+ leaderId);
|
|
|
+
|
|
|
+ if (Objects.nonNull(leaderTeachCourse)) {
|
|
|
+ Long leaderTeachCourseId = leaderTeachCourse.getId();
|
|
|
+ List<TeachClazz> teachClazzList;
|
|
|
+ teachClazzList = teachClazzService.list(
|
|
|
+ new QueryWrapper<TeachClazz>().lambda().eq(TeachClazz::getTeachCourseId, userTeachCourseId)
|
|
|
+ .eq(TeachClazz::getBelongTeachCourseId, leaderTeachCourseId));
|
|
|
+
|
|
|
+ if (CollectionUtils.isEmpty(teachClazzList)) {
|
|
|
+ teachClazzList = teachClazzService.list(new QueryWrapper<TeachClazz>().lambda()
|
|
|
+ .eq(TeachClazz::getTeachCourseId, leaderTeachCourseId));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!CollectionUtils.isEmpty(teachClazzList)) {
|
|
|
+ for (TeachClazz teachClazz : teachClazzList) {
|
|
|
+ Long teachClazzId = teachClazz.getId();
|
|
|
+ String teachClazzName = teachClazz.getClazzName();
|
|
|
+ List<TeachStudent> teachStudentList = teachStudentService.list(new QueryWrapper<TeachStudent>().lambda()
|
|
|
+ .eq(TeachStudent::getTeachClazzId, teachClazzId));
|
|
|
+
|
|
|
+ List<StudentInfo> studentInfoList = teachStudentList.stream().flatMap(e -> {
|
|
|
+ Long studentId = e.getStudentId();
|
|
|
+ if (!SystemConstant.longNotNull(studentId)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("教学学生数据异常");
|
|
|
+ }
|
|
|
+ BasicStudentResult basicExamStudentResult = basicStudentService.findById(studentId);
|
|
|
+ if (Objects.isNull(basicExamStudentResult)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("未找到对应的考生字典数据");
|
|
|
+ }
|
|
|
+ StudentInfo studentInfo = new StudentInfo();
|
|
|
+ studentInfo.setStudentId(studentId);
|
|
|
+ studentInfo.setStudentCode(basicExamStudentResult.getStudentCode());
|
|
|
+ studentInfo.setStudentName(basicExamStudentResult.getStudentName());
|
|
|
+ studentInfo.setCollegeName(basicExamStudentResult.getCollegeName());
|
|
|
+ studentInfo.setMajorName(basicExamStudentResult.getMajorName());
|
|
|
+ studentInfo.setTeachClazzId(teachClazzId);
|
|
|
+ studentInfo.setTeachClazzName(teachClazzName);
|
|
|
+ studentInfo.setBasicClazzId(basicExamStudentResult.getClazzId());
|
|
|
+ studentInfo.setBasicClazzName(basicExamStudentResult.getClazz());
|
|
|
+ return Stream.of(studentInfo);
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ ExamTaskStudentObjectResult examTaskStudentObjectResult = new ExamTaskStudentObjectResult();
|
|
|
+ examTaskStudentObjectResult.setClazzId(teachClazzId);
|
|
|
+ examTaskStudentObjectResult.setClazzName(teachClazzName);
|
|
|
+ examTaskStudentObjectResult.setStudentInfoList(studentInfoList);
|
|
|
examTaskStudentObjectResult.setStudentClazzType(examObjectType.getStudentClazzType());
|
|
|
- } else {
|
|
|
- examTaskStudentObjectResult = examTaskStudentObjectResultMap.get(e.getClazzId());
|
|
|
+ result.add(examTaskStudentObjectResult);
|
|
|
}
|
|
|
- examTaskStudentObjectResult.setStudentInfoList(studentInfoLinkedMultiValueMap.get(e.getClazzId()));
|
|
|
- examTaskStudentObjectResultMap.put(e.getClazzId(), examTaskStudentObjectResult);
|
|
|
}
|
|
|
- result.addAll(examTaskStudentObjectResultMap.values());
|
|
|
}
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BASIC_CLAZZ_STUDENT:
|
|
|
+ // 基础班级对象
|
|
|
+ List<BasicStudentResult> basicStudentResultList = basicStudentService.basicStudentList(schoolId, examId,
|
|
|
+ null);
|
|
|
+ if (!CollectionUtils.isEmpty(basicStudentResultList)) {
|
|
|
+ LinkedMultiValueMap<Long, StudentInfo> studentInfoLinkedMultiValueMap = new LinkedMultiValueMap<>();
|
|
|
+ Map<Long, ExamTaskStudentObjectResult> examTaskStudentObjectResultMap = new LinkedHashMap<>();
|
|
|
+ for (BasicStudentResult e : basicStudentResultList) {
|
|
|
+ // 没有班级的考生,不返回
|
|
|
+ if (StringUtils.isBlank(e.getClazz())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ StudentInfo studentInfo = new StudentInfo();
|
|
|
+ studentInfo.setStudentId(e.getId());
|
|
|
+ studentInfo.setStudentCode(e.getStudentCode());
|
|
|
+ studentInfo.setStudentName(e.getStudentName());
|
|
|
+ studentInfo.setCollegeName(e.getCollegeName());
|
|
|
+ studentInfo.setMajorName(e.getMajorName());
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ result.addAll(examTaskStudentObjectResultMap.values());
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
}
|
|
|
return result;
|
|
|
}
|