xiaof 4 жил өмнө
parent
commit
f804dcb12c
13 өөрчлөгдсөн 949 нэмэгдсэн , 10 устгасан
  1. 0 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/LoginParam.java
  2. 0 6
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceServiceImpl.java
  3. 14 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java
  4. 2 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicAttachmentService.java
  5. 98 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicAttachmentServiceImpl.java
  6. 44 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/dto/ExamStudentTypeDto.java
  7. 149 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/InspectCollegeResult.java
  8. 179 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/TeachCollegeResult.java
  9. 40 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/mapper/TBExamStudentMapper.java
  10. 69 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/TBExamStudentService.java
  11. 115 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TBExamStudentServiceImpl.java
  12. 123 0
      teachcloud-report-business/src/main/resources/mapper/TBExamStudentMapper.xml
  13. 116 3
      teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/TBExamStudentController.java

+ 0 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/LoginParam.java

@@ -14,7 +14,6 @@ import javax.validation.constraints.NotBlank;
 public class LoginParam extends ClientLoginParam {
 
     @ApiModelProperty(value = "验证码")
-    @NotBlank(message = "请输入验证码")
     private String code;
 
     @ApiModelProperty(value = "学校代码")

+ 0 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceServiceImpl.java

@@ -449,12 +449,6 @@ public class PrintCommonServiceServiceImpl implements PrintCommonService {
      */
     @Override
     public boolean remove(Long id) {
-        // code是否已有命题任务
-        BasicCourse course = basicCourseMapper.selectById(id);
-        List<ExamTask> taskList = examTaskService.listByCourseCode(course.getSchoolId(), course.getCode());
-        if (taskList != null && taskList.size() > 0) {
-            throw ExceptionResultEnum.ERROR.exception("课程绑定命题任务,不能删除");
-        }
         return basicCourseService.removeById(id);
     }
 

+ 14 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -12,6 +12,7 @@ import com.qmth.distributed.print.business.service.BasicVerifyCodeService;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.teachcloud.common.bean.auth.AuthBean;
 import com.qmth.teachcloud.common.bean.dto.MenuDto;
+import com.qmth.teachcloud.common.bean.dto.SchoolDto;
 import com.qmth.teachcloud.common.bean.result.LoginResult;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -86,6 +87,9 @@ public class SysController {
     @Resource
     TeachcloudCommonService teachcloudCommonService;
 
+    @Autowired
+    private BasicSchoolService basicSchoolService;
+
     /**
      * 登录
      *
@@ -313,4 +317,14 @@ public class SysController {
         return ResultUtil.ok(list);
     }
 
+    /**
+     * 学校查询
+     * @return
+     */
+    @ApiOperation(value = "查询")
+    @RequestMapping(value = "/school/list", method = RequestMethod.POST)
+    public Result list() {
+        List<SchoolDto> list = basicSchoolService.listSchool();
+        return ResultUtil.ok(list);
+    }
 }

+ 2 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicAttachmentService.java

@@ -52,4 +52,6 @@ public interface BasicAttachmentService extends IService<BasicAttachment> {
      * @param basicAttachmentList
      */
     public void batchDeleteAttachment(List<BasicAttachment> basicAttachmentList);
+
+    BasicAttachment saveAttachment(MultipartFile file, String requestMd5, UploadFileEnum file1);
 }

+ 98 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicAttachmentServiceImpl.java

@@ -1,27 +1,37 @@
 package com.qmth.teachcloud.common.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.aliyun.oss.common.utils.BinaryUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.boot.api.exception.ApiException;
+import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.mapper.BasicAttachmentMapper;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
+import com.qmth.teachcloud.common.util.HexUtils;
 import com.qmth.teachcloud.common.util.OssUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.io.FileUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.FileCopyUtils;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Objects;
 import java.util.StringJoiner;
@@ -41,6 +51,9 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
     @Resource
     OssUtil ossUtil;
 
+    @Autowired
+    private DictionaryConfig dictionaryConfig;
+
     /**
      * 保存html附件
      *
@@ -129,6 +142,91 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
         }
     }
 
+    @Override
+    public BasicAttachment saveAttachment(MultipartFile file, String md5, UploadFileEnum type) {
+        if (Objects.isNull(type)) {
+            throw ExceptionResultEnum.ATTACHMENT_TYPE_EMPTY.exception();
+        }
+        BasicAttachment basicAttachment = null;
+        try {
+            SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+            int temp = file.getOriginalFilename().indexOf(".");
+            String fileName = file.getOriginalFilename().substring(0, temp);
+            String format = file.getOriginalFilename().substring(temp, file.getOriginalFilename().length());
+            List<String> attachmentTypeList = dictionaryConfig.sysDomain().getAttachmentType();
+            if (Objects.nonNull(format)) {
+                long count = attachmentTypeList.stream().filter(s -> format.equalsIgnoreCase(s)).count();
+                if (count == 0) {
+                    throw ExceptionResultEnum.ERROR.exception("文件格式只能为" + attachmentTypeList.toString());
+                }
+            }
+            int attachmentLength = dictionaryConfig.sysDomain().getAttachmentLength().intValue();
+            if (Objects.nonNull(fileName) && fileName.length() > attachmentLength) {
+                throw ExceptionResultEnum.ERROR.exception("文件名长度不能超过" + attachmentLength + "个字符");
+            }
+            long size = file.getSize();
+            BigDecimal b = new BigDecimal(size);
+            BigDecimal num = new BigDecimal(1024);
+            b = b.divide(num, 2, BigDecimal.ROUND_HALF_UP).divide(num, 2, BigDecimal.ROUND_HALF_UP)
+                    .setScale(2, BigDecimal.ROUND_HALF_UP);
+            double attachmentSize = dictionaryConfig.sysDomain().getAttachmentSize().doubleValue();
+            if (b.doubleValue() > attachmentSize) {
+                throw ExceptionResultEnum.ERROR.exception("文件大小不能超过" + attachmentSize + "MB");
+            }
+            log.info("fileName:{}", fileName);
+            log.info("format:{}", format);
+            log.info("size:{}", b);
+            log.info("getOriginalFilename:{}", file.getOriginalFilename());
+            String fileMd5 = DigestUtils.md5Hex(file.getBytes());
+            log.info("fileMd5:{}", fileMd5);
+            log.info("md5:{}", md5);
+            if (!Objects.equals(fileMd5, md5)) {
+                throw ExceptionResultEnum.MD5_EQUALS_FALSE.exception();
+            }
+            boolean oss = dictionaryConfig.sysDomain().isOss();
+            LocalDateTime nowTime = LocalDateTime.now();
+            StringJoiner stringJoiner = new StringJoiner("");
+            if (!oss) {
+                stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+            }
+            stringJoiner.add(type.getTitle()).add(File.separator);
+            stringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
+                    .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
+                    .add(String.format("%02d", nowTime.getDayOfMonth()));
+
+            JSONObject jsonObject = new JSONObject();
+            stringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(format);
+            if (oss) {//上传至oss\
+                String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
+                ossUtil.ossUpload(dirName, file.getInputStream(), BinaryUtil.toBase64String(HexUtils.decodeHex(md5)));
+                jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
+                jsonObject.put(SystemConstant.PATH, dirName);
+            } else {//上传至服务器
+                File finalFile = new File(stringJoiner.toString());
+                if (!finalFile.exists()) {
+                    finalFile.getParentFile().mkdirs();
+                    finalFile.createNewFile();
+                }
+                FileUtils.copyInputStreamToFile(file.getInputStream(), finalFile);
+                jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
+                jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
+            }
+            jsonObject.put(SystemConstant.UPLOAD_TYPE, type);
+
+            basicAttachment = new BasicAttachment(jsonObject.toJSONString(), fileName, format, b, fileMd5, requestUser.getId(), null);
+            save(basicAttachment);
+        } catch (Exception e) {
+            log.error("请求出错", e);
+            deleteAttachment(basicAttachment);
+            if (e instanceof ApiException) {
+                ResultUtil.error((ApiException) e, e.getMessage());
+            } else {
+                ResultUtil.error(e.getMessage());
+            }
+        }
+        return basicAttachment;
+    }
+
     /**
      * 删除附件公用
      *

+ 44 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/dto/ExamStudentTypeDto.java

@@ -0,0 +1,44 @@
+package com.qmth.teachcloud.report.business.bean.dto;
+
+/**
+ * @Date: 2021/6/8.
+ */
+public class ExamStudentTypeDto {
+
+    private String ticketNumber;
+    private String courseCode;
+    private String courseName;
+    private String current;
+
+    public String getTicketNumber() {
+        return ticketNumber;
+    }
+
+    public void setTicketNumber(String ticketNumber) {
+        this.ticketNumber = ticketNumber;
+    }
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getCurrent() {
+        return current;
+    }
+
+    public void setCurrent(String current) {
+        this.current = current;
+    }
+}

+ 149 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/InspectCollegeResult.java

@@ -0,0 +1,149 @@
+package com.qmth.teachcloud.report.business.bean.result;
+
+import com.qmth.teachcloud.common.annotation.ExcelProperty;
+
+/**
+ * @Date: 2021/6/8.
+ */
+public class InspectCollegeResult {
+
+    @ExcelProperty(name = "学期", width = 30, index = 1)
+    private String semester;
+    @ExcelProperty(name = "考试名称", width = 30, index = 2)
+    private String examName;
+    @ExcelProperty(name = "课程代码", width = 30, index = 3)
+    private String courseCode;
+    @ExcelProperty(name = "课程名称", width = 30, index = 4)
+    private String courseName;
+    @ExcelProperty(name = "准考证号", width = 30, index = 5)
+    private String ticketNumber;
+    @ExcelProperty(name = "学号", width = 30, index = 6)
+    private String studentCode;
+    @ExcelProperty(name = "姓名", width = 30, index = 7)
+    private String name;
+    @ExcelProperty(name = "考试类型", width = 30, index = 8)
+    private String current;
+    @ExcelProperty(name = "总分", width = 30, index = 9)
+    private Integer assignedScore;
+    private String clazzCode;
+    @ExcelProperty(name = "班级", width = 30, index = 10)
+    private String clazzName;
+    @ExcelProperty(name = "开课学院", width = 30, index = 11)
+    private String teachCollegeName;
+    @ExcelProperty(name = "考查学院", width = 30, index = 12)
+    private String inspectCollegeName;
+    @ExcelProperty(name = "任课老师", width = 30, index = 13)
+    private String teacherName;
+
+    public String getSemester() {
+        return semester;
+    }
+
+    public void setSemester(String semester) {
+        this.semester = semester;
+    }
+
+    public String getExamName() {
+        return examName;
+    }
+
+    public void setExamName(String examName) {
+        this.examName = examName;
+    }
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getTicketNumber() {
+        return ticketNumber;
+    }
+
+    public void setTicketNumber(String ticketNumber) {
+        this.ticketNumber = ticketNumber;
+    }
+
+    public String getStudentCode() {
+        return studentCode;
+    }
+
+    public void setStudentCode(String studentCode) {
+        this.studentCode = studentCode;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCurrent() {
+        return current;
+    }
+
+    public void setCurrent(String current) {
+        this.current = current;
+    }
+
+    public Integer getAssignedScore() {
+        return assignedScore;
+    }
+
+    public void setAssignedScore(Integer assignedScore) {
+        this.assignedScore = assignedScore;
+    }
+
+    public String getClazzCode() {
+        return clazzCode;
+    }
+
+    public void setClazzCode(String clazzCode) {
+        this.clazzCode = clazzCode;
+    }
+
+    public String getClazzName() {
+        return clazzName;
+    }
+
+    public void setClazzName(String clazzName) {
+        this.clazzName = clazzName;
+    }
+
+    public String getTeachCollegeName() {
+        return teachCollegeName;
+    }
+
+    public void setTeachCollegeName(String teachCollegeName) {
+        this.teachCollegeName = teachCollegeName;
+    }
+
+    public String getInspectCollegeName() {
+        return inspectCollegeName;
+    }
+
+    public void setInspectCollegeName(String inspectCollegeName) {
+        this.inspectCollegeName = inspectCollegeName;
+    }
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+}

+ 179 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/TeachCollegeResult.java

@@ -0,0 +1,179 @@
+package com.qmth.teachcloud.report.business.bean.result;
+
+import com.qmth.teachcloud.common.annotation.ExcelProperty;
+
+/**
+ * @Date: 2021/6/8.
+ */
+public class TeachCollegeResult {
+
+    @ExcelProperty(name = "学期", width = 30, index = 1)
+    private String semester;
+    @ExcelProperty(name = "考试名称", width = 30, index = 2)
+    private String examName;
+    @ExcelProperty(name = "课程代码", width = 30, index = 3)
+    private String courseCode;
+    @ExcelProperty(name = "课程名称", width = 30, index = 4)
+    private String courseName;
+    @ExcelProperty(name = "准考证号", width = 30, index = 5)
+    private String ticketNumber;
+    @ExcelProperty(name = "学号", width = 30, index = 6)
+    private String studentCode;
+    @ExcelProperty(name = "姓名", width = 30, index = 7)
+    private String name;
+    @ExcelProperty(name = "考试类型", width = 30, index = 8)
+    private String current;
+    @ExcelProperty(name = "客观总分", width = 30, index = 9)
+    private String objectiveScore;
+    @ExcelProperty(name = "主观总分", width = 30, index = 10)
+    private String subjectiveScore;
+    @ExcelProperty(name = "卷面总分", width = 30, index = 11)
+    private Integer totalScore;
+    @ExcelProperty(name = "赋分总分", width = 30, index = 12)
+    private Integer assignedScore;
+    private String clazzCode;
+    @ExcelProperty(name = "班级", width = 30, index = 13)
+    private String clazzName;
+    @ExcelProperty(name = "开课学院", width = 30, index = 14)
+    private String teachCollegeName;
+    @ExcelProperty(name = "考查学院", width = 30, index = 15)
+    private String inspectCollegeName;
+    @ExcelProperty(name = "任课老师", width = 30, index = 16)
+    private String teacherName;
+
+    public String getSemester() {
+        return semester;
+    }
+
+    public void setSemester(String semester) {
+        this.semester = semester;
+    }
+
+    public String getExamName() {
+        return examName;
+    }
+
+    public void setExamName(String examName) {
+        this.examName = examName;
+    }
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getTicketNumber() {
+        return ticketNumber;
+    }
+
+    public void setTicketNumber(String ticketNumber) {
+        this.ticketNumber = ticketNumber;
+    }
+
+    public String getStudentCode() {
+        return studentCode;
+    }
+
+    public void setStudentCode(String studentCode) {
+        this.studentCode = studentCode;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCurrent() {
+        return current;
+    }
+
+    public void setCurrent(String current) {
+        this.current = current;
+    }
+
+    public String getObjectiveScore() {
+        return objectiveScore;
+    }
+
+    public void setObjectiveScore(String objectiveScore) {
+        this.objectiveScore = objectiveScore;
+    }
+
+    public String getSubjectiveScore() {
+        return subjectiveScore;
+    }
+
+    public void setSubjectiveScore(String subjectiveScore) {
+        this.subjectiveScore = subjectiveScore;
+    }
+
+    public Integer getTotalScore() {
+        return totalScore;
+    }
+
+    public void setTotalScore(Integer totalScore) {
+        this.totalScore = totalScore;
+    }
+
+    public Integer getAssignedScore() {
+        return assignedScore;
+    }
+
+    public void setAssignedScore(Integer assignedScore) {
+        this.assignedScore = assignedScore;
+    }
+
+    public String getClazzCode() {
+        return clazzCode;
+    }
+
+    public void setClazzCode(String clazzCode) {
+        this.clazzCode = clazzCode;
+    }
+
+    public String getClazzName() {
+        return clazzName;
+    }
+
+    public void setClazzName(String clazzName) {
+        this.clazzName = clazzName;
+    }
+
+    public String getTeachCollegeName() {
+        return teachCollegeName;
+    }
+
+    public void setTeachCollegeName(String teachCollegeName) {
+        this.teachCollegeName = teachCollegeName;
+    }
+
+    public String getInspectCollegeName() {
+        return inspectCollegeName;
+    }
+
+    public void setInspectCollegeName(String inspectCollegeName) {
+        this.inspectCollegeName = inspectCollegeName;
+    }
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+}

+ 40 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/mapper/TBExamStudentMapper.java

@@ -1,7 +1,11 @@
 package com.qmth.teachcloud.report.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.teachcloud.report.business.bean.result.InspectCollegeResult;
 import com.qmth.teachcloud.report.business.bean.result.TBExamStudentResult;
+import com.qmth.teachcloud.report.business.bean.result.TeachCollegeResult;
 import com.qmth.teachcloud.report.business.entity.TBExamStudent;
 import org.apache.ibatis.annotations.Param;
 
@@ -52,4 +56,40 @@ public interface TBExamStudentMapper extends BaseMapper<TBExamStudent> {
      * @return
      */
     List<TBExamStudentResult> selectClassList(@Param("examId") Long examId, @Param("courseCode") String courseCode);
+
+    /**
+     * 开课成绩查询
+     *
+     * @param page
+     * @param schoolId
+     * @param semester
+     * @param examId
+     * @param courseCode
+     * @param current
+     * @param inspectCollegeId
+     * @param teacherId
+     * @param studentParam
+     * @return
+     */
+    IPage<TeachCollegeResult> listTeachCollegeResult(@Param("page") Page<TeachCollegeResult> page, @Param("schoolId") Long schoolId, @Param("semester") String semester, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("current") Boolean current, @Param("inspectCollegeId") Long inspectCollegeId, @Param("teacherId") Long teacherId, @Param("studentParam") String studentParam);
+
+    List<TeachCollegeResult> listTeachCollegeResult(@Param("schoolId") Long schoolId, @Param("semester") String semester, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("current") Boolean current, @Param("inspectCollegeId") Long inspectCollegeId, @Param("teacherId") Long teacherId, @Param("studentParam") String studentParam);
+
+    /**
+     * 考查成绩查询
+     *
+     * @param page
+     * @param schoolId
+     * @param semester
+     * @param examId
+     * @param courseCode
+     * @param current
+     * @param teachCollegeId
+     * @param teacherId
+     * @param studentParam
+     * @return
+     */
+    IPage<InspectCollegeResult> listInspectCollegeResult(@Param("page") Page<InspectCollegeResult> page, @Param("schoolId") Long schoolId, @Param("semester") String semester, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("current") Boolean current, @Param("teachCollegeId") Long teachCollegeId, @Param("teacherId") Long teacherId, @Param("studentParam") String studentParam);
+
+    List<InspectCollegeResult> listInspectCollegeResult(@Param("schoolId") Long schoolId, @Param("semester") String semester, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("current") Boolean current, @Param("teachCollegeId") Long teachCollegeId, @Param("teacherId") Long teacherId, @Param("studentParam") String studentParam);
 }

+ 69 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/TBExamStudentService.java

@@ -1,9 +1,15 @@
 package com.qmth.teachcloud.report.business.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.teachcloud.report.business.bean.result.InspectCollegeResult;
 import com.qmth.teachcloud.report.business.bean.result.TBExamStudentResult;
+import com.qmth.teachcloud.report.business.bean.result.TeachCollegeResult;
 import com.qmth.teachcloud.report.business.entity.TBExamStudent;
+import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.List;
 
 /**
@@ -51,4 +57,67 @@ public interface TBExamStudentService extends IService<TBExamStudent> {
      * @return
      */
     List<TBExamStudentResult> selectClassList(Long examId, String courseCode);
+
+    /**
+     * 开课成绩查询
+     *
+     * @param semester
+     * @param examId
+     * @param courseCode
+     * @param current
+     * @param inspectCollegeId
+     * @param teacherId
+     * @param studentParam
+     * @param pageNumber
+     * @param pageSize
+     * @return
+     */
+    IPage<TeachCollegeResult> listTeachCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long inspectCollegeId, Long teacherId, String studentParam, Integer pageNumber, Integer pageSize);
+
+    void importFile(Long examId, MultipartFile file) throws IOException, NoSuchFieldException;
+
+    /**
+     * 开课成绩查询-导出查询结果
+     *
+     * @param semester
+     * @param examId
+     * @param courseCode
+     * @param current
+     * @param inspectCollegeId
+     * @param teacherId
+     * @param studentParam
+     * @param response
+     * @throws Exception
+     */
+    void exportTeachCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long inspectCollegeId, Long teacherId, String studentParam, HttpServletResponse response) throws Exception;
+
+    /**
+     * 考查成绩查询
+     *
+     * @param semester
+     * @param examId
+     * @param courseCode
+     * @param current
+     * @param teachCollegeId
+     * @param teacherId
+     * @param studentParam
+     * @param pageNumber
+     * @param pageSize
+     * @return
+     */
+    IPage<InspectCollegeResult> listInspectCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long teachCollegeId, Long teacherId, String studentParam, Integer pageNumber, Integer pageSize);
+
+    /**
+     * 考查成绩查询-导出查询结果
+     *
+     * @param semester
+     * @param examId
+     * @param courseCode
+     * @param current
+     * @param teachCollegeId
+     * @param teacherId
+     * @param studentParam
+     * @param response
+     */
+    void exportInspectCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long teachCollegeId, Long teacherId, String studentParam, HttpServletResponse response) throws Exception;
 }

