wangliang před 4 roky
rodič
revize
1cdc083dc1

+ 22 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/CourseDimensionResult.java

@@ -52,6 +52,28 @@ public class CourseDimensionResult implements Serializable {
     @ApiModelProperty(value = "学院名称")
     private String collegeName;
 
+    @ApiModelProperty(value = "难度")
+    private Double degree;
+
+    @ApiModelProperty(value = "教师名称")
+    private String teacherName;
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public Double getDegree() {
+        return degree;
+    }
+
+    public void setDegree(Double degree) {
+        this.degree = degree;
+    }
+
     public Long getExamId() {
         return examId;
     }

+ 2 - 1
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/DimensionInfoResult.java

@@ -37,12 +37,13 @@ public class DimensionInfoResult implements Serializable {
 
     }
 
-    public DimensionInfoResult(String dimensionCode, String dimensionName, String totalCount, String schScoreRate, String colScoreRate) {
+    public DimensionInfoResult(String dimensionCode, String dimensionName, String totalCount, String schScoreRate, String colScoreRate, Double degree) {
         this.dimensionCode = dimensionCode;
         this.dimensionName = dimensionName;
         this.totalCount = totalCount;
         this.schScoreRate = schScoreRate;
         this.colScoreRate = colScoreRate;
+        this.degree = degree;
     }
 
     public DimensionInfoResult(String dimensionCode, String dimensionName) {

+ 10 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/mapper/TBDimensionMapper.java

@@ -26,4 +26,14 @@ public interface TBDimensionMapper extends BaseMapper<TBDimension> {
      * @return
      */
     List<CourseDimensionResult> findDimensionInfo(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("collegeId") Long collegeId);
+
+    /**
+     * 查找教师维度信息
+     *
+     * @param examId
+     * @param courseCode
+     * @param teacherId
+     * @return
+     */
+    List<CourseDimensionResult> findDimensionByTeacherInfo(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("teacherId") Long teacherId);
 }

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

@@ -49,9 +49,10 @@ public interface ReportCommonService {
      * @param examId
      * @param courseCode
      * @param collegeId
+     * @param teacherId
      * @return
      */
-    DimensionAnalyzeResult findDimensionInfo(Long examId, String courseCode, Long collegeId);
+    DimensionAnalyzeResult findDimensionInfo(Long examId, String courseCode, Long collegeId, Long teacherId);
 
     /**
      * 查找题目相关

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

@@ -92,5 +92,5 @@ public interface TAExamCourseService extends IService<TAExamCourse> {
      * @param teacherId
      * @return
      */
-    Object surveyTeacherQuestionView(Long schoolId, SemesterEnum semester, Long examId, String courseCode, Long collegeId, Long teacherId);
+    DimensionAnalyzeResult surveyTeacherQuestionView(Long schoolId, SemesterEnum semester, Long examId, String courseCode, Long collegeId, Long teacherId);
 }

+ 10 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/TBDimensionService.java

@@ -25,4 +25,14 @@ public interface TBDimensionService extends IService<TBDimension> {
      * @return
      */
     List<CourseDimensionResult> findDimensionInfo(Long examId, String courseCode, Long collegeId);
+
+    /**
+     * 查找教师维度信息
+     *
+     * @param examId
+     * @param courseCode
+     * @param teacherId
+     * @return
+     */
+    List<CourseDimensionResult> findDimensionByTeacherInfo(Long examId, String courseCode, Long teacherId);
 }

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

@@ -292,12 +292,18 @@ public class ReportCommonServiceImpl implements ReportCommonService {
      * @param examId
      * @param courseCode
      * @param collegeId
+     * @param teacherId
      * @return
      */
     @Override
-    public DimensionAnalyzeResult findDimensionInfo(Long examId, String courseCode, Long collegeId) {
+    public DimensionAnalyzeResult findDimensionInfo(Long examId, String courseCode, Long collegeId, Long teacherId) {
         //查找维度
-        List<CourseDimensionResult> dimensionInfoDatasource = tbDimensionService.findDimensionInfo(examId, courseCode, collegeId);
+        List<CourseDimensionResult> dimensionInfoDatasource = null;
+        if (Objects.isNull(teacherId) || Objects.equals(teacherId, "")) {
+            dimensionInfoDatasource = tbDimensionService.findDimensionInfo(examId, courseCode, collegeId);
+        } else {
+            dimensionInfoDatasource = tbDimensionService.findDimensionByTeacherInfo(examId, courseCode, teacherId);
+        }
         if (dimensionInfoDatasource.size() < 1) {
             throw ExceptionResultEnum.DATA_ERROR.exception();
         }
@@ -320,7 +326,7 @@ public class ReportCommonServiceImpl implements ReportCommonService {
                 } else {
                     worseThanAll.add(new DimensionInfoResult(dimensionCode, dimensionName));
                 }
-                dioList.add(new DimensionInfoResult(dimensionCode, dimensionName, String.valueOf(courseDimensionResult.getTotalCount()), String.valueOf(schScoreRate), String.valueOf(colScoreRate)));
+                dioList.add(new DimensionInfoResult(dimensionCode, dimensionName, String.valueOf(courseDimensionResult.getTotalCount()), String.valueOf(schScoreRate), String.valueOf(colScoreRate), courseDimensionResult.getDegree()));
             }
             dimensionAnalyzeList.add(new ModuleDimensionResult(module, dioList, batterThanAll, worseThanAll));
         }

+ 4 - 5
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TAExamCourseServiceImpl.java

@@ -139,7 +139,7 @@ public class TAExamCourseServiceImpl extends ServiceImpl<TAExamCourseMapper, TAE
         //学院学科报表科目描述
         CollegeAndSchoolGradeDistributionResult collegeAndSchoolGradeDistributionResult = reportCommonService.findCourseDistribution(examId, courseCode, sysUser.getOrgId());
         //学院学科报表维度查询
-        DimensionAnalyzeResult dimensionAnalyzeResult = reportCommonService.findDimensionInfo(examId, courseCode, sysUser.getOrgId());
+        DimensionAnalyzeResult dimensionAnalyzeResult = reportCommonService.findDimensionInfo(examId, courseCode, sysUser.getOrgId(), null);
         //查找试卷结构
         List<TBPaperStructResult> questionDatasource = tbPaperStructService.findQuestionInfo(examId, courseCode);
         //查找题目相关
@@ -219,13 +219,12 @@ public class TAExamCourseServiceImpl extends ServiceImpl<TAExamCourseMapper, TAE
      * @return
      */
     @Override
-    public Object surveyTeacherQuestionView(Long schoolId, SemesterEnum semester, Long examId, String courseCode, Long collegeId, Long teacherId) {
+    public DimensionAnalyzeResult surveyTeacherQuestionView(Long schoolId, SemesterEnum semester, Long examId, String courseCode, Long collegeId, Long teacherId) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         if (Objects.isNull(sysUser)) {
             throw ExceptionResultEnum.NOT_LOGIN.exception();
         }
-        //学院学科报表维度查询-按学院
-        DimensionAnalyzeResult dimensionAnalyzeResult = reportCommonService.findDimensionInfo(examId, courseCode, Objects.isNull(collegeId) ? sysUser.getOrgId() : collegeId);
-        return dimensionAnalyzeResult;
+        //学院学科报表维度查询-按学院/教师查询
+        return reportCommonService.findDimensionInfo(examId, courseCode, Objects.isNull(collegeId) ? sysUser.getOrgId() : collegeId, teacherId);
     }
 }

+ 13 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TBDimensionServiceImpl.java

@@ -36,4 +36,17 @@ public class TBDimensionServiceImpl extends ServiceImpl<TBDimensionMapper, TBDim
     public List<CourseDimensionResult> findDimensionInfo(Long examId, String courseCode, Long collegeId) {
         return tbDimensionMapper.findDimensionInfo(examId, courseCode, collegeId);
     }
+
+    /**
+     * 查找教师维度信息
+     *
+     * @param examId
+     * @param courseCode
+     * @param teacherId
+     * @return
+     */
+    @Override
+    public List<CourseDimensionResult> findDimensionByTeacherInfo(Long examId, String courseCode, Long teacherId) {
+        return tbDimensionMapper.findDimensionByTeacherInfo(examId, courseCode, teacherId);
+    }
 }

+ 57 - 0
teachcloud-report-business/src/main/resources/mapper/TBDimensionMapper.xml

@@ -58,4 +58,61 @@
                     </if>
                 </where>
     </select>
+
+    <select id="findDimensionByTeacherInfo" resultType="com.qmth.teachcloud.report.business.bean.result.CourseDimensionResult">
+        SELECT
+        tmp.exam_id AS examId,
+        (select tbe.exam_code from t_b_exam tbe where tbe.id = tmp.exam_id) as examCode,
+        tmp.course_code AS courseCode,
+        tmp.dimension_type AS module,
+        code_primary AS dimensionCode,
+        name_primary AS dimensionName,
+        interpretation,
+        total_count AS totalCount,
+        round(CONVERT( papDio.score_rate * 100 , DECIMAL (10 , 4 )),2) AS schScoreRate,
+        round(CONVERT( colDio.score_rate * 100 , DECIMAL (10 , 4 )),2) AS colScoreRate,
+        colDio.teacher_name AS teacherName,
+        round(colDio.score_rate, 1) as degree
+        FROM
+        (SELECT
+        exam_id,
+        course_code,
+        dimension_type,
+        code_primary,
+        name_primary,
+        interpretation
+        FROM
+        t_b_dimension
+        GROUP BY exam_id, course_code , dimension_type , code_primary , name_primary , interpretation) tmp
+        INNER JOIN
+        (SELECT
+        exam_id,
+        course_code,
+        dimension_type,
+        dimension_code,
+        AVG(score_rate) AS score_rate,
+        AVG(total_count) AS total_count
+        FROM
+        t_a_exam_course_dio
+        GROUP BY exam_id , course_code , dimension_type , dimension_code) papDio ON tmp.code_primary = papDio.dimension_code
+        AND tmp.dimension_type = papDio.dimension_type
+        AND tmp.exam_id = papDio.exam_id
+        AND tmp.course_code = papDio.course_code
+        INNER JOIN
+        t_a_exam_course_teacher_dio colDio ON tmp.code_primary = colDio.dimension_code
+        AND tmp.dimension_type = colDio.dimension_type
+        AND papDio.exam_id = colDio.exam_id
+        AND papDio.course_code = colDio.course_code
+        <where>
+            <if test="examId != null and examId != ''">
+                and papDio.exam_id = #{examId}
+            </if>
+            <if test="courseCode != null and courseCode != ''">
+                and papDio.course_code = #{courseCode}
+            </if>
+            <if test="teacherId != null and teacherId != ''">
+                and colDio.teacher_id = #{teacherId}
+            </if>
+        </where>
+    </select>
 </mapper>

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

@@ -51,7 +51,7 @@ public class CourseController {
                                            @ApiParam(value = "科目编码", required = true) @RequestParam String courseCode,
                                            @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber,
                                            @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
-        return ResultUtil.ok(taExamCourseService.surveyTeacherTeacherView(new Page<>(pageNumber, pageSize), SystemConstant.convertIdToLong(schoolId), semester, SystemConstant.convertIdToLong(examId), courseCode));
+        return ResultUtil.ok(taExamCourseService.surveyTeacherTeacherView(new Page<>(pageNumber, pageSize), Objects.isNull(schoolId) ? (Long) ServletUtil.getRequestHeaderSchoolId() : SystemConstant.convertIdToLong(schoolId), semester, SystemConstant.convertIdToLong(examId), courseCode));
     }
 
     @ApiOperation(value = "开课课程考试总览-试题难度得分情况分析接口")
@@ -63,7 +63,7 @@ public class CourseController {
                                             @ApiParam(value = "科目编码", required = true) @RequestParam String courseCode,
                                             @ApiParam(value = "考查学院id", required = false) @RequestParam(required = false) String collegeId,
                                             @ApiParam(value = "任课老师id", required = false) @RequestParam(required = false) String teacherId) {
-        return ResultUtil.ok();
+        return ResultUtil.ok(taExamCourseService.surveyTeacherQuestionView(Objects.isNull(schoolId) ? (Long) ServletUtil.getRequestHeaderSchoolId() : SystemConstant.convertIdToLong(schoolId), semester, SystemConstant.convertIdToLong(examId), courseCode, Objects.nonNull(collegeId) ? SystemConstant.convertIdToLong(collegeId) : null, Objects.nonNull(teacherId) ? SystemConstant.convertIdToLong(teacherId) : null));
     }
 
     @ApiOperation(value = "开课课程考试总览图表接口")
@@ -73,7 +73,7 @@ public class CourseController {
                                     @ApiParam(value = "学期", required = true) @RequestParam SemesterEnum semester,
                                     @ApiParam(value = "学校id", required = false) @RequestParam(required = false) String schoolId,
                                     @ApiParam(value = "科目编码", required = true) @RequestParam String courseCode) {
-        return ResultUtil.ok(taExamCourseService.surveyTeacherView(SystemConstant.convertIdToLong(schoolId), semester, SystemConstant.convertIdToLong(examId), courseCode));
+        return ResultUtil.ok(taExamCourseService.surveyTeacherView(Objects.isNull(schoolId) ? (Long) ServletUtil.getRequestHeaderSchoolId() : SystemConstant.convertIdToLong(schoolId), semester, SystemConstant.convertIdToLong(examId), courseCode));
     }
 
     @ApiOperation(value = "考查课程考试总览-公共课概况接口")