소스 검색

日常更新

wangliang 4 년 전
부모
커밋
0e267b0157
15개의 변경된 파일334개의 추가작업 그리고 91개의 파일을 삭제
  1. 4 3
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/SurveyTeacherDistributionResult.java
  2. 75 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/SurveyTeacherExamCourseResult.java
  3. 133 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/SurveyTeacherGradeDistributionResult.java
  4. 10 1
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/mapper/TAExamCourseRecordMapper.java
  5. 2 2
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/mapper/TBExamCourseMapper.java
  6. 1 1
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/ReportCommonService.java
  7. 10 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/TAExamCourseRecordService.java
  8. 2 2
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/TBExamCourseService.java
  9. 47 74
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/ReportCommonServiceImpl.java
  10. 13 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TAExamCourseRecordServiceImpl.java
  11. 9 4
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TAExamCourseServiceImpl.java
  12. 2 2
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TBExamCourseServiceImpl.java
  13. 0 1
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/utils/MathUtil.java
  14. 25 0
      teachcloud-report-business/src/main/resources/mapper/TAExamCourseRecordMapper.xml
  15. 1 1
      teachcloud-report-business/src/main/resources/mapper/TBExamCourseMapper.xml

+ 4 - 3
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/TBExamCourseResult.java → teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/SurveyTeacherDistributionResult.java

@@ -1,17 +1,18 @@
 package com.qmth.teachcloud.report.business.bean.result;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
-import com.qmth.teachcloud.report.business.entity.TBExamCourse;
+import com.qmth.teachcloud.report.business.entity.TAExamCourseRecord;
 
 import java.io.Serializable;
 
 /**
- * @Description: TBExamCourseResult
+ * @Description: SurveyTeacherDistributionResult
  * @Param:
  * @return:
  * @Author: wangliang
  * @Date: 2021/6/15
  */
 @JsonInclude(JsonInclude.Include.NON_NULL)
