wangliang 4 ani în urmă
părinte
comite
c978fd5a70
12 a modificat fișierele cu 105 adăugiri și 24 ștergeri
  1. 0 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncPaperReviewPdfExportService.java
  2. 27 10
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java
  3. 42 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/enums/OrderEnum.java
  4. 2 1
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/mapper/TAExamCourseCollegeTeacherMapper.java
  5. 2 1
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/mapper/TBExamStudentMapper.java
  6. 2 1
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/TAExamCourseCollegeTeacherService.java
  7. 4 3
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TAExamCourseCollegeTeacherServiceImpl.java
  8. 10 2
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TBExamStudentServiceImpl.java
  9. 1 1
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/templete/calculate/AsyncCalculateTaskTemplete.java
  10. 3 1
      teachcloud-report-business/src/main/resources/mapper/TAExamCourseCollegeTeacherMapper.xml
  11. 7 0
      teachcloud-report-business/src/main/resources/mapper/TBExamStudentMapper.xml
  12. 5 2
      teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/DataDriveController.java

+ 0 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncPaperReviewPdfExportService.java

@@ -2,7 +2,6 @@ package com.qmth.distributed.print.business.templete.execute;
 
 import cn.hutool.core.date.DateUtil;
 import com.qmth.boot.api.exception.ApiException;
-import com.qmth.distributed.print.business.entity.ExamTask;
 import com.qmth.distributed.print.business.templete.export.AsyncExportTaskTemplete;
 import com.qmth.distributed.print.business.templete.service.TaskLogicService;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
@@ -20,7 +19,6 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.text.MessageFormat;
 import java.util.Date;
-import java.util.List;
 import java.util.Map;
 import java.util.StringJoiner;
 