+ 115 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TBExamStudentServiceImpl.java

@@ -1,14 +1,37 @@
 package com.qmth.teachcloud.report.business.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Lists;
+import com.qmth.teachcloud.common.entity.BasicCourse;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.service.BasicCourseService;
+import com.qmth.teachcloud.common.util.ExcelUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
+import com.qmth.teachcloud.common.util.excel.ExcelError;
+import com.qmth.teachcloud.report.business.bean.dto.ExamStudentTypeDto;
+import com.qmth.teachcloud.report.business.bean.result.InspectCollegeResult;
 import com.qmth.teachcloud.report.business.bean.result.TBExamStudentResult;
+import com.qmth.teachcloud.report.business.bean.result.TeachCollegeResult;
 import com.qmth.teachcloud.report.business.entity.TBExamStudent;
 import com.qmth.teachcloud.report.business.mapper.TBExamStudentMapper;
 import com.qmth.teachcloud.report.business.service.TBExamStudentService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -24,6 +47,9 @@ public class TBExamStudentServiceImpl extends ServiceImpl<TBExamStudentMapper, T
     @Resource
     TBExamStudentMapper tbExamStudentMapper;
 
+    @Autowired
+    BasicCourseService basicCourseService;
+
     /**
      * 查询开课学院列表
      *
@@ -64,4 +90,93 @@ public class TBExamStudentServiceImpl extends ServiceImpl<TBExamStudentMapper, T
     public List<TBExamStudentResult> selectClassList(Long examId, String courseCode) {
         return tbExamStudentMapper.selectClassList(examId, courseCode);
     }
+
+    @Override
+    public IPage<TeachCollegeResult> listTeachCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long inspectCollegeId, Long teacherId, String studentParam, Integer pageNumber, Integer pageSize) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        Page<TeachCollegeResult> page = new Page<>(pageNumber, pageSize);
+        IPage<TeachCollegeResult> listPage = tbExamStudentMapper.listTeachCollegeResult(page, schoolId, semester, examId, courseCode, current, inspectCollegeId, teacherId, studentParam);
+        return listPage;
+    }
+
+    @Override
+    public void importFile(Long examId, MultipartFile file) throws IOException, NoSuchFieldException {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        List<LinkedMultiValueMap<Integer, Object>> finalList = ExcelUtil.excelReader(file.getInputStream(), Lists.newArrayList(ExamStudentTypeDto.class), (finalExcelList, finalColumnNameList, finalExcelErrorList) -> {
+            List<ExcelError> excelErrorTemp = new ArrayList<>();
+            // 只允许导入一个sheet
+            if (finalExcelList.size() > 1) {
+                throw ExceptionResultEnum.ERROR.exception("excel中只允许有一个sheet");
+            }
+            for (int i = 0; i < finalExcelList.size(); i++) {
+                LinkedMultiValueMap<Integer, Object> excelMap = finalExcelList.get(i);
+                List<Object> examTaskTempList = excelMap.get(i);
+                for (int y = 0; y < examTaskTempList.size(); y++) {
+                    ExamStudentTypeDto userImportDto = (ExamStudentTypeDto) examTaskTempList.get(y);
+                    if (StringUtils.isBlank(userImportDto.getTicketNumber())) {
+                        excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[准考证号]必填"));
+                    }
+                    if (StringUtils.isBlank(userImportDto.getCourseCode())) {
+                        excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[课程代码]必填"));
+                    }
+                    if (StringUtils.isBlank(userImportDto.getCourseName())) {
+                        excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[课程名称]必填"));
+                    }
+
+                    // 课程是否存在并且与名称对应
+                    QueryWrapper<BasicCourse> queryWrapper = new QueryWrapper<>();
+                    queryWrapper.lambda().eq(BasicCourse::getSchoolId, schoolId).eq(BasicCourse::getCode, userImportDto.getCourseCode());
+                    BasicCourse course = basicCourseService.getOne(queryWrapper);
+                    if (course == null) {
+                        excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[课程代码]在系统中不存在"));
+                    } else if (!course.getName().equals(userImportDto.getCourseName())) {
+                        excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[课程名称]与系统中不匹配"));
+                    }
+                }
+            }
+            if (excelErrorTemp.size() > 0) {
+                List<String> errors = excelErrorTemp.stream().map(m -> m.getExcelErrorType()).collect(Collectors.toList());
+                throw ExceptionResultEnum.ERROR.exception(JSONObject.toJSONString(errors));
+            }
+            return finalExcelList;
+        });
+
+        for (int i = 0; i < finalList.size(); i++) {
+            LinkedMultiValueMap<Integer, Object> excelMap = finalList.get(i);
+            List<Object> tempList = excelMap.get(i);
+            for (int y = 0; y < tempList.size(); y++) {
+                ExamStudentTypeDto examStudentTypeDto = (ExamStudentTypeDto) tempList.get(y);
+                if (StringUtils.isNotBlank(examStudentTypeDto.getCurrent())) {
+                    UpdateWrapper<TBExamStudent> updateWrapper = new UpdateWrapper<>();
+                    updateWrapper.lambda().set(TBExamStudent::getCurrent, "应届".equals(examStudentTypeDto.getCurrent().trim()))
+                            .eq(TBExamStudent::getExamId, examId)
+                            .eq(TBExamStudent::getTicketNumber, examStudentTypeDto.getTicketNumber().trim())
+                            .eq(TBExamStudent::getCourseCode, examStudentTypeDto.getCourseCode().trim());
+                    this.update(updateWrapper);
+                }
+            }
+        }
+    }
+
+    @Override
+    public void exportTeachCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long inspectCollegeId, Long teacherId, String studentParam, HttpServletResponse response) throws Exception {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        List<TeachCollegeResult> list = tbExamStudentMapper.listTeachCollegeResult(schoolId, semester, examId, courseCode, current, inspectCollegeId, teacherId, studentParam);
+        ExcelUtil.excelExport("开课成绩查询", TeachCollegeResult.class, list, response);
+    }
+
+    @Override
+    public IPage<InspectCollegeResult> listInspectCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long teachCollegeId, Long teacherId, String studentParam, Integer pageNumber, Integer pageSize) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        Page<InspectCollegeResult> page = new Page<>(pageNumber, pageSize);
+        IPage<InspectCollegeResult> listPage = tbExamStudentMapper.listInspectCollegeResult(page, schoolId, semester, examId, courseCode, current, teachCollegeId, teacherId, studentParam);
+        return listPage;
+    }
+
+    @Override
+    public void exportInspectCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long teachCollegeId, Long teacherId, String studentParam, HttpServletResponse response) throws Exception {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        List<InspectCollegeResult> list = tbExamStudentMapper.listInspectCollegeResult(schoolId, semester, examId, courseCode, current, teachCollegeId, teacherId, studentParam);
+        ExcelUtil.excelExport("开课成绩查询", TeachCollegeResult.class, list, response);
+    }
 }

+ 123 - 0
teachcloud-report-business/src/main/resources/mapper/TBExamStudentMapper.xml

@@ -66,4 +66,127 @@
             <include refid="conditionSql" />
         </where>
     </select>
+    <select id="listTeachCollegeResult"
+            resultType="com.qmth.teachcloud.report.business.bean.result.TeachCollegeResult">
+        SELECT
+            d.semester,
+            d.exam_name examName,
+            a.course_code courseCode,
+            a.course_name courseName,
+            a.ticket_number ticketNumber,
+            a.student_code studentCode,
+            a.name,
+            case a.current when true then '应届' else '非应届' end as current,
+            b.objective_score objectiveScore,
+            b.subjective_score subjectiveScore,
+            b.total_score totalScore,
+            c.assigned_score assignedScore,
+            e.clazz_code clazzCode,
+            e.clazz_name clazzName,
+            f.college_name teachCollegeName,
+            g.college_name inspectCollegeName,
+            h.teacher_name teacherName
+        FROM
+            t_b_exam_student a
+                LEFT JOIN
+            t_b_exam_record b ON a.id = b.exam_student_id
+                LEFT JOIN
+            t_a_exam_course_record c ON b.id = c.exam_record_id
+                LEFT JOIN
+            t_b_exam d ON a.exam_id = d.id
+                LEFT JOIN
+            t_b_school_clazz e ON a.clazz_id = e.id
+                LEFT JOIN
+            t_b_school_college f ON a.teach_college_id = f.id
+                LEFT JOIN
+            t_b_school_college g ON a.inspect_college_id = g.id
+                LEFT JOIN
+            t_b_school_teacher h ON a.teacher_id = h.id
+        <where>
+            and d.school_id = #{schoolId}
+            <if test="semester != null and semester != ''">
+                and d.semester = #{semester}
+            </if>
+            <if test="examId != null">
+                and a.exam_id = = #{examId}
+            </if>
+            <if test="courseCode != null and courseCode != ''">
+                and a.course_code = = #{courseCode}
+            </if>
+            <if test="current != null">
+                and a.current = = #{current}
+            </if>
+            <if test="inspectCollegeId != null">
+                and a.inspect_college_id = = #{inspectCollegeId}
+            </if>
+            <if test="teacherId != null">
+                and a.teacher_id = = #{teacherId}
+            </if>
+            <if test="studentParam != null and studentParam != ''">
+                and (a.ticket_number like concat('%' ,#{studentParam}, '%')
+                or a.student_code like concat('%' ,#{studentParam}, '%')
+                or a.name like concat('%' ,#{studentParam}, '%'))
+            </if>
+        </where>
+    </select>
+    <select id="listInspectCollegeResult"
+            resultType="com.qmth.teachcloud.report.business.bean.result.InspectCollegeResult">
+        SELECT
+            d.semester,
+            d.exam_name examName,
+            a.course_code courseCode,
+            a.course_name courseName,
+            a.ticket_number ticketNumber,
+            a.student_code studentCode,
+            a.name,
+            case a.current when true then '应届' else '非应届' end as current,
+            c.assigned_score assignedScore,
+            e.clazz_code clazzCode,
+            e.clazz_name clazzName,
+            f.college_name teachCollegeName,
+            g.college_name inspectCollegeName,
+            h.teacher_name teacherName
+        FROM
+            t_b_exam_student a
+                LEFT JOIN
+            t_b_exam_record b ON a.id = b.exam_student_id
+                LEFT JOIN
+            t_a_exam_course_record c ON b.id = c.exam_record_id
+                LEFT JOIN
+            t_b_exam d ON a.exam_id = d.id
+                LEFT JOIN
+            t_b_school_clazz e ON a.clazz_id = e.id
+                LEFT JOIN
+            t_b_school_college f ON a.teach_college_id = f.id
+                LEFT JOIN
+            t_b_school_college g ON a.inspect_college_id = g.id
+                LEFT JOIN
+            t_b_school_teacher h ON a.teacher_id = h.id
+        <where>
+            and d.school_id = #{schoolId}
+            <if test="semester != null and semester != ''">
+                and d.semester = #{semester}
+            </if>
+            <if test="examId != null">
+                and a.exam_id = = #{examId}
+            </if>
+            <if test="courseCode != null and courseCode != ''">
+                and a.course_code = = #{courseCode}
+            </if>
+            <if test="current != null">
+                and a.current = = #{current}
+            </if>
+            <if test="inspectCollegeId != null">
+                and a.teach_college_id = = #{teachCollegeId}
+            </if>
+            <if test="teacherId != null">
+                and a.teacher_id = = #{teacherId}
+            </if>
+            <if test="studentParam != null and studentParam != ''">
+                and (a.ticket_number like concat('%' ,#{studentParam}, '%')
+                or a.student_code like concat('%' ,#{studentParam}, '%')
+                or a.name like concat('%' ,#{studentParam}, '%'))
+            </if>
+        </where>
+    </select>
 </mapper>

+ 116 - 3
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/TBExamStudentController.java

@@ -1,9 +1,27 @@
 package com.qmth.teachcloud.report.api;
 
 
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.boot.api.exception.ApiException;
+import com.qmth.teachcloud.common.entity.BasicAttachment;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.UploadFileEnum;
+import com.qmth.teachcloud.common.service.BasicAttachmentService;
+import com.qmth.teachcloud.common.util.Result;
+import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
+import com.qmth.teachcloud.report.business.bean.result.TBExamStudentResult;
+import com.qmth.teachcloud.report.business.service.TBExamStudentService;
+import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
-
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Objects;
 
 /**
  * <p>
@@ -13,8 +31,103 @@ import org.springframework.web.bind.annotation.RestController;
  * @author wangliang
  * @since 2021-06-01
  */
