wangliang il y a 4 ans
Parent
commit
5f9808b160

+ 98 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/CollegeAndCourseResult.java

@@ -0,0 +1,98 @@
+package com.qmth.teachcloud.report.business.bean.result;
+
+import com.sun.source.doctree.SerialDataTree;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: 学院学科result
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/6/11
+ */
+public class CollegeAndCourseResult implements Serializable {
+
+    @ApiModelProperty(value = "courseInfo")
+    private CourseInfoResult courseInfo;
+
+    @ApiModelProperty(value = "gradeDistributionInfo")
+    private CollegeAndSchoolGradeDistributionResult gradeDistributionInfo;
+
+    @ApiModelProperty(value = "dimensionInfo")
+    private DimensionAnalyzeResult dimensionInfo;
+
+    @ApiModelProperty(value = "answerInfo")
+    private QuestionInfoResult answerInfo;
+
+    @ApiModelProperty(value = "teacherInfo")
+    private TeacherInfoListResult teacherInfo;
+
+    @ApiModelProperty(value = "questionInfo")
+    private QuestionListResult questionInfo;
+
+    public CollegeAndCourseResult() {
+
+    }
+
+    public CollegeAndCourseResult(CourseInfoResult courseInfo, CollegeAndSchoolGradeDistributionResult gradeDistributionInfo,
+                                  DimensionAnalyzeResult dimensionInfo, QuestionInfoResult answerInfo, TeacherInfoListResult
+                                          teacherInfo, QuestionListResult questionInfo) {
+        this.courseInfo = courseInfo;
+        this.gradeDistributionInfo = gradeDistributionInfo;
+        this.dimensionInfo = dimensionInfo;
+        this.answerInfo = answerInfo;
+        this.teacherInfo = teacherInfo;
+        this.questionInfo = questionInfo;
+    }
+
+    public CourseInfoResult getCourseInfo() {
+        return courseInfo;
+    }
+
+    public void setCourseInfo(CourseInfoResult courseInfo) {
+        this.courseInfo = courseInfo;
+    }
+
+    public CollegeAndSchoolGradeDistributionResult getGradeDistributionInfo() {
+        return gradeDistributionInfo;
+    }
+
+    public void setGradeDistributionInfo(CollegeAndSchoolGradeDistributionResult gradeDistributionInfo) {
+        this.gradeDistributionInfo = gradeDistributionInfo;
+    }
+
+    public DimensionAnalyzeResult getDimensionInfo() {
+        return dimensionInfo;
+    }
+
+    public void setDimensionInfo(DimensionAnalyzeResult dimensionInfo) {
+        this.dimensionInfo = dimensionInfo;
+    }
+
+    public QuestionInfoResult getAnswerInfo() {
+        return answerInfo;
+    }
+
+    public void setAnswerInfo(QuestionInfoResult answerInfo) {
+        this.answerInfo = answerInfo;
+    }
+
+    public TeacherInfoListResult getTeacherInfo() {
+        return teacherInfo;
+    }
+
+    public void setTeacherInfo(TeacherInfoListResult teacherInfo) {
+        this.teacherInfo = teacherInfo;
+    }
+
+    public QuestionListResult getQuestionInfo() {
+        return questionInfo;
+    }
+
+    public void setQuestionInfo(QuestionListResult questionInfo) {
+        this.questionInfo = questionInfo;
+    }
+}

+ 35 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/QuestionListResult.java

@@ -0,0 +1,35 @@
+package com.qmth.teachcloud.report.business.bean.result;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: QuestionListResult
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/6/11
+ */
+public class QuestionListResult implements Serializable {
+
+    @ApiModelProperty(value = "questionList")
+    private List<QuestionResult> questionList;
+
+    public QuestionListResult() {
+
+    }
+
+    public QuestionListResult(List<QuestionResult> questionList) {
+        this.questionList = questionList;
+    }
+
+    public List<QuestionResult> getQuestionList() {
+        return questionList;
+    }
+
+    public void setQuestionList(List<QuestionResult> questionList) {
+        this.questionList = questionList;
+    }
+}

