Przeglądaj źródła

bug 赋分计算

caozixuan 4 lat temu
rodzic
commit
db8e243196

+ 3 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/AnalyzeForReportServiceImpl.java

@@ -348,6 +348,9 @@ public class AnalyzeForReportServiceImpl implements AnalyzeForReportService {
                 long sameCount = dataSource.stream().filter(e -> e.getTotalScore().compareTo(totalScore) == 0).count(); // 和我相同的人数
                 int totalCount = dataSource.size(); //总人数
                 // 标准回归系数
+                if (standardDeviation.compareTo(BigDecimal.ZERO) == 0){
+                    standardDeviation = BigDecimal.valueOf(0.001);
+                }
                 BigDecimal standardizedCoefficients = (taExamCourseRecord.getAssignedScore().subtract(avgScore)).divide(standardDeviation, 4, BigDecimal.ROUND_HALF_UP);
 
                 int percentGrade = this.handlePercentGrade(BigDecimal.valueOf(lowCount), BigDecimal.valueOf(sameCount), BigDecimal.valueOf(totalCount));

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

@@ -221,7 +221,9 @@ public class CourseController {
             @ApiParam(value = "科目编码", required = true) @RequestParam String courseCode,
             @ApiParam(value = "赋分系数", required = true) @RequestParam BigDecimal coefficient) {
 
-
+        if (coefficient.compareTo(BigDecimal.ONE) == 0){
+            throw ExceptionResultEnum.ERROR.exception("赋分系数有误,当赋分系数为1时所有学生成绩均为满分 异常");
+        }
         Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.DATA_CALCULATE);
         map.put("examId", examId);
         map.put("courseCode", courseCode);