-public class TBExamCourseResult extends TBExamCourse implements Serializable {
+public class SurveyTeacherDistributionResult extends TAExamCourseRecord implements Serializable {
+
 }

+ 75 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/SurveyTeacherExamCourseResult.java

@@ -0,0 +1,75 @@
+package com.qmth.teachcloud.report.business.bean.result;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.qmth.teachcloud.report.business.entity.TAExamCourse;
+import com.qmth.teachcloud.report.business.entity.TBExamCourse;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @Description: SurveyTeacherExamCourseResult
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/6/15
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class SurveyTeacherExamCourseResult implements Serializable {
+
+    @ApiModelProperty(value = "总体平均分")
+    private BigDecimal avgScore;
+
+    @ApiModelProperty(value = "总体不及格率")
+    private BigDecimal notPassRate;
+
+    @ApiModelProperty(value = "应届平均分")
+    private BigDecimal currentAvgScore;
+
+    @ApiModelProperty(value = "应届不及格率")
+    private BigDecimal currentNotPassRate;
+
+    public SurveyTeacherExamCourseResult() {
+
+    }
+
+    public SurveyTeacherExamCourseResult(BigDecimal avgScore, BigDecimal notPassRate, BigDecimal currentAvgScore, BigDecimal currentNotPassRate) {
+        this.avgScore = avgScore;
+        this.notPassRate = notPassRate;
+        this.currentAvgScore = currentAvgScore;
+        this.currentNotPassRate = currentNotPassRate;
+    }
+
+    public BigDecimal getAvgScore() {
+        return avgScore;
+    }
+
+    public void setAvgScore(BigDecimal avgScore) {
+        this.avgScore = avgScore;
+    }
+
+    public BigDecimal getNotPassRate() {
+        return notPassRate;
+    }
+
+    public void setNotPassRate(BigDecimal notPassRate) {
+        this.notPassRate = notPassRate;
+    }
+
+    public BigDecimal getCurrentAvgScore() {
+        return currentAvgScore;
+    }
+
+    public void setCurrentAvgScore(BigDecimal currentAvgScore) {
+        this.currentAvgScore = currentAvgScore;
+    }
+
+    public BigDecimal getCurrentNotPassRate() {
+        return currentNotPassRate;
+    }
+
+    public void setCurrentNotPassRate(BigDecimal currentNotPassRate) {
+        this.currentNotPassRate = currentNotPassRate;
+    }
+}

+ 133 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/SurveyTeacherGradeDistributionResult.java

@@ -0,0 +1,133 @@
+package com.qmth.teachcloud.report.business.bean.result;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 百分位result
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/6/10
+ */
+public class SurveyTeacherGradeDistributionResult implements Serializable {
+
+    @ApiModelProperty(value = "总体赋分前人数")
+    private Double allCountBefore;
+
+    @ApiModelProperty(value = "总体赋分后人数")
+    private Double allCountAfter;
+
+    @ApiModelProperty(value = "总体赋分前比率")
+    private Double allCountRateBefore;
+
+    @ApiModelProperty(value = "总体赋分后比率")
+    private Double allCountRateAfter;
+
+    @ApiModelProperty(value = "应届赋分前人数")
+    private Double currentCountBefore;
+
+    @ApiModelProperty(value = "应届赋分后人数")
+    private Double currentCountAfter;
+
+    @ApiModelProperty(value = "应届赋分前比率")
+    private Double currentCountRateBefore;
+
+    @ApiModelProperty(value = "应届赋分后比率")
+    private Double currentCountRateAfter;
+
+    @ApiModelProperty(value = "描述")
+    private String describe;
+
+    public SurveyTeacherGradeDistributionResult() {
+
+    }
+
+    public SurveyTeacherGradeDistributionResult(Double allCountBefore, Double allCountAfter,
+                                                Double currentCountBefore, Double currentCountAfter,
+                                                Double allCountRateBefore, Double allCountRateAfter,
+                                                Double currentCountRateBefore, Double currentCountRateAfter, String describe) {
+        this.allCountBefore = allCountBefore;
+        this.allCountAfter = allCountAfter;
+        this.currentCountBefore = currentCountBefore;
+        this.currentCountAfter = currentCountAfter;
+        this.allCountRateBefore = allCountRateBefore;
+        this.allCountRateAfter = allCountRateAfter;
+        this.currentCountRateBefore = currentCountRateBefore;
+        this.currentCountRateAfter = currentCountRateAfter;
+        this.describe = describe;
+    }
+
+    public Double getAllCountBefore() {
+        return allCountBefore;
+    }
+
+    public void setAllCountBefore(Double allCountBefore) {
+        this.allCountBefore = allCountBefore;
+    }
+
+    public Double getAllCountAfter() {
+        return allCountAfter;
+    }
+
+    public void setAllCountAfter(Double allCountAfter) {
+        this.allCountAfter = allCountAfter;
+    }
+
+    public Double getAllCountRateBefore() {
+        return allCountRateBefore;
+    }
+
+    public void setAllCountRateBefore(Double allCountRateBefore) {
+        this.allCountRateBefore = allCountRateBefore;
+    }
+
+    public Double getAllCountRateAfter() {
+        return allCountRateAfter;
+    }
+
+    public void setAllCountRateAfter(Double allCountRateAfter) {
+        this.allCountRateAfter = allCountRateAfter;
+    }
+
+    public Double getCurrentCountBefore() {
+        return currentCountBefore;
+    }
+
+    public void setCurrentCountBefore(Double currentCountBefore) {
+        this.currentCountBefore = currentCountBefore;
+    }
+
+    public Double getCurrentCountAfter() {
+        return currentCountAfter;
+    }
+
+    public void setCurrentCountAfter(Double currentCountAfter) {
+        this.currentCountAfter = currentCountAfter;
+    }
+
+    public Double getCurrentCountRateBefore() {
+        return currentCountRateBefore;
+    }
+
+    public void setCurrentCountRateBefore(Double currentCountRateBefore) {
+        this.currentCountRateBefore = currentCountRateBefore;
+    }
+
+    public Double getCurrentCountRateAfter() {
+        return currentCountRateAfter;
+    }
+
+    public void setCurrentCountRateAfter(Double currentCountRateAfter) {
+        this.currentCountRateAfter = currentCountRateAfter;
+    }
+
+    public String getDescribe() {
+        return describe;
+    }
+
+    public void setDescribe(String describe) {
+        this.describe = describe;
+    }
+}

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

@@ -3,12 +3,12 @@ package com.qmth.teachcloud.report.business.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.qmth.teachcloud.report.business.bean.result.ExamRecordResult;
 import com.qmth.teachcloud.report.business.bean.result.ExamStudentResult;
+import com.qmth.teachcloud.report.business.bean.result.SurveyTeacherDistributionResult;
 import com.qmth.teachcloud.report.business.bean.result.SynthesisResult;
 import com.qmth.teachcloud.report.business.entity.TAExamCourseRecord;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * <p>
@@ -34,4 +34,13 @@ public interface TAExamCourseRecordMapper extends BaseMapper<TAExamCourseRecord>
      * @return
      */
     List<ExamRecordResult> findExamRecordByExamIdAndCourseCode(@Param("examId") Long examId, @Param("courseCode") String courseCode);
+
+    /**
+     * 开课学院分数段
+     *
+     * @param examId
+     * @param courseCode
+     * @return
+     */
+    List<SurveyTeacherDistributionResult> surveyTeacherDistribution(@Param("examId") Long examId, @Param("courseCode") String courseCode);
 }

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