+ 59 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/QuestionResult.java

@@ -0,0 +1,59 @@
+package com.qmth.teachcloud.report.business.bean.result;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: QuestionResult
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/6/11
+ */
+public class QuestionResult implements Serializable {
+
+    @ApiModelProperty(value = "试卷类型")
+    private String paperType;
+
+    @ApiModelProperty(value = "cellList")
+    private List<TBPaperStructResult> cellList;
+
+    @ApiModelProperty(value = "dimensionList")
+    private List<DimensionInfoResult> dimensionList;
+
+    public QuestionResult() {
+
+    }
+
+    public QuestionResult(String paperType, List<TBPaperStructResult> cellList, List<DimensionInfoResult> dimensionList) {
+        this.paperType = paperType;
+        this.cellList = cellList;
+        this.dimensionList = dimensionList;
+    }
+
+    public String getPaperType() {
+        return paperType;
+    }
+
+    public void setPaperType(String paperType) {
+        this.paperType = paperType;
+    }
+
+    public List<TBPaperStructResult> getCellList() {
+        return cellList;
+    }
+
+    public void setCellList(List<TBPaperStructResult> cellList) {
+        this.cellList = cellList;
+    }
+
+    public List<DimensionInfoResult> getDimensionList() {
+        return dimensionList;
+    }
+
+    public void setDimensionList(List<DimensionInfoResult> dimensionList) {
+        this.dimensionList = dimensionList;
+    }
+}

+ 35 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/TeacherInfoListResult.java

@@ -0,0 +1,35 @@
+package com.qmth.teachcloud.report.business.bean.result;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: TeacherInfoListResult
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/6/11
+ */
+public class TeacherInfoListResult implements Serializable {
+
+    @ApiModelProperty(value = "简介")
+    List<TAExamCourseTeacherResult> teacherInfoList;
+
+    public TeacherInfoListResult() {
+
+    }
+
+    public TeacherInfoListResult(List<TAExamCourseTeacherResult> teacherInfoList) {
+        this.teacherInfoList = teacherInfoList;
+    }
+
+    public List<TAExamCourseTeacherResult> getTeacherInfoList() {
+        return teacherInfoList;
+    }
+
+    public void setTeacherInfoList(List<TAExamCourseTeacherResult> teacherInfoList) {
+        this.teacherInfoList = teacherInfoList;
+    }
+}

+ 17 - 6
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/ReportCommonService.java

@@ -1,9 +1,8 @@
 package com.qmth.teachcloud.report.business.service;
 
-import com.qmth.teachcloud.report.business.bean.result.CollegeAndSchoolGradeDistributionResult;
-import com.qmth.teachcloud.report.business.bean.result.CourseInfoResult;
-import com.qmth.teachcloud.report.business.bean.result.DimensionAnalyzeResult;
-import com.qmth.teachcloud.report.business.bean.result.QuestionInfoResult;
+import com.qmth.teachcloud.report.business.bean.result.*;
+
+import java.util.List;
 
 /**
  * @Description: 教研公共服务
@@ -50,9 +49,10 @@ public interface ReportCommonService {
      * @param examId
      * @param courseCode
      * @param collegeId
+     * @param questionDatasource
      * @return
      */
-    QuestionInfoResult findSituationOfQuestions(Long examId, String courseCode, Long collegeId);
+    QuestionInfoResult findSituationOfQuestions(Long examId, String courseCode, Long collegeId, List<TBPaperStructResult> questionDatasource);
 
     /**
      * 查找老师信息
@@ -62,5 +62,16 @@ public interface ReportCommonService {
      * @param collegeId
      * @return
      */
-    Object findTeacherInfo(Long examId, String courseCode, Long collegeId);
+    TeacherInfoListResult findTeacherInfo(Long examId, String courseCode, Long collegeId);
+
+    /**
+     * 查找题目信息
+     *
+     * @param examId
+     * @param courseCode
+     * @param collegeId
+     * @param questionDatasource
+     * @return
+     */
+    QuestionListResult findQuestionInfo(Long examId, String courseCode, Long collegeId, List<TBPaperStructResult> questionDatasource);
 }

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

