|
@@ -92,8 +92,11 @@ public class ObeCourseRequirementReportServiceImpl extends ServiceImpl<ObeCourse
|
|
|
List<ObeSubRequirementsDto> obeSubRequirementsDtoList = obeRequirementDto.getObeSubRequirements();
|
|
|
for (ObeSubRequirementsDto obeSubRequirementsDto : obeSubRequirementsDtoList) {
|
|
|
if (obeSubRequirementsDto.getSubRequirementId().longValue() == k.longValue()) {
|
|
|
- Double degree = v.stream().mapToDouble(x -> x.getMatrixDegree().doubleValue()).sum();
|
|
|
- obeSubRequirementsDto.setMatrixDegree(new BigDecimal(degree).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ List<Double> obeMatrixDegreeList = v.stream().filter(x -> Objects.nonNull(x.getMatrixDegree())).map(x -> x.getMatrixDegree().doubleValue()).collect(Collectors.toList());
|
|
|
+ Optional<Double> degree = obeMatrixDegreeList.stream().reduce(Double::sum);
|
|
|
+ if (degree.isPresent()) {
|
|
|
+ obeSubRequirementsDto.setMatrixDegree(new BigDecimal(degree.get()).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -215,10 +218,12 @@ public class ObeCourseRequirementReportServiceImpl extends ServiceImpl<ObeCourse
|
|
|
//计算各个课程的指标点达成值
|
|
|
if (!CollectionUtils.isEmpty(matrixSubRequirementIdMap)) {
|
|
|
for (Map.Entry<Long, List<ObeSubRequirementsDto>> entry : matrixSubRequirementIdMap.entrySet()) {
|
|
|
- Double evaluationValue = entry.getValue().stream().mapToDouble(x -> Objects.nonNull(x.getEvaluationValue()) ? x.getEvaluationValue().doubleValue() : 0.0d).average().orElse(0.0d);
|
|
|
- ObeSubRequirementsDto obeSubRequirementsDto = entry.getValue().get(0);
|
|
|
- BigDecimal bigDecimal = new BigDecimal(evaluationValue).multiply(obeSubRequirementsDto.getScale()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- entry.getValue().stream().peek(x -> x.setMatrixDegree(bigDecimal)).collect(Collectors.toList());
|
|
|
+ OptionalDouble evaluationValue = entry.getValue().stream().mapToDouble(x -> Objects.nonNull(x.getEvaluationValue()) ? x.getEvaluationValue().doubleValue() : 0.0d).average();
|
|
|
+ if (evaluationValue.isPresent()) {
|
|
|
+ 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());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
//计算各个课程的指标点达成值
|
|
@@ -284,16 +289,19 @@ public class ObeCourseRequirementReportServiceImpl extends ServiceImpl<ObeCourse
|
|
|
List<ObeSubRequirementsDto> obeSubRequirementsDtoList = obeRequirementDto.getObeSubRequirements();
|
|
|
for (ObeSubRequirementsDto obeSubRequirementsDto : obeSubRequirementsDtoList) {
|
|
|
if (obeSubRequirementsDtoMap.containsKey(obeSubRequirementsDto.getSubRequirementId())) {
|
|
|
- Double degree = obeSubRequirementsDtoMap.get(obeSubRequirementsDto.getSubRequirementId()).stream().mapToDouble(x -> x.getMatrixDegree().doubleValue()).sum();
|
|
|
- if (obeRequirementDto.getMatrixDegree().doubleValue() == 0) {
|
|
|
- obeRequirementDto.setMatrixDegree(new BigDecimal(degree).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
- } else if (degree.doubleValue() > 0 && degree.doubleValue() < obeRequirementDto.getMatrixDegree().doubleValue()) {
|
|
|
- obeRequirementDto.setMatrixDegree(new BigDecimal(degree).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ List<Double> obeMatrixDegreeList = obeSubRequirementsDtoMap.get(obeSubRequirementsDto.getSubRequirementId()).stream().filter(x -> Objects.nonNull(x.getMatrixDegree())).map(x -> x.getMatrixDegree().doubleValue()).collect(Collectors.toList());
|
|
|
+ Optional<Double> degree = obeMatrixDegreeList.stream().reduce(Double::sum);
|
|
|
+ if (degree.isPresent() && (Objects.isNull(obeRequirementDto.getMatrixDegree()) || obeRequirementDto.getMatrixDegree().doubleValue() == 0)) {
|
|
|
+ obeRequirementDto.setMatrixDegree(new BigDecimal(degree.get()).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ } else if (degree.isPresent() && degree.get().doubleValue() > 0 && Objects.nonNull(obeRequirementDto.getMatrixDegree()) && degree.get().doubleValue() < obeRequirementDto.getMatrixDegree().doubleValue()) {
|
|
|
+ obeRequirementDto.setMatrixDegree(new BigDecimal(degree.get()).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- Double degree = obeRequirementDtoList.stream().filter(x -> x.getMatrixDegree().doubleValue() > 0).mapToDouble(x -> x.getMatrixDegree().doubleValue()).min().orElse(0.0d);
|
|
|
- o.setMatrixDegree(new BigDecimal(degree).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ OptionalDouble degree = obeRequirementDtoList.stream().filter(x -> Objects.nonNull(x.getMatrixDegree()) && x.getMatrixDegree().doubleValue() > 0).mapToDouble(x -> x.getMatrixDegree().doubleValue()).min();
|
|
|
+ if (degree.isPresent()) {
|
|
|
+ o.setMatrixDegree(new BigDecimal(degree.getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return obeCourseRequirementDtoList;
|