|
@@ -208,7 +208,7 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
|
|
|
if (courseTargetRequirement.getSubRequirementId().equals(obeCourseTarget.getObeCultureProgramRequirementId())) {
|
|
|
courseTargetRequirement.setCourseTargetDegree(reportExamStudentTargetDto.getMatrixDegree().doubleValue());
|
|
|
} else {
|
|
|
- courseTargetRequirement.setCourseTargetDegree(courseTargetRequirement.getCourseTargetDegree() != null ? courseTargetRequirement.getCourseTargetDegree() : 0.0d);
|
|
|
+ courseTargetRequirement.setCourseTargetDegree(courseTargetRequirement.getCourseTargetDegree() != null ? courseTargetRequirement.getCourseTargetDegree() : null);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -219,13 +219,24 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
|
|
|
// 各科目达成度
|
|
|
List<StudentCourseRequirement> studentCourseRequirementList = new ArrayList<>();
|
|
|
for (StudentCourseInfoDto studentCourseInfoDto : studentCourseInfoDtoList) {
|
|
|
+ System.out.println(JSON.toJSONString(studentCourseInfoDto.getCourseTargetRequirementList()));
|
|
|
StudentCourseRequirement studentCourseRequirement = new StudentCourseRequirement();
|
|
|
studentCourseRequirement.setCourseCode(studentCourseInfoDto.getCourseCode());
|
|
|
studentCourseRequirement.setCourseName(studentCourseInfoDto.getCourseName());
|
|
|
studentCourseRequirement.setSemesterName(studentCourseInfoDto.getSemesterName());
|
|
|
studentCourseRequirement.setScore(studentCourseInfoDto.getScore());
|
|
|
- LinkedHashMap<String, Double> map = studentCourseInfoDto.getCourseTargetRequirementList().stream().collect(Collectors.toMap(CourseTargetRequirement::getRequirementName, CourseTargetRequirement::getCourseTargetDegree, (v1, v2) -> v1 != 0 && v2 != 0 ? v1.doubleValue() <= v2.doubleValue() ? v1 : v2 : v1 == 0 && v2 != 0 ? v2 : v1 != 0 && v2 == 0 ? v1 : null, LinkedHashMap::new));
|
|
|
- List<StudentCourseRequirementDetail> requirementDetailList = map.entrySet().stream().map(entry -> new StudentCourseRequirementDetail(entry.getKey(), entry.getValue())).collect(Collectors.toList());
|
|
|
+ Map<String, Optional<CourseTargetRequirement>> map = studentCourseInfoDto.getCourseTargetRequirementList().stream().collect(Collectors.groupingBy(m -> m.getRequirementSortNum() + "##" + m.getRequirementName(), Collectors.minBy((o1, o2) -> {
|
|
|
+ if (o1.getCourseTargetDegree() != null && o2.getCourseTargetDegree() != null) {
|
|
|
+ return o1.getCourseTargetDegree() - o2.getCourseTargetDegree() < 0 ? -1 : 1;
|
|
|
+ } else if (o1.getCourseTargetDegree() == null && o2.getCourseTargetDegree() != null) {
|
|
|
+ return 1;
|
|
|
+ } else if (o1.getCourseTargetDegree() != null && o2.getCourseTargetDegree() == null) {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ })));
|
|
|
+ List<StudentCourseRequirementDetail> requirementDetailList = map.entrySet().stream().map(entry -> new StudentCourseRequirementDetail(entry.getKey().split("##"), entry.getValue().isPresent() ? entry.getValue().get().getCourseTargetDegree() : null)).collect(Collectors.toList());
|
|
|
+ requirementDetailList.sort(Comparator.comparingInt(StudentCourseRequirementDetail::getRequirementSortNum));
|
|
|
studentCourseRequirement.setRequirementDetailList(requirementDetailList);
|
|
|
studentCourseRequirementList.add(studentCourseRequirement);
|
|
|
}
|
|
@@ -234,7 +245,10 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
|
|
|
// 汇总达成度
|
|
|
List<CourseTargetRequirement> courseTargetRequirementListAll = new ArrayList<>();
|
|
|
for (StudentCourseInfoDto studentCourseInfoDto : studentCourseInfoDtoList) {
|
|
|
- courseTargetRequirementListAll.addAll(studentCourseInfoDto.getCourseTargetRequirementList().stream().filter(m -> m.getCourseTargetDegree() != null).collect(Collectors.toList()));
|
|
|
+ courseTargetRequirementListAll.addAll(studentCourseInfoDto.getCourseTargetRequirementList().stream().map(m -> {
|
|
|
+ m.setCourseTargetDegree(m.getCourseTargetDegree() == null ? 0 : m.getCourseTargetDegree());
|
|
|
+ return m;
|
|
|
+ }).collect(Collectors.toList()));
|
|
|
}
|
|
|
|
|
|
Map<String, BigDecimal> requirementDegreeMap = new HashMap<>();
|
|
@@ -258,7 +272,7 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
|
|
|
}
|
|
|
studentTotalRequirementList.add(studentTotalRequirement);
|
|
|
}
|
|
|
- studentTotalRequirementList.sort(Comparator.comparing(StudentTotalRequirement::getRequirementSortNum));
|
|
|
+ studentTotalRequirementList.sort(Comparator.comparingInt(StudentTotalRequirement::getRequirementSortNum));
|
|
|
studentRequirement.setStudentTotalRequirementList(studentTotalRequirementList);
|
|
|
return studentRequirement;
|
|
|
}
|