@@ -2,12 +2,12 @@ package com.qmth.teachcloud.report.business.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.teachcloud.report.business.bean.result.CollegeAndCourseResult;
 import com.qmth.teachcloud.report.business.bean.result.TAExamCourseResult;
 import com.qmth.teachcloud.report.business.entity.TAExamCourse;
 import com.qmth.teachcloud.report.business.enums.PublishStatusEnum;
 import com.qmth.teachcloud.report.business.enums.SemesterEnum;
 
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -57,5 +57,5 @@ public interface TAExamCourseService extends IService<TAExamCourse> {
      * @param schoolId
      * @return
      */
-    List<Object> surveyInspectAnalyseView(Long examId, SemesterEnum semester, String courseCode, Long schoolId);
+    CollegeAndCourseResult surveyInspectAnalyseView(Long examId, SemesterEnum semester, String courseCode, Long schoolId);
 }

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

@@ -5,6 +5,7 @@ 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;
 import com.qmth.teachcloud.report.business.enums.PiecewiseScopeEnum;
@@ -16,10 +17,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -54,6 +52,9 @@ public class ReportCommonServiceImpl implements ReportCommonService {
     @Resource
     TBAnswerService tbAnswerService;
 
+    @Resource
+    TAExamCourseCollegeTeacherService taExamCourseCollegeTeacherService;
+
     /**
      * 学院学科报表查询科目信息
      *
@@ -255,18 +256,17 @@ public class ReportCommonServiceImpl implements ReportCommonService {
      * @param examId
      * @param courseCode
      * @param collegeId
+     * @param questionDatasource
      * @return
      */
     @Override
-    public QuestionInfoResult findSituationOfQuestions(Long examId, String courseCode, Long collegeId) {
+    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);
-        //查找试卷结构
-        List<TBPaperStructResult> questionDatasource = tbPaperStructService.findQuestionInfo(examId, courseCode);
         //查找答题记录
         List<TBAnswerResult> answerDetailDatasource = tbAnswerService.findValidAnswerDetail(examId, courseCode);
         Set<String> paperTypeList = questionDatasource.stream().map(e -> e.getPaperType()).collect(Collectors.toSet());
@@ -308,7 +308,73 @@ public class ReportCommonServiceImpl implements ReportCommonService {
      * @return
      */
     @Override
-    public Object findTeacherInfo(Long examId, String courseCode, Long collegeId) {
-        return null;
+    public TeacherInfoListResult findTeacherInfo(Long examId, String courseCode, Long collegeId) {
+        //查找老师得分
+        List<TAExamCourseTeacherResult> taExamCourseTeacherResultList = taExamCourseCollegeTeacherService.findTeacherInfo(examId, courseCode, collegeId);
+        if (taExamCourseTeacherResultList.size() < 1) {
+            throw ExceptionResultEnum.DATA_ERROR.exception();
+        }
+        return new TeacherInfoListResult(taExamCourseTeacherResultList);
+    }
+
+    /**
+     * 查找题目信息
+     *
+     * @param examId
+     * @param courseCode
+     * @param collegeId
+     * @param questionDatasource
+     * @return
+     */
+    @Override
+    public QuestionListResult findQuestionInfo(Long examId, String courseCode, Long collegeId, List<TBPaperStructResult> questionDatasource) {
+        //查找维度
+        QueryWrapper<TBDimension> tbDimensionQueryWrapper = new QueryWrapper<>();
+        tbDimensionQueryWrapper.lambda().eq(TBDimension::getExamId, examId)
+                .eq(TBDimension::getCourseCode, courseCode);
+        List<TBDimension> dimensionDataSource = tbDimensionService.list(tbDimensionQueryWrapper);
+
+        Set<String> paperTypeSet = questionDatasource.stream().map(e -> e.getPaperType()).collect(Collectors.toSet());
+        List<QuestionResult> questionList = new ArrayList<>();
+        for (String paperType : paperTypeSet) {
+            List<TBPaperStructResult> cellList = questionDatasource.stream()
+                    .filter(e -> paperType.equals(e.getPaperType())).collect(Collectors.toList());
+
+            for (TBPaperStructResult cell : cellList) {
+                cell.setPaperType(null);
+            }
+
+            Set<String> knowledgeDimensionSet = new HashSet<>();
+            for (TBPaperStructResult cell : cellList) {
+                String knowledgeDimension = cell.getKnowledgeDimension();
+                String[] arr = knowledgeDimension.split(",");
+                knowledgeDimensionSet.addAll(Arrays.asList(arr));
+            }
+            List<String> knowledgeDimensionSort = MathUtil.sortDimension(new ArrayList<>(knowledgeDimensionSet)); // 经过特殊排序的知识点集合
+
+            List<DimensionInfoResult> dimensionList = new ArrayList<>();
+            for (String dimensionCode : knowledgeDimensionSort) {
+                String dimensionName = "";
+                List<String> nameTwoList = dimensionDataSource.stream()
+                        .filter(e -> dimensionCode.equals(e.getCodeSecond()))
+                        .map(e -> e.getNameSecond()).collect(Collectors.toList());
+                if (nameTwoList.size() < 1) {
+                    List<String> tmpList = dimensionDataSource.stream()
+                            .filter(e -> dimensionCode.equals(e.getCodePrimary()))
+                            .map(e -> e.getNamePrimary()).collect(Collectors.toList());
+                    if (tmpList.size() == 0) {
+                        continue;
+                    }
+                    dimensionName = tmpList.get(0);
+                } else {
+                    dimensionName = nameTwoList.get(0);
+                }
+
+                dimensionList.add(new DimensionInfoResult(dimensionCode, dimensionName));
+            }
+            questionList.add(new QuestionResult(paperType, cellList, dimensionList));
+
+        }
+        return new QuestionListResult(questionList);
     }
 }

+ 10 - 40
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TAExamCourseServiceImpl.java

@@ -1,6 +1,5 @@
 package com.qmth.teachcloud.report.business.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.teachcloud.common.entity.SysUser;
@@ -9,8 +8,6 @@ import com.qmth.teachcloud.common.util.ServletUtil;
 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.TBCommonLevelConfig;
-import com.qmth.teachcloud.report.business.entity.TBDimension;
 import com.qmth.teachcloud.report.business.enums.PublishStatusEnum;
 import com.qmth.teachcloud.report.business.enums.SemesterEnum;
 import com.qmth.teachcloud.report.business.mapper.TAExamCourseMapper;
@@ -147,54 +144,27 @@ public class TAExamCourseServiceImpl extends ServiceImpl<TAExamCourseMapper, TAE
      * @return
      */
     @Override
-    public List<Object> surveyInspectAnalyseView(Long examId, SemesterEnum semester, String courseCode, Long schoolId) {
+    public CollegeAndCourseResult surveyInspectAnalyseView(Long examId, SemesterEnum semester, String courseCode, Long schoolId) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         if (Objects.isNull(sysUser)) {
             throw ExceptionResultEnum.NOT_LOGIN.exception();
         }
-//        //查找试卷
-//        QueryWrapper<TBPaper> tbPaperQueryWrapper = new QueryWrapper<>();
-//        tbPaperQueryWrapper.lambda().eq(TBPaper::getExamId, examId)
-//                .eq(TBPaper::getCourseCode, courseCode);
-//        List<TBPaper> tbPaperList = tbPaperService.list(tbPaperQueryWrapper);
-//
-//        //查找学院科目维度
-//        List<TAExamCourseCollegeInspectResult> taExamCourseCollegeInspectResultList = taExamCourseCollegeInspectService.findCourseDescriptiveStatisticsForCollege(examId, courseCode);
-//        //查找学校科目维度
-//        List<TAExamCourseCollegeInspectResult> taExamCourseSchoolInspectResultList = taExamCourseCollegeInspectService.findCourseDescriptiveStatisticsForSchool(examId, courseCode);
-
         //学院学科报表查询科目信息
         CourseInfoResult courseInfoResult = reportCommonService.findCourseInfo(examId, courseCode, sysUser.getOrgId());
         //学院学科报表科目描述
         CollegeAndSchoolGradeDistributionResult collegeAndSchoolGradeDistributionResult = reportCommonService.findCourseDistribution(examId, courseCode, sysUser.getOrgId());
         //学院学科报表维度查询
         DimensionAnalyzeResult dimensionAnalyzeResult = reportCommonService.findDimensionInfo(examId, courseCode, sysUser.getOrgId());
-//        //查找维度
-//        List<CourseDimensionResult> courseDimensionResultList = tbDimensionService.findDimensionInfo(examId, courseCode, sysUser.getOrgId());
-
-//        //查找难易度
-//        QueryWrapper<TBCommonLevelConfig> tbCommonLevelConfigQueryWrapper = new QueryWrapper<>();
-//        tbCommonLevelConfigQueryWrapper.lambda().eq(TBCommonLevelConfig::getExamId, examId)
-//                .eq(TBCommonLevelConfig::getCourseCode, courseCode)
-//                .eq(TBCommonLevelConfig::getLevelType, "难度等级");
-//        List<TBCommonLevelConfig> tbCommonLevelConfigList = tbCommonLevelConfigService.list(tbCommonLevelConfigQueryWrapper);
-//
-//        //查找试卷结构
-//        List<TBPaperStructResult> tbPaperStructList = tbPaperStructService.findQuestionInfo(examId, courseCode);
-//
-//        //查找答题记录
-//        List<TBAnswerResult> tbAnswerResultList = tbAnswerService.findValidAnswerDetail(examId, courseCode);
+        //查找试卷结构
+        List<TBPaperStructResult> questionDatasource = tbPaperStructService.findQuestionInfo(examId, courseCode);
+        //查找题目相关
+        QuestionInfoResult questionInfoResult = reportCommonService.findSituationOfQuestions(examId, courseCode, sysUser.getOrgId(), questionDatasource);
+        //查找老师得分
+        TeacherInfoListResult teacherInfoListResult = reportCommonService.findTeacherInfo(examId, courseCode, sysUser.getOrgId());
         //查找题目信息
-        QuestionInfoResult questionInfoResult = reportCommonService.findSituationOfQuestions(examId, courseCode, sysUser.getOrgId());
-
-//        查找老师得分
-//        List<TAExamCourseTeacherResult> taExamCourseTeacherResultList = taExamCourseCollegeTeacherService.findTeacherInfo(examId, courseCode, sysUser.getOrgId());
+        QuestionListResult questionListResult = reportCommonService.findQuestionInfo(examId, courseCode, sysUser.getOrgId(), questionDatasource);
 
-        //查找维度
-        QueryWrapper<TBDimension> tbDimensionQueryWrapper = new QueryWrapper<>();
-        tbDimensionQueryWrapper.lambda().eq(TBDimension::getExamId, examId)
-                .eq(TBDimension::getCourseCode, courseCode);
-        List<TBDimension> tbDimensionList = tbDimensionService.list(tbDimensionQueryWrapper);
-        return null;
+        return new CollegeAndCourseResult(courseInfoResult, collegeAndSchoolGradeDistributionResult, dimensionAnalyzeResult,
+                questionInfoResult, teacherInfoListResult, questionListResult);
     }
 }

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

@@ -44,7 +44,7 @@ public class CourseController {
                                            @ApiParam(value = "科目编码", required = true) @RequestParam String courseCode,
                                            @ApiParam(value = "学校id", required = true) @RequestParam String schoolId) {
 
-        return ResultUtil.ok();
+        return ResultUtil.ok(taExamCourseService.surveyInspectAnalyseView(SystemConstant.convertIdToLong(examId), semester, courseCode, SystemConstant.convertIdToLong(schoolId)));
     }
 
     @ApiOperation(value = "赋分管理列表接口")