Browse Source

学生报告

xiaof 4 years ago
parent
commit
e1269a7408

+ 16 - 4
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/ExamInfo.java

@@ -2,11 +2,15 @@ package com.qmth.teachcloud.report.business.bean.result;
 
 import io.swagger.annotations.ApiModelProperty;
 
+import java.util.List;
+
 /**
  * @Date: 2021/6/9.
  */
 public class ExamInfo {
 
+    private Long examId;
+
     @ApiModelProperty(value = "试卷编号")
     private String examCode;
 
@@ -16,8 +20,16 @@ public class ExamInfo {
     @ApiModelProperty(value = "考试名称")
     private String examName;
 
-    @ApiModelProperty(value = "是否缺考")
-    private CourseInfo courseInfo;
+    @ApiModelProperty(value = "课程信息")
+    private List<CourseInfo> courseInfo;
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
 
     public String getExamCode() {
         return examCode;
@@ -43,11 +55,11 @@ public class ExamInfo {
         this.examName = examName;
     }
 
-    public CourseInfo getCourseInfo() {
+    public List<CourseInfo> getCourseInfo() {
         return courseInfo;
     }
 
-    public void setCourseInfo(CourseInfo courseInfo) {
+    public void setCourseInfo(List<CourseInfo> courseInfo) {
         this.courseInfo = courseInfo;
     }
 }

+ 5 - 3
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/ReportResult.java

@@ -2,6 +2,8 @@ package com.qmth.teachcloud.report.business.bean.result;
 
 import io.swagger.annotations.ApiModelProperty;
 
+import java.util.List;
+
 /**
  * @Date: 2021/6/9.
  */
@@ -11,7 +13,7 @@ public class ReportResult {
     private StudentInfo studentInfo;
 
     @ApiModelProperty(value = "考试信息")
-    private ExamInfo examInfo;
+    private List<ExamInfo> examInfo;
 
     public StudentInfo getStudentInfo() {
         return studentInfo;
@@ -21,11 +23,11 @@ public class ReportResult {
         this.studentInfo = studentInfo;
     }
 
-    public ExamInfo getExamInfo() {
+    public List<ExamInfo> getExamInfo() {
         return examInfo;
     }
 
-    public void setExamInfo(ExamInfo examInfo) {
+    public void setExamInfo(List<ExamInfo> examInfo) {
         this.examInfo = examInfo;
     }
 }

+ 37 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/entity/TAExamCourseRecordDio.java

@@ -43,6 +43,19 @@ public class TAExamCourseRecordDio implements Serializable {
     @TableField(value = "paper_id")
     private Long paperId;
 
+    @ApiModelProperty(value = "考试id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableField(value = "exam_id")
+    private Long examId;
+
+    @ApiModelProperty(value = "课程编号")
+    @TableField(value = "course_code")
+    private String courseCode;
+
+    @ApiModelProperty(value = "科目名称")
+    @TableField(value = "course_name")
+    private String courseName;
+
     @ApiModelProperty(value = "模块类型")
     @TableField(value = "dimension_type")
     private String dimensionType;
@@ -99,6 +112,30 @@ public class TAExamCourseRecordDio implements Serializable {
         this.paperId = paperId;
     }
 
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
+    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 getDimensionType() {
         return dimensionType;
     }

+ 49 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/entity/TAExamCourseRecordMod.java

@@ -43,6 +43,23 @@ public class TAExamCourseRecordMod implements Serializable {
     @TableField(value = "paper_id")
     private Long paperId;
 
+    @ApiModelProperty(value = "考试id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableField(value = "exam_id")
+    private Long examId;
+
+    @ApiModelProperty(value = "考号")
+    @TableField(value = "student_code")
+    private String studentCode;
+
+    @ApiModelProperty(value = "课程编号")
+    @TableField(value = "course_code")
+    private String courseCode;
+
+    @ApiModelProperty(value = "科目名称")
+    @TableField(value = "course_name")
+    private String courseName;
+
     @ApiModelProperty(value = "考察模块名称")
     @TableField(value = "module_type")
     private String moduleType;
@@ -174,4 +191,36 @@ public class TAExamCourseRecordMod implements Serializable {
     public void setLevel(String level) {
         this.level = level;
     }
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
+    public String getStudentCode() {
+        return studentCode;
+    }
+
+    public void setStudentCode(String studentCode) {
+        this.studentCode = studentCode;
+    }
+
+    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;
+    }
 }

+ 6 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/mapper/TAExamCourseRecordMapper.java

@@ -1,6 +1,8 @@
 package com.qmth.teachcloud.report.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qmth.teachcloud.report.business.bean.result.ExamStudentResult;
+import com.qmth.teachcloud.report.business.bean.result.SynthesisResult;
 import com.qmth.teachcloud.report.business.entity.TAExamCourseRecord;
 import org.apache.ibatis.annotations.Param;
 
@@ -18,4 +20,8 @@ import java.util.Map;
 public interface TAExamCourseRecordMapper extends BaseMapper<TAExamCourseRecord> {
 
     List<TAExamCourseRecord> listExamCourseRecord(@Param("schoolId") Long schoolId, @Param("semester") String semester, @Param("examId") Long examId, @Param("courseCode") String courseCode);
+
+    ExamStudentResult getStudent(@Param("schoolId") String schoolId, @Param("examId") String examId, @Param("studentCode") String studentCode, @Param("courseCode") String courseCode);
+
+    SynthesisResult getSynthesisResult(@Param("schoolId") String schoolId, @Param("examId") String examId, @Param("studentCode") String studentCode, @Param("courseCode") String courseCode);
 }

+ 5 - 4
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/mapper/TBExamStudentMapper.java

@@ -3,10 +3,7 @@ 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.TBStudentReportResult;
-import com.qmth.teachcloud.report.business.bean.result.TeachCollegeResult;
+import com.qmth.teachcloud.report.business.bean.result.*;
 import com.qmth.teachcloud.report.business.entity.TBExamStudent;
 import org.apache.ibatis.annotations.Param;
 
@@ -112,4 +109,8 @@ public interface TBExamStudentMapper extends BaseMapper<TBExamStudent> {
      * @return
      */
     IPage<TBStudentReportResult> reportList(IPage<Map> iPage, @Param("schoolId") Long schoolId, @Param("examId") Long examId, @Param("collegeId") Long collegeId, @Param("courseCode") String courseCode, @Param("clazzId") Long clazzId, @Param("absent") Boolean absent);
+
+    List<ExamInfo> listExamBySchoolIdAndStudentCode(@Param("schoolId") Long schoolId, @Param("studentCode") String studentCode);
+
+    List<CourseInfo> listCourseByExamIdAndStudentCode(@Param("schoolId") Long schoolId, @Param("examId") Long examId, @Param("studentCode") String studentCode);
 }

+ 2 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/mapper/TBStudentMapper.java

@@ -1,6 +1,7 @@
 package com.qmth.teachcloud.report.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qmth.teachcloud.report.business.bean.result.StudentInfo;
 import com.qmth.teachcloud.report.business.entity.TBStudent;
 
 /**
@@ -13,4 +14,5 @@ import com.qmth.teachcloud.report.business.entity.TBStudent;
  */
 public interface TBStudentMapper extends BaseMapper<TBStudent> {
 
+    StudentInfo getStudentBySchoolIdAndStudentCode(Long schoolId, String studentCode);
 }

+ 17 - 1
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/TBExamStudentService.java

@@ -146,5 +146,21 @@ public interface TBExamStudentService extends IService<TBExamStudent> {
      */
     IPage<TBStudentReportResult> reportList(IPage<Map> iPage, Long schoolId, Long examId, Long collegeId, String courseCode, Long clazzId, Boolean absent);
 
-    ReportResult reportResult(Long convertIdToLong, String studentCode);
+    /**
+     * 学生报告-个人成绩总览接口
+     * @param schoolId
+     * @param studentCode
+     * @return
+     */
+    ReportResult reportResult(Long schoolId, String studentCode);
+
+    /**
+     * 学生报告接口
+     * @param schoolId
+     * @param studentCode
+     * @param examId
+     * @param courseCode
+     * @return
+     */
+    PersonalReportResult reportMark(String schoolId, String studentCode, String examId, String courseCode);
 }

+ 117 - 2
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TBExamStudentServiceImpl.java

@@ -7,6 +7,7 @@ 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.boot.api.exception.ApiException;
 import com.qmth.teachcloud.common.entity.BasicCourse;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.BasicCourseService;
@@ -15,9 +16,11 @@ 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.*;
-import com.qmth.teachcloud.report.business.entity.TBExamStudent;
-import com.qmth.teachcloud.report.business.mapper.TBExamStudentMapper;
+import com.qmth.teachcloud.report.business.entity.*;
+import com.qmth.teachcloud.report.business.enums.AssignEnum;
+import com.qmth.teachcloud.report.business.mapper.*;
 import com.qmth.teachcloud.report.business.service.TBExamStudentService;
+import io.swagger.annotations.Api;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -30,6 +33,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -49,6 +53,21 @@ public class TBExamStudentServiceImpl extends ServiceImpl<TBExamStudentMapper, T
     @Autowired
     BasicCourseService basicCourseService;
 
+    @Resource
+    TBStudentMapper tbStudentMapper;
+
+    @Resource
+    TAExamCourseRecordMapper taExamCourseRecordMapper;
+
+    @Resource
+    TBCommonRankLevelConfigMapper tbCommonRankLevelConfigMapper;
+
+    @Resource
+    TBPaperMapper tbPaperMapper;
+
+    @Resource
+    TAExamCourseRecordDioMapper taExamCourseRecordDioMapper;
+
     /**
      * 查询开课学院列表
      *
@@ -207,8 +226,104 @@ public class TBExamStudentServiceImpl extends ServiceImpl<TBExamStudentMapper, T
         return tbExamStudentMapper.reportList(iPage, schoolId, examId, collegeId, courseCode, clazzId, absent);
     }
 
+    /**
+     * 学生报告-个人成绩总览接口
+     *
+     * @param schoolId
+     * @param studentCode
+     * @return
+     */
     @Override
     public ReportResult reportResult(Long schoolId, String studentCode) {
+        ReportResult reportResult = new ReportResult();
+        // 考生信息
+        StudentInfo studentInfo = tbStudentMapper.getStudentBySchoolIdAndStudentCode(schoolId, studentCode);
+        reportResult.setStudentInfo(studentInfo);
+
+        //考试信息
+        List<ExamInfo> examInfo = tbExamStudentMapper.listExamBySchoolIdAndStudentCode(schoolId, studentCode);
+        for (ExamInfo info : examInfo) {
+            List<CourseInfo> courseInfos = tbExamStudentMapper.listCourseByExamIdAndStudentCode(schoolId, info.getExamId(), studentCode);
+            info.setCourseInfo(courseInfos);
+        }
+        reportResult.setExamInfo(examInfo);
+        return reportResult;
+    }
+
+    @Override
+    public PersonalReportResult reportMark(String schoolId, String studentCode, String examId, String courseCode) {
+        PersonalReportResult personalReportResult = new PersonalReportResult();
+        // 考生信息
+        ExamStudentResult examStudentResult = buildExamStudentResult(schoolId, examId, studentCode, courseCode);
+        personalReportResult.setStudent(examStudentResult);
+
+        // 学院信息
+        CollegeResult collegeResult = buildCollegeResult(schoolId, examId, studentCode, courseCode);
+        personalReportResult.setCollege(collegeResult);
+        return personalReportResult;
+    }
+
+    private CollegeResult buildCollegeResult(String schoolId, String examId, String studentCode, String courseCode) {
+        CollegeResult collegeResult = new CollegeResult();
+        // 综合信息
+        SynthesisResult synthesisResult = taExamCourseRecordMapper.getSynthesisResult(schoolId, examId, studentCode, courseCode);
+        collegeResult.setSynthesis(synthesisResult);
+
+        // 诊断信息
+        DiagnosisResult diagnosisResult = new DiagnosisResult();
+
+        QueryWrapper<TAExamCourseRecord> examCourseRecordQueryWrapper = new QueryWrapper<>();
+        examCourseRecordQueryWrapper.lambda().eq(TAExamCourseRecord::getSchoolId, schoolId).eq(TAExamCourseRecord::getExamId, examId).eq(TAExamCourseRecord::getStudentCode, studentCode).eq(TAExamCourseRecord::getCourseCode, courseCode);
+        List<TAExamCourseRecord> examCourseRecords = taExamCourseRecordMapper.selectList(examCourseRecordQueryWrapper);
+
+        QueryWrapper<TBPaper> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(TBPaper::getExamId, examId).eq(TBPaper::getCourseCode, courseCode);
+        List<TBPaper> papers = tbPaperMapper.selectList(queryWrapper);
+
+        if (examCourseRecords.size() != 1 || papers.size() != 1) {
+            throw ExceptionResultEnum.ERROR.exception("获取数据异常,应该有且仅有一条数据");
+        }
+
+        AssignEnum scoreType = papers.get(0).getScoreType();
+        boolean isAssignedScore = false;
+        if (!AssignEnum.NO_NEED_ASSIGN_SCORE.equals(scoreType)) {
+            isAssignedScore = true;
+        }
+        diagnosisResult.setAssignedScore(isAssignedScore);
+        double passScore = papers.get(0).getPassScore().doubleValue();
+        boolean result = examCourseRecords.get(0).getAssignedScore().doubleValue() >=passScore;
+        diagnosisResult.setResult(result);
+
+        // 模块
+        QueryWrapper<TAExamCourseRecordDio> examCourseRecordDioQueryWrapper = new QueryWrapper<>();
+        examCourseRecordDioQueryWrapper.lambda().eq(TAExamCourseRecordDio::getSchoolId, schoolId).eq(TAExamCourseRecordDio::getExamId, examId).eq(TAExamCourseRecordDio::getCourseCode, courseCode);
+        List<TAExamCourseRecordDio> examCourseRecordDios = taExamCourseRecordDioMapper.selectList(examCourseRecordDioQueryWrapper);
+        Set<String> moduleNames = examCourseRecordDios.stream().map(m->m.getDimensionType()).collect(Collectors.toSet());
+        for (String moduleName : moduleNames) {
+            QueryWrapper<TAExamCourseRecordMod> examCourseRecordModQueryWrapper = new QueryWrapper<>();
+            examCourseRecordModQueryWrapper.lambda().eq(TAExamCourseRecordMod::getSchoolId, schoolId).eq(TAExamCourseRecordMod::getExamId, examId).eq(TAExamCourseRecordMod::getStudentCode, studentCode).eq(TAExamCourseRecordMod::getCourseCode, courseCode);
+        }
         return null;
     }
+
+    private ExamStudentResult buildExamStudentResult(String schoolId, String examId, String studentCode, String courseCode) {
+        ExamStudentResult examStudentResult = taExamCourseRecordMapper.getStudent(schoolId, examId, studentCode, courseCode);
+        if (examStudentResult != null) {
+            QueryWrapper<TBCommonRankLevelConfig> queryWrapper = new QueryWrapper<>();
+            queryWrapper.lambda().eq(TBCommonRankLevelConfig::getExamId, examId).eq(TBCommonRankLevelConfig::getCourseCode, courseCode);
+            List<TBCommonRankLevelConfig> commonRankLevelConfigs = tbCommonRankLevelConfigMapper.selectList(queryWrapper);
+            List<LevelResult> levelResults = new ArrayList<>();
+            for (TBCommonRankLevelConfig commonRankLevelConfig : commonRankLevelConfigs) {
+                LevelResult levelResult = new LevelResult();
+                levelResult.setLevel(commonRankLevelConfig.getLevel());
+                List<Integer> grades = new ArrayList<>();
+                grades.add(commonRankLevelConfig.getMin().intValue());
+                grades.add(commonRankLevelConfig.getMax().intValue());
+                levelResult.setGrade(grades);
+                levelResults.add(levelResult);
+            }
+            examStudentResult.setLevels(levelResults);
+        }
+        return examStudentResult;
+    }
 }

+ 68 - 0
teachcloud-report-business/src/main/resources/mapper/TAExamCourseRecordMapper.xml

@@ -26,4 +26,72 @@
             </if>
         </where>
     </select>
+    <select id="getStudent" resultType="com.qmth.teachcloud.report.business.bean.result.ExamStudentResult">
+        SELECT
+            a.rank_level level,
+            c.name collegeName,
+            d.name courseName,
+            b.exam_name examName,
+            e.name examStudentName,
+            a.student_code studentCode,
+            b.exam_time time,
+            f.clazz_name className
+        FROM
+            t_a_exam_course_record a
+                LEFT JOIN
+            t_b_exam b ON a.exam_id = b.id
+                LEFT JOIN
+            sys_org c ON a.inspect_college_id = c.id
+                LEFT JOIN
+            basic_course d ON a.school_id = d.school_id
+                AND a.course_code = d.code
+                LEFT JOIN
+            t_b_student e ON a.student_id = e.id
+                LEFT JOIN
+            t_b_school_clazz f ON a.clazz_id = f.id
+        <where>
+            and a.school_id = #{schoolId}
+            and a.exam_id = #{examId}
+            and a.student_code = #{studentCode}
+            and a.course_code = #{courseCode}
+        </where>
+    </select>
+    <select id="getSynthesisResult"
+            resultType="com.qmth.teachcloud.report.business.bean.result.SynthesisResult">
+        SELECT
+            ROUND(a.assigned_score, 1) myScore,
+            b.reality_count actualCount,
+            ROUND(a.over_college_rate, 1) overRate,
+            ROUND(b.min_score, 1) collegeMinScore,
+            ROUND(b.avg_score, 1) collegeAvgScore,
+            ROUND(b.max_score, 1) collegeMaxScore,
+            ROUND(c.min_score, 1) clazzMinScore,
+            ROUND(c.avg_score, 1) clazzAvgScore,
+            ROUND(c.max_score, 1) clazzMaxScore,
+            ROUND(d.total_score, 1) fullScore,
+            ROUND(d.current_score_rate, 1) difficult,
+            d.difficulty difficultInfo
+        FROM
+            t_a_exam_course_record a
+                LEFT JOIN
+            t_a_exam_course_college_inspect b ON a.school_id = b.school_id
+                AND a.exam_id = b.exam_id
+                AND a.course_code = b.course_code
+                AND a.inspect_college_id = b.college_id
+                LEFT JOIN
+            t_a_exam_course_clazz c ON a.school_id = c.school_id
+                AND a.exam_id = c.exam_id
+                AND a.course_code = c.course_code
+                AND a.clazz_id = c.clazz_id
+                LEFT JOIN
+            t_a_exam_course d ON a.school_id = d.school_id
+                AND a.exam_id = d.exam_id
+                AND a.course_code = d.course_code
+        <where>
+            and a.school_id = #{schoolId}
+            and a.exam_id = #{examId}
+            and a.student_code = #{studentCode}
+            and a.course_code = #{courseCode}
+        </where>
+    </select>
 </mapper>

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

@@ -233,4 +233,42 @@
             </if>
         </where>
     </select>
+    <select id="listExamBySchoolIdAndStudentCode"
+            resultType="com.qmth.teachcloud.report.business.bean.result.ExamInfo">
+        SELECT
+            a.exam_id examId,
+            b.exam_code examCode,
+            b.exam_name examName,
+            b.exam_time createTime
+        FROM
+            t_b_exam_student a
+                LEFT JOIN
+            t_b_exam b ON a.exam_id = b.id
+        <where>
+            and a.school_id = #{schoolId}
+            and a.student_code = #{studentCode}
+        </where>
+        order by b.exam_time desc
+    </select>
+    <select id="listCourseByExamIdAndStudentCode"
+            resultType="com.qmth.teachcloud.report.business.bean.result.CourseInfo">
+        SELECT
+            c.exam_code examCode,
+            a.course_code courseCode,
+            a.course_name courseName,
+            a.absent,
+            b.publish_status publishStatus
+        FROM
+            t_b_exam_student a
+                LEFT JOIN
+            t_b_exam_course b ON a.exam_id = b.exam_id
+                AND a.course_code = b.course_code
+                LEFT JOIN
+            t_b_exam c ON a.exam_id = c.id
+        <where>
+            and a.school_id = #{schoolId}
+            and a.exam_id = #{examId}
+            and a.student_code = #{studentCode}
+        </where>
+    </select>
 </mapper>

+ 13 - 0
teachcloud-report-business/src/main/resources/mapper/TBStudentMapper.xml

@@ -2,4 +2,17 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.qmth.teachcloud.report.business.mapper.TBStudentMapper">
 
+    <select id="getStudentBySchoolIdAndStudentCode"
+            resultType="com.qmth.teachcloud.report.business.bean.result.StudentInfo">
+        SELECT
+            a.student_code studentCode, b.name school, a.name
+        FROM
+            t_b_student a
+                LEFT JOIN
+            basic_school b ON a.school_id = b.id
+        <where>
+            and a.school_id = #{schoolId}
+            and a.student_code = #{studentCode}
+        </where>
+    </select>
 </mapper>

+ 1 - 1
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/StudentReportController.java

@@ -58,6 +58,6 @@ public class StudentReportController {
                              @ApiParam(value = "学号", required = true) @RequestParam String studentCode,
                              @ApiParam(value = "考试id", required = true) @RequestParam String examId,
                              @ApiParam(value = "科目编码", required = true) @RequestParam String courseCode) {
-        return ResultUtil.ok();
+        return ResultUtil.ok(tbExamStudentService.reportMark(schoolId, studentCode, examId, courseCode));
     }
 }