caozixuan 4 vuotta sitten
vanhempi
commit
67ccce7fd9

+ 4 - 4
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/TrialCalculationResult.java

@@ -60,7 +60,7 @@ public class TrialCalculationResult {
 
     public BigDecimal getFailRate() {
         if (Objects.nonNull(failRate)) {
-            return failRate.setScale(SystemConstant.FINAL_SCALE, BigDecimal.ROUND_HALF_UP);
+            return failRate.setScale(SystemConstant.CALCULATE_SCALE, BigDecimal.ROUND_HALF_UP);
         } else {
             return failRate;
         }
@@ -92,7 +92,7 @@ public class TrialCalculationResult {
 
     public BigDecimal getCurrentFailRate() {
         if (Objects.nonNull(currentFailRate)) {
-            return currentFailRate.setScale(SystemConstant.FINAL_SCALE, BigDecimal.ROUND_HALF_UP);
+            return currentFailRate.setScale(SystemConstant.CALCULATE_SCALE, BigDecimal.ROUND_HALF_UP);
         } else {
             return currentFailRate;
         }
@@ -124,7 +124,7 @@ public class TrialCalculationResult {
 
     public BigDecimal getFailRateAssign() {
         if (Objects.nonNull(failRateAssign)) {
-            return failRateAssign.setScale(SystemConstant.FINAL_SCALE, BigDecimal.ROUND_HALF_UP);
+            return failRateAssign.setScale(SystemConstant.CALCULATE_SCALE, BigDecimal.ROUND_HALF_UP);
         } else {
             return failRateAssign;
         }
@@ -156,7 +156,7 @@ public class TrialCalculationResult {
 
     public BigDecimal getCurrentFailRateAssign() {
         if (Objects.nonNull(currentFailRateAssign)) {
-            return currentFailRateAssign.setScale(SystemConstant.FINAL_SCALE, BigDecimal.ROUND_HALF_UP);
+            return currentFailRateAssign.setScale(SystemConstant.CALCULATE_SCALE, BigDecimal.ROUND_HALF_UP);
         } else {
             return currentFailRateAssign;
         }

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

@@ -284,14 +284,14 @@ public class TAExamCourseServiceImpl extends ServiceImpl<TAExamCourseMapper, TAE
         DoubleSummaryStatistics paperTotalStatistics = paperTotalScoreList.stream().collect(Collectors.summarizingDouble(e -> e));
         double paperTotalAvgScore = paperTotalStatistics.getAverage();
         long paperTotalFailCount = paperTotalScoreList.stream().filter(e -> e < passScore.doubleValue()).count();
-        BigDecimal paperTotalFailRate = BigDecimal.valueOf(paperTotalFailCount).divide(BigDecimal.valueOf(paperTotalScoreList.size()), 4, BigDecimal.ROUND_HALF_UP);
+        BigDecimal paperTotalFailRate = BigDecimal.valueOf(paperTotalFailCount).divide(BigDecimal.valueOf(paperTotalScoreList.size()), SystemConstant.CALCULATE_SCALE, BigDecimal.ROUND_HALF_UP);
 
         // 应届
         List<Double> paperCurrentScoreList = taExamCourseRecordList.stream().filter(TAExamCourseRecord::getStudentCurrent).map(e -> e.getTotalScore().doubleValue()).collect(Collectors.toList());
         DoubleSummaryStatistics paperCurrentStatistics = paperCurrentScoreList.stream().collect(Collectors.summarizingDouble(e -> e));
         double paperCurrentAvgScore = paperCurrentStatistics.getAverage();
         long paperCurrentFailCount = paperCurrentScoreList.stream().filter(e -> e < passScore.doubleValue()).count();
-        BigDecimal paperCurrentFailRate = BigDecimal.valueOf(paperCurrentFailCount).divide(BigDecimal.valueOf(paperCurrentScoreList.size()), 4, BigDecimal.ROUND_HALF_UP);
+        BigDecimal paperCurrentFailRate = BigDecimal.valueOf(paperCurrentFailCount).divide(BigDecimal.valueOf(paperCurrentScoreList.size()), SystemConstant.CALCULATE_SCALE, BigDecimal.ROUND_HALF_UP);
 
         // 查找赋分试算后数据
         // 总体
@@ -299,14 +299,14 @@ public class TAExamCourseServiceImpl extends ServiceImpl<TAExamCourseMapper, TAE
         DoubleSummaryStatistics totalStatistics = totalScoreList.stream().collect(Collectors.summarizingDouble(e -> e));
         double totalAvgScore = totalStatistics.getAverage();
         long totalFailCount = totalScoreList.stream().filter(e -> e < passScore.doubleValue()).count();
-        BigDecimal totalFailRate = BigDecimal.valueOf(totalFailCount).divide(BigDecimal.valueOf(totalScoreList.size()), 4, BigDecimal.ROUND_HALF_UP);
+        BigDecimal totalFailRate = BigDecimal.valueOf(totalFailCount).divide(BigDecimal.valueOf(totalScoreList.size()), SystemConstant.CALCULATE_SCALE, BigDecimal.ROUND_HALF_UP);
 
         // 应届
         List<Double> currentScoreList = taExamCourseRecordList.stream().filter(TAExamCourseRecord::getStudentCurrent).map(e -> e.getAssignedScore().doubleValue()).collect(Collectors.toList());
         DoubleSummaryStatistics currentStatistics = currentScoreList.stream().collect(Collectors.summarizingDouble(e -> e));
         double currentAvgScore = currentStatistics.getAverage();
         long currentFailCount = currentScoreList.stream().filter(e -> e < passScore.doubleValue()).count();
-        BigDecimal currentFailRate = BigDecimal.valueOf(currentFailCount).divide(BigDecimal.valueOf(currentScoreList.size()), 4, BigDecimal.ROUND_HALF_UP);
+        BigDecimal currentFailRate = BigDecimal.valueOf(currentFailCount).divide(BigDecimal.valueOf(currentScoreList.size()), SystemConstant.CALCULATE_SCALE, BigDecimal.ROUND_HALF_UP);
 
         // 组装
         TrialCalculationResult trialCalculationResult = new TrialCalculationResult();

+ 13 - 2
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/templete/execute/AsyncDataCalculateTempleteService.java

@@ -5,6 +5,7 @@ import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
+import com.qmth.teachcloud.common.service.CacheService;
 import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -22,6 +23,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.io.IOException;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * @Description:
@@ -32,6 +34,10 @@ import java.util.Map;
 public class AsyncDataCalculateTempleteService extends AsyncCalculateTaskTemplete {
     @Resource
     private TBExamService tbExamService;
+    @Resource
+    private CacheService cacheService;
+
+
     private final static Logger log = LoggerFactory.getLogger(AsyncDataCalculateTempleteService.class);
     @Override
     public Result calculateTask(Map<String, Object> map) {
@@ -50,7 +56,7 @@ public class AsyncDataCalculateTempleteService extends AsyncCalculateTaskTemplet
                 .eq(TBExamCourse::getExamId,examId)
                 .eq(TBExamCourse::getCourseCode,courseCode));
         PublishStatusEnum oldStatus =  tbExamCourse.getPublishStatus();
-
+        String exception = null;
 
         try {
             analyzeForReportService.normalAssignScore(examId,tbExamService.getById(examId).getSchoolId(),courseCode);
@@ -60,10 +66,15 @@ public class AsyncDataCalculateTempleteService extends AsyncCalculateTaskTemplet
             tbExamCourse.setPublishStatus(PublishStatusEnum.UN_PUBLISH);
         }catch (Exception e){
             log.error("请求出错", e);
-            tbTask.setRemark(e.getMessage());
+            exception = e.getMessage();
+            tbTask.setRemark(exception);
             tbExamCourse.setPublishStatus(oldStatus);
         }finally {
+
             tbExamCourseService.updateById(tbExamCourse);
+//            if (Objects.isNull(exception)){
+//                cacheService.removeExamStudentReportCache();
+//            }
         }
         return ResultUtil.ok(map);
     }