Ver código fonte

日常更新

wangliang 4 anos atrás
pai
commit
bc7d0015ce

+ 1 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -93,6 +93,7 @@ public class SystemConstant {
     public static final String COLLEGE_COURSE_REPORT = "report:cache:collegeCourse";
     public static final String SURVEY_TEACHER_VIEW_REPORT = "report:cache:surveyTeacherView";
     public static final String TEACHER_VIEW_REPORT = "report:cache:teacherView";
+    public static final String TEACHER_ANSWER_VIEW_REPORT = "report:cache:teacherAnswerView";
 
     /**
      * 鉴权

+ 12 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/CellResult.java

@@ -1,5 +1,6 @@
 package com.qmth.teachcloud.report.business.bean.result;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -14,6 +15,9 @@ import java.math.BigDecimal;
  */
 public class CellResult implements Serializable {
 
+    @ApiModelProperty(value = "试卷类型")
+    private String paperType;
+
     @ApiModelProperty(value = "简介")
     private String interpret;
 
@@ -44,6 +48,14 @@ public class CellResult implements Serializable {
         this.count = count;
     }
 
+    public String getPaperType() {
+        return paperType;
+    }
+
+    public void setPaperType(String paperType) {
+        this.paperType = paperType;
+    }
+
     public Double getTeaAvgScoreRate() {
         return teaAvgScoreRate;
     }

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

@@ -60,10 +60,10 @@ public interface ReportCommonService {
      * @param examId
      * @param courseCode
      * @param collegeId
-     * @param questionDatasource
+     * @param teacherId
      * @return
      */
-    QuestionInfoResult findSituationOfQuestions(Long examId, String courseCode, Long collegeId, List<TBPaperStructResult> questionDatasource);
+    QuestionInfoResult findSituationOfQuestions(Long examId, String courseCode, Long collegeId,Long teacherId);
 
     /**
      * 查找老师信息
@@ -81,8 +81,7 @@ public interface ReportCommonService {
      * @param examId
      * @param courseCode
      * @param collegeId
-     * @param questionDatasource
      * @return
      */
-    QuestionListResult findQuestionInfo(Long examId, String courseCode, Long collegeId, List<TBPaperStructResult> questionDatasource);
+    QuestionListResult findQuestionInfo(Long examId, String courseCode, Long collegeId);
 }

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

@@ -81,20 +81,17 @@ public interface TAExamCourseService extends IService<TAExamCourse> {
      */
     IPage<TAExamCourseCollegeTeacherResult> surveyTeacherTeacherView(IPage<Map> iPage, Long schoolId, SemesterEnum semester, Long examId, String courseCode);
 
-//    /**
-//     * 开课课程考试总览-试题难度得分情况分析接口
-//     *
-//     * @param schoolId
-//     * @param semester
-//     * @param examId
-//     * @param courseCode
-//     * @param collegeId
-//     * @param teacherId
-//     * @return
-//     */
-//    Object surveyTeacherQuestionView(Long schoolId, SemesterEnum semester, Long examId, String courseCode, Long collegeId, Long teacherId);
-
-
+    /**
+     * 开课课程考试总览-试题难度得分情况分析接口
+     *
+     * @param schoolId
+     * @param semester
+     * @param examId
+     * @param courseCode
+     * @param collegeId
+     * @param teacherId
+     * @return
+     */
     DimensionAnalyzeResult surveyTeacherQuestionView(Long schoolId, SemesterEnum semester, Long examId, String courseCode, Long collegeId, Long teacherId);
 
     /**
@@ -108,13 +105,14 @@ public interface TAExamCourseService extends IService<TAExamCourse> {
      * @param teacherId
      * @return
      */
-    Object surveyTeacherQuestionAnswerView(Long schoolId, SemesterEnum semester, Long examId, String courseCode, Long collegeId, Long teacherId);
+    QuestionInfoResult surveyTeacherQuestionAnswerView(Long schoolId, SemesterEnum semester, Long examId, String courseCode, Long collegeId, Long teacherId);
 
     /**
      * 赋分试算
-     * @param examId 考试id
+     *
+     * @param examId     考试id
      * @param courseCode 课程编号
      * @return 快速试算结果
      */
-    TrialCalculationResult trialCalculate(Long examId,String courseCode);
+    TrialCalculationResult trialCalculate(Long examId, String courseCode);
 }

+ 17 - 40
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/ReportCommonServiceImpl.java

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.google.gson.Gson;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.report.business.bean.result.*;
-import com.qmth.teachcloud.report.business.entity.TBCommonLevelConfig;
 import com.qmth.teachcloud.report.business.entity.TBDimension;
 import com.qmth.teachcloud.report.business.entity.TBPaper;
 import com.qmth.teachcloud.report.business.enums.GradeScopeEnum;
@@ -44,16 +43,16 @@ public class ReportCommonServiceImpl implements ReportCommonService {
     TBDimensionService tbDimensionService;
 
     @Resource
-    TBCommonLevelConfigService tbCommonLevelConfigService;
+    TAExamCourseCollegeTeacherService taExamCourseCollegeTeacherService;
 
     @Resource
-    TBAnswerService tbAnswerService;
+    TAExamCourseDifficultService taExamCourseDifficultService;
 
     @Resource
-    TAExamCourseCollegeTeacherService taExamCourseCollegeTeacherService;
+    TAExamCourseTeacherDifficultService taExamCourseTeacherDifficultService;
 
     @Resource
-    TAExamCourseDifficultService taExamCourseDifficultService;
+    TBPaperStructService tbPaperStructService;
 
     /**
      * 学院学科报表查询科目信息
@@ -342,45 +341,22 @@ public class ReportCommonServiceImpl implements ReportCommonService {
      * @param examId
      * @param courseCode
      * @param collegeId
-     * @param questionDatasource
+     * @param teacherId
      * @return
      */
     @Override
-    public QuestionInfoResult findSituationOfQuestions(Long examId, String courseCode, Long collegeId, List<TBPaperStructResult> questionDatasource) {
-        //查找难易度
-        QueryWrapper<TBCommonLevelConfig> tbCommonLevelConfigQueryWrapper = new QueryWrapper<>();
-        tbCommonLevelConfigQueryWrapper.lambda().eq(TBCommonLevelConfig::getExamId, examId)
-                .eq(TBCommonLevelConfig::getCourseCode, courseCode)
-                .eq(TBCommonLevelConfig::getLevelType, "难度等级");
-        List<TBCommonLevelConfig> configLevelDatasource = tbCommonLevelConfigService.list(tbCommonLevelConfigQueryWrapper);
+    public QuestionInfoResult findSituationOfQuestions(Long examId, String courseCode, Long collegeId, Long teacherId) {
         //查找答题记录
-        List<TBAnswerResult> answerDetailDatasource = tbAnswerService.findValidAnswerDetail(examId, courseCode);
-        Set<String> paperTypeList = questionDatasource.stream().map(e -> e.getPaperType()).collect(Collectors.toSet());
+        List<CellResult> answerDetailDatasource = null;
+        if (Objects.isNull(teacherId) || Objects.equals(teacherId, "")) {
+            answerDetailDatasource = taExamCourseDifficultService.findValidAnswerDetail(examId, courseCode, collegeId);
+        } else {
+            answerDetailDatasource = taExamCourseTeacherDifficultService.findValidAnswerDetail(examId, courseCode, teacherId);
+        }
+        Set<String> paperTypeList = answerDetailDatasource.stream().map(e -> e.getPaperType()).collect(Collectors.toSet());
         List<PaperTypeResult> questionInfoList = new ArrayList<>();
         for (String paperType : paperTypeList) {
-            List<CellResult> cellList = new ArrayList<>();
-            for (TBCommonLevelConfig tbCommonLevelConfig : configLevelDatasource) {
-                String interpret = tbCommonLevelConfig.getInterpret();
-                String scope = tbCommonLevelConfig.getScope();
-
-                Integer count = questionDatasource.parallelStream()
-                        .filter(e -> paperType.equals(e.getPaperType()) && interpret.equals(e.getDifficult()))
-                        .collect(Collectors.toList()).size(); // 题目信息
-                List<TBAnswerResult> answerDetailForSch = answerDetailDatasource.parallelStream()
-                        .filter(e -> paperType.equals(e.getPaperType()) && interpret.equals(e.getDifficult()))
-                        .collect(Collectors.toList());
-                double colAvgScoreRate = answerDetailForSch.parallelStream()
-                        .filter(e -> collegeId.longValue() == e.getCollegeId()).collect(Collectors.toList())
-                        .parallelStream().collect(Collectors.averagingDouble(s -> s.getScoreRate()));
-                double schAvgScoreRate = answerDetailForSch.parallelStream()
-                        .collect(Collectors.averagingDouble(e -> e.getScoreRate()));
-
-                // 得分率保留2位小数处理
-                colAvgScoreRate = MathUtil.formatDouble2(colAvgScoreRate * 100);
-                schAvgScoreRate = MathUtil.formatDouble2(schAvgScoreRate * 100);
-                cellList.add(new CellResult(interpret, scope, colAvgScoreRate, schAvgScoreRate, count));
-            }
-            questionInfoList.add(new PaperTypeResult(paperType, cellList));
+            questionInfoList.add(new PaperTypeResult(paperType, answerDetailDatasource.stream().filter(e -> Objects.equals(paperType, e.getPaperType())).collect(Collectors.toList())));
         }
         return new QuestionInfoResult(questionInfoList);
     }
@@ -409,11 +385,12 @@ public class ReportCommonServiceImpl implements ReportCommonService {
      * @param examId
      * @param courseCode
      * @param collegeId
-     * @param questionDatasource
      * @return
      */
     @Override
-    public QuestionListResult findQuestionInfo(Long examId, String courseCode, Long collegeId, List<TBPaperStructResult> questionDatasource) {
+    public QuestionListResult findQuestionInfo(Long examId, String courseCode, Long collegeId) {
+        //查找试卷结构
+        List<TBPaperStructResult> questionDatasource = tbPaperStructService.findQuestionInfo(examId, courseCode);
         //查找维度
         QueryWrapper<TBDimension> tbDimensionQueryWrapper = new QueryWrapper<>();
         tbDimensionQueryWrapper.lambda().eq(TBDimension::getExamId, examId)

+ 9 - 30
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TAExamCourseServiceImpl.java

@@ -6,25 +6,23 @@ 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.enums.ExceptionResultEnum;
-import com.qmth.teachcloud.common.service.BasicCourseService;
 import com.qmth.teachcloud.common.util.ServletUtil;
-import com.qmth.teachcloud.report.business.bean.dto.query.BasicExamRecordDto;
 import com.qmth.teachcloud.report.business.bean.result.*;
 import com.qmth.teachcloud.report.business.entity.TAExamCourse;
 import com.qmth.teachcloud.report.business.entity.TAExamCourseRecord;
-import com.qmth.teachcloud.report.business.entity.TBPaper;
 import com.qmth.teachcloud.report.business.enums.PublishStatusEnum;
 import com.qmth.teachcloud.report.business.enums.SemesterEnum;
 import com.qmth.teachcloud.report.business.mapper.TAExamCourseMapper;
 import com.qmth.teachcloud.report.business.mapper.TAExamCourseRecordMapper;
-import com.qmth.teachcloud.report.business.service.*;
+import com.qmth.teachcloud.report.business.service.ReportCommonService;
+import com.qmth.teachcloud.report.business.service.TAExamCourseService;
+import com.qmth.teachcloud.report.business.service.TBPaperStructService;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.*;
-import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -49,18 +47,6 @@ public class TAExamCourseServiceImpl extends ServiceImpl<TAExamCourseMapper, TAE
     @Resource
     ReportCommonService reportCommonService;
 
-    @Resource
-    TBExamRecordService tbExamRecordService;
-
-    @Resource
-    TBExamCourseService tbExamCourseService;
-
-    @Resource
-    TBExamService tbExamService;
-
-    @Resource
-    BasicCourseService basicCourseService;
-
     /**
      * 开课课程考试总览列表接口
      *
@@ -154,14 +140,12 @@ public class TAExamCourseServiceImpl extends ServiceImpl<TAExamCourseMapper, TAE
         CollegeAndSchoolGradeDistributionResult collegeAndSchoolGradeDistributionResult = reportCommonService.findCourseDistribution(examId, courseCode, sysUser.getOrgId());
         //学院学科报表维度查询
         DimensionAnalyzeResult dimensionAnalyzeResult = reportCommonService.findDimensionInfo(examId, courseCode, sysUser.getOrgId(), null);
-        //查找试卷结构
-        List<TBPaperStructResult> questionDatasource = tbPaperStructService.findQuestionInfo(examId, courseCode);
         //查找题目相关
-        QuestionInfoResult questionInfoResult = reportCommonService.findSituationOfQuestions(examId, courseCode, sysUser.getOrgId(), questionDatasource);
+        QuestionInfoResult questionInfoResult = reportCommonService.findSituationOfQuestions(examId, courseCode, sysUser.getOrgId(), null);
         //查找老师得分
         TeacherInfoListResult teacherInfoListResult = reportCommonService.findTeacherInfo(examId, courseCode, sysUser.getOrgId());
         //查找题目信息
-        QuestionListResult questionListResult = reportCommonService.findQuestionInfo(examId, courseCode, sysUser.getOrgId(), questionDatasource);
+        QuestionListResult questionListResult = reportCommonService.findQuestionInfo(examId, courseCode, sysUser.getOrgId());
 
         return new CollegeAndCourseResult(courseInfoResult, collegeAndSchoolGradeDistributionResult, dimensionAnalyzeResult,
                 questionInfoResult, teacherInfoListResult, questionListResult);
@@ -200,10 +184,8 @@ public class TAExamCourseServiceImpl extends ServiceImpl<TAExamCourseMapper, TAE
 
         //学院学科报表科目描述
         List<SurveyTeacherGradeDistributionResult> surveyTeacherGradeDistributionResultList = reportCommonService.surveyTeacherDistribution(examId, courseCode, sysUser.getOrgId());
-        //查找试卷结构
-        List<TBPaperStructResult> questionDatasource = tbPaperStructService.findQuestionInfo(examId, courseCode);
         //查找题目信息
-        QuestionListResult questionListResult = reportCommonService.findQuestionInfo(examId, courseCode, sysUser.getOrgId(), questionDatasource);
+        QuestionListResult questionListResult = reportCommonService.findQuestionInfo(examId, courseCode, sysUser.getOrgId());
         return new SurveyTeacherViewResult(surveyTeacherGradeDistributionResultList, questionListResult, surveyTeacherExamCourseResult);
     }
 
@@ -251,12 +233,9 @@ public class TAExamCourseServiceImpl extends ServiceImpl<TAExamCourseMapper, TAE
      * @return
      */
     @Override
-    public Object surveyTeacherQuestionAnswerView(Long schoolId, SemesterEnum semester, Long examId, String courseCode, Long collegeId, Long teacherId) {
-        //查找试卷结构
-        List<TBPaperStructResult> questionDatasource = tbPaperStructService.findQuestionInfo(examId, courseCode);
-        //开课课程考试总览-按学院/教师查询
-        QuestionInfoResult questionInfoResult = reportCommonService.findSituationOfQuestions(examId, courseCode, collegeId, questionDatasource);
-        return questionInfoResult;
+    @Cacheable(value = SystemConstant.TEACHER_ANSWER_VIEW_REPORT, key = "#schoolId + '-' + #semester + '-' + #examId + '-' + #courseCode + '-' + #collegeId + '-' + #teacherId")
+    public QuestionInfoResult surveyTeacherQuestionAnswerView(Long schoolId, SemesterEnum semester, Long examId, String courseCode, Long collegeId, Long teacherId) {
+        return reportCommonService.findSituationOfQuestions(examId, courseCode, collegeId, teacherId);
     }
 
     @Override

+ 2 - 4
teachcloud-report-business/src/main/resources/mapper/TAExamCourseDifficultMapper.xml

@@ -7,11 +7,9 @@
             tik.paper_type AS paperType,
             tik.`scope`,
             tik.count,
-            tik.sch_avg_score_rate as schAvgScoreRate,
-            tik.col_avg_score_rate as colAvgScoreRate
+            round(tik.sch_avg_score_rate * 100,2) as schAvgScoreRate,
+            round(tik.col_avg_score_rate * 100,2) as colAvgScoreRate
         from t_a_exam_course_difficult tik
-        JOIN t_b_paper_struct tbps on
-            tbps.id = tik.paper_id
        <where>
            <if test="collegeId != null and collegeId != ''">
                and tik.college_id = #{collegeId}

+ 5 - 7
teachcloud-report-business/src/main/resources/mapper/TAExamCourseTeacherDifficultMapper.xml

@@ -4,14 +4,12 @@
 
     <select id="findValidAnswerDetail" resultType="com.qmth.teachcloud.report.business.bean.result.CellResult">
         SELECT
-        tik.paper_type AS paperType,
-        tik.`scope`,
-        tik.count,
-        tik.sch_avg_score_rate as schAvgScoreRate,
-        tik.tea_avg_score_rate as teaAvgScoreRate
+            tik.paper_type AS paperType,
+            tik.`scope`,
+            tik.count,
+            round(tik.sch_avg_score_rate * 100,2) as schAvgScoreRate,
+            round(tik.tea_avg_score_rate * 100,2) as teaAvgScoreRate
         from t_a_exam_course_teacher_difficult tik
-        JOIN t_b_paper_struct tbps on
-        tbps.id = tik.paper_id
         <where>
             <if test="teacherId != null and teacherId != ''">
                 and tik.teacher_id = #{teacherId}