+ 27 - 10
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -142,7 +142,7 @@ public class SystemConstant {
      * 线程池配置
      */
     public static final String THREAD_POOL_NAME = "taskThreadPool";
-//    public static final int THREAD_POOL_CORE_POOL_SIZE = 5;
+    //    public static final int THREAD_POOL_CORE_POOL_SIZE = 5;
 //    public static final int THREAD_POOL_MAX_POOL_SIZE = 100;
     public static final int THREAD_POOL_KEEP_ALIVE_SECONDS = 10;
     public static final int THREAD_POOL_QUEUE_CAPACITY = 500;
@@ -216,28 +216,45 @@ public class SystemConstant {
 
     /**
      * 模糊查询时调用以去除符号"%","_"特殊字符对查询结果的影响
+     *
      * @param param 要校验的参数
      * @return 转译后的参数
      */
-    public static String translateSpecificSign(String param){
-        if (param == null){
+    public static String translateSpecificSign(String param) {
+        if (param == null) {
             return null;
         }
-        if (param.contains("%")){
-            param = param.replaceAll("%","\\\\%");
+        if (param.contains("%")) {
+            param = param.replaceAll("%", "\\\\%");
         }
-        if (param.contains("_")){
-            param = param.replaceAll("_","\\\\_");
+        if (param.contains("_")) {
+            param = param.replaceAll("_", "\\\\_");
         }
         return param;
     }
 
-    public static void verifyLength(String str,int length,String name){
-        if (str == null || str.length() == 0 || str.equals("null")){
+    public static void verifyLength(String str, int length, String name) {
+        if (str == null || str.length() == 0 || str.equals("null")) {
             throw ExceptionResultEnum.ERROR.exception(name + "不能为空");
         }
-        if (str.length() > length){
+        if (str.length() > length) {
             throw ExceptionResultEnum.ERROR.exception("[" + name + ":" + str + "]' 超过长度限制 : " + length);
         }
     }
+
+    /**
+     * 获取排序列名
+     *
+     * @param column
+     * @return
+     */
+    public static String getOrderColumn(String column) {
+        if (Objects.nonNull(column) && Objects.equals(column, "inspectCollegeName")) {
+            return "inspect_college_name";
+        } else if (Objects.nonNull(column) && Objects.equals(column, "teacherName")) {
+            return "teacher_name";
+        } else {
+            return null;
+        }
+    }
 }

+ 42 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/enums/OrderEnum.java

@@ -0,0 +1,42 @@
+package com.qmth.teachcloud.report.business.enums;
+
+import java.util.Objects;
+
+/**
+ * @Description: 排序enum
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/6/21
+ */
+public enum OrderEnum {
+
+    ASC("正序"),
+
+    DESC("倒序");
+
+    private String title;
+
+    private OrderEnum(String title) {
+        this.title = title;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param title
+     * @return
+     */
+    public static String convertToName(String title) {
+        for (OrderEnum e : OrderEnum.values()) {
+            if (Objects.equals(title, e.getTitle())) {
+                return e.name();
+            }
+        }
+        return null;
+    }
+}

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

@@ -7,6 +7,7 @@ import com.qmth.teachcloud.report.business.bean.result.TAExamCourseTeacherResult
 import com.qmth.teachcloud.report.business.bean.result.TeacherClassRankResult;
 import com.qmth.teachcloud.report.business.bean.result.TeacherMyClassRankResult;
 import com.qmth.teachcloud.report.business.entity.TAExamCourseCollegeTeacher;
+import com.qmth.teachcloud.report.business.enums.OrderEnum;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -37,5 +38,5 @@ public interface TAExamCourseCollegeTeacherMapper extends BaseMapper<TAExamCours
      */
     List<TAExamCourseTeacherResult> findTeacherInfo(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("collegeId") Long collegeId);
 
-    IPage<TeacherClassRankResult> listTeacherClassRank(@Param("page") Page<TeacherClassRankResult> page, @Param("schoolId") Long schoolId, @Param("semester") String semester, @Param("examId") Long examId, @Param("courseCode") String courseCode);
+    IPage<TeacherClassRankResult> listTeacherClassRank(@Param("page") Page<TeacherClassRankResult> page, @Param("schoolId") Long schoolId, @Param("semester") String semester, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("column") String column, @Param("order") String order);
 }

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

@@ -73,9 +73,10 @@ public interface TBExamStudentMapper extends BaseMapper<TBExamStudent> {
      * @param inspectCollegeId
      * @param teacherId
      * @param studentParam
+     * @param collegeIds
      * @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("teachCollegeId") Long teachCollegeId, @Param("teacherId") Long teacherId, @Param("studentParam") String studentParam);
+    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);
 
     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);
 

+ 2 - 1
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/TAExamCourseCollegeTeacherService.java

@@ -6,6 +6,7 @@ import com.qmth.teachcloud.report.business.bean.result.TAExamCourseTeacherResult
 import com.qmth.teachcloud.report.business.bean.result.TeacherClassRankResult;
 import com.qmth.teachcloud.report.business.bean.result.TeacherMyClassRankResult;
 import com.qmth.teachcloud.report.business.entity.TAExamCourseCollegeTeacher;
+import com.qmth.teachcloud.report.business.enums.OrderEnum;
 import com.qmth.teachcloud.report.business.enums.SemesterEnum;
 
 import java.util.List;
@@ -36,5 +37,5 @@ public interface TAExamCourseCollegeTeacherService extends IService<TAExamCourse
      */
     List<TAExamCourseTeacherResult> findTeacherInfo(Long examId, String courseCode, Long collegeId);
 
-    IPage<TeacherClassRankResult> listTeacherClassRank(SemesterEnum semester, Long examId, String courseCode, Integer pageNumber, Integer pageSize);
+    IPage<TeacherClassRankResult> listTeacherClassRank(SemesterEnum semester, Long examId, String courseCode, Integer pageNumber, Integer pageSize, String column, OrderEnum order);
 }

+ 4 - 3
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TAExamCourseCollegeTeacherServiceImpl.java

@@ -3,6 +3,7 @@ package com.qmth.teachcloud.report.business.service.impl;
 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.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -10,6 +11,7 @@ import com.qmth.teachcloud.report.business.bean.result.TAExamCourseTeacherResult
 import com.qmth.teachcloud.report.business.bean.result.TeacherClassRankResult;
 import com.qmth.teachcloud.report.business.bean.result.TeacherMyClassRankResult;
 import com.qmth.teachcloud.report.business.entity.TAExamCourseCollegeTeacher;
+import com.qmth.teachcloud.report.business.enums.OrderEnum;
 import com.qmth.teachcloud.report.business.enums.SemesterEnum;
 import com.qmth.teachcloud.report.business.mapper.TAExamCourseCollegeTeacherMapper;
 import com.qmth.teachcloud.report.business.service.TAExamCourseCollegeTeacherService;
@@ -86,10 +88,9 @@ public class TAExamCourseCollegeTeacherServiceImpl extends ServiceImpl<TAExamCou
     }
 
     @Override
-    public IPage<TeacherClassRankResult> listTeacherClassRank(SemesterEnum semester, Long examId, String courseCode, Integer pageNumber, Integer pageSize) {
+    public IPage<TeacherClassRankResult> listTeacherClassRank(SemesterEnum semester, Long examId, String courseCode, Integer pageNumber, Integer pageSize, String column, OrderEnum order) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         Page<TeacherClassRankResult> page = new Page<>(pageNumber, pageSize);
-        IPage<TeacherClassRankResult> listPage = taExamCourseCollegeTeacherMapper.listTeacherClassRank(page, schoolId, Objects.nonNull(semester) ? semester.name() : null, examId, courseCode);
-        return listPage;
+        return taExamCourseCollegeTeacherMapper.listTeacherClassRank(page, schoolId, Objects.nonNull(semester) ? semester.name() : null, examId, courseCode, SystemConstant.getOrderColumn(column), Objects.nonNull(order) ? order.name() : null);
     }
 }

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

@@ -12,6 +12,7 @@ import com.qmth.teachcloud.common.entity.BasicCourse;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.BasicCourseService;
+import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.util.ExcelUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.common.util.excel.ExcelError;
@@ -77,6 +78,9 @@ public class TBExamStudentServiceImpl extends ServiceImpl<TBExamStudentMapper, T
     @Resource
     TBModuleProficiencyMapper tbModuleProficiencyMapper;
 
+    @Resource
+    SysOrgService sysOrgService;
+
     /**
      * 查询开课学院列表
      *
@@ -136,8 +140,12 @@ public class TBExamStudentServiceImpl extends ServiceImpl<TBExamStudentMapper, T
         Long orgId = sysUser.getOrgId();
         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,orgId, teacherId, studentParam);
-        return listPage;
+        List<Long> collegeIds = sysOrgService.findCollegeIds(sysUser.getOrgId());
+        if (Objects.nonNull(collegeIds) && collegeIds.size() > 0) {
+            return tbExamStudentMapper.listTeachCollegeResult(page, schoolId, semester, examId, courseCode, current, inspectCollegeId, orgId, teacherId, studentParam, collegeIds);
+        } else {
+            return tbExamStudentMapper.listTeachCollegeResult(page, schoolId, semester, examId, courseCode, current, inspectCollegeId, orgId, teacherId, studentParam, Arrays.asList(sysUser.getOrgId()));
+        }
     }
 
     @Override

+ 1 - 1
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/templete/calculate/AsyncCalculateTaskTemplete.java

@@ -19,6 +19,6 @@ public abstract class AsyncCalculateTaskTemplete {
      * @return
      * @throws IOException
      */
-    @Async
+    @Async("taskThreadPool")
     public abstract Result calculateTask(Map<String, Object> map) throws IOException, Exception;
 }

+ 3 - 1
teachcloud-report-business/src/main/resources/mapper/TAExamCourseCollegeTeacherMapper.xml

@@ -182,6 +182,8 @@
                 and a.course_code = #{courseCode}
             </if>
         </where>
-        order by a.inspect_college_name
+        <if test="column != null and column != '' and order != null and order != ''">
+            order by a.${column} ${order}
+        </if>
     </select>
 </mapper>

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

@@ -73,6 +73,7 @@
             <include refid="conditionSql"/>
         </where>
     </select>
+
     <select id="listTeachCollegeResult"
             resultType="com.qmth.teachcloud.report.business.bean.result.TeachCollegeResult">
         SELECT
@@ -135,6 +136,12 @@
                 or a.student_code like concat('%' ,#{studentParam}, '%')
                 or a.name like concat('%' ,#{studentParam}, '%'))
             </if>
+            <if test="collegeIds != null and collegeIds != ''">
+                and a.teach_college_id in
+                <foreach collection="collegeIds" item="collegeId" index="index" open="(" separator="," close=")">
+                    #{collegeId}
+                </foreach>
+            </if>
         </where>
     </select>
     <select id="listInspectCollegeResult"

+ 5 - 2
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/DataDriveController.java

@@ -7,6 +7,7 @@ import com.qmth.teachcloud.report.business.entity.TAExamCourse;
 import com.qmth.teachcloud.report.business.entity.TAExamCourseCollegeTeacher;
 import com.qmth.teachcloud.report.business.entity.TAExamCourseTeacher;
 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.service.TAExamCourseCollegeTeacherService;
 import com.qmth.teachcloud.report.business.service.TAExamCourseService;
@@ -87,8 +88,10 @@ public class DataDriveController {
                                        @ApiParam(value = "考试ID", required = true) @RequestParam Long examId,
                                        @ApiParam(value = "课程代码", required = true) @RequestParam String courseCode,
                                        @ApiParam(value = "分页页码", required = true) @RequestParam Integer pageNumber,
-                                       @ApiParam(value = "分页数量", required = true) @RequestParam Integer pageSize) {
-        return ResultUtil.ok(taExamCourseCollegeTeacherService.listTeacherClassRank(semester, examId, courseCode, 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(taExamCourseCollegeTeacherService.listTeacherClassRank(semester, examId, courseCode, pageNumber, pageSize, column, order));
     }
 
     @ApiOperation(value = "全校课程考试分析-考试概况-导出课程分析报表")