@@ -1,7 +1,7 @@
 package com.qmth.teachcloud.report.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.qmth.teachcloud.report.business.bean.result.TBExamCourseResult;
+import com.qmth.teachcloud.report.business.bean.result.SurveyTeacherExamCourseResult;
 import com.qmth.teachcloud.report.business.entity.TBExamCourse;
 import org.apache.ibatis.annotations.Param;
 
@@ -25,6 +25,6 @@ public interface TBExamCourseMapper extends BaseMapper<TBExamCourse> {
      * @param inspect
      * @return
      */
-    List<TBExamCourseResult> findCourseList(@Param("schoolId") Long schoolId, @Param("examId") Long examId, @Param("inspect") boolean inspect);
+    List<SurveyTeacherExamCourseResult> findCourseList(@Param("schoolId") Long schoolId, @Param("examId") Long examId, @Param("inspect") boolean inspect);
 
 }

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

@@ -41,7 +41,7 @@ public interface ReportCommonService {
      * @param collegeId
      * @return
      */
-    Object surveyTeacherDistribution(Long examId, String courseCode, Long collegeId);
+    List<SurveyTeacherGradeDistributionResult> surveyTeacherDistribution(Long examId, String courseCode, Long collegeId);
 
     /**
      * 学院学科报表查询维度

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

@@ -2,6 +2,7 @@ package com.qmth.teachcloud.report.business.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.teachcloud.report.business.bean.result.ExamRecordResult;
+import com.qmth.teachcloud.report.business.bean.result.SurveyTeacherDistributionResult;
 import com.qmth.teachcloud.report.business.entity.TAExamCourseRecord;
 
 import java.util.List;
@@ -24,4 +25,13 @@ public interface TAExamCourseRecordService extends IService<TAExamCourseRecord>
      * @return
      */
     List<ExamRecordResult> findExamRecordByExamIdAndCourseCode(Long examId, String courseCode);
+
+    /**
+     * 开课学院分数段
+     *
+     * @param examId
+     * @param courseCode
+     * @return
+     */
+    List<SurveyTeacherDistributionResult> surveyTeacherDistribution(Long examId, String courseCode);
 }

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

@@ -1,7 +1,7 @@
 package com.qmth.teachcloud.report.business.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.qmth.teachcloud.report.business.bean.result.TBExamCourseResult;
+import com.qmth.teachcloud.report.business.bean.result.SurveyTeacherExamCourseResult;
 import com.qmth.teachcloud.report.business.entity.TBExamCourse;
 
 import java.util.List;
@@ -35,5 +35,5 @@ public interface TBExamCourseService extends IService<TBExamCourse> {
      * @param inspect
      * @return
      */
-    List<TBExamCourseResult> findCourseList(Long schoolId, Long examId, boolean inspect);
+    List<SurveyTeacherExamCourseResult> findCourseList(Long schoolId, Long examId, boolean inspect);
 }

+ 47 - 74
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/ReportCommonServiceImpl.java

