wangliang před 11 měsíci
rodič
revize
14fc7fbc11

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/report/ObeCourseRequirementDto.java

@@ -41,10 +41,11 @@ public class ObeCourseRequirementDto implements Serializable {
 
     }
 
-    public ObeCourseRequirementDto(CourseRequirementMatrixDto courseRequirementMatrixDto) {
+    public ObeCourseRequirementDto(CourseRequirementMatrixDto courseRequirementMatrixDto, BigDecimal courseMatrixDegree) {
         this.courseCode = courseRequirementMatrixDto.getCourseCode();
         this.courseName = courseRequirementMatrixDto.getCourseName();
         this.semesterName = courseRequirementMatrixDto.getSemesterName();
+        this.courseMatrixDegree = courseMatrixDegree;
     }
 
     public ObeCourseRequirementDto(ObeCourseRequirementDto obeCourseRequirementDto) {

+ 6 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCourseRequirementReportServiceImpl.java

@@ -178,11 +178,16 @@ public class ObeCourseRequirementReportServiceImpl extends ServiceImpl<ObeCourse
                     TRBasicInfo trBasicInfo = trBasicInfoService.queryBasicInfo(obeCourseOutline.getCultureProgramId(), obeCourseOutline.getCourseId(), null);
                     if (Objects.nonNull(trBasicInfo)) {
                         ReportCourseEvaluationResultDto reportCourseEvaluationResultDto = Objects.nonNull(trBasicInfo.getCourseEvaluationResult()) ? JSONObject.parseObject(trBasicInfo.getCourseEvaluationResult(), ReportCourseEvaluationResultDto.class) : null;
+                        BigDecimal courseMatrixDegree = new BigDecimal(0);
                         if (Objects.nonNull(reportCourseEvaluationResultDto)) {
                             List<CourseTargetWebDto> courseTargetWebDtoList = reportCourseEvaluationResultDto.getTargetList();
+                            OptionalDouble courseDegree = courseTargetWebDtoList.stream().filter(x -> Objects.nonNull(x.getEvaluationValue()) && x.getEvaluationValue().doubleValue() > 0).mapToDouble(x -> x.getEvaluationValue().doubleValue()).min();
+                            if (courseDegree.isPresent()) {
+                                courseMatrixDegree = new BigDecimal(courseDegree.getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP);
+                            }
                             courseTargetWebDtoMap = courseTargetWebDtoList.stream().collect(Collectors.toMap(CourseTargetWebDto::getTargetId, Function.identity(), (dto1, dto2) -> dto1));
                         }
-                        ObeCourseRequirementDto obeCourseRequirementDto = new ObeCourseRequirementDto(c);
+                        ObeCourseRequirementDto obeCourseRequirementDto = new ObeCourseRequirementDto(c, courseMatrixDegree);
                         obeCourseRequirementDtoList.add(obeCourseRequirementDto);
                         List<MatrixRequirementDto> matrixRequirementDtoList = c.getRequirements();
                         if (!CollectionUtils.isEmpty(matrixRequirementDtoList)) {
@@ -228,7 +233,6 @@ public class ObeCourseRequirementReportServiceImpl extends ServiceImpl<ObeCourse
                             for (Map.Entry<Long, List<ObeSubRequirementsDto>> entry : matrixSubRequirementIdMap.entrySet()) {
                                 OptionalDouble evaluationValue = entry.getValue().stream().mapToDouble(x -> Objects.nonNull(x.getEvaluationValue()) ? x.getEvaluationValue().doubleValue() : 0.0d).average();
                                 if (evaluationValue.isPresent()) {
-                                    obeCourseRequirementDto.setCourseMatrixDegree(new BigDecimal(evaluationValue.getAsDouble()));
                                     ObeSubRequirementsDto obeSubRequirementsDto = entry.getValue().get(0);
                                     BigDecimal bigDecimal = new BigDecimal(evaluationValue.getAsDouble()).multiply(obeSubRequirementsDto.getScale()).setScale(2, BigDecimal.ROUND_HALF_UP);
                                     entry.getValue().stream().peek(x -> x.setMatrixDegree(bigDecimal)).collect(Collectors.toList());