+@Api(tags = "教研分析学校公用Controller")
 @RestController
-@RequestMapping("/t-bexam-student")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.reportSchool}/student")
 public class TBExamStudentController {
 
-}
+    @Autowired
+    private TBExamStudentService tbExamStudentService;
+
+    @Autowired
+    private BasicAttachmentService basicAttachmentService;
+
+    @ApiOperation(value = "开课成绩查询")
+    @RequestMapping(value = "/list_teach_college_result", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "开课成绩查询信息", response = TBExamStudentResult.class)})
+    public Result listTeachCollegeResult(
+            @ApiParam(value = "学期", required = true) @RequestParam String semester,
+            @ApiParam(value = "考试ID", required = true) @RequestParam Long examId,
+            @ApiParam(value = "课程代码", required = true) @RequestParam String courseCode,
+            @ApiParam(value = "考试类型", required = true) @RequestParam Boolean current,
+            @ApiParam(value = "考查学院ID", required = true) @RequestParam Long inspectCollegeId,
+            @ApiParam(value = "教师ID", required = true) @RequestParam Long teacherId,
+            @ApiParam(value = "模糊查询", required = true) @RequestParam String studentParam,
+            @ApiParam(value = "分页页码", required = true) @RequestParam Integer pageNumber,
+            @ApiParam(value = "分页数量", required = true) @RequestParam Integer pageSize) {
+        return ResultUtil.ok(tbExamStudentService.listTeachCollegeResult(semester, examId, courseCode, current, inspectCollegeId, teacherId, studentParam, pageNumber, pageSize));
+    }
+
+    @ApiOperation(value = "开课成绩查询-导入异常考试类型")
+    @RequestMapping(value = "/import_abnormal_data", method = RequestMethod.POST)
+    public Result importAbnormalData(
+            @ApiParam(value = "考试id", required = true) @RequestParam Long examId,
+            @ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file) {
+        BasicAttachment basicAttachment = null;
+        try {
+            basicAttachment = basicAttachmentService.saveAttachment(file, ServletUtil.getRequestMd5(), UploadFileEnum.FILE);
+            if (Objects.isNull(basicAttachment)) {
+                throw ExceptionResultEnum.ATTACHMENT_ERROR.exception();
+            } else {
+                tbExamStudentService.importFile(examId, file);
+                return ResultUtil.ok(true);
+            }
+        } catch (Exception e) {
+            if (Objects.nonNull(basicAttachment)) {
+                basicAttachmentService.deleteAttachment(basicAttachment);
+            }
+            if (e instanceof ApiException) {
+                ResultUtil.error((ApiException) e, e.getMessage());
+            } else {
+                ResultUtil.error(e.getMessage());
+            }
+        }
+        return null;
+    }
+
+    @ApiOperation(value = "开课成绩查询-导出查询结果")
+    @RequestMapping(value = "/export_teach_college_result", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "开课成绩查询信息", response = TBExamStudentResult.class)})
+    public void exportTeachCollegeResult(
+            @ApiParam(value = "学期", required = true) @RequestParam String semester,
+            @ApiParam(value = "考试ID", required = true) @RequestParam Long examId,
+            @ApiParam(value = "课程代码", required = true) @RequestParam String courseCode,
+            @ApiParam(value = "考试类型", required = true) @RequestParam Boolean current,
+            @ApiParam(value = "考查学院ID", required = true) @RequestParam Long inspectCollegeId,
+            @ApiParam(value = "教师ID", required = true) @RequestParam Long teacherId,
+            @ApiParam(value = "模糊查询", required = true) @RequestParam String studentParam,
+            HttpServletResponse response) throws Exception {
+        tbExamStudentService.exportTeachCollegeResult(semester, examId, courseCode, current, inspectCollegeId, teacherId, studentParam, response);
+    }
+
+    @ApiOperation(value = "考查成绩查询")
+    @RequestMapping(value = "/listInspectCollegeResult", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "开课成绩查询信息", response = TBExamStudentResult.class)})
+    public Result listInspectCollegeResult(
+            @ApiParam(value = "学期", required = true) @RequestParam String semester,
+            @ApiParam(value = "考试ID", required = true) @RequestParam Long examId,
+            @ApiParam(value = "课程代码", required = true) @RequestParam String courseCode,
+            @ApiParam(value = "考试类型", required = true) @RequestParam Boolean current,
+            @ApiParam(value = "开课学院ID", required = true) @RequestParam Long teachCollegeId,
+            @ApiParam(value = "教师ID", required = true) @RequestParam Long teacherId,
+            @ApiParam(value = "模糊查询", required = true) @RequestParam String studentParam,
+            @ApiParam(value = "分页页码", required = true) @RequestParam Integer pageNumber,
+            @ApiParam(value = "分页数量", required = true) @RequestParam Integer pageSize) {
+        return ResultUtil.ok(tbExamStudentService.listInspectCollegeResult(semester, examId, courseCode, current, teachCollegeId, teacherId, studentParam, pageNumber, pageSize));
+    }
+
+    @ApiOperation(value = "考查成绩查询-导出查询结果")
+    @RequestMapping(value = "/export_inspect_college_result", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "开课成绩查询信息", response = TBExamStudentResult.class)})
+    public void exportInspectCollegeResult(
+            @ApiParam(value = "学期", required = true) @RequestParam String semester,
+            @ApiParam(value = "考试ID", required = true) @RequestParam Long examId,
+            @ApiParam(value = "课程代码", required = true) @RequestParam String courseCode,
+            @ApiParam(value = "考试类型", required = true) @RequestParam Boolean current,
+            @ApiParam(value = "开课学院ID", required = true) @RequestParam Long teachCollegeId,
+            @ApiParam(value = "教师ID", required = true) @RequestParam Long teacherId,
+            @ApiParam(value = "模糊查询", required = true) @RequestParam String studentParam,
+            HttpServletResponse response) throws Exception {
+        tbExamStudentService.exportInspectCollegeResult(semester, examId, courseCode, current, teachCollegeId, teacherId, studentParam, response);
+    }
+}