wangliang 1 vuosi sitten
vanhempi
commit
2e331c8fe6

+ 15 - 11
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TRExamStudentServiceImpl.java

@@ -48,12 +48,13 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
 
     @Resource
     TRBasicInfoService trBasicInfoService;
+
     @Resource
     private ObeCourseTargetService obeCourseTargetService;
-    @Resource
-    private ObeCultureProgramRequirementService obeCultureProgramRequirementService;
+
     @Resource
     private ObeCourseRequirementMatrixService obeCourseRequirementMatrixService;
+
     @Resource
     private ObeCourseRequirementReportService obeCourseRequirementReportService;
 
@@ -93,9 +94,11 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
                             BigDecimal targetMatrixScore = new BigDecimal(0);
                             if (Objects.nonNull(courseTargetWordDto.getFinalScoreDto())) {
                                 //卷面分/目标卷面总分*权重
-                                targetMatrixScore = v.divide(courseTargetWordDto.getFinalScoreDto().getFinalScoreTargetSumScore(), 4, BigDecimal.ROUND_HALF_UP).multiply(courseTargetWordDto.getFinalScoreDto().getFinalScoreSumWeight()).setScale(2, BigDecimal.ROUND_HALF_UP);
-                                BigDecimal targetEvaluationValue = v.divide(courseTargetWordDto.getFinalScoreDto().getFinalScoreTargetSumScore(), 4, BigDecimal.ROUND_HALF_UP).multiply(courseTargetWordDto.getFinalScoreDto().getFinalScoreSumWeight().divide(courseTargetWordDto.getTargetSumWeight(), 4, BigDecimal.ROUND_HALF_UP)).setScale(2, BigDecimal.ROUND_HALF_UP);
-                                matrixDegree.set(matrixDegree.get().add(targetEvaluationValue));
+                                if (courseTargetWordDto.getFinalScoreDto().getFinalScoreTargetSumScore().doubleValue() > 0) {
+                                    targetMatrixScore = v.divide(courseTargetWordDto.getFinalScoreDto().getFinalScoreTargetSumScore(), 4, BigDecimal.ROUND_HALF_UP).multiply(courseTargetWordDto.getFinalScoreDto().getFinalScoreSumWeight()).setScale(2, BigDecimal.ROUND_HALF_UP);
+                                    BigDecimal targetEvaluationValue = v.divide(courseTargetWordDto.getFinalScoreDto().getFinalScoreTargetSumScore(), 4, BigDecimal.ROUND_HALF_UP).multiply(courseTargetWordDto.getFinalScoreDto().getFinalScoreSumWeight().divide(courseTargetWordDto.getTargetSumWeight(), 4, BigDecimal.ROUND_HALF_UP)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                                    matrixDegree.set(matrixDegree.get().add(targetEvaluationValue));
+                                }
                             }
                             targetMatrixSumScore = targetMatrixSumScore.add(targetMatrixScore);
                             reportExamStudentDto.setScore(reportExamStudentDto.getScore().add(targetMatrixScore));
@@ -127,10 +130,11 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
                             BigDecimal targetMatrixScore = new BigDecimal(0);
                             if (Objects.nonNull(reportExamStudentTargetDto.getFinalScore())) {
                                 reportExamStudentFinalScoreAvgDto = reportExamStudentTargetDto.getFinalScore();
-                                targetMatrixScore = v.divide(courseTargetWordDto.getFinalScoreDto().getFinalScoreTargetSumScore(), 4, BigDecimal.ROUND_HALF_UP).multiply(courseTargetWordDto.getFinalScoreDto().getFinalScoreSumWeight()).setScale(2, BigDecimal.ROUND_HALF_UP);
-
-                                BigDecimal targetEvaluationValue = v.divide(courseTargetWordDto.getFinalScoreDto().getFinalScoreTargetSumScore(), 4, BigDecimal.ROUND_HALF_UP).multiply(courseTargetWordDto.getFinalScoreDto().getFinalScoreSumWeight().divide(courseTargetWordDto.getTargetSumWeight(), 4, BigDecimal.ROUND_HALF_UP)).setScale(2, BigDecimal.ROUND_HALF_UP);
-                                matrixDegree.set(matrixDegree.get().add(targetEvaluationValue));
+                                if (courseTargetWordDto.getFinalScoreDto().getFinalScoreTargetSumScore().doubleValue() > 0) {
+                                    targetMatrixScore = v.divide(courseTargetWordDto.getFinalScoreDto().getFinalScoreTargetSumScore(), 4, BigDecimal.ROUND_HALF_UP).multiply(courseTargetWordDto.getFinalScoreDto().getFinalScoreSumWeight()).setScale(2, BigDecimal.ROUND_HALF_UP);
+                                    BigDecimal targetEvaluationValue = v.divide(courseTargetWordDto.getFinalScoreDto().getFinalScoreTargetSumScore(), 4, BigDecimal.ROUND_HALF_UP).multiply(courseTargetWordDto.getFinalScoreDto().getFinalScoreSumWeight().divide(courseTargetWordDto.getTargetSumWeight(), 4, BigDecimal.ROUND_HALF_UP)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                                    matrixDegree.set(matrixDegree.get().add(targetEvaluationValue));
+                                }
                                 reportExamStudentTargetDto.setMatrixDegree(matrixDegree.get());
                             }
                             targetMatrixSumScore = targetMatrixSumScore.add(targetMatrixScore);
@@ -238,8 +242,8 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
             List<StudentCourseRequirementDetail> requirementDetailList = new ArrayList<>();
             for (Map.Entry<String, List<CourseTargetRequirement>> entry : map.entrySet()) {
                 String[] s = entry.getKey().split("##");
-                StudentCourseRequirementDetail studentCourseRequirementDetail= new StudentCourseRequirementDetail(Integer.valueOf(s[0]), s[1], null);
-                studentCourseRequirementDetail.setSubRequirementDetailList(entry.getValue().stream().map(m-> new StudentCourseRequirementDetail(m.getSubRequirementSortNum(), m.getSubRequirementName(), m.getCourseTargetDegree())).collect(Collectors.toList()));
+                StudentCourseRequirementDetail studentCourseRequirementDetail = new StudentCourseRequirementDetail(Integer.valueOf(s[0]), s[1], null);
+                studentCourseRequirementDetail.setSubRequirementDetailList(entry.getValue().stream().map(m -> new StudentCourseRequirementDetail(m.getSubRequirementSortNum(), m.getSubRequirementName(), m.getCourseTargetDegree())).collect(Collectors.toList()));
                 requirementDetailList.add(studentCourseRequirementDetail);
             }
             requirementDetailList.sort(Comparator.comparingInt(StudentCourseRequirementDetail::getRequirementSortNum));