|
@@ -26,7 +26,6 @@ import com.qmth.teachcloud.mark.utils.Calculator;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.util.CollectionUtils;
|
|
import org.springframework.util.CollectionUtils;
|
|
-import org.springframework.util.LinkedMultiValueMap;
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
@@ -104,13 +103,13 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
Map<Long, List<Double>> finalScoreTargetMap = new LinkedHashMap<>();//汇总各课程目标期末考试分数(用来算最高分,最低分,平均分)
|
|
Map<Long, List<Double>> finalScoreTargetMap = new LinkedHashMap<>();//汇总各课程目标期末考试分数(用来算最高分,最低分,平均分)
|
|
Map<String, Map<Long, Map<Long, DimensionDto>>> finalScoreExamStudentDimensionMap = new LinkedHashMap<>();//汇总考生课程目标-知识点
|
|
Map<String, Map<Long, Map<Long, DimensionDto>>> finalScoreExamStudentDimensionMap = new LinkedHashMap<>();//汇总考生课程目标-知识点
|
|
Map<Long, Map<Long, DimensionDto>> finalScoreExamStudentDimensionSumMap = new LinkedHashMap<>();//汇总考生课程目标-知识点总分
|
|
Map<Long, Map<Long, DimensionDto>> finalScoreExamStudentDimensionSumMap = new LinkedHashMap<>();//汇总考生课程目标-知识点总分
|
|
|
|
+ Map<Long, Map<Long, DimensionDto>> targetDimensionMap = new LinkedHashMap<>();//课程目标-知识点
|
|
|
|
|
|
List<ReportExamStudentDto> examStudentList = null;//考生集合
|
|
List<ReportExamStudentDto> examStudentList = null;//考生集合
|
|
Map<String, FinalScoreResult> finalScoreResultMap = null;//考生成绩map
|
|
Map<String, FinalScoreResult> finalScoreResultMap = null;//考生成绩map
|
|
Map<String, PaperStructResult> paperStructResultMap = null;//试卷蓝图map
|
|
Map<String, PaperStructResult> paperStructResultMap = null;//试卷蓝图map
|
|
Map<Long, CourseTargetWeightDto> targetMap = null;
|
|
Map<Long, CourseTargetWeightDto> targetMap = null;
|
|
|
|
|
|
- LinkedMultiValueMap<Long, DimensionDto> targetDimensionMap = new LinkedMultiValueMap<>();//课程目标知识点
|
|
|
|
if (!CollectionUtils.isEmpty(finalScoreResultList)) {
|
|
if (!CollectionUtils.isEmpty(finalScoreResultList)) {
|
|
//期末成绩明细map
|
|
//期末成绩明细map
|
|
paperStructResultMap = paperStructResultList.stream().collect(Collectors.toMap(k -> k.getMainNumber() + "-" + k.getSubNumber(), Function.identity(), (dto1, dto2) -> dto1));
|
|
paperStructResultMap = paperStructResultList.stream().collect(Collectors.toMap(k -> k.getMainNumber() + "-" + k.getSubNumber(), Function.identity(), (dto1, dto2) -> dto1));
|
|
@@ -142,7 +141,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
//知识点
|
|
//知识点
|
|
List<DimensionDto> dimensionDtoList = courseTargetDto.getDimensionList();
|
|
List<DimensionDto> dimensionDtoList = courseTargetDto.getDimensionList();
|
|
for (DimensionDto dimensionDto : dimensionDtoList) {
|
|
for (DimensionDto dimensionDto : dimensionDtoList) {
|
|
- targetDimensionMap.add(courseTargetDto.getTargetId(), dimensionDto);
|
|
|
|
//考生知识点
|
|
//考生知识点
|
|
if (!finalScoreExamStudentDimensionMap.containsKey(finalScoreResult.getStudentCode())) {
|
|
if (!finalScoreExamStudentDimensionMap.containsKey(finalScoreResult.getStudentCode())) {
|
|
Map<Long, Map<Long, DimensionDto>> map = new LinkedHashMap<>();
|
|
Map<Long, Map<Long, DimensionDto>> map = new LinkedHashMap<>();
|
|
@@ -173,11 +171,17 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
if (!finalScoreExamStudentDimensionSumMap.containsKey(courseTargetDto.getTargetId())) {
|
|
if (!finalScoreExamStudentDimensionSumMap.containsKey(courseTargetDto.getTargetId())) {
|
|
Map<Long, DimensionDto> dimensionMap = new LinkedHashMap<>();
|
|
Map<Long, DimensionDto> dimensionMap = new LinkedHashMap<>();
|
|
dimensionMap.put(dimensionDto.getDimensionId(), new DimensionDto(dimensionDto, score));
|
|
dimensionMap.put(dimensionDto.getDimensionId(), new DimensionDto(dimensionDto, score));
|
|
|
|
+ Map<Long, DimensionDto> dimensionTempMap = new LinkedHashMap<>();
|
|
|
|
+ dimensionTempMap.put(dimensionDto.getDimensionId(), new DimensionDto(dimensionDto, score));
|
|
finalScoreExamStudentDimensionSumMap.put(courseTargetDto.getTargetId(), dimensionMap);
|
|
finalScoreExamStudentDimensionSumMap.put(courseTargetDto.getTargetId(), dimensionMap);
|
|
|
|
+ targetDimensionMap.put(courseTargetDto.getTargetId(), dimensionTempMap);
|
|
} else {
|
|
} else {
|
|
Map<Long, DimensionDto> dimensionMap = finalScoreExamStudentDimensionSumMap.get(courseTargetDto.getTargetId());
|
|
Map<Long, DimensionDto> dimensionMap = finalScoreExamStudentDimensionSumMap.get(courseTargetDto.getTargetId());
|
|
if (!dimensionMap.containsKey(dimensionDto.getDimensionId())) {
|
|
if (!dimensionMap.containsKey(dimensionDto.getDimensionId())) {
|
|
dimensionMap.put(dimensionDto.getDimensionId(), new DimensionDto(dimensionDto, score));
|
|
dimensionMap.put(dimensionDto.getDimensionId(), new DimensionDto(dimensionDto, score));
|
|
|
|
+ Map<Long, DimensionDto> dimensionTempMap = targetDimensionMap.get(courseTargetDto.getTargetId());
|
|
|
|
+ dimensionTempMap.put(dimensionDto.getDimensionId(), new DimensionDto(dimensionDto, score));
|
|
|
|
+ targetDimensionMap.put(courseTargetDto.getTargetId(), dimensionTempMap);
|
|
} else {
|
|
} else {
|
|
DimensionDto dimensionDtoTemp = dimensionMap.get(dimensionDto.getDimensionId());
|
|
DimensionDto dimensionDtoTemp = dimensionMap.get(dimensionDto.getDimensionId());
|
|
dimensionDtoTemp.setDimensionScore(dimensionDtoTemp.getDimensionScore().doubleValue() + score.doubleValue());
|
|
dimensionDtoTemp.setDimensionScore(dimensionDtoTemp.getDimensionScore().doubleValue() + score.doubleValue());
|
|
@@ -209,6 +213,13 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ Map<Long, CourseTargetWeightDto> finalTargetMap = targetMap;
|
|
|
|
+ targetDimensionMap.forEach((k, v) -> {
|
|
|
|
+ List<DimensionDto> dimensionDtoList = new ArrayList<>(v.values());
|
|
|
|
+ Collections.sort(dimensionDtoList);
|
|
|
|
+ finalTargetMap.get(k).setDimensionList(dimensionDtoList);
|
|
|
|
+ });
|
|
|
|
+
|
|
paramsMap.put("finalScoreResultList", finalScoreResultList);
|
|
paramsMap.put("finalScoreResultList", finalScoreResultList);
|
|
paramsMap.put("usualScoreMap", usualScoreMap);
|
|
paramsMap.put("usualScoreMap", usualScoreMap);
|
|
paramsMap.put("finalScoreTargetMap", finalScoreTargetMap);
|
|
paramsMap.put("finalScoreTargetMap", finalScoreTargetMap);
|
|
@@ -316,6 +327,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
|
|
|
|
CourseTargetDto courseTargetDto = new CourseTargetDto(k, v.getTargetName(), k, "评价方式" + k, "评价方式描述" + k, reportEvaluationDtoList, evaluationValue);
|
|
CourseTargetDto courseTargetDto = new CourseTargetDto(k, v.getTargetName(), k, "评价方式" + k, "评价方式描述" + k, reportEvaluationDtoList, evaluationValue);
|
|
targetList.add(courseTargetDto);
|
|
targetList.add(courseTargetDto);
|
|
|
|
+ v.updateInfo(courseTargetDto);
|
|
targetValue.set(new BigDecimal(targetValue.get()).add(new BigDecimal(courseTargetDto.getEvaluationValue())).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
targetValue.set(new BigDecimal(targetValue.get()).add(new BigDecimal(courseTargetDto.getEvaluationValue())).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
});
|
|
});
|
|
Collections.sort(targetList);
|
|
Collections.sort(targetList);
|
|
@@ -377,6 +389,10 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
if (Objects.nonNull(reportCourseEvaluationResultDetailDto)) {
|
|
if (Objects.nonNull(reportCourseEvaluationResultDetailDto)) {
|
|
trBasicInfo.getReportResult().setCourseEvaluationResultDetailInfo(reportCourseEvaluationResultDetailDto);
|
|
trBasicInfo.getReportResult().setCourseEvaluationResultDetailInfo(reportCourseEvaluationResultDetailDto);
|
|
}
|
|
}
|
|
|
|
+ if (Objects.nonNull(paramsMap.get("targetMap"))) {
|
|
|
|
+ Map<Long, CourseTargetWeightDto> targetMap = (Map<Long, CourseTargetWeightDto>) paramsMap.get("targetMap");
|
|
|
|
+ trBasicInfo.setCourseEvaluationResultDetail(JacksonUtil.parseJson(targetMap));
|
|
|
|
+ }
|
|
|
|
|
|
trBasicInfo.getReportResult().setCommonInfo(new ReportCommonDto(markPaper.getExamId(), markPaper.getCourseCode(), markPaper.getCourseName(), markPaper.getPaperNumber()));
|
|
trBasicInfo.getReportResult().setCommonInfo(new ReportCommonDto(markPaper.getExamId(), markPaper.getCourseCode(), markPaper.getCourseName(), markPaper.getPaperNumber()));
|
|
return trBasicInfo;
|
|
return trBasicInfo;
|