|
@@ -189,7 +189,8 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
finalScoreResultMap = finalScoreResultList.stream().collect(Collectors.toMap(FinalScoreResult::getStudentCode, Function.identity(), (dto1, dto2) -> dto1));
|
|
finalScoreResultMap = finalScoreResultList.stream().collect(Collectors.toMap(FinalScoreResult::getStudentCode, Function.identity(), (dto1, dto2) -> dto1));
|
|
|
|
|
|
examStudentList = new ArrayList<>(finalScoreResultList.size());
|
|
examStudentList = new ArrayList<>(finalScoreResultList.size());
|
|
- for (FinalScoreResult finalScoreResult : finalScoreResultList) {
|
|
|
|
|
|
+ for (int i = 0; i < finalScoreResultList.size(); i++) {
|
|
|
|
+ FinalScoreResult finalScoreResult = finalScoreResultList.get(i);
|
|
//解析期末成绩知识点
|
|
//解析期末成绩知识点
|
|
List<TCFinalScoreDto> tcFinalScoreDtoList = GsonUtil.fromJson(finalScoreResult.getFinalScoreDetail(), new TypeToken<List<TCFinalScoreDto>>() {
|
|
List<TCFinalScoreDto> tcFinalScoreDtoList = GsonUtil.fromJson(finalScoreResult.getFinalScoreDetail(), new TypeToken<List<TCFinalScoreDto>>() {
|
|
}.getType());
|
|
}.getType());
|
|
@@ -205,15 +206,21 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
//考生知识点
|
|
//考生知识点
|
|
this.calculateFinalScoreByExamStudent(finalScoreExamStudentDimensionMap,
|
|
this.calculateFinalScoreByExamStudent(finalScoreExamStudentDimensionMap,
|
|
finalScoreResult, courseTargetDto, dimensionDto, score);
|
|
finalScoreResult, courseTargetDto, dimensionDto, score);
|
|
- //目标-考生知识点去重
|
|
|
|
- if (!targetDimensionMap.containsKey(courseTargetDto.getTargetId())) {
|
|
|
|
- Map<Long, DimensionDto> dimensionMap = new LinkedHashMap<>();
|
|
|
|
- dimensionMap.put(dimensionDto.getDimensionId(), new DimensionDto(courseTargetDto.getTargetId(), dimensionDto, score));
|
|
|
|
- targetDimensionMap.put(courseTargetDto.getTargetId(), dimensionMap);
|
|
|
|
- } else {
|
|
|
|
- Map<Long, DimensionDto> dimensionMap = targetDimensionMap.get(courseTargetDto.getTargetId());
|
|
|
|
- if (!dimensionMap.containsKey(dimensionDto.getDimensionId())) {
|
|
|
|
- dimensionMap.put(dimensionDto.getDimensionId(), new DimensionDto(courseTargetDto.getTargetId(), dimensionDto, score));
|
|
|
|
|
|
+ if (i == 0) {//计算各知识点原始卷面分总和
|
|
|
|
+ Double paperScore = paperStructResult.getScore();
|
|
|
|
+ //目标-考生知识点去重
|
|
|
|
+ if (!targetDimensionMap.containsKey(courseTargetDto.getTargetId())) {
|
|
|
|
+ Map<Long, DimensionDto> dimensionMap = new LinkedHashMap<>();
|
|
|
|
+ dimensionMap.put(dimensionDto.getDimensionId(), new DimensionDto(courseTargetDto.getTargetId(), dimensionDto, paperScore));
|
|
|
|
+ targetDimensionMap.put(courseTargetDto.getTargetId(), dimensionMap);
|
|
|
|
+ } else {
|
|
|
|
+ Map<Long, DimensionDto> dimensionMap = targetDimensionMap.get(courseTargetDto.getTargetId());
|
|
|
|
+ if (!dimensionMap.containsKey(dimensionDto.getDimensionId())) {
|
|
|
|
+ dimensionMap.put(dimensionDto.getDimensionId(), new DimensionDto(courseTargetDto.getTargetId(), dimensionDto, paperScore));
|
|
|
|
+ } else {
|
|
|
|
+ DimensionDto dimensionDtoTemp = dimensionMap.get(dimensionDto.getDimensionId());
|
|
|
|
+ dimensionMap.put(dimensionDto.getDimensionId(), new DimensionDto(courseTargetDto.getTargetId(), dimensionDto, dimensionDtoTemp.getDimensionScore().doubleValue() + paperScore.doubleValue()));
|
|
|
|
+ }
|
|
targetDimensionMap.put(courseTargetDto.getTargetId(), dimensionMap);
|
|
targetDimensionMap.put(courseTargetDto.getTargetId(), dimensionMap);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -223,11 +230,20 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
}
|
|
}
|
|
|
|
|
|
Map<Long, CourseTargetWordDto> finalTargetWordMap = targetWordMap;
|
|
Map<Long, CourseTargetWordDto> finalTargetWordMap = targetWordMap;
|
|
|
|
+ Map<Long, CourseTargetWebDto> finalTargetWebMap = targetWebMap;
|
|
targetDimensionMap.forEach((k, v) -> {
|
|
targetDimensionMap.forEach((k, v) -> {
|
|
List<DimensionDto> dimensionDtoList = new ArrayList<>(v.values());
|
|
List<DimensionDto> dimensionDtoList = new ArrayList<>(v.values());
|
|
Collections.sort(dimensionDtoList);
|
|
Collections.sort(dimensionDtoList);
|
|
|
|
+ Double dimensionScoreSum = dimensionDtoList.stream().mapToDouble(DimensionDto::getDimensionScore).sum();
|
|
|
|
+ List<String> dimensionDtoNameList = dimensionDtoList.stream().map(s -> s.getDimensionName()).collect(Collectors.toList());
|
|
if (finalTargetWordMap.containsKey(k)) {
|
|
if (finalTargetWordMap.containsKey(k)) {
|
|
finalTargetWordMap.get(k).getFinalScoreDto().setDimensionList(dimensionDtoList);
|
|
finalTargetWordMap.get(k).getFinalScoreDto().setDimensionList(dimensionDtoList);
|
|
|
|
+ finalTargetWordMap.get(k).setDimensionScoreSum(dimensionScoreSum);
|
|
|
|
+ finalTargetWordMap.get(k).setDimensionPoint(String.join(",", dimensionDtoNameList));
|
|
|
|
+ }
|
|
|
|
+ if (finalTargetWebMap.containsKey(k)) {
|
|
|
|
+ finalTargetWebMap.get(k).setDimensionScoreSum(dimensionScoreSum);
|
|
|
|
+ finalTargetWebMap.get(k).setDimensionPoint(String.join(",", dimensionDtoNameList));
|
|
}
|
|
}
|
|
Map<Long, Map<Long, DimensionDto>> mapExamStudent1 = finalScoreExamStudentDimensionMap.get(finalScoreResult.getStudentCode());
|
|
Map<Long, Map<Long, DimensionDto>> mapExamStudent1 = finalScoreExamStudentDimensionMap.get(finalScoreResult.getStudentCode());
|
|
Map<Long, DimensionDto> mapExamStudent2 = mapExamStudent1.get(k);
|
|
Map<Long, DimensionDto> mapExamStudent2 = mapExamStudent1.get(k);
|
|
@@ -517,17 +533,18 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
RowRenderData header4_1 = Rows.of("序号", "考核项目", "考核内容所涵盖的知识单元", "目标分值", "对应的课程目标").rowStyle(this.getHeadRowStyle()).create();
|
|
RowRenderData header4_1 = Rows.of("序号", "考核项目", "考核内容所涵盖的知识单元", "目标分值", "对应的课程目标").rowStyle(this.getHeadRowStyle()).create();
|
|
List<CourseTargetTableBean4> courseTargetTableBean4List = new ArrayList<>();
|
|
List<CourseTargetTableBean4> courseTargetTableBean4List = new ArrayList<>();
|
|
BigDecimal finalScoreSum4 = new BigDecimal(0), finalScoreTargetSumWeight4 = new BigDecimal(0);
|
|
BigDecimal finalScoreSum4 = new BigDecimal(0), finalScoreTargetSumWeight4 = new BigDecimal(0);
|
|
- Integer seq4 = 1;
|
|
|
|
for (int i = 0; i < courseTargetWordDtoList.size(); i++) {
|
|
for (int i = 0; i < courseTargetWordDtoList.size(); i++) {
|
|
CourseTargetWordDto courseTargetWordDto = courseTargetWordDtoList.get(i);
|
|
CourseTargetWordDto courseTargetWordDto = courseTargetWordDtoList.get(i);
|
|
FinalScoreWordDto finalScoreWordDto = courseTargetWordDto.getFinalScoreDto();
|
|
FinalScoreWordDto finalScoreWordDto = courseTargetWordDto.getFinalScoreDto();
|
|
- finalScoreSum4 = finalScoreSum4.add(finalScoreWordDto.getFinalScoreTargetSumScore());
|
|
|
|
|
|
+ finalScoreSum4 = finalScoreSum4.add(new BigDecimal(courseTargetWordDto.getDimensionScoreSum()));
|
|
finalScoreTargetSumWeight4 = finalScoreTargetSumWeight4.add(finalScoreWordDto.getFinalScoreSumWeight());
|
|
finalScoreTargetSumWeight4 = finalScoreTargetSumWeight4.add(finalScoreWordDto.getFinalScoreSumWeight());
|
|
- List<DimensionDto> dimensionDtoList = courseTargetWordDto.getFinalScoreDto().getDimensionList();
|
|
|
|
- for (DimensionDto dimensionDto : dimensionDtoList) {
|
|
|
|
- CourseTargetTableBean4 courseTargetTableBean4 = new CourseTargetTableBean4(seq4++, courseTargetWordDto.getGraduationRequirement(), dimensionDto.getDimensionName(), dimensionDto.getDimensionScore(), courseTargetWordDto.getTargetName());
|
|
|
|
- courseTargetTableBean4List.add(courseTargetTableBean4);
|
|
|
|
- }
|
|
|
|
|
|
+// List<DimensionDto> dimensionDtoList = courseTargetWordDto.getFinalScoreDto().getDimensionList();
|
|
|
|
+// for (DimensionDto dimensionDto : dimensionDtoList) {
|
|
|
|
+// CourseTargetTableBean4 courseTargetTableBean4 = new CourseTargetTableBean4(seq4++, courseTargetWordDto.getGraduationRequirement(), dimensionDto.getDimensionName(), dimensionDto.getDimensionScore(), courseTargetWordDto.getTargetName());
|
|
|
|
+// courseTargetTableBean4List.add(courseTargetTableBean4);
|
|
|
|
+// }
|
|
|
|
+ CourseTargetTableBean4 courseTargetTableBean4 = new CourseTargetTableBean4((i + 1), courseTargetWordDto.getGraduationRequirement(), courseTargetWordDto.getDimensionPoint(), courseTargetWordDto.getDimensionScoreSum(), courseTargetWordDto.getTargetName());
|
|
|
|
+ courseTargetTableBean4List.add(courseTargetTableBean4);
|
|
}
|
|
}
|
|
finalScoreTargetSumWeight4 = finalScoreTargetSumWeight4.divide(new BigDecimal(courseTargetWordDtoList.size()), 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
finalScoreTargetSumWeight4 = finalScoreTargetSumWeight4.divide(new BigDecimal(courseTargetWordDtoList.size()), 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
String tableFootTitle4 = "合计${dimensionScoreSum}分,占课程总评成绩的${dimensionSumWeight}%";
|
|
String tableFootTitle4 = "合计${dimensionScoreSum}分,占课程总评成绩的${dimensionSumWeight}%";
|
|
@@ -573,7 +590,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
examStudent_cells_1.add(Cells.of("行政班级").center().create());
|
|
examStudent_cells_1.add(Cells.of("行政班级").center().create());
|
|
examStudent_cells_2.addAll(examStudent_cells_1);
|
|
examStudent_cells_2.addAll(examStudent_cells_1);
|
|
|
|
|
|
- Map<Long, Integer> targetUsualScoreSizeMap = new HashMap<>();
|
|
|
|
|
|
+ Map<Long, Integer> targetUsualScoreSizeMap = new LinkedHashMap<>();
|
|
TRExamStudent trExamStudentTemp = trExamStudentList.get(0);
|
|
TRExamStudent trExamStudentTemp = trExamStudentList.get(0);
|
|
|
|
|
|
RowRenderData[] rowRenderDataExamStudent = new RowRenderData[trExamStudentList.size() + 2];
|
|
RowRenderData[] rowRenderDataExamStudent = new RowRenderData[trExamStudentList.size() + 2];
|