|
@@ -13,6 +13,7 @@ import com.qmth.distributed.print.business.bean.dto.CourseWeightDetailDto;
|
|
|
import com.qmth.distributed.print.business.bean.dto.CourseWeightDto;
|
|
|
import com.qmth.distributed.print.business.bean.dto.FinalScoreDto;
|
|
|
import com.qmth.distributed.print.business.bean.dto.report.*;
|
|
|
+import com.qmth.distributed.print.business.bean.result.CourseWeightResult;
|
|
|
import com.qmth.distributed.print.business.bean.result.FinalScoreResult;
|
|
|
import com.qmth.distributed.print.business.bean.result.report.PaperStructResult;
|
|
|
import com.qmth.distributed.print.business.bean.result.report.word.CourseReportBean;
|
|
@@ -43,7 +44,6 @@ import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.text.DecimalFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.function.Function;
|
|
@@ -137,12 +137,17 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
|
targetWordMap = new LinkedHashMap<>();
|
|
|
targetWebMap = new LinkedHashMap<>();
|
|
|
usualScoreMap = new LinkedHashMap<>();
|
|
|
- //TODO 获取曹子轩课程目标信息
|
|
|
- List<CourseWeightDto> courseWeightDtoList = courseWeightService.findCourseWeight(trBasicInfo.getExamId(), trBasicInfo.getCourseCode(), sysUser.getId()).getSubmitForm();
|
|
|
+
|
|
|
+ CourseWeightResult courseWeightResult = courseWeightService.findCourseWeight(trBasicInfo.getExamId(), trBasicInfo.getCourseCode(), sysUser.getId());
|
|
|
+ if (Objects.isNull(courseWeightResult)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("未设置课程目标数据");
|
|
|
+ }
|
|
|
+ List<CourseWeightDto> courseWeightDtoList = courseWeightResult.getSubmitForm();
|
|
|
if (CollectionUtils.isEmpty(courseWeightDtoList)) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("未设置课程目标评价方式");
|
|
|
}
|
|
|
|
|
|
+ BigDecimal bigDecimal = new BigDecimal(100);
|
|
|
for (CourseWeightDto courseWeightDto : courseWeightDtoList) {
|
|
|
List<CourseWeightDetailDto> courseWeightDetailDtoList = courseWeightDto.getEvaluationList();
|
|
|
CourseTargetWordDto courseTargetWordDto = new CourseTargetWordDto(courseWeightDto);
|
|
@@ -154,19 +159,20 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
|
if (!CollectionUtils.isEmpty(courseWeightDetailDtoList)) {
|
|
|
List<ReportEvaluationDto> reportEvaluationDtoList = new ArrayList<>(courseWeightDetailDtoList.size());
|
|
|
List<ReportEvaluationDto> usualScoreDetailList = new ArrayList<>(courseWeightDetailDtoList.size());
|
|
|
- UsualScoreWordDto usualScoreWordDto = new UsualScoreWordDto(courseWeightDto.getTotalWeight());
|
|
|
+ UsualScoreWordDto usualScoreWordDto = new UsualScoreWordDto(courseWeightResult.getCustomRate());
|
|
|
usualScoreWordDto.setUsualScoreDetailList(usualScoreDetailList);
|
|
|
BigDecimal usualScoreTargetSumScore = new BigDecimal(0);//平常作业目标总分
|
|
|
for (CourseWeightDetailDto courseWeightDetailDto : courseWeightDetailDtoList) {
|
|
|
//期末考试
|
|
|
if (courseWeightDetailDto.getEnable() && Objects.equals(courseWeightDetailDto.getEvaluationName(), SystemConstant.FINAL_SCORE_STR)) {
|
|
|
- FinalScoreWordDto finalScoreWordDto = new FinalScoreWordDto(courseWeightDto.getCourseTargetId(), courseWeightDetailDto);
|
|
|
+ FinalScoreWordDto finalScoreWordDto = new FinalScoreWordDto(courseWeightDto.getCourseTargetId(), courseWeightDetailDto, courseWeightResult.getDefaultRate());
|
|
|
courseTargetWordDto.setFinalScoreDto(finalScoreWordDto);
|
|
|
- ReportEvaluationDto reportEvaluationDto = new ReportEvaluationDto(courseWeightDto.getCourseTargetId(), courseWeightDetailDto);
|
|
|
+ ReportEvaluationDto reportEvaluationDto = new ReportEvaluationDto(courseWeightDto.getCourseTargetId(), courseWeightDetailDto, courseWeightResult.getDefaultRate());
|
|
|
reportEvaluationDtoList.add(reportEvaluationDto);
|
|
|
}//非期末考试
|
|
|
else if (courseWeightDetailDto.getEnable() && !Objects.equals(courseWeightDetailDto.getEvaluationName(), SystemConstant.FINAL_SCORE_STR)) {
|
|
|
- ReportEvaluationDto reportEvaluationDto = new ReportEvaluationDto(courseWeightDto.getCourseTargetId(), courseWeightDetailDto);
|
|
|
+ BigDecimal usualScoreRealityWeight = usualScoreWordDto.getUsualScoreTargetSumWeight().divide(bigDecimal, 2, BigDecimal.ROUND_HALF_UP).multiply(courseWeightDetailDto.getWeight()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ ReportEvaluationDto reportEvaluationDto = new ReportEvaluationDto(courseWeightDto.getCourseTargetId(), courseWeightDetailDto, usualScoreRealityWeight);
|
|
|
usualScoreTargetSumScore = usualScoreTargetSumScore.add(reportEvaluationDto.getTargetScore());
|
|
|
usualScoreDetailList.add(reportEvaluationDto);
|
|
|
reportEvaluationDtoList.add(reportEvaluationDto);
|