Răsfoiți Sursa

add:入库申请选择教学班(有测试用的examId值 需要删除)

caozixuan 1 an în urmă
părinte
comite
465ce2284c

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskService.java

@@ -183,7 +183,7 @@ public interface ExamTaskService extends IService<ExamTask> {
      * </P>
      *
      * @param examObjectType 考试对象类型
-     * @param examId
+     * @param examId 考试id
      * @param courseCode     基础课程编号
      * @param requestUser    请求的用户
      * @return 命题任务考试对象查询结果

+ 102 - 90
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -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;
     }

+ 6 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskApplyController.java

@@ -250,10 +250,14 @@ public class ExamTaskApplyController {
     @Transactional(rollbackFor = Exception.class)
     @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
     public Result findExamTaskStudentObject(@RequestParam ExamObjectType examObjectType,
-                                            @RequestParam(required = false) Long examId,
+                                            @RequestParam(required = false) String examId,
                                             @RequestParam(required = false) String courseCode) throws Exception {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
-        return ResultUtil.ok(examTaskService.findExamTaskStudentObject(examObjectType, examId, courseCode, requestUser));
+        // TODO: 2024/3/15 测试用
+        if (!SystemConstant.strNotNull(examId)){
+            examId = "497405213984948224";
+        }
+        return ResultUtil.ok(examTaskService.findExamTaskStudentObject(examObjectType, SystemConstant.convertIdToLong(examId), courseCode, requestUser));
     }
 
     @ApiOperation(value = "入库申请-导入考生对象")