|
@@ -1,5 +1,7 @@
|
|
|
package com.qmth.cqb.genpaper.service;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
|
import java.util.HashMap;
|
|
@@ -377,6 +379,21 @@ public class GenPaperService {
|
|
|
index++;
|
|
|
PaperDetailUnit paperDetailUnit = paperDetailUnits.get(i);
|
|
|
paperDetailUnit.setNumber(index);
|
|
|
+
|
|
|
+ //重新计算套题小题分
|
|
|
+ Question question = paperDetailUnit.getQuestion();
|
|
|
+ if(question != null && question.getQuestionType() == QuesStructType.NESTED_ANSWER_QUESTION){
|
|
|
+ List<Question> subQuestions = question.getSubQuestions();
|
|
|
+ List<Double> subScoreList = new ArrayList<>();
|
|
|
+ if(subQuestions != null && subQuestions.size() > 0){
|
|
|
+ for(Question subQuestion:subQuestions){
|
|
|
+ double score = paperDetailUnit.getScore()/ subQuestions.size();
|
|
|
+ BigDecimal formatScore = new BigDecimal(score);
|
|
|
+ subScoreList.add(formatScore.setScale(2, RoundingMode.HALF_UP).doubleValue());
|
|
|
+ }
|
|
|
+ paperDetailUnit.setSubScoreList(subScoreList);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
unitRepo.save(paperDetailUnits);
|
|
|
}
|