@@ -215,24 +215,23 @@ public class ReportCommonServiceImpl implements ReportCommonService {
      * @return
      */
     @Override
-    public Object surveyTeacherDistribution(Long examId, String courseCode, Long collegeId) {
+    public List<SurveyTeacherGradeDistributionResult> surveyTeacherDistribution(Long examId, String courseCode, Long collegeId) {
         //TODO 待添加
-        List<ExamRecordResult> examPaperTikForSchool = taExamCourseRecordService.findExamRecordByExamIdAndCourseCode(examId, courseCode);
-        List<ExamRecordResult> examPaperTikForCollege = examPaperTikForSchool
-                .stream().filter(e -> collegeId.longValue() == e.getCollegeId().longValue()).collect(Collectors.toList());
-
-        double colTotalCount = examPaperTikForCollege.size(); // 学院总参考人数
-        double schTotalCount = examPaperTikForSchool.size(); // 全校总参考人数
-        if (schTotalCount < 1 || colTotalCount < 1) {
+        List<SurveyTeacherDistributionResult> surveyTeacherDistributionResultList = taExamCourseRecordService.surveyTeacherDistribution(examId, courseCode);
+        if (surveyTeacherDistributionResultList.size() < 1) {
             throw ExceptionResultEnum.DATA_ERROR.exception();
         }
+        //过滤应届
+        List<SurveyTeacherDistributionResult> currentDistributionResultList = surveyTeacherDistributionResultList.stream().filter(e -> e.getStudentCurrent() == true).collect(Collectors.toList());
+        double allTotalCount = surveyTeacherDistributionResultList.size(); // 总体人数
+        double currentTotalCount = currentDistributionResultList.size(); // 应届人数
 
         // 计算成绩分布图
-        List<GradeDistributionResult> gradeDistributionList = new ArrayList<>();
+        List<SurveyTeacherGradeDistributionResult> surveyTeacherGradeDistributionResultList = new ArrayList<>();
         for (GradeScopeEnum value : GradeScopeEnum.values()) {
             String describe = value.getDescribe();
-            double colCount = 0;
-            double schCount = 0;
+            double allCountBefore = 0, allCountAfter = 0, currentCountBefore = 0, currentCountAfter = 0,
+                    allCountRateBefore = 0, allCountRateAfter = 0, currentCountRateBefore = 0, currentCountRateAfter = 0;
 
             Map<String, Object> scopeMap = AnalyzeScopeUtil.analyzeScope(value.getScope());
             String minSign = String.valueOf(scopeMap.get("minSign"));
@@ -240,77 +239,51 @@ public class ReportCommonServiceImpl implements ReportCommonService {
             double minValue = Double.parseDouble(String.valueOf(scopeMap.get("minValue")));
             double maxValue = Double.parseDouble(String.valueOf(scopeMap.get("maxValue")));
             if ("(".equals(minSign) && ")".equals(maxSign)) {
-                colCount = (int) examPaperTikForCollege.stream()
+                allCountBefore = (int) surveyTeacherDistributionResultList.stream()//赋分前
+                        .filter(e -> minValue < e.getTotalScore().doubleValue() && maxValue > e.getTotalScore().doubleValue()).count();
+                allCountAfter = (int) surveyTeacherDistributionResultList.stream()
                         .filter(e -> minValue < e.getAssignedScore().doubleValue() && maxValue > e.getAssignedScore().doubleValue()).count();
-                schCount = (int) examPaperTikForSchool.stream()
+                currentCountBefore = (int) currentDistributionResultList.stream()//赋分前
+                        .filter(e -> minValue < e.getTotalScore().doubleValue() && maxValue > e.getTotalScore().doubleValue()).count();
+                currentCountAfter = (int) currentDistributionResultList.stream()
                         .filter(e -> minValue < e.getAssignedScore().doubleValue() && maxValue > e.getAssignedScore().doubleValue()).count();
-
-            } else if ("(".equals(minSign) && "]".equals(maxSign)) {
-                colCount = (int) examPaperTikForCollege.stream()
-                        .filter(e -> minValue < e.getAssignedScore().doubleValue() && maxValue >= e.getAssignedScore().doubleValue()).count();
-                schCount = (int) examPaperTikForSchool.stream()
-                        .filter(e -> minValue < e.getAssignedScore().doubleValue() && maxValue >= e.getAssignedScore().doubleValue()).count();
-
-            } else if ("[".equals(minSign) && ")".equals(maxSign)) {
-                colCount = (int) examPaperTikForCollege.stream()
-                        .filter(e -> minValue <= e.getAssignedScore().doubleValue() && maxValue > e.getAssignedScore().doubleValue()).count();
-                schCount = (int) examPaperTikForSchool.stream()
-                        .filter(e -> minValue <= e.getAssignedScore().doubleValue() && maxValue > e.getAssignedScore().doubleValue()).count();
-
-            } else if ("[".equals(minSign) && "]".equals(maxSign)) {
-                colCount = (int) examPaperTikForCollege.stream()
-                        .filter(e -> minValue <= e.getAssignedScore().doubleValue() && maxValue >= e.getAssignedScore().doubleValue()).count();
-                schCount = (int) examPaperTikForSchool.stream()
-                        .filter(e -> minValue <= e.getAssignedScore().doubleValue() && maxValue >= e.getAssignedScore().doubleValue()).count();
-            }
-
-            gradeDistributionList.add(new GradeDistributionResult(colCount, schCount, describe));
-        }
-
-        // 计算分数段分布
-        List<PiecewiseDistributionResult> piecewiseDistributionList = new ArrayList<>();
-        for (PiecewiseScopeEnum value : PiecewiseScopeEnum.values()) {
-            String remark = value.getRemark();
-            String name = value.getName();
-            double colCount = 0;
-            double schCount = 0;
-
-            Map<String, Object> scopeMap = AnalyzeScopeUtil.analyzeScope(value.getScope());
-            String minSign = String.valueOf(scopeMap.get("minSign"));
-            String maxSign = String.valueOf(scopeMap.get("maxSign"));
-            double minValue = Double.parseDouble(String.valueOf(scopeMap.get("minValue")));
-            double maxValue = Double.parseDouble(String.valueOf(scopeMap.get("maxValue")));
-            if ("(".equals(minSign) && ")".equals(maxSign)) {
-                colCount = (int) examPaperTikForCollege.stream()
-                        .filter(e -> minValue < e.getPercentGrade().doubleValue() && maxValue > e.getPercentGrade().doubleValue()).count();
-                schCount = (int) examPaperTikForSchool.stream()
-                        .filter(e -> minValue < e.getPercentGrade().doubleValue() && maxValue > e.getPercentGrade().doubleValue()).count();
-
             } else if ("(".equals(minSign) && "]".equals(maxSign)) {
-                colCount = (int) examPaperTikForCollege.stream()
-                        .filter(e -> minValue < e.getPercentGrade().doubleValue() && maxValue >= e.getPercentGrade().doubleValue()).count();
-                schCount = (int) examPaperTikForSchool.stream()
-                        .filter(e -> minValue < e.getPercentGrade().doubleValue() && maxValue >= e.getPercentGrade().doubleValue()).count();
-
+                allCountBefore = (int) surveyTeacherDistributionResultList.stream()//赋分前
+                        .filter(e -> minValue < e.getTotalScore().doubleValue() && maxValue > e.getTotalScore().doubleValue()).count();
+                allCountAfter = (int) surveyTeacherDistributionResultList.stream()
+                        .filter(e -> minValue < e.getAssignedScore().doubleValue() && maxValue > e.getAssignedScore().doubleValue()).count();
+                currentCountBefore = (int) currentDistributionResultList.stream()//赋分前
+                        .filter(e -> minValue < e.getTotalScore().doubleValue() && maxValue > e.getTotalScore().doubleValue()).count();
+                currentCountAfter = (int) currentDistributionResultList.stream()
+                        .filter(e -> minValue < e.getAssignedScore().doubleValue() && maxValue > e.getAssignedScore().doubleValue()).count();
             } else if ("[".equals(minSign) && ")".equals(maxSign)) {
-                colCount = (int) examPaperTikForCollege.stream()
-                        .filter(e -> minValue <= e.getPercentGrade().doubleValue() && maxValue > e.getPercentGrade().doubleValue()).count();
-                schCount = (int) examPaperTikForSchool.stream()
-                        .filter(e -> minValue <= e.getPercentGrade().doubleValue() && maxValue > e.getPercentGrade().doubleValue()).count();
-
+                allCountBefore = (int) surveyTeacherDistributionResultList.stream()//赋分前
+                        .filter(e -> minValue < e.getTotalScore().doubleValue() && maxValue > e.getTotalScore().doubleValue()).count();
+                allCountAfter = (int) surveyTeacherDistributionResultList.stream()
+                        .filter(e -> minValue < e.getAssignedScore().doubleValue() && maxValue > e.getAssignedScore().doubleValue()).count();
+                currentCountBefore = (int) currentDistributionResultList.stream()//赋分前
+                        .filter(e -> minValue < e.getTotalScore().doubleValue() && maxValue > e.getTotalScore().doubleValue()).count();
+                currentCountAfter = (int) currentDistributionResultList.stream()
+                        .filter(e -> minValue < e.getAssignedScore().doubleValue() && maxValue > e.getAssignedScore().doubleValue()).count();
             } else if ("[".equals(minSign) && "]".equals(maxSign)) {
-                colCount = (int) examPaperTikForCollege.stream()
-                        .filter(e -> minValue <= e.getPercentGrade().doubleValue() && maxValue >= e.getPercentGrade().doubleValue()).count();
-                schCount = (int) examPaperTikForSchool.stream()
-                        .filter(e -> minValue <= e.getPercentGrade().doubleValue() && maxValue >= e.getPercentGrade().doubleValue()).count();
+                allCountBefore = (int) surveyTeacherDistributionResultList.stream()//赋分前
+                        .filter(e -> minValue < e.getTotalScore().doubleValue() && maxValue > e.getTotalScore().doubleValue()).count();
+                allCountAfter = (int) surveyTeacherDistributionResultList.stream()
+                        .filter(e -> minValue < e.getAssignedScore().doubleValue() && maxValue > e.getAssignedScore().doubleValue()).count();
+                currentCountBefore = (int) currentDistributionResultList.stream()//赋分前
+                        .filter(e -> minValue < e.getTotalScore().doubleValue() && maxValue > e.getTotalScore().doubleValue()).count();
+                currentCountAfter = (int) currentDistributionResultList.stream()
+                        .filter(e -> minValue < e.getAssignedScore().doubleValue() && maxValue > e.getAssignedScore().doubleValue()).count();
             }
-            double colCountRate = MathUtil.formatDouble2(colCount / colTotalCount * 100); //本院比率 保留2位小数
-            double schCountRate = MathUtil.formatDouble2(schCount / schTotalCount * 100); //全校比率 保留2位小数
+            allCountRateBefore = allCountBefore > 0 ? MathUtil.formatDouble2(allTotalCount / allCountBefore) : 0;
+            allCountRateAfter = allCountAfter > 0 ? MathUtil.formatDouble2(allTotalCount / allCountAfter) : 0;
+            currentCountRateBefore = currentCountBefore > 0 ? MathUtil.formatDouble2(currentTotalCount / currentCountBefore) : 0;
+            currentCountRateAfter = currentCountAfter > 0 ? MathUtil.formatDouble2(currentTotalCount / currentCountAfter) : 0;
 
-            piecewiseDistributionList.add(new PiecewiseDistributionResult(name, colCount, colCountRate, schCount, schCountRate, remark));
+            surveyTeacherGradeDistributionResultList.add(new SurveyTeacherGradeDistributionResult(allCountBefore, allCountAfter, currentCountBefore, currentCountAfter,
+                    allCountRateBefore, allCountRateAfter, currentCountRateBefore, currentCountRateAfter, describe));
         }
-
-        return null;
+        return surveyTeacherGradeDistributionResultList;
     }
 
     /**

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

@@ -2,6 +2,7 @@ package com.qmth.teachcloud.report.business.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.teachcloud.report.business.bean.result.ExamRecordResult;
+import com.qmth.teachcloud.report.business.bean.result.SurveyTeacherDistributionResult;
 import com.qmth.teachcloud.report.business.entity.TAExamCourseRecord;
 import com.qmth.teachcloud.report.business.mapper.TAExamCourseRecordMapper;
 import com.qmth.teachcloud.report.business.service.TAExamCourseRecordService;
@@ -35,4 +36,16 @@ public class TAExamCourseRecordServiceImpl extends ServiceImpl<TAExamCourseRecor
     public List<ExamRecordResult> findExamRecordByExamIdAndCourseCode(Long examId, String courseCode) {
         return taExamCourseRecordMapper.findExamRecordByExamIdAndCourseCode(examId, courseCode);
     }
+
+    /**
+     * 开课学院分数段
+     *
+     * @param examId
+     * @param courseCode
+     * @return
+     */
+    @Override
+    public List<SurveyTeacherDistributionResult> surveyTeacherDistribution(Long examId, String courseCode) {
+        return taExamCourseRecordMapper.surveyTeacherDistribution(examId, courseCode);
+    }
 }

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

@@ -181,15 +181,20 @@ public class TAExamCourseServiceImpl extends ServiceImpl<TAExamCourseMapper, TAE
             taExamCourseQueryWrapper.lambda().eq(TAExamCourse::getCourseCode, courseCode);
         }
         TAExamCourse taExamCourse = this.getOne(taExamCourseQueryWrapper);
-        Gson gson = new Gson();
-        TBExamCourseResult tbExamCourseResult = gson.fromJson(gson.toJson(taExamCourse), TBExamCourseResult.class);
+        BigDecimal bigDecimal = new BigDecimal(1);
+        SurveyTeacherExamCourseResult surveyTeacherExamCourseResult = new SurveyTeacherExamCourseResult(taExamCourse.getAvgScore(), bigDecimal.subtract(taExamCourse.getPassRate()), taExamCourse.getPaperCurrentAvgScore(), bigDecimal.subtract(taExamCourse.getPaperPassRate()));
 
         //学院学科报表科目描述
-        Object o = reportCommonService.surveyTeacherDistribution(examId, courseCode, sysUser.getOrgId());
+        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);
-        return null;
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("gradeDistribution", surveyTeacherGradeDistributionResultList);
+        map.put("questionList", questionListResult);
+        map.put("surveyTeacherExamCourse", surveyTeacherExamCourseResult);
+        return map;
     }
 }

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

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.teachcloud.common.entity.BasicCourse;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.BasicCourseService;
-import com.qmth.teachcloud.report.business.bean.result.TBExamCourseResult;
+import com.qmth.teachcloud.report.business.bean.result.SurveyTeacherExamCourseResult;
 import com.qmth.teachcloud.report.business.entity.TBExamCourse;
 import com.qmth.teachcloud.report.business.enums.PublishStatusEnum;
 import com.qmth.teachcloud.report.business.enums.TestStatusEnum;
