Browse Source

修复套题小题分的bug

宋悦 7 years ago
parent
commit
0e012c6402

+ 17 - 0
cqb-gen-paper/src/main/java/com/qmth/cqb/genpaper/service/GenPaperService.java

@@ -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);
         }

+ 0 - 5
cqb-paper/src/main/java/com/qmth/cqb/paper/service/impl/PaperServiceImpl.java

@@ -569,11 +569,6 @@ public class PaperServiceImpl implements PaperService{
                             for (Question subQues : subQuesList) {
                                 Map<String, String> params = new HashMap<String, String>();
                                 params.put("number", String.valueOf(++index));
-                                if(paperExp.getPaperType().equals(PaperType.GENERATE)){
-                                	 double score = paperDetailUnit.getScore()/ subQuesList.size();
-                                     BigDecimal b = new BigDecimal(score);
-                                     subQues.setScore(b.setScale(2, RoundingMode.HALF_UP).doubleValue());
-                                }
                                 subQues.setQuesParams(params);
                                 quesService.formatQuesUnit(subQues);
                             }