Bläddra i källkod

成绩管理1对多

wangliang 7 månader sedan
förälder
incheckning
786663c267

+ 4 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/obe/TRBasicInfoController.java

@@ -22,7 +22,6 @@ import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
 import com.qmth.teachcloud.common.enums.ImportTemplateEnum;
 import com.qmth.teachcloud.common.enums.log.OperationTypeEnum;
 import com.qmth.teachcloud.common.service.BasicCourseService;
-import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.service.FileUploadService;
 import com.qmth.teachcloud.common.util.*;
@@ -553,7 +552,10 @@ public class TRBasicInfoController {
                                 examStudentMatrixDegree.put(t.getId(), matrixDegree);
 
                                 examStudentSumTargetWeight = examStudentSumTargetWeight.setScale(2, BigDecimal.ROUND_HALF_UP);
-                                BigDecimal sumMatrixDegree = SystemConstant.PERCENT.multiply(matrixDegree).divide(examStudentSumTargetWeight, 2, BigDecimal.ROUND_HALF_UP);
+                                BigDecimal sumMatrixDegree = new BigDecimal(0);
+                                if (examStudentSumTargetWeight.doubleValue() > 0) {
+                                    sumMatrixDegree = SystemConstant.PERCENT.multiply(matrixDegree).divide(examStudentSumTargetWeight, 2, BigDecimal.ROUND_HALF_UP);
+                                }
                                 examStudentSumMatrixDegree.put(t.getId(), sumMatrixDegree);
                             }
                         }

+ 6 - 3
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/TRBasicInfoServiceImpl.java

@@ -1198,9 +1198,12 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                             List<ReportExamStudentUsualScoreObjDto> reportExamStudentUsualScoreObjDtoList = !scoreListMap.containsKey(reportEvaluationDto.getTargetId()) ? new ArrayList<>() : scoreListMap.get(reportEvaluationDto.getTargetId());
                             CourseTargetWordDto courseTargetWordDto = targetWordMap.get(reportEvaluationDto.getTargetId());
                             UsualScoreWordDto usualScoreWordDto = courseTargetWordDto.getUsualScoreDto();
-                            BigDecimal matrixPageScore = score.multiply(reportEvaluationDto.getTargetWeight()).divide(new BigDecimal(targetWeightSum), 4, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal matrixTargetScore = SystemConstant.PERCENT.multiply(reportEvaluationDto.getTargetWeight()).divide(new BigDecimal(targetWeightSum), 4, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal matrixScore = matrixPageScore.divide(matrixTargetScore, 4, BigDecimal.ROUND_HALF_UP).multiply(reportEvaluationDto.getTargetWeight()).setScale(2, BigDecimal.ROUND_HALF_UP);
+                            BigDecimal matrixPageScore = new BigDecimal(0), matrixTargetScore = new BigDecimal(0), matrixScore = new BigDecimal(0);
+                            if (targetWeightSum.doubleValue() > 0) {
+                                matrixPageScore = score.multiply(reportEvaluationDto.getTargetWeight()).divide(new BigDecimal(targetWeightSum), 4, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
+                                matrixTargetScore = SystemConstant.PERCENT.multiply(reportEvaluationDto.getTargetWeight()).divide(new BigDecimal(targetWeightSum), 4, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
+                                matrixScore = matrixPageScore.divide(matrixTargetScore, 4, BigDecimal.ROUND_HALF_UP).multiply(reportEvaluationDto.getTargetWeight()).setScale(2, BigDecimal.ROUND_HALF_UP);
+                            }
                             reportExamStudentUsualScoreObjDtoList.add(new ReportExamStudentUsualScoreObjDto(reportEvaluationDto.getTargetId(), reportEvaluationDto, score, matrixScore, usualScoreWordDto.getUsualScoreTargetSumScore(), matrixPageScore, matrixTargetScore));
                             scoreListMap.put(reportEvaluationDto.getTargetId(), reportExamStudentUsualScoreObjDtoList);
                         }

+ 4 - 2
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/TRExamStudentServiceImpl.java

@@ -125,8 +125,10 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
                                             if (reportEvaluationDtoList.size() == 1) {
                                                 targetEvaluationValue = r.getScore().divide(r.getTargetScore(), 4, BigDecimal.ROUND_HALF_UP).multiply(r.getTargetWeight().divide(courseTargetWordDto.getTargetSumWeight(), 4, BigDecimal.ROUND_HALF_UP)).setScale(2, BigDecimal.ROUND_HALF_UP);
                                             } else {
-                                                targetEvaluationValue = r.getMatrixPageScore().divide(r.getMatrixTargetScore(), 4, BigDecimal.ROUND_HALF_UP).multiply(r.getTargetWeight().divide(courseTargetWordDto.getTargetSumWeight(), 4, BigDecimal.ROUND_HALF_UP)).
-                                                        setScale(2, BigDecimal.ROUND_HALF_UP);
+                                                if (r.getMatrixTargetScore().doubleValue() > 0) {
+                                                    targetEvaluationValue = r.getMatrixPageScore().divide(r.getMatrixTargetScore(), 4, BigDecimal.ROUND_HALF_UP).multiply(r.getTargetWeight().divide(courseTargetWordDto.getTargetSumWeight(), 4, BigDecimal.ROUND_HALF_UP)).
+                                                            setScale(2, BigDecimal.ROUND_HALF_UP);
+                                                }
                                             }
                                         }
                                         matrixDegree.set(matrixDegree.get().add(targetEvaluationValue));