|
@@ -11,12 +11,10 @@ import com.deepoove.poi.data.style.RowStyle;
|
|
import com.google.gson.reflect.TypeToken;
|
|
import com.google.gson.reflect.TypeToken;
|
|
import com.qmth.distributed.print.business.bean.dto.*;
|
|
import com.qmth.distributed.print.business.bean.dto.*;
|
|
import com.qmth.distributed.print.business.bean.dto.report.*;
|
|
import com.qmth.distributed.print.business.bean.dto.report.*;
|
|
-import com.qmth.distributed.print.business.bean.result.ObeCourseWeightResult;
|
|
|
|
import com.qmth.distributed.print.business.bean.result.FinalScoreResult;
|
|
import com.qmth.distributed.print.business.bean.result.FinalScoreResult;
|
|
|
|
+import com.qmth.distributed.print.business.bean.result.ObeCourseWeightResult;
|
|
import com.qmth.distributed.print.business.bean.result.report.PaperStructDimensionResult;
|
|
import com.qmth.distributed.print.business.bean.result.report.PaperStructDimensionResult;
|
|
import com.qmth.distributed.print.business.bean.result.report.word.CourseReportBean;
|
|
import com.qmth.distributed.print.business.bean.result.report.word.CourseReportBean;
|
|
-import com.qmth.distributed.print.business.bean.result.report.word.CourseTargetTableBean3;
|
|
|
|
-import com.qmth.distributed.print.business.bean.result.report.word.CourseTargetTableBean4;
|
|
|
|
import com.qmth.distributed.print.business.entity.TCPaperStruct;
|
|
import com.qmth.distributed.print.business.entity.TCPaperStruct;
|
|
import com.qmth.distributed.print.business.entity.TRBasicInfo;
|
|
import com.qmth.distributed.print.business.entity.TRBasicInfo;
|
|
import com.qmth.distributed.print.business.entity.TRExamStudent;
|
|
import com.qmth.distributed.print.business.entity.TRExamStudent;
|
|
@@ -36,6 +34,8 @@ import com.qmth.teachcloud.mark.bean.archivescore.ScoreRangeVo;
|
|
import com.qmth.teachcloud.mark.entity.MarkPaper;
|
|
import com.qmth.teachcloud.mark.entity.MarkPaper;
|
|
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
|
|
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
|
|
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
|
|
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
|
|
|
|
+import org.slf4j.Logger;
|
|
|
|
+import org.slf4j.LoggerFactory;
|
|
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;
|
|
@@ -57,6 +57,7 @@ import java.util.stream.Collectors;
|
|
*/
|
|
*/
|
|
@Service
|
|
@Service
|
|
public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBasicInfo> implements TRBasicInfoService {
|
|
public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBasicInfo> implements TRBasicInfoService {
|
|
|
|
+ private final static Logger log = LoggerFactory.getLogger(TRBasicInfoServiceImpl.class);
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
TCFinalScoreService tcFinalScoreService;
|
|
TCFinalScoreService tcFinalScoreService;
|
|
@@ -142,6 +143,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
*
|
|
*
|
|
* @param trBasicInfo
|
|
* @param trBasicInfo
|
|
* @param paperStructDimensionResultList
|
|
* @param paperStructDimensionResultList
|
|
|
|
+ * @param obeCourseWeightResult
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
@@ -184,24 +186,22 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
if (!CollectionUtils.isEmpty(courseWeightDetailDtoList)) {
|
|
if (!CollectionUtils.isEmpty(courseWeightDetailDtoList)) {
|
|
List<ReportEvaluationDto> reportEvaluationDtoList = new ArrayList<>(courseWeightDetailDtoList.size());
|
|
List<ReportEvaluationDto> reportEvaluationDtoList = new ArrayList<>(courseWeightDetailDtoList.size());
|
|
List<ReportEvaluationDto> usualScoreDetailList = new ArrayList<>(courseWeightDetailDtoList.size());
|
|
List<ReportEvaluationDto> usualScoreDetailList = new ArrayList<>(courseWeightDetailDtoList.size());
|
|
- // TODO: 2024/6/6 fix
|
|
|
|
|
|
+// UsualScoreWordDto usualScoreWordDto = new UsualScoreWordDto(courseWeightResult.getCustomRate());
|
|
UsualScoreWordDto usualScoreWordDto = new UsualScoreWordDto();
|
|
UsualScoreWordDto usualScoreWordDto = new UsualScoreWordDto();
|
|
usualScoreWordDto.setUsualScoreDetailList(usualScoreDetailList);
|
|
usualScoreWordDto.setUsualScoreDetailList(usualScoreDetailList);
|
|
BigDecimal usualScoreTargetSumScore = new BigDecimal(0);//平常作业目标总分
|
|
BigDecimal usualScoreTargetSumScore = new BigDecimal(0);//平常作业目标总分
|
|
for (CourseWeightDetailDto courseWeightDetailDto : courseWeightDetailDtoList) {
|
|
for (CourseWeightDetailDto courseWeightDetailDto : courseWeightDetailDtoList) {
|
|
//期末考试
|
|
//期末考试
|
|
if (courseWeightDetailDto.getEnable() && Objects.equals(courseWeightDetailDto.getEvaluationName(), SystemConstant.FINAL_SCORE_STR)) {
|
|
if (courseWeightDetailDto.getEnable() && Objects.equals(courseWeightDetailDto.getEvaluationName(), SystemConstant.FINAL_SCORE_STR)) {
|
|
- // TODO: 2024/6/6 fix
|
|
|
|
- FinalScoreWordDto finalScoreWordDto = new FinalScoreWordDto();
|
|
|
|
|
|
+ FinalScoreWordDto finalScoreWordDto = new FinalScoreWordDto(courseWeightDto.getCourseTargetId(), courseWeightDetailDto);
|
|
courseTargetWordDto.setFinalScoreDto(finalScoreWordDto);
|
|
courseTargetWordDto.setFinalScoreDto(finalScoreWordDto);
|
|
- // TODO: 2024/6/6 fix
|
|
|
|
- ReportEvaluationDto reportEvaluationDto = new ReportEvaluationDto();
|
|
|
|
|
|
+ ReportEvaluationDto reportEvaluationDto = new ReportEvaluationDto(courseWeightDto.getCourseTargetId(), courseWeightDetailDto, 0.0d);
|
|
reportEvaluationDtoList.add(reportEvaluationDto);
|
|
reportEvaluationDtoList.add(reportEvaluationDto);
|
|
}//非期末考试
|
|
}//非期末考试
|
|
else if (courseWeightDetailDto.getEnable() && !Objects.equals(courseWeightDetailDto.getEvaluationName(), SystemConstant.FINAL_SCORE_STR)) {
|
|
else if (courseWeightDetailDto.getEnable() && !Objects.equals(courseWeightDetailDto.getEvaluationName(), SystemConstant.FINAL_SCORE_STR)) {
|
|
- BigDecimal usualScoreRealityWeight = usualScoreWordDto.getUsualScoreTargetSumWeight().divide(SystemConstant.PERCENT, 2, BigDecimal.ROUND_HALF_UP).multiply(courseWeightDetailDto.getWeight()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
- Double originalTargetScore = courseWeightDto.getTotalWeight().multiply(courseWeightDetailDto.getWeight()).divide(SystemConstant.PERCENT, 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
|
- ReportEvaluationDto reportEvaluationDto = new ReportEvaluationDto(courseWeightDto.getCourseTargetId(), courseWeightDetailDto, usualScoreRealityWeight, 0.0d, originalTargetScore);
|
|
|
|
|
|
+// BigDecimal usualScoreRealityWeight = usualScoreWordDto.getUsualScoreTargetSumWeight().divide(SystemConstant.PERCENT, 2, BigDecimal.ROUND_HALF_UP).multiply(courseWeightDetailDto.getWeight()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+// Double originalTargetScore = courseWeightDto.getTotalWeight().multiply(courseWeightDetailDto.getWeight()).divide(SystemConstant.PERCENT, 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
|
+ ReportEvaluationDto reportEvaluationDto = new ReportEvaluationDto(courseWeightDto.getCourseTargetId(), courseWeightDetailDto, 0.0d);
|
|
usualScoreTargetSumScore = usualScoreTargetSumScore.add(reportEvaluationDto.getTargetScore());
|
|
usualScoreTargetSumScore = usualScoreTargetSumScore.add(reportEvaluationDto.getTargetScore());
|
|
usualScoreDetailList.add(reportEvaluationDto);
|
|
usualScoreDetailList.add(reportEvaluationDto);
|
|
reportEvaluationDtoList.add(reportEvaluationDto);
|
|
reportEvaluationDtoList.add(reportEvaluationDto);
|
|
@@ -270,7 +270,9 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
Double dimensionScoreSum = dimensionDtoList.stream().mapToDouble(DimensionDto::getDimensionScore).sum();
|
|
Double dimensionScoreSum = dimensionDtoList.stream().mapToDouble(DimensionDto::getDimensionScore).sum();
|
|
List<String> dimensionDtoNameList = dimensionDtoList.stream().map(s -> s.getDimensionName()).collect(Collectors.toList());
|
|
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);
|
|
|
|
|
|
+ if (Objects.nonNull(finalTargetWordMap.get(k).getFinalScoreDto())) {
|
|
|
|
+ finalTargetWordMap.get(k).getFinalScoreDto().setDimensionList(dimensionDtoList);
|
|
|
|
+ }
|
|
finalTargetWordMap.get(k).setDimensionScoreSum(dimensionScoreSum);
|
|
finalTargetWordMap.get(k).setDimensionScoreSum(dimensionScoreSum);
|
|
finalTargetWordMap.get(k).setDimensionPoint(String.join(",", dimensionDtoNameList));
|
|
finalTargetWordMap.get(k).setDimensionPoint(String.join(",", dimensionDtoNameList));
|
|
}
|
|
}
|
|
@@ -328,9 +330,38 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
if (Objects.nonNull(targetAvg) && Objects.equals(targetAvg.getName(), "平均分") && Objects.nonNull(targetAvg.getResultDetail())) {
|
|
if (Objects.nonNull(targetAvg) && Objects.equals(targetAvg.getName(), "平均分") && Objects.nonNull(targetAvg.getResultDetail())) {
|
|
List<ReportExamStudentTargetDto> reportExamStudentTargetAvgDtoList = GsonUtil.fromJson(targetAvg.getResultDetail(), new TypeToken<List<ReportExamStudentTargetDto>>() {
|
|
List<ReportExamStudentTargetDto> reportExamStudentTargetAvgDtoList = GsonUtil.fromJson(targetAvg.getResultDetail(), new TypeToken<List<ReportExamStudentTargetDto>>() {
|
|
}.getType());
|
|
}.getType());
|
|
|
|
+ List<TRExamStudent> trExamStudentNewList = new ArrayList<>();
|
|
|
|
+ trExamStudentNewList.addAll(trExamStudentList);
|
|
|
|
+
|
|
|
|
+ trExamStudentNewList.remove(trExamStudentNewList.size() - 1);
|
|
|
|
+ trExamStudentNewList.remove(trExamStudentNewList.size() - 1);
|
|
|
|
+ trExamStudentNewList.remove(trExamStudentNewList.size() - 1);
|
|
|
|
+ Map<Long, BigDecimal> targetEvaluationValueMap = new HashMap<>();
|
|
|
|
+ Map<Long, Integer> targetEvaluationValueSizeMap = new HashMap<>();
|
|
|
|
+ for (TRExamStudent trExamStudent : trExamStudentNewList) {
|
|
|
|
+ List<ReportExamStudentTargetDto> targetList = GsonUtil.fromJson(trExamStudent.getResultDetail(), new TypeToken<List<ReportExamStudentTargetDto>>() {
|
|
|
|
+ }.getType());
|
|
|
|
+ for (ReportExamStudentTargetDto r : targetList) {
|
|
|
|
+ if (targetEvaluationValueMap.containsKey(r.getTargetId())) {
|
|
|
|
+ BigDecimal targetEvaluationValueTemp = targetEvaluationValueMap.get(r.getTargetId());
|
|
|
|
+ BigDecimal targetEvaluationValue = new BigDecimal(0);
|
|
|
|
+ targetEvaluationValue = targetEvaluationValue.add(r.getMatrixDegree()).add(targetEvaluationValueTemp);
|
|
|
|
+ targetEvaluationValueMap.put(r.getTargetId(), targetEvaluationValue);
|
|
|
|
+
|
|
|
|
+ Integer size = targetEvaluationValueSizeMap.get(r.getTargetId());
|
|
|
|
+ targetEvaluationValueSizeMap.put(r.getTargetId(), size + 1);
|
|
|
|
+ } else {
|
|
|
|
+ BigDecimal targetEvaluationValue = new BigDecimal(0);
|
|
|
|
+ targetEvaluationValue = targetEvaluationValue.add(r.getMatrixDegree());
|
|
|
|
+ targetEvaluationValueMap.put(r.getTargetId(), targetEvaluationValue);
|
|
|
|
+ targetEvaluationValueSizeMap.put(r.getTargetId(), 1);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
for (ReportExamStudentTargetDto r : reportExamStudentTargetAvgDtoList) {
|
|
for (ReportExamStudentTargetDto r : reportExamStudentTargetAvgDtoList) {
|
|
Double targetAvgSumScore = 0.0d;//平均分总和
|
|
Double targetAvgSumScore = 0.0d;//平均分总和
|
|
BigDecimal targetSumScore = new BigDecimal(0);//目标分总和
|
|
BigDecimal targetSumScore = new BigDecimal(0);//目标分总和
|
|
|
|
+// BigDecimal targetEvaluationValue = new BigDecimal(0);
|
|
if (targetWebMap.containsKey(r.getTargetId())) {
|
|
if (targetWebMap.containsKey(r.getTargetId())) {
|
|
CourseTargetWebDto courseTargetWebDto = targetWebMap.get(r.getTargetId());
|
|
CourseTargetWebDto courseTargetWebDto = targetWebMap.get(r.getTargetId());
|
|
CourseTargetWordDto courseTargetWordDto = targetWordMap.get(r.getTargetId());
|
|
CourseTargetWordDto courseTargetWordDto = targetWordMap.get(r.getTargetId());
|
|
@@ -342,10 +373,16 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
ReportExamStudentUsualScoreDto reportExamStudentUsualScoreDto = r.getUsualScore();
|
|
ReportExamStudentUsualScoreDto reportExamStudentUsualScoreDto = r.getUsualScore();
|
|
|
|
|
|
//期末成绩换算
|
|
//期末成绩换算
|
|
- ReportEvaluationDto reportEvaluationDto = reportEvaluationDtoMap.get(reportExamStudentFinalScoreDto.getEvaluationId());
|
|
|
|
- reportEvaluationDto.setTargetAvgScore(reportExamStudentFinalScoreDto.getMatrixAvgScore());
|
|
|
|
- targetAvgSumScore = targetAvgSumScore + reportEvaluationDto.getTargetAvgScore();
|
|
|
|
- targetSumScore = targetSumScore.add(reportEvaluationDto.getTargetScore());
|
|
|
|
|
|
+ ReportEvaluationDto reportEvaluationDto = null;
|
|
|
|
+ if (Objects.nonNull(reportExamStudentFinalScoreDto)) {
|
|
|
|
+ reportEvaluationDto = reportEvaluationDtoMap.get(reportExamStudentFinalScoreDto.getEvaluationId());
|
|
|
|
+ reportEvaluationDto.setTargetAvgScore(reportExamStudentFinalScoreDto.getMatrixAvgScore());
|
|
|
|
+ targetAvgSumScore = targetAvgSumScore + reportEvaluationDto.getTargetAvgScore();
|
|
|
|
+ targetSumScore = targetSumScore.add(reportEvaluationDto.getTargetScore());
|
|
|
|
+// BigDecimal bigDecimal = new BigDecimal(reportExamStudentFinalScoreDto.getTargetScoreSum()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+// BigDecimal targetEvaluationValueTemp = bigDecimal.divide(reportEvaluationDto.getTargetScore(), 2, BigDecimal.ROUND_HALF_UP).multiply(reportEvaluationDto.getTargetWeight().divide(courseTargetWebDto.getTargetSumWeight(), 2, BigDecimal.ROUND_HALF_UP)).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+// targetEvaluationValue = targetEvaluationValue.add(targetEvaluationValueTemp);
|
|
|
|
+ }
|
|
|
|
|
|
//平时作业换算
|
|
//平时作业换算
|
|
List<ReportExamStudentUsualScoreObjDto> reportExamStudentUsualScoreObjDtoList = reportExamStudentUsualScoreDto.getScoreList();
|
|
List<ReportExamStudentUsualScoreObjDto> reportExamStudentUsualScoreObjDtoList = reportExamStudentUsualScoreDto.getScoreList();
|
|
@@ -354,14 +391,22 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
reportEvaluationDto.setTargetAvgScore(reportExamStudentUsualScoreObjDto.getMatrixAvgScore());
|
|
reportEvaluationDto.setTargetAvgScore(reportExamStudentUsualScoreObjDto.getMatrixAvgScore());
|
|
targetAvgSumScore = targetAvgSumScore + reportEvaluationDto.getTargetAvgScore();
|
|
targetAvgSumScore = targetAvgSumScore + reportEvaluationDto.getTargetAvgScore();
|
|
targetSumScore = targetSumScore.add(reportEvaluationDto.getTargetScore());
|
|
targetSumScore = targetSumScore.add(reportEvaluationDto.getTargetScore());
|
|
|
|
+// BigDecimal bigDecimal = new BigDecimal(reportExamStudentUsualScoreObjDto.getScore()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+// BigDecimal targetEvaluationValueTemp = bigDecimal.divide(reportEvaluationDto.getTargetScore(), 2, BigDecimal.ROUND_HALF_UP).multiply(reportEvaluationDto.getTargetWeight().divide(courseTargetWebDto.getTargetSumWeight(), 2, BigDecimal.ROUND_HALF_UP)).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+// targetEvaluationValue = targetEvaluationValue.add(targetEvaluationValueTemp);
|
|
}
|
|
}
|
|
|
|
|
|
//计算目标达成度
|
|
//计算目标达成度
|
|
- BigDecimal targetEvaluationValue = new BigDecimal(targetAvgSumScore).divide(targetSumScore, 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
- courseTargetWebDto.setEvaluationValue(targetEvaluationValue);
|
|
|
|
- if (targetEvaluationSumValue.compareTo(new BigDecimal(0)) == 0 || targetEvaluationSumValue.compareTo(targetEvaluationValue) == 1) {
|
|
|
|
- targetEvaluationSumValue = targetEvaluationValue;
|
|
|
|
|
|
+ //目标下各平均分总和/科目目标分
|
|
|
|
+ BigDecimal targetEvaluationValue = new BigDecimal(0);
|
|
|
|
+ if (targetEvaluationValueMap.containsKey(r.getTargetId())) {
|
|
|
|
+ targetEvaluationValue = targetEvaluationValueMap.get(r.getTargetId()).divide(new BigDecimal(targetEvaluationValueSizeMap.get(r.getTargetId())), 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
}
|
|
}
|
|
|
|
+// BigDecimal targetEvaluationValue = new BigDecimal(targetAvgSumScore).divide(targetSumScore, 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ courseTargetWebDto.setEvaluationValue(targetEvaluationValue);
|
|
|
|
+// if (targetEvaluationSumValue.compareTo(new BigDecimal(0)) == 0 || targetEvaluationSumValue.compareTo(targetEvaluationValue) == 1) {
|
|
|
|
+// targetEvaluationSumValue = targetEvaluationValue;
|
|
|
|
+// }
|
|
courseTargetWordDto.setEvaluationValue(targetEvaluationValue);
|
|
courseTargetWordDto.setEvaluationValue(targetEvaluationValue);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -421,8 +466,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
trBasicInfo.getReportResult().setCourseEvaluationSpreadInfo(reportCourseEvaluationSpreadDto);
|
|
trBasicInfo.getReportResult().setCourseEvaluationSpreadInfo(reportCourseEvaluationSpreadDto);
|
|
}
|
|
}
|
|
|
|
|
|
- Map<String, Object> paramsMap = trBasicInfoService.getReportCalculateParams(trBasicInfo, paperStructDimensionResultList,
|
|
|
|
- obeCourseWeightResult);
|
|
|
|
|
|
+ Map<String, Object> paramsMap = trBasicInfoService.getReportCalculateParams(trBasicInfo, paperStructDimensionResultList, obeCourseWeightResult);
|
|
|
|
|
|
//课程目标达成评价明细结果-考生集合
|
|
//课程目标达成评价明细结果-考生集合
|
|
List<ReportExamStudentDto> examStudentNewList = trExamStudentService.getExamStudentReportDetail(trBasicInfo, paramsMap);
|
|
List<ReportExamStudentDto> examStudentNewList = trExamStudentService.getExamStudentReportDetail(trBasicInfo, paramsMap);
|
|
@@ -468,13 +512,13 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
@Override
|
|
@Override
|
|
public TableRenderData buildWordTable1(List<CourseTargetWordDto> courseTargetWordDtoList) {
|
|
public TableRenderData buildWordTable1(List<CourseTargetWordDto> courseTargetWordDtoList) {
|
|
//table1课程目标目标与毕业要求指标点的对应关系
|
|
//table1课程目标目标与毕业要求指标点的对应关系
|
|
- RowRenderData header1 = Rows.of("课程目标", "毕业要求指标点").rowStyle(this.getHeadRowStyle()).create();
|
|
|
|
- Tables.TableBuilder tableBuilder1 = Tables.ofPercentWidth(tbPercentWidth, new int[]{25, 75});
|
|
|
|
|
|
+ RowRenderData header1 = Rows.of("课程目标", "毕业要求指标点", "毕业要求").rowStyle(this.getHeadRowStyle()).create();
|
|
|
|
+ Tables.TableBuilder tableBuilder1 = Tables.ofPercentWidth(tbPercentWidth, new int[]{20, 40, 40});
|
|
tableBuilder1.addRow(header1);
|
|
tableBuilder1.addRow(header1);
|
|
|
|
|
|
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);
|
|
- RowRenderData row = Rows.of(courseTargetWordDto.getTargetName(), courseTargetWordDto.getGraduationRequirement()).rowStyle(this.getRowStyle()).create();
|
|
|
|
|
|
+ RowRenderData row = Rows.of(courseTargetWordDto.getTargetName(), courseTargetWordDto.getGraduationRequirement(), courseTargetWordDto.getGraduationRequirementPoint()).rowStyle(this.getRowStyle()).create();
|
|
tableBuilder1.addRow(row);
|
|
tableBuilder1.addRow(row);
|
|
}
|
|
}
|
|
return tableBuilder1.left().create();
|
|
return tableBuilder1.left().create();
|
|
@@ -488,34 +532,120 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public TableRenderData buildWordTable2(List<CourseTargetWordDto> courseTargetWordDtoList) {
|
|
public TableRenderData buildWordTable2(List<CourseTargetWordDto> courseTargetWordDtoList) {
|
|
- RowRenderData header2_1 = Rows.of("课程目标", "支撑毕业要求", "考核/评价环节及目标分值", "", "目标分值统计").rowStyle(this.getHeadRowStyle()).create();
|
|
|
|
- RowRenderData header2_2 = Rows.of("课程目标", "支撑毕业要求", "平时成绩", "期末考试", "目标分值统计").rowStyle(this.getHeadRowStyle()).center().create();
|
|
|
|
- RowRenderData[] rowRenderData2 = new RowRenderData[courseTargetWordDtoList.size() + 3];
|
|
|
|
- BigDecimal usualScoreTargetSum = new BigDecimal(0), finalScoreTargetSum = new BigDecimal(0);
|
|
|
|
|
|
+ Set<String> header2_1_set = new LinkedHashSet<>();
|
|
|
|
+ header2_1_set.add("课程目标");
|
|
|
|
+ header2_1_set.add("考核项目及比例(%)");
|
|
|
|
+
|
|
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);
|
|
|
|
+ UsualScoreWordDto usualScoreWordDto = courseTargetWordDto.getUsualScoreDto();
|
|
|
|
+ if (Objects.nonNull(usualScoreWordDto) && !CollectionUtils.isEmpty(usualScoreWordDto.getUsualScoreDetailList())) {
|
|
|
|
+ Set<String> headTemp = usualScoreWordDto.getUsualScoreDetailList().stream().map(s -> s.getEvaluation()).collect(Collectors.toSet());
|
|
|
|
+ header2_1_set.addAll(headTemp);
|
|
|
|
+ }
|
|
FinalScoreWordDto finalScoreWordDto = courseTargetWordDto.getFinalScoreDto();
|
|
FinalScoreWordDto finalScoreWordDto = courseTargetWordDto.getFinalScoreDto();
|
|
- finalScoreTargetSum = finalScoreTargetSum.add(finalScoreWordDto.getFinalScoreTargetSumScore());
|
|
|
|
|
|
+ if (Objects.nonNull(finalScoreWordDto)) {
|
|
|
|
+ header2_1_set.add(finalScoreWordDto.getEvaluation());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ List<CellRenderData> cells_1 = new ArrayList<>(), cells_2 = new ArrayList<>();
|
|
|
|
+ cells_1.add(Cells.of("课程目标").center().create());
|
|
|
|
+ cells_1.add(Cells.of("考核项目及比例(%)").center().create());
|
|
|
|
+ cells_2.add(Cells.of("课程目标").center().create());
|
|
|
|
+
|
|
|
|
+ List<String> list = new ArrayList<>(header2_1_set);
|
|
|
|
+ for (int i = 2; i < list.size(); i++) {
|
|
|
|
+ cells_2.add(Cells.of(list.get(i)).center().create());
|
|
|
|
+ if (i < list.size() - 1) {
|
|
|
|
+ cells_1.add(Cells.of("").center().create());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ cells_1.add(Cells.of("权重(%)").center().create());
|
|
|
|
+ cells_2.add(Cells.of("权重(%)").center().create());
|
|
|
|
|
|
|
|
+ RowRenderData[] rowRenderData2 = new RowRenderData[courseTargetWordDtoList.size() + 3];
|
|
|
|
+ RowRenderData header2_1 = new RowRenderData();
|
|
|
|
+ header2_1.setCells(cells_1);
|
|
|
|
+ header2_1.setRowStyle(this.getHeadRowStyle());
|
|
|
|
+
|
|
|
|
+ RowRenderData header2_2 = new RowRenderData();
|
|
|
|
+ header2_2.setCells(cells_2);
|
|
|
|
+ header2_2.setRowStyle(this.getHeadRowStyle());
|
|
|
|
+
|
|
|
|
+ list.remove(0);
|
|
|
|
+ list.remove(0);
|
|
|
|
+
|
|
|
|
+ RowRenderData totalRow = new RowRenderData();
|
|
|
|
+ List<CellRenderData> totalCell = new ArrayList<>();
|
|
|
|
+ totalCell.add(Cells.of("合计").create());
|
|
|
|
+ Map<String, BigDecimal> totalMap = new HashMap<>();
|
|
|
|
+ BigDecimal weight = new BigDecimal(0);
|
|
|
|
+ for (int i = 0; i < courseTargetWordDtoList.size(); i++) {
|
|
|
|
+ CourseTargetWordDto courseTargetWordDto = courseTargetWordDtoList.get(i);
|
|
|
|
+ weight = weight.add(courseTargetWordDto.getTargetSumWeight());
|
|
|
|
+ Map<String, BigDecimal> map = new LinkedHashMap<>();
|
|
|
|
+ RowRenderData row = new RowRenderData();
|
|
|
|
+ List<CellRenderData> cell = new ArrayList<>();
|
|
|
|
+ cell.add(Cells.of(courseTargetWordDto.getTargetName()).create());
|
|
UsualScoreWordDto usualScoreWordDto = courseTargetWordDto.getUsualScoreDto();
|
|
UsualScoreWordDto usualScoreWordDto = courseTargetWordDto.getUsualScoreDto();
|
|
- usualScoreTargetSum = usualScoreTargetSum.add(usualScoreWordDto.getUsualScoreTargetSumScore());
|
|
|
|
- rowRenderData2[i + 2] = Rows.of(courseTargetWordDto.getTargetName(), courseTargetWordDto.getGraduationRequirement(), SystemConstant.df.format(usualScoreWordDto.getUsualScoreTargetSumScore()), SystemConstant.df.format(finalScoreWordDto.getFinalScoreTargetSumScore()), SystemConstant.df.format(usualScoreWordDto.getUsualScoreTargetSumScore().add(finalScoreWordDto.getFinalScoreTargetSumScore()))).rowStyle(this.getRowStyle()).create();
|
|
|
|
|
|
+ if (Objects.nonNull(usualScoreWordDto) && !CollectionUtils.isEmpty(usualScoreWordDto.getUsualScoreDetailList())) {
|
|
|
|
+ List<ReportEvaluationDto> reportEvaluationDtoList = usualScoreWordDto.getUsualScoreDetailList();
|
|
|
|
+ for (ReportEvaluationDto r : reportEvaluationDtoList) {
|
|
|
|
+ map.put(r.getEvaluation(), r.getTargetWeight());
|
|
|
|
+ if (totalMap.containsKey(r.getEvaluation())) {
|
|
|
|
+ BigDecimal bigDecimal = totalMap.get(r.getEvaluation());
|
|
|
|
+ bigDecimal = bigDecimal.add(r.getTargetWeight());
|
|
|
|
+ totalMap.put(r.getEvaluation(), bigDecimal);
|
|
|
|
+ } else {
|
|
|
|
+ totalMap.put(r.getEvaluation(), r.getTargetWeight());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ FinalScoreWordDto finalScoreWordDto = courseTargetWordDto.getFinalScoreDto();
|
|
|
|
+ if (Objects.nonNull(finalScoreWordDto)) {
|
|
|
|
+ map.put(finalScoreWordDto.getEvaluation(), finalScoreWordDto.getFinalScoreSumWeight());
|
|
|
|
+ if (totalMap.containsKey(finalScoreWordDto.getEvaluation())) {
|
|
|
|
+ BigDecimal bigDecimal = totalMap.get(finalScoreWordDto.getEvaluation());
|
|
|
|
+ bigDecimal = bigDecimal.add(finalScoreWordDto.getFinalScoreSumWeight());
|
|
|
|
+ totalMap.put(finalScoreWordDto.getEvaluation(), bigDecimal);
|
|
|
|
+ } else {
|
|
|
|
+ totalMap.put(finalScoreWordDto.getEvaluation(), finalScoreWordDto.getFinalScoreSumWeight());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ for (String s : list) {
|
|
|
|
+ if (map.containsKey(s)) {
|
|
|
|
+ cell.add(Cells.of(map.get(s) + "").create());
|
|
|
|
+ } else {
|
|
|
|
+ cell.add(Cells.of("").create());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ cell.add(Cells.of(courseTargetWordDto.getTargetSumWeight() + "").create());
|
|
|
|
+ row.setCells(cell);
|
|
|
|
+ row.setRowStyle(this.getRowStyle());
|
|
|
|
+ rowRenderData2[i + 2] = row;
|
|
}
|
|
}
|
|
rowRenderData2[0] = header2_1;
|
|
rowRenderData2[0] = header2_1;
|
|
rowRenderData2[1] = header2_2;
|
|
rowRenderData2[1] = header2_2;
|
|
|
|
|
|
- RowRenderData header2_foot = Rows.of("合计", "", SystemConstant.df.format(usualScoreTargetSum), SystemConstant.df.format(finalScoreTargetSum), SystemConstant.df.format(usualScoreTargetSum.add(finalScoreTargetSum))).rowStyle(this.getRowStyle()).create();
|
|
|
|
- rowRenderData2[rowRenderData2.length - 1] = header2_foot;
|
|
|
|
|
|
+ for (String s : list) {
|
|
|
|
+ if (totalMap.containsKey(s)) {
|
|
|
|
+ totalCell.add(Cells.of(totalMap.get(s) + "").create());
|
|
|
|
+ } else {
|
|
|
|
+ totalCell.add(Cells.of("").create());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ totalCell.add(Cells.of(weight + "").create());
|
|
|
|
+ totalRow.setCells(totalCell);
|
|
|
|
+ totalRow.setRowStyle(this.getRowStyle());
|
|
|
|
+ rowRenderData2[rowRenderData2.length - 1] = totalRow;
|
|
|
|
|
|
// 表格合并,根据坐标
|
|
// 表格合并,根据坐标
|
|
MergeCellRule mergeCellRule2 = MergeCellRule.builder().map(MergeCellRule.Grid.of(0, 0), MergeCellRule.Grid.of(1, 0)).
|
|
MergeCellRule mergeCellRule2 = MergeCellRule.builder().map(MergeCellRule.Grid.of(0, 0), MergeCellRule.Grid.of(1, 0)).
|
|
- map(MergeCellRule.Grid.of(0, 1), MergeCellRule.Grid.of(1, 1)).
|
|
|
|
- map(MergeCellRule.Grid.of(0, 2), MergeCellRule.Grid.of(0, 3)).
|
|
|
|
- map(MergeCellRule.Grid.of(0, 4), MergeCellRule.Grid.of(1, 4)).
|
|
|
|
|
|
+ map(MergeCellRule.Grid.of(0, 1), MergeCellRule.Grid.of(0, list.size())).
|
|
map(MergeCellRule.Grid.of(rowRenderData2.length - 1, 0), MergeCellRule.Grid.of(rowRenderData2.length - 1, 1)).
|
|
map(MergeCellRule.Grid.of(rowRenderData2.length - 1, 0), MergeCellRule.Grid.of(rowRenderData2.length - 1, 1)).
|
|
build();
|
|
build();
|
|
|
|
|
|
- Tables.TableBuilder tableBuilder2 = Tables.ofPercentWidth(tbPercentWidth, new int[]{25, 26, 16, 16, 17});
|
|
|
|
|
|
+ Tables.TableBuilder tableBuilder2 = Tables.ofPercentWidth(tbPercentWidth);
|
|
for (int i = 0; i < rowRenderData2.length; i++) {
|
|
for (int i = 0; i < rowRenderData2.length; i++) {
|
|
tableBuilder2.addRow(rowRenderData2[i]);
|
|
tableBuilder2.addRow(rowRenderData2[i]);
|
|
}
|
|
}
|
|
@@ -523,96 +653,100 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 构建word动态表格3
|
|
|
|
- *
|
|
|
|
- * @param courseTargetWordDtoList
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- public TableRenderData buildWordTable3(List<CourseTargetWordDto> courseTargetWordDtoList) {
|
|
|
|
- RowRenderData header3_1 = Rows.of("序号", "项目", "考核内容及要求", "目标分值", "对应的课程目标").rowStyle(this.getHeadRowStyle()).create();
|
|
|
|
- String tableFootTitle3 = "合计${usualScoreSum}分,占课程总评成绩的${usualScoreSumWeight}%";
|
|
|
|
- List<CourseTargetTableBean3> courseTargetTableBean3List = new ArrayList<>();
|
|
|
|
- BigDecimal usualScoreSum3 = new BigDecimal(0), usualScoreTargetSumWeight3 = new BigDecimal(0);
|
|
|
|
- Integer seq3 = 1;
|
|
|
|
- for (CourseTargetWordDto courseTargetWordDto : courseTargetWordDtoList) {
|
|
|
|
- UsualScoreWordDto usualScoreWordDto = courseTargetWordDto.getUsualScoreDto();
|
|
|
|
- List<ReportEvaluationDto> reportEvaluationDtoList = usualScoreWordDto.getUsualScoreDetailList();
|
|
|
|
- for (int i = 0; i < reportEvaluationDtoList.size(); i++) {
|
|
|
|
- ReportEvaluationDto reportEvaluationDto = reportEvaluationDtoList.get(i);
|
|
|
|
- CourseTargetTableBean3 courseTargetTableBean3 = new CourseTargetTableBean3(seq3++, reportEvaluationDto.getEvaluation(), reportEvaluationDto.getEvaluationDesc(), new BigDecimal(SystemConstant.df.format(reportEvaluationDto.getOriginalTargetScore())), courseTargetWordDto.getTargetName());
|
|
|
|
- courseTargetTableBean3List.add(courseTargetTableBean3);
|
|
|
|
- usualScoreSum3 = usualScoreSum3.add(new BigDecimal(reportEvaluationDto.getOriginalTargetScore()));
|
|
|
|
- }
|
|
|
|
- usualScoreTargetSumWeight3 = usualScoreTargetSumWeight3.add(usualScoreWordDto.getUsualScoreTargetSumWeight());
|
|
|
|
- }
|
|
|
|
- usualScoreTargetSumWeight3 = usualScoreTargetSumWeight3.divide(new BigDecimal(courseTargetWordDtoList.size()), 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
- tableFootTitle3 = tableFootTitle3.replace("${usualScoreSum}", SystemConstant.df.format(usualScoreSum3));
|
|
|
|
- tableFootTitle3 = tableFootTitle3.replace("${usualScoreSumWeight}", SystemConstant.df.format(usualScoreTargetSumWeight3));
|
|
|
|
-
|
|
|
|
- RowRenderData[] rowRenderData3 = new RowRenderData[courseTargetTableBean3List.size() + 2];
|
|
|
|
- for (int i = 0; i < courseTargetTableBean3List.size(); i++) {
|
|
|
|
- CourseTargetTableBean3 courseTargetTableBean3 = courseTargetTableBean3List.get(i);
|
|
|
|
- rowRenderData3[i + 1] = Rows.of(courseTargetTableBean3.getNum().toString(), courseTargetTableBean3.getProject(), courseTargetTableBean3.getContent(), SystemConstant.df.format(courseTargetTableBean3.getTarget()), courseTargetTableBean3.getCourseTarget()).rowStyle(this.getRowStyle()).create();
|
|
|
|
- }
|
|
|
|
- rowRenderData3[0] = header3_1;
|
|
|
|
- RowRenderData header3_foot = Rows.of(tableFootTitle3, "", "", "", "").center().create();
|
|
|
|
- rowRenderData3[rowRenderData3.length - 1] = header3_foot;
|
|
|
|
-
|
|
|
|
- //表格合并,根据坐标
|
|
|
|
- MergeCellRule mergeCellRule3 = MergeCellRule.builder().map(MergeCellRule.Grid.of(rowRenderData3.length - 1, 0), MergeCellRule.Grid.of(rowRenderData3.length - 1, 4)).
|
|
|
|
- build();
|
|
|
|
-
|
|
|
|
- Tables.TableBuilder tableBuilder3 = Tables.ofPercentWidth(tbPercentWidth, new int[]{8, 20, 37, 14, 21});
|
|
|
|
- for (int i = 0; i < rowRenderData3.length; i++) {
|
|
|
|
- tableBuilder3.addRow(rowRenderData3[i]);
|
|
|
|
- }
|
|
|
|
- return tableBuilder3.mergeRule(mergeCellRule3).left().create();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 构建word动态表格4
|
|
|
|
- *
|
|
|
|
- * @param courseTargetWordDtoList
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- public TableRenderData buildWordTable4(List<CourseTargetWordDto> courseTargetWordDtoList) {
|
|
|
|
- RowRenderData header4_1 = Rows.of("序号", "考核项目", "考核内容所涵盖的知识单元", "目标分值", "对应的课程目标").rowStyle(this.getHeadRowStyle()).create();
|
|
|
|
- List<CourseTargetTableBean4> courseTargetTableBean4List = new ArrayList<>();
|
|
|
|
- BigDecimal finalScoreSum4 = new BigDecimal(0), finalScoreTargetSumWeight4 = new BigDecimal(0);
|
|
|
|
- for (int i = 0; i < courseTargetWordDtoList.size(); i++) {
|
|
|
|
- CourseTargetWordDto courseTargetWordDto = courseTargetWordDtoList.get(i);
|
|
|
|
- FinalScoreWordDto finalScoreWordDto = courseTargetWordDto.getFinalScoreDto();
|
|
|
|
- finalScoreSum4 = finalScoreSum4.add(courseTargetWordDto.getTargetSumScore());
|
|
|
|
- finalScoreTargetSumWeight4 = finalScoreTargetSumWeight4.add(finalScoreWordDto.getFinalScoreSumWeight());
|
|
|
|
- CourseTargetTableBean4 courseTargetTableBean4 = new CourseTargetTableBean4((i + 1), courseTargetWordDto.getGraduationRequirement(), courseTargetWordDto.getDimensionPoint(), Double.parseDouble(SystemConstant.df.format(courseTargetWordDto.getTargetSumScore())), courseTargetWordDto.getTargetName());
|
|
|
|
- courseTargetTableBean4List.add(courseTargetTableBean4);
|
|
|
|
- }
|
|
|
|
- finalScoreTargetSumWeight4 = finalScoreTargetSumWeight4.divide(new BigDecimal(courseTargetWordDtoList.size()), 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
- String tableFootTitle4 = "合计${dimensionScoreSum}分,占课程总评成绩的${dimensionSumWeight}%";
|
|
|
|
- tableFootTitle4 = tableFootTitle4.replace("${dimensionScoreSum}", SystemConstant.df.format(finalScoreSum4));
|
|
|
|
- tableFootTitle4 = tableFootTitle4.replace("${dimensionSumWeight}", SystemConstant.df.format(finalScoreTargetSumWeight4));
|
|
|
|
-
|
|
|
|
- RowRenderData[] rowRenderData4 = new RowRenderData[courseTargetTableBean4List.size() + 2];
|
|
|
|
- for (int i = 0; i < courseTargetTableBean4List.size(); i++) {
|
|
|
|
- CourseTargetTableBean4 courseTargetTableBean4 = courseTargetTableBean4List.get(i);
|
|
|
|
- rowRenderData4[i + 1] = Rows.of(courseTargetTableBean4.getNum().toString(), courseTargetTableBean4.getProject(), courseTargetTableBean4.getContent(), SystemConstant.df.format(courseTargetTableBean4.getTargetScore()), courseTargetTableBean4.getCourseTarget()).rowStyle(this.getRowStyle()).create();
|
|
|
|
- }
|
|
|
|
- rowRenderData4[0] = header4_1;
|
|
|
|
- RowRenderData header4_foot = Rows.of(tableFootTitle4, "", "", "", "").center().create();
|
|
|
|
- rowRenderData4[rowRenderData4.length - 1] = header4_foot;
|
|
|
|
-
|
|
|
|
- //表格合并,根据坐标
|
|
|
|
- MergeCellRule mergeCellRule4 = MergeCellRule.builder().map(MergeCellRule.Grid.of(rowRenderData4.length - 1, 0), MergeCellRule.Grid.of(rowRenderData4.length - 1, 4)).
|
|
|
|
- build();
|
|
|
|
-
|
|
|
|
- Tables.TableBuilder tableBuilder4 = Tables.ofPercentWidth(tbPercentWidth, new int[]{8, 20, 37, 14, 21});
|
|
|
|
- for (int i = 0; i < rowRenderData4.length; i++) {
|
|
|
|
- tableBuilder4.addRow(rowRenderData4[i]);
|
|
|
|
- }
|
|
|
|
- return tableBuilder4.mergeRule(mergeCellRule4).left().create();
|
|
|
|
- }
|
|
|
|
|
|
+ // * 构建word动态表格3
|
|
|
|
+ // *
|
|
|
|
+ // * @param courseTargetWordDtoList
|
|
|
|
+ // * @return
|
|
|
|
+ // */
|
|
|
|
+// @Override
|
|
|
|
+// public TableRenderData buildWordTable3(List<CourseTargetWordDto> courseTargetWordDtoList) {
|
|
|
|
+// RowRenderData header3_1 = Rows.of("序号", "项目", "考核内容及要求", "目标分值", "对应的课程目标").rowStyle(this.getHeadRowStyle()).create();
|
|
|
|
+//// String tableFootTitle3 = "合计${usualScoreSum}分,占课程总评成绩的${usualScoreSumWeight}%";
|
|
|
|
+// String tableFootTitle3 = "合计${usualScoreSum}分";
|
|
|
|
+// List<CourseTargetTableBean3> courseTargetTableBean3List = new ArrayList<>();
|
|
|
|
+// BigDecimal usualScoreSum3 = new BigDecimal(0);
|
|
|
|
+//// usualScoreTargetSumWeight3 = new BigDecimal(0);
|
|
|
|
+// Integer seq3 = 1;
|
|
|
|
+// for (CourseTargetWordDto courseTargetWordDto : courseTargetWordDtoList) {
|
|
|
|
+// UsualScoreWordDto usualScoreWordDto = courseTargetWordDto.getUsualScoreDto();
|
|
|
|
+// List<ReportEvaluationDto> reportEvaluationDtoList = usualScoreWordDto.getUsualScoreDetailList();
|
|
|
|
+// for (int i = 0; i < reportEvaluationDtoList.size(); i++) {
|
|
|
|
+// ReportEvaluationDto reportEvaluationDto = reportEvaluationDtoList.get(i);
|
|
|
|
+// CourseTargetTableBean3 courseTargetTableBean3 = new CourseTargetTableBean3(seq3++, reportEvaluationDto.getEvaluation(), reportEvaluationDto.getEvaluationDesc(), new BigDecimal(SystemConstant.df.format(reportEvaluationDto.getOriginalTargetScore())), courseTargetWordDto.getTargetName());
|
|
|
|
+// courseTargetTableBean3List.add(courseTargetTableBean3);
|
|
|
|
+// usualScoreSum3 = usualScoreSum3.add(new BigDecimal(reportEvaluationDto.getOriginalTargetScore()));
|
|
|
|
+// }
|
|
|
|
+//// usualScoreTargetSumWeight3 = usualScoreTargetSumWeight3.add(usualScoreWordDto.getUsualScoreTargetSumWeight());
|
|
|
|
+// }
|
|
|
|
+//// usualScoreTargetSumWeight3 = usualScoreTargetSumWeight3.divide(new BigDecimal(courseTargetWordDtoList.size()), 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+// tableFootTitle3 = tableFootTitle3.replace("${usualScoreSum}", SystemConstant.df.format(usualScoreSum3));
|
|
|
|
+//// tableFootTitle3 = tableFootTitle3.replace("${usualScoreSumWeight}", SystemConstant.df.format(usualScoreTargetSumWeight3));
|
|
|
|
+//
|
|
|
|
+// RowRenderData[] rowRenderData3 = new RowRenderData[courseTargetTableBean3List.size() + 2];
|
|
|
|
+// for (int i = 0; i < courseTargetTableBean3List.size(); i++) {
|
|
|
|
+// CourseTargetTableBean3 courseTargetTableBean3 = courseTargetTableBean3List.get(i);
|
|
|
|
+// rowRenderData3[i + 1] = Rows.of(courseTargetTableBean3.getNum().toString(), courseTargetTableBean3.getProject(), courseTargetTableBean3.getContent(), SystemConstant.df.format(courseTargetTableBean3.getTarget()), courseTargetTableBean3.getCourseTarget()).rowStyle(this.getRowStyle()).create();
|
|
|
|
+// }
|
|
|
|
+// rowRenderData3[0] = header3_1;
|
|
|
|
+// RowRenderData header3_foot = Rows.of(tableFootTitle3, "", "", "", "").center().create();
|
|
|
|
+// rowRenderData3[rowRenderData3.length - 1] = header3_foot;
|
|
|
|
+//
|
|
|
|
+// //表格合并,根据坐标
|
|
|
|
+// MergeCellRule mergeCellRule3 = MergeCellRule.builder().map(MergeCellRule.Grid.of(rowRenderData3.length - 1, 0), MergeCellRule.Grid.of(rowRenderData3.length - 1, 4)).
|
|
|
|
+// build();
|
|
|
|
+//
|
|
|
|
+// Tables.TableBuilder tableBuilder3 = Tables.ofPercentWidth(tbPercentWidth, new int[]{8, 20, 37, 14, 21});
|
|
|
|
+// for (int i = 0; i < rowRenderData3.length; i++) {
|
|
|
|
+// tableBuilder3.addRow(rowRenderData3[i]);
|
|
|
|
+// }
|
|
|
|
+// return tableBuilder3.mergeRule(mergeCellRule3).left().create();
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+// /**
|
|
|
|
+// * 构建word动态表格4
|
|
|
|
+// *
|
|
|
|
+// * @param courseTargetWordDtoList
|
|
|
|
+// * @return
|
|
|
|
+// */
|
|
|
|
+// @Override
|
|
|
|
+// public TableRenderData buildWordTable4(List<CourseTargetWordDto> courseTargetWordDtoList) {
|
|
|
|
+// RowRenderData header4_1 = Rows.of("序号", "考核项目", "考核内容所涵盖的知识单元", "目标分值", "对应的课程目标").rowStyle(this.getHeadRowStyle()).create();
|
|
|
|
+// List<CourseTargetTableBean4> courseTargetTableBean4List = new ArrayList<>();
|
|
|
|
+// BigDecimal finalScoreSum4 = new BigDecimal(0);
|
|
|
|
+//// finalScoreTargetSumWeight4 = new BigDecimal(0);
|
|
|
|
+// for (int i = 0; i < courseTargetWordDtoList.size(); i++) {
|
|
|
|
+// CourseTargetWordDto courseTargetWordDto = courseTargetWordDtoList.get(i);
|
|
|
|
+//// FinalScoreWordDto finalScoreWordDto = courseTargetWordDto.getFinalScoreDto();
|
|
|
|
+// finalScoreSum4 = finalScoreSum4.add(courseTargetWordDto.getTargetSumScore());
|
|
|
|
+//// finalScoreTargetSumWeight4 = finalScoreTargetSumWeight4.add(finalScoreWordDto.getFinalScoreSumWeight());
|
|
|
|
+// CourseTargetTableBean4 courseTargetTableBean4 = new CourseTargetTableBean4((i + 1), courseTargetWordDto.getGraduationRequirement(), courseTargetWordDto.getDimensionPoint(), Double.parseDouble(SystemConstant.df.format(courseTargetWordDto.getTargetSumScore())), courseTargetWordDto.getTargetName());
|
|
|
|
+// courseTargetTableBean4List.add(courseTargetTableBean4);
|
|
|
|
+// }
|
|
|
|
+//// 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}分";
|
|
|
|
+// tableFootTitle4 = tableFootTitle4.replace("${dimensionScoreSum}", SystemConstant.df.format(finalScoreSum4));
|
|
|
|
+//// tableFootTitle4 = tableFootTitle4.replace("${dimensionSumWeight}", SystemConstant.df.format(finalScoreTargetSumWeight4));
|
|
|
|
+//
|
|
|
|
+// RowRenderData[] rowRenderData4 = new RowRenderData[courseTargetTableBean4List.size() + 2];
|
|
|
|
+// for (int i = 0; i < courseTargetTableBean4List.size(); i++) {
|
|
|
|
+// CourseTargetTableBean4 courseTargetTableBean4 = courseTargetTableBean4List.get(i);
|
|
|
|
+// rowRenderData4[i + 1] = Rows.of(courseTargetTableBean4.getNum().toString(), courseTargetTableBean4.getProject(), courseTargetTableBean4.getContent(), SystemConstant.df.format(courseTargetTableBean4.getTargetScore()), courseTargetTableBean4.getCourseTarget()).rowStyle(this.getRowStyle()).create();
|
|
|
|
+// }
|
|
|
|
+// rowRenderData4[0] = header4_1;
|
|
|
|
+// RowRenderData header4_foot = Rows.of(tableFootTitle4, "", "", "", "").center().create();
|
|
|
|
+// rowRenderData4[rowRenderData4.length - 1] = header4_foot;
|
|
|
|
+//
|
|
|
|
+// //表格合并,根据坐标
|
|
|
|
+// MergeCellRule mergeCellRule4 = MergeCellRule.builder().map(MergeCellRule.Grid.of(rowRenderData4.length - 1, 0), MergeCellRule.Grid.of(rowRenderData4.length - 1, 4)).
|
|
|
|
+// build();
|
|
|
|
+//
|
|
|
|
+// Tables.TableBuilder tableBuilder4 = Tables.ofPercentWidth(tbPercentWidth, new int[]{8, 20, 37, 14, 21});
|
|
|
|
+// for (int i = 0; i < rowRenderData4.length; i++) {
|
|
|
|
+// tableBuilder4.addRow(rowRenderData4[i]);
|
|
|
|
+// }
|
|
|
|
+// return tableBuilder4.mergeRule(mergeCellRule4).left().create();
|
|
|
|
+// }
|
|
|
|
|
|
/**
|
|
/**
|
|
* 构建word动态表格5
|
|
* 构建word动态表格5
|
|
@@ -652,6 +786,8 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
if (Objects.nonNull(trExamStudentTemp.getResultDetail())) {
|
|
if (Objects.nonNull(trExamStudentTemp.getResultDetail())) {
|
|
List<ReportExamStudentTargetDto> reportExamStudentTargetDtoList = JSONArray.parseArray(trExamStudentTemp.getResultDetail(), ReportExamStudentTargetDto.class);
|
|
List<ReportExamStudentTargetDto> reportExamStudentTargetDtoList = JSONArray.parseArray(trExamStudentTemp.getResultDetail(), ReportExamStudentTargetDto.class);
|
|
for (ReportExamStudentTargetDto reportExamStudentTargetDto : reportExamStudentTargetDtoList) {
|
|
for (ReportExamStudentTargetDto reportExamStudentTargetDto : reportExamStudentTargetDtoList) {
|
|
|
|
+ int finalScoreSize = Objects.nonNull(reportExamStudentTargetDto.getFinalScore()) ? 1 : 0;
|
|
|
|
+ int size = finalScoreSize + reportExamStudentTargetDto.getUsualScore().getScoreList().size();
|
|
examStudent_cells_1.add(Cells.of(reportExamStudentTargetDto.getTargetName()).center().create());
|
|
examStudent_cells_1.add(Cells.of(reportExamStudentTargetDto.getTargetName()).center().create());
|
|
ReportExamStudentUsualScoreDto reportExamStudentUsualScoreDto = reportExamStudentTargetDto.getUsualScore();
|
|
ReportExamStudentUsualScoreDto reportExamStudentUsualScoreDto = reportExamStudentTargetDto.getUsualScore();
|
|
//平常作业
|
|
//平常作业
|
|
@@ -667,6 +803,14 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
ReportExamStudentFinalScoreDto reportExamStudentFinalScoreDto = reportExamStudentTargetDto.getFinalScore();
|
|
ReportExamStudentFinalScoreDto reportExamStudentFinalScoreDto = reportExamStudentTargetDto.getFinalScore();
|
|
if (Objects.nonNull(reportExamStudentFinalScoreDto) && Objects.equals(reportExamStudentFinalScoreDto.getEvaluation(), SystemConstant.FINAL_SCORE_STR)) {
|
|
if (Objects.nonNull(reportExamStudentFinalScoreDto) && Objects.equals(reportExamStudentFinalScoreDto.getEvaluation(), SystemConstant.FINAL_SCORE_STR)) {
|
|
examStudent_cells_2.add(Cells.of(SystemConstant.FINAL_SCORE_STR).center().create());
|
|
examStudent_cells_2.add(Cells.of(SystemConstant.FINAL_SCORE_STR).center().create());
|
|
|
|
+ } else {
|
|
|
|
+ int usualScoreSize = reportExamStudentTargetDto.getUsualScore().getScoreList().size();
|
|
|
|
+ while ((size - usualScoreSize) >= 0) {
|
|
|
|
+ examStudent_cells_1.remove(examStudent_cells_1.size() - 1);
|
|
|
|
+ size = size - 1;
|
|
|
|
+ Integer dynamicSize = targetUsualScoreSizeMap.get(reportExamStudentTargetDto.getTargetId());
|
|
|
|
+ targetUsualScoreSizeMap.put(reportExamStudentTargetDto.getTargetId(), dynamicSize - 1);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
examStudent_cells_1.add(Cells.of("综合成绩").center().create());
|
|
examStudent_cells_1.add(Cells.of("综合成绩").center().create());
|
|
@@ -709,7 +853,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
ReportExamStudentUsualScoreDto reportExamStudentUsualScoreDto = reportExamStudentTargetDto.getUsualScore();
|
|
ReportExamStudentUsualScoreDto reportExamStudentUsualScoreDto = reportExamStudentTargetDto.getUsualScore();
|
|
//平常作业
|
|
//平常作业
|
|
if (Objects.nonNull(reportExamStudentUsualScoreDto) && !CollectionUtils.isEmpty(reportExamStudentUsualScoreDto.getScoreList())) {
|
|
if (Objects.nonNull(reportExamStudentUsualScoreDto) && !CollectionUtils.isEmpty(reportExamStudentUsualScoreDto.getScoreList())) {
|
|
- courseReportBean.getCourseBasicBean().setUsualScoreWeight(reportExamStudentUsualScoreDto.getTargetWeight());
|
|
|
|
|
|
+// courseReportBean.getCourseBasicBean().setUsualScoreWeight(reportExamStudentUsualScoreDto.getTargetWeight());
|
|
List<ReportExamStudentUsualScoreObjDto> reportExamStudentUsualScoreObjDtoList = reportExamStudentUsualScoreDto.getScoreList();
|
|
List<ReportExamStudentUsualScoreObjDto> reportExamStudentUsualScoreObjDtoList = reportExamStudentUsualScoreDto.getScoreList();
|
|
for (ReportExamStudentUsualScoreObjDto reportExamStudentUsualScoreObjDto : reportExamStudentUsualScoreObjDtoList) {
|
|
for (ReportExamStudentUsualScoreObjDto reportExamStudentUsualScoreObjDto : reportExamStudentUsualScoreObjDtoList) {
|
|
switch (trExamStudent.getName()) {
|
|
switch (trExamStudent.getName()) {
|
|
@@ -844,7 +988,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
public ObeCourseWeightResult findCourseWeightResultRmi(Long teachCourseId) {
|
|
public ObeCourseWeightResult findCourseWeightResultRmi(Long teachCourseId) {
|
|
ObeCourseWeightResult obeCourseWeightResult = obeCourseWeightService.findCourseWeight(teachCourseId);
|
|
ObeCourseWeightResult obeCourseWeightResult = obeCourseWeightService.findCourseWeight(teachCourseId);
|
|
Objects.requireNonNull(obeCourseWeightResult, "未设置课程目标数据");
|
|
Objects.requireNonNull(obeCourseWeightResult, "未设置课程目标数据");
|
|
- // TODO: 2024/6/6 fix
|
|
|
|
// Objects.requireNonNull(obeCourseWeightResult.getCustomRate(), "未设置平时成绩权重");
|
|
// Objects.requireNonNull(obeCourseWeightResult.getCustomRate(), "未设置平时成绩权重");
|
|
// Objects.requireNonNull(obeCourseWeightResult.getDefaultRate(), "未设置期末考试权重");
|
|
// Objects.requireNonNull(obeCourseWeightResult.getDefaultRate(), "未设置期末考试权重");
|
|
Objects.requireNonNull(obeCourseWeightResult.getWeightSettingSign(), "课程权重变化id为空");
|
|
Objects.requireNonNull(obeCourseWeightResult.getWeightSettingSign(), "课程权重变化id为空");
|
|
@@ -971,45 +1114,45 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * 计算考生期末成绩知识点纬度
|
|
|
|
- *
|
|
|
|
- * @param finalScoreExamStudentDimensionMap
|
|
|
|
- * @param finalScoreResult
|
|
|
|
- * @param courseTargetDto
|
|
|
|
- * @param dimensionDto
|
|
|
|
- * @param score
|
|
|
|
- */
|
|
|
|
- protected void calculateFinalScoreByDimensionExamStudent(Map<String, Map<Long, Map<Long, DimensionDto>>> finalScoreExamStudentDimensionMap,
|
|
|
|
- FinalScoreResult finalScoreResult,
|
|
|
|
- CourseTargetWebDto courseTargetDto,
|
|
|
|
- DimensionDto dimensionDto,
|
|
|
|
- Double score) {
|
|
|
|
- if (!finalScoreExamStudentDimensionMap.containsKey(finalScoreResult.getStudentCode())) {
|
|
|
|
- Map<Long, Map<Long, DimensionDto>> map = new LinkedHashMap<>();
|
|
|
|
- Map<Long, DimensionDto> dimensionMap = new LinkedHashMap<>();
|
|
|
|
- dimensionMap.put(dimensionDto.getDimensionId(), new DimensionDto(courseTargetDto.getTargetId(), dimensionDto, score));
|
|
|
|
- map.put(courseTargetDto.getTargetId(), dimensionMap);
|
|
|
|
- finalScoreExamStudentDimensionMap.put(finalScoreResult.getStudentCode(), map);
|
|
|
|
- } else {
|
|
|
|
- Map<Long, Map<Long, DimensionDto>> map = finalScoreExamStudentDimensionMap.get(finalScoreResult.getStudentCode());
|
|
|
|
- if (!map.containsKey(courseTargetDto.getTargetId())) {
|
|
|
|
- Map<Long, DimensionDto> dimensionMap = new LinkedHashMap<>();
|
|
|
|
- dimensionMap.put(dimensionDto.getDimensionId(), new DimensionDto(courseTargetDto.getTargetId(), dimensionDto, score));
|
|
|
|
- map.put(courseTargetDto.getTargetId(), dimensionMap);
|
|
|
|
- } else {
|
|
|
|
- Map<Long, DimensionDto> dimensionMap = map.get(courseTargetDto.getTargetId());
|
|
|
|
- if (!dimensionMap.containsKey(dimensionDto.getDimensionId())) {
|
|
|
|
- dimensionMap.put(dimensionDto.getDimensionId(), new DimensionDto(courseTargetDto.getTargetId(), dimensionDto, score));
|
|
|
|
- } else {
|
|
|
|
- DimensionDto dimensionDtoTemp = dimensionMap.get(dimensionDto.getDimensionId());
|
|
|
|
- dimensionDtoTemp.setDimensionScore(dimensionDtoTemp.getDimensionScore().doubleValue() + score.doubleValue());
|
|
|
|
- }
|
|
|
|
- map.put(courseTargetDto.getTargetId(), dimensionMap);
|
|
|
|
- }
|
|
|
|
- finalScoreExamStudentDimensionMap.put(finalScoreResult.getStudentCode(), map);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+// /**
|
|
|
|
+// * 计算考生期末成绩知识点纬度
|
|
|
|
+// *
|
|
|
|
+// * @param finalScoreExamStudentDimensionMap
|
|
|
|
+// * @param finalScoreResult
|
|
|
|
+// * @param courseTargetDto
|
|
|
|
+// * @param dimensionDto
|
|
|
|
+// * @param score
|
|
|
|
+// */
|
|
|
|
+// protected void calculateFinalScoreByDimensionExamStudent(Map<String, Map<Long, Map<Long, DimensionDto>>> finalScoreExamStudentDimensionMap,
|
|
|
|
+// FinalScoreResult finalScoreResult,
|
|
|
|
+// CourseTargetWebDto courseTargetDto,
|
|
|
|
+// DimensionDto dimensionDto,
|
|
|
|
+// Double score) {
|
|
|
|
+// if (!finalScoreExamStudentDimensionMap.containsKey(finalScoreResult.getStudentCode())) {
|
|
|
|
+// Map<Long, Map<Long, DimensionDto>> map = new LinkedHashMap<>();
|
|
|
|
+// Map<Long, DimensionDto> dimensionMap = new LinkedHashMap<>();
|
|
|
|
+// dimensionMap.put(dimensionDto.getDimensionId(), new DimensionDto(courseTargetDto.getTargetId(), dimensionDto, score));
|
|
|
|
+// map.put(courseTargetDto.getTargetId(), dimensionMap);
|
|
|
|
+// finalScoreExamStudentDimensionMap.put(finalScoreResult.getStudentCode(), map);
|
|
|
|
+// } else {
|
|
|
|
+// Map<Long, Map<Long, DimensionDto>> map = finalScoreExamStudentDimensionMap.get(finalScoreResult.getStudentCode());
|
|
|
|
+// if (!map.containsKey(courseTargetDto.getTargetId())) {
|
|
|
|
+// Map<Long, DimensionDto> dimensionMap = new LinkedHashMap<>();
|
|
|
|
+// dimensionMap.put(dimensionDto.getDimensionId(), new DimensionDto(courseTargetDto.getTargetId(), dimensionDto, score));
|
|
|
|
+// map.put(courseTargetDto.getTargetId(), dimensionMap);
|
|
|
|
+// } else {
|
|
|
|
+// Map<Long, DimensionDto> dimensionMap = map.get(courseTargetDto.getTargetId());
|
|
|
|
+// if (!dimensionMap.containsKey(dimensionDto.getDimensionId())) {
|
|
|
|
+// dimensionMap.put(dimensionDto.getDimensionId(), new DimensionDto(courseTargetDto.getTargetId(), dimensionDto, score));
|
|
|
|
+// } else {
|
|
|
|
+// DimensionDto dimensionDtoTemp = dimensionMap.get(dimensionDto.getDimensionId());
|
|
|
|
+// dimensionDtoTemp.setDimensionScore(dimensionDtoTemp.getDimensionScore().doubleValue() + score.doubleValue());
|
|
|
|
+// }
|
|
|
|
+// map.put(courseTargetDto.getTargetId(), dimensionMap);
|
|
|
|
+// }
|
|
|
|
+// finalScoreExamStudentDimensionMap.put(finalScoreResult.getStudentCode(), map);
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
|
|
/**
|
|
/**
|
|
* 计算考生期末成绩课程目标卷面分纬度
|
|
* 计算考生期末成绩课程目标卷面分纬度
|
|
@@ -1062,8 +1205,10 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
Double score = Objects.nonNull(t.getScore()) ? Double.parseDouble(t.getScore()) : 0d;
|
|
Double score = Objects.nonNull(t.getScore()) ? Double.parseDouble(t.getScore()) : 0d;
|
|
CourseTargetWordDto courseTargetWordDto = targetWordMap.get(reportEvaluationDto.getTargetId());
|
|
CourseTargetWordDto courseTargetWordDto = targetWordMap.get(reportEvaluationDto.getTargetId());
|
|
UsualScoreWordDto usualScoreWordDto = courseTargetWordDto.getUsualScoreDto();
|
|
UsualScoreWordDto usualScoreWordDto = courseTargetWordDto.getUsualScoreDto();
|
|
- Double matrixScore = new BigDecimal(score).divide(SystemConstant.PERCENT, 2, BigDecimal.ROUND_HALF_UP).multiply(reportEvaluationDto.getTargetScore()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
|
- reportExamStudentUsualScoreObjDtoList.add(new ReportExamStudentUsualScoreObjDto(reportEvaluationDto.getTargetId(), reportEvaluationDto, score, matrixScore, usualScoreWordDto.getUsualScoreTargetSumWeight(), usualScoreWordDto.getUsualScoreTargetSumScore()));
|
|
|
|
|
|
+ //old平时作业换算:分数/100*作业目标分
|
|
|
|
+ //new平时作业换算:分数/作业目标分
|
|
|
|
+ Double matrixScore = new BigDecimal(score).multiply(reportEvaluationDto.getTargetWeight()).divide(SystemConstant.PERCENT, 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
|
+ reportExamStudentUsualScoreObjDtoList.add(new ReportExamStudentUsualScoreObjDto(reportEvaluationDto.getTargetId(), reportEvaluationDto, score, matrixScore, usualScoreWordDto.getUsualScoreTargetSumScore()));
|
|
scoreListMap.put(reportEvaluationDto.getTargetId(), reportExamStudentUsualScoreObjDtoList);
|
|
scoreListMap.put(reportEvaluationDto.getTargetId(), reportExamStudentUsualScoreObjDtoList);
|
|
}
|
|
}
|
|
}
|
|
}
|