Преглед на файлове

小题乱序改为客观题乱序

chenken преди 7 години
родител
ревизия
4f0f2b9a8d

+ 18 - 2
cqb-paper/src/main/java/com/qmth/cqb/paper/dto/ObjectiveQuestionStructure.java

@@ -2,6 +2,9 @@ package com.qmth.cqb.paper.dto;
 
 import java.io.Serializable;
 
+import org.apache.commons.lang3.StringUtils;
+
+import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
 import cn.com.qmth.examcloud.common.util.excel.ExcelProperty;
 
 /**
@@ -60,10 +63,23 @@ public class ObjectiveQuestionStructure implements Serializable{
 		this.questionType = unit.getQuestionType().getName();
 		this.smallQuestionNo = unit.getNumber();
 		this.smallQuestionScore = unit.getScore();
-		this.answer = unit.getQuestion().getQuesAnswer();
+		if(StringUtils.isNotBlank(unit.getQuestion().getQuesAnswer())){
+			if(unit.getQuestionType()==QuesStructType.BOOL_ANSWER_QUESTION){
+				if("正确".equals(unit.getQuestion().getQuesAnswer())){
+					this.answer = "A";
+				}else if("错误".equals(unit.getQuestion().getQuesAnswer())){
+					this.answer = "B";
+				}else if("#".equals(unit.getQuestion().getQuesAnswer())){
+					this.answer = "#";
+				}
+			}else if(unit.getQuestionType()==QuesStructType.MULTIPLE_ANSWER_QUESTION){
+				this.answer = unit.getQuestion().getQuesAnswer().replaceAll(",", "");
+			}else{
+				this.answer = unit.getQuestion().getQuesAnswer();
+			}
+		}
 	}
 	
-	
 	public String getCourseNo() {
 		return courseNo;
 	}

+ 10 - 8
cqb-paper/src/main/java/com/qmth/cqb/paper/dto/SubjectiveQuestionStructure.java

@@ -41,10 +41,10 @@ public class SubjectiveQuestionStructure implements Serializable{
 	@ExcelProperty(name="小题号",index = 4)
 	private Integer smallQuestionNo;
 	/**
-	 * 大题总分
+	 * 小题分数
 	 */
-	@ExcelProperty(name="大题总分",index = 5)
-	private Double bigQuestionScore;
+	@ExcelProperty(name="分",index = 5)
+	private Double questionScore;
 	
 	public SubjectiveQuestionStructure(){}
 	
@@ -54,7 +54,7 @@ public class SubjectiveQuestionStructure implements Serializable{
 		this.bigQuestionNo = paperDetailExp.getNumber();
 		this.bigQuestionName = paperDetailExp.getName();
 		this.smallQuestionNo = unit.getNumber();
-		this.bigQuestionScore = paperDetailExp.getScore();
+		this.questionScore = unit.getScore();
 	}
 	
 	
@@ -88,11 +88,13 @@ public class SubjectiveQuestionStructure implements Serializable{
 	public void setSmallQuestionNo(Integer smallQuestionNo) {
 		this.smallQuestionNo = smallQuestionNo;
 	}
-	public Double getBigQuestionScore() {
-		return bigQuestionScore;
+
+	public Double getQuestionScore() {
+		return questionScore;
 	}
-	public void setBigQuestionScore(Double bigQuestionScore) {
-		this.bigQuestionScore = bigQuestionScore;
+
+	public void setQuestionScore(Double questionScore) {
+		this.questionScore = questionScore;
 	}
 	
 }

+ 10 - 5
cqb-paper/src/main/java/com/qmth/cqb/paper/service/impl/ExtractConfigServiceImpl.java

@@ -250,8 +250,8 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 	/**
 	 * 重组试卷,生成新的试卷
 	 * @param paper					选中的试卷
-	 * @param upSetQuestionOrder	小题乱序		1:乱序  0:不乱序
-	 * @param upSetOptionOrder		选项乱序		1:乱序  0:不乱序
+	 * @param upSetQuestionOrder	客观题小题乱序		1:乱序  0:不乱序
+	 * @param upSetOptionOrder		客观题选项乱序		1:乱序  0:不乱序
 	 * @return
 	 */
 	public Paper recombinationPaper(Paper paper,int upSetQuestionOrder,int upSetOptionOrder){
@@ -266,8 +266,14 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 			paperDetail.setId(null);
 			PaperDetail newPaperDetail = paperDetailRepo.save(paperDetail);//保存新的paperDetail
 			//小题乱序
-			if(upSetQuestionOrder==1){
-				Collections.shuffle(paperDetailUnits);//打乱小题List
+			if(paperDetailUnits!=null&&paperDetailUnits.size()>0){
+				PaperDetailUnit firstPaperDetailUnit = paperDetailUnits.get(0);
+				if((firstPaperDetailUnit.getQuestionType()==QuesStructType.SINGLE_ANSWER_QUESTION
+						||firstPaperDetailUnit.getQuestionType()==QuesStructType.MULTIPLE_ANSWER_QUESTION
+							|| firstPaperDetailUnit.getQuestionType()==QuesStructType.BOOL_ANSWER_QUESTION)
+						&&upSetQuestionOrder==1){
+					Collections.shuffle(paperDetailUnits);//打乱小题List
+				}
 			}
 			for(int j = 0;j<paperDetailUnits.size();j++){
 				//重新设置保存PaperDetailUnit
@@ -277,7 +283,6 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 				paperDetailUnit.setNumber(j+1);					//重新设置序号
 				reSavePaperDetailUtilAndQuestion(paperDetailUnit,upSetOptionOrder);
 			}
-			
 		}
 		return newPaper;
 	}