@@ -94,7 +94,7 @@ public class TBExamCourseServiceImpl extends ServiceImpl<TBExamCourseMapper, TBE
      * @return
      */
     @Override
-    public List<TBExamCourseResult> findCourseList(Long schoolId, Long examId, boolean inspect) {
+    public List<SurveyTeacherExamCourseResult> findCourseList(Long schoolId, Long examId, boolean inspect) {
         return tbExamCourseMapper.findCourseList(schoolId, examId, inspect);
     }
 }

+ 0 - 1
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/utils/MathUtil.java

@@ -122,7 +122,6 @@ public class MathUtil {
      */
     public static double formatDouble2(double d) {
         DecimalFormat df = new DecimalFormat("#.00");
-
         return Double.parseDouble(df.format(d));
     }
 

+ 25 - 0
teachcloud-report-business/src/main/resources/mapper/TAExamCourseRecordMapper.xml

@@ -120,4 +120,29 @@
                and taecr.absent = 0
            </where>
     </select>
+
+    <select id="surveyTeacherDistribution" resultType="com.qmth.teachcloud.report.business.bean.result.SurveyTeacherDistributionResult">
+        SELECT
+            taecr.total_score as totalScore,
+            taecr.assigned_score as assignedScore,
+            taecr.percent_grade as percentGrade,
+            taecr.score_level as scoreLevel,
+            taecr.rank_level as rankLevel,
+            taecr.col_rank as colRank,
+            taecr.student_current as studentCurrent
+        FROM
+            t_a_exam_course_record taecr
+        join t_b_exam_record tber on
+            tber.id = taecr.exam_record_id
+        join t_b_exam_student tbes on
+            tber.exam_student_id = tbes.id
+        <where>
+            <if test="examId != null and examId != ''">
+                AND taecr.exam_id = #{examId}
+            </if>
+            <if test="courseCode != null and courseCode != ''">
+                AND taecr.course_code = #{courseCode}
+            </if>
+        </where>
+    </select>
 </mapper>

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

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.qmth.teachcloud.report.business.mapper.TBExamCourseMapper">
 
-    <select id="findCourseList" resultType="com.qmth.teachcloud.report.business.bean.result.TBExamCourseResult">
+    <select id="findCourseList" resultType="com.qmth.teachcloud.report.business.bean.result.SurveyTeacherExamCourseResult">
         select DISTINCT tbs.course_code,tbs.course_name from t_b_exam_student tbs
         join basic_course bc
         on tbs.course_code = bc.code