wangliang il y a 4 ans
Parent
commit
faae12b80c

+ 2 - 1
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/mapper/TAExamTotalMapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.teachcloud.report.business.entity.TAExamCourse;
 import com.qmth.teachcloud.report.business.entity.TAExamTotal;
+import com.qmth.teachcloud.report.business.enums.OrderEnum;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -21,5 +22,5 @@ public interface TAExamTotalMapper extends BaseMapper<TAExamTotal> {
 
     TAExamTotal getOverview(@Param("schoolId") Long schoolId, @Param("semester") String semester, @Param("examId") Long examId);
 
-    IPage<TAExamCourse> getCourseSummary(@Param("page") Page<TAExamCourse> page, @Param("schoolId") Long schoolId, @Param("semester") String semester, @Param("examId") Long examId, @Param("collegeIds") List<Long> collegeIds);
+    IPage<TAExamCourse> getCourseSummary(@Param("page") Page<TAExamCourse> page, @Param("schoolId") Long schoolId, @Param("semester") String semester, @Param("examId") Long examId, @Param("collegeIds") List<Long> collegeIds, @Param("column") String column, @Param("order") String order);
 }

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

@@ -79,7 +79,7 @@ public interface TBExamStudentMapper extends BaseMapper<TBExamStudent> {
      */
     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("teachCollegeId") Long teachCollegeId, @Param("teacherId") Long teacherId, @Param("studentParam") String studentParam, @Param("collegeIds") List<Long> collegeIds, @Param("column") String column, @Param("order") String order);
 
-    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);
+    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("column") String column, @Param("order") String order);
 
     /**
      * 考查成绩查询

+ 3 - 2
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/TAExamTotalService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.teachcloud.report.business.entity.TAExamCourse;
 import com.qmth.teachcloud.report.business.entity.TAExamTotal;
+import com.qmth.teachcloud.report.business.enums.OrderEnum;
 import com.qmth.teachcloud.report.business.enums.SemesterEnum;
 
 import javax.servlet.http.HttpServletResponse;
@@ -20,9 +21,9 @@ public interface TAExamTotalService extends IService<TAExamTotal> {
 
     TAExamTotal getOverview(SemesterEnum semester, Long examId);
 
-    IPage<TAExamCourse> getCourseSummary(SemesterEnum semester, Long examId, Integer pageNumber, Integer pageSize);
+    IPage<TAExamCourse> getCourseSummary(SemesterEnum semester, Long examId, Integer pageNumber, Integer pageSize, String column, OrderEnum order);
 
-    void exportCourseSummary(SemesterEnum semester, Long examId, HttpServletResponse response) throws Exception;
+    void exportCourseSummary(SemesterEnum semester, Long examId, String column, OrderEnum order, HttpServletResponse response) throws Exception;
 
     void exportDataAnalysis(SemesterEnum semester, Long examId, String courseCode, HttpServletResponse response);
 }

+ 9 - 3
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/TBExamStudentService.java

@@ -102,9 +102,11 @@ public interface TBExamStudentService extends IService<TBExamStudent> {
      * @param teacherId
      * @param studentParam
      * @param response
+     * @param column
+     * @param order
      * @throws Exception
      */
-    void exportTeachCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long inspectCollegeId, Long teacherId, String studentParam, HttpServletResponse response) throws Exception;
+    void exportTeachCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long inspectCollegeId, Long teacherId, String studentParam, HttpServletResponse response, String column, OrderEnum order) throws Exception;
 
     /**
      * 考查成绩查询
@@ -118,9 +120,11 @@ public interface TBExamStudentService extends IService<TBExamStudent> {
      * @param studentParam
      * @param pageNumber
      * @param pageSize
+     * @param column
+     * @param order
      * @return
      */
-    IPage<InspectCollegeResult> listInspectCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long teachCollegeId, Long teacherId, String studentParam, Integer pageNumber, Integer pageSize);
+    IPage<InspectCollegeResult> listInspectCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long teachCollegeId, Long teacherId, String studentParam, Integer pageNumber, Integer pageSize, String column, OrderEnum order);
 
     /**
      * 考查成绩查询-导出查询结果
@@ -133,8 +137,10 @@ public interface TBExamStudentService extends IService<TBExamStudent> {
      * @param teacherId
      * @param studentParam
      * @param response
+     * @param column
+     * @param order
      */
-    void exportInspectCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long teachCollegeId, Long teacherId, String studentParam, HttpServletResponse response) throws Exception;
+    void exportInspectCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long teachCollegeId, Long teacherId, String studentParam, HttpServletResponse response, String column, OrderEnum order) throws Exception;
 
     /**
      * 学生报告预览-列表接口

+ 6 - 5
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TAExamTotalServiceImpl.java

@@ -14,6 +14,7 @@ import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.report.business.bean.dto.excel.TAExamCourseDto;
 import com.qmth.teachcloud.report.business.entity.TAExamCourse;
 import com.qmth.teachcloud.report.business.entity.TAExamTotal;
+import com.qmth.teachcloud.report.business.enums.OrderEnum;
 import com.qmth.teachcloud.report.business.enums.SemesterEnum;
 import com.qmth.teachcloud.report.business.mapper.TAExamTotalMapper;
 import com.qmth.teachcloud.report.business.service.TAExamTotalService;
@@ -49,21 +50,21 @@ public class TAExamTotalServiceImpl extends ServiceImpl<TAExamTotalMapper, TAExa
     }
 
     @Override
-    public IPage<TAExamCourse> getCourseSummary(SemesterEnum semester, Long examId, Integer pageNumber, Integer pageSize) {
+    public IPage<TAExamCourse> getCourseSummary(SemesterEnum semester, Long examId, Integer pageNumber, Integer pageSize, String column, OrderEnum order) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         Page<TAExamCourse> page = new Page<>(pageNumber, pageSize);
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         List<Long> collegeIds = sysOrgService.findCollegeIds(sysUser.getOrgId());
         if (Objects.nonNull(collegeIds) && collegeIds.size() > 0) {
-            return taExamTotalMapper.getCourseSummary(page, schoolId, Objects.nonNull(semester) ? semester.name() : null, examId, collegeIds);
+            return taExamTotalMapper.getCourseSummary(page, schoolId, Objects.nonNull(semester) ? semester.name() : null, examId, collegeIds, column, Objects.nonNull(order) ? order.name() : null);
         } else {
-            return taExamTotalMapper.getCourseSummary(page, schoolId, Objects.nonNull(semester) ? semester.name() : null, examId, Arrays.asList(sysUser.getOrgId()));
+            return taExamTotalMapper.getCourseSummary(page, schoolId, Objects.nonNull(semester) ? semester.name() : null, examId, Arrays.asList(sysUser.getOrgId()), column, Objects.nonNull(order) ? order.name() : null);
         }
     }
 
     @Override
-    public void exportCourseSummary(SemesterEnum semester, Long examId, HttpServletResponse response) throws Exception {
-        IPage<TAExamCourse> taExamCourseIPage = this.getCourseSummary(semester, examId, SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE);
+    public void exportCourseSummary(SemesterEnum semester, Long examId, String column, OrderEnum order, HttpServletResponse response) throws Exception {
+        IPage<TAExamCourse> taExamCourseIPage = this.getCourseSummary(semester, examId, SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE, column, order);
         Gson gson = new Gson();
         List<TAExamCourseDto> examStudentCourseDtoList = gson.fromJson(JacksonUtil.parseJson(taExamCourseIPage.getRecords()), new TypeToken<List<TAExamCourseDto>>() {
         }.getType());

+ 14 - 4
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TBExamStudentServiceImpl.java

@@ -219,14 +219,24 @@ public class TBExamStudentServiceImpl extends ServiceImpl<TBExamStudentMapper, T
     }
 
     @Override
-    public void exportTeachCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long inspectCollegeId, Long teacherId, String studentParam, HttpServletResponse response) throws Exception {
+    public void exportTeachCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long inspectCollegeId, Long teacherId, String studentParam, HttpServletResponse response, String column, OrderEnum order) throws Exception {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        List<TeachCollegeResult> list = tbExamStudentMapper.listTeachCollegeResult(schoolId, semester, examId, courseCode, current, inspectCollegeId, teacherId, studentParam);
+        String finalColumn = null;
+        if (Objects.nonNull(column) && Objects.equals(column, "teachCollegeName")) {
+            finalColumn = "f.name ";
+        } else if (Objects.nonNull(column) && Objects.equals(column, "inspectCollegeName")) {
+            finalColumn = "g.name";
+        } else if (Objects.nonNull(column) && Objects.equals(column, "teacherName")) {
+            finalColumn = "h.real_name";
+        } else {
+            finalColumn = SystemConstant.getOrderColumn(column);
+        }
+        List<TeachCollegeResult> list = tbExamStudentMapper.listTeachCollegeResult(schoolId, semester, examId, courseCode, current, inspectCollegeId, teacherId, studentParam, finalColumn, Objects.nonNull(order) ? order.name() : null);
         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) {
+    public IPage<InspectCollegeResult> listInspectCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long teachCollegeId, Long teacherId, String studentParam, Integer pageNumber, Integer pageSize, String column, OrderEnum order) {
         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);
@@ -234,7 +244,7 @@ public class TBExamStudentServiceImpl extends ServiceImpl<TBExamStudentMapper, T
     }
 
     @Override
-    public void exportInspectCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long teachCollegeId, Long teacherId, String studentParam, HttpServletResponse response) throws Exception {
+    public void exportInspectCollegeResult(String semester, Long examId, String courseCode, Boolean current, Long teachCollegeId, Long teacherId, String studentParam, HttpServletResponse response, String column, OrderEnum order) 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);

+ 28 - 24
teachcloud-report-business/src/main/resources/mapper/TAExamTotalMapper.xml

@@ -31,31 +31,31 @@
         </where>
     </select>
     <select id="getCourseSummary" resultType="com.qmth.teachcloud.report.business.entity.TAExamCourse">
-        SELECT
-            a.course_code courseCode,
-            a.course_name courseName,
-            a.teach_college_name teachCollegeName,
-            a.inspect_college_count inspectCollegeCount,
-            a.reality_count realityCount,
-            a.current_reality_count currentRealityCount,
-            a.absent_count absentCount,
-            round(a.avg_score, 1) avgScore,
-            a.pass_count passCount,
-            round(a.pass_rate * 100,1) passRate,
-            round(a.current_avg_score, 1) currentAvgScore,
-            a.current_pass_count currentPassCount,
-            round(a.current_pass_rate * 100, 1) currentPassRate,
-            round(a.current_reality_rate * 100, 1) currentRealityRate,
-            round(a.past_reality_rate * 100, 1) pastRealityRate,
-            round((1 - a.pass_rate)  * 100,1) as notPassRate,
-            round(a.paper_current_avg_score,1) as paperCurrentAvgScore,
-            round((1 - a.current_pass_rate) * 100,1) as currentNotPassRate,
-            (a.reality_count - a.pass_count) as notPassCount,
-            (a.current_reality_count - a.current_pass_count) as currentNotPassCount
+        select * from(SELECT
+        a.course_code courseCode,
+        a.course_name courseName,
+        a.teach_college_name teachCollegeName,
+        a.inspect_college_count inspectCollegeCount,
+        a.reality_count realityCount,
+        a.current_reality_count currentRealityCount,
+        a.absent_count absentCount,
+        round(a.avg_score, 1) avgScore,
+        a.pass_count passCount,
+        round(a.pass_rate * 100,1) passRate,
+        round(a.current_avg_score, 1) currentAvgScore,
+        a.current_pass_count currentPassCount,
+        round(a.current_pass_rate * 100, 1) currentPassRate,
+        round(a.current_reality_rate * 100, 1) currentRealityRate,
+        round(a.past_reality_rate * 100, 1) pastRealityRate,
+        round((1 - a.pass_rate) * 100,1) as notPassRate,
+        round(a.paper_current_avg_score,1) as paperCurrentAvgScore,
+        round((1 - a.current_pass_rate) * 100,1) as currentNotPassRate,
+        (a.reality_count - a.pass_count) as notPassCount,
+        (a.current_reality_count - a.current_pass_count) as currentNotPassCount
         FROM
-            t_a_exam_course a
-                LEFT JOIN
-            t_b_exam b ON a.exam_id = b.id
+        t_a_exam_course a
+        LEFT JOIN
+        t_b_exam b ON a.exam_id = b.id
         <where>
             and b.school_id = #{schoolId}
             <if test="semester != null and semester != ''">
@@ -71,5 +71,9 @@
                 </foreach>
             </if>
         </where>
+        ) t
+        <if test="column != null and column != '' and order != null and order != ''">
+            order by ${column} ${order}
+        </if>
     </select>
 </mapper>

+ 7 - 3
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/DataDriveController.java

@@ -51,16 +51,20 @@ public class DataDriveController {
     public Result getCourseSummary(@ApiParam(value = "学期", required = true) @RequestParam SemesterEnum semester,
                                    @ApiParam(value = "考试ID", required = true) @RequestParam Long examId,
                                    @ApiParam(value = "分页页码", required = true) @RequestParam Integer pageNumber,
-                                   @ApiParam(value = "分页数量", required = true) @RequestParam Integer pageSize) {
-        return ResultUtil.ok(taExamTotalService.getCourseSummary(semester, examId, pageNumber, pageSize));
+                                   @ApiParam(value = "分页数量", required = true) @RequestParam Integer pageSize,
+                                   @ApiParam(value = "排序列", required = false) @RequestParam(required = false) String column,
+                                   @ApiParam(value = "排序规则", required = false) @RequestParam(required = false) OrderEnum order) {
+        return ResultUtil.ok(taExamTotalService.getCourseSummary(semester, examId, pageNumber, pageSize, column, order));
     }
 
     @ApiOperation(value = "全校考试总览-全校课程考试分析汇总-导出课程分析Excel报表")
     @RequestMapping(value = "/exam/export_course_summary", method = RequestMethod.POST)
     public void exportCourseSummary(@ApiParam(value = "学期", required = true) @RequestParam SemesterEnum semester,
                                     @ApiParam(value = "考试ID", required = true) @RequestParam Long examId,
+                                    @ApiParam(value = "排序列", required = false) @RequestParam(required = false) String column,
+                                    @ApiParam(value = "排序规则", required = false) @RequestParam(required = false) OrderEnum order,
                                     HttpServletResponse response) throws Exception {
-        taExamTotalService.exportCourseSummary(semester, examId, response);
+        taExamTotalService.exportCourseSummary(semester, examId, column, order, response);
     }
 
     @ApiOperation(value = "全校课程考试分析-全校考试概况")

+ 12 - 6
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/TBExamStudentController.java

@@ -99,8 +99,10 @@ public class TBExamStudentController {
             @ApiParam(value = "考查学院ID", required = true) @RequestParam(required = false) Long inspectCollegeId,
             @ApiParam(value = "教师ID", required = true) @RequestParam(required = false) Long teacherId,
             @ApiParam(value = "模糊查询", required = true) @RequestParam(required = false) String studentParam,
-            HttpServletResponse response) throws Exception {
-        tbExamStudentService.exportTeachCollegeResult(semester, examId, courseCode, current, inspectCollegeId, teacherId, studentParam, response);
+            HttpServletResponse response,
+            @ApiParam(value = "排序列", required = false) @RequestParam(required = false) String column,
+            @ApiParam(value = "排序规则", required = false) @RequestParam(required = false) OrderEnum order) throws Exception {
+        tbExamStudentService.exportTeachCollegeResult(semester, examId, courseCode, current, inspectCollegeId, teacherId, studentParam, response, column, order);
     }
 
     @ApiOperation(value = "考查成绩查询")
@@ -115,8 +117,10 @@ public class TBExamStudentController {
             @ApiParam(value = "教师ID", required = true) @RequestParam(required = false) Long teacherId,
             @ApiParam(value = "模糊查询", required = true) @RequestParam(required = false) 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));
+            @ApiParam(value = "分页数量", required = true) @RequestParam Integer pageSize,
+            @ApiParam(value = "排序列", required = false) @RequestParam(required = false) String column,
+            @ApiParam(value = "排序规则", required = false) @RequestParam(required = false) OrderEnum order) {
+        return ResultUtil.ok(tbExamStudentService.listInspectCollegeResult(semester, examId, courseCode, current, teachCollegeId, teacherId, studentParam, pageNumber, pageSize, column, order));
     }
 
     @ApiOperation(value = "考查成绩查询-导出查询结果")
@@ -130,7 +134,9 @@ public class TBExamStudentController {
             @ApiParam(value = "开课学院ID", required = true) @RequestParam(required = false) Long teachCollegeId,
             @ApiParam(value = "教师ID", required = true) @RequestParam(required = false) Long teacherId,
             @ApiParam(value = "模糊查询", required = true) @RequestParam(required = false) String studentParam,
-            HttpServletResponse response) throws Exception {
-        tbExamStudentService.exportInspectCollegeResult(semester, examId, courseCode, current, teachCollegeId, teacherId, studentParam, response);
+            HttpServletResponse response,
+            @ApiParam(value = "排序列", required = false) @RequestParam(required = false) String column,
+            @ApiParam(value = "排序规则", required = false) @RequestParam(required = false) OrderEnum order) throws Exception {
+        tbExamStudentService.exportInspectCollegeResult(semester, examId, courseCode, current, teachCollegeId, teacherId, studentParam, response, column, order);
     }
 }