Bläddra i källkod

Merge branch 'v1.3.1' into dev1130

宋悦 7 år sedan
förälder
incheckning
b01eb24a99

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

@@ -566,15 +566,17 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 			PaperDetail paperDetail = paperDetails.get(i);
 
             List<PaperDetailUnit> paperDetailUnits = pduMap.get(paperDetail.getId());
-			//设置答案
-            setSelectQuestoionAnswer(paperDetailUnits);
-            List<PaperDetailUnitDto> paperDetailUnitDtos = paperDetailUnitDtoAssembler.toDtoList(paperDetailUnits);
-            for (int j = 0; j < paperDetailUnitDtos.size(); j++) {
+
+            List<PaperDetailUnitDto> paperDetailUnitDtos = new ArrayList<>();
+            for (int j = 0; j < paperDetailUnits.size(); j++) {
             	PaperDetailUnit paperDetailUnit = paperDetailUnits.get(j);
             	if(paperDetailUnit==null||paperDetailUnit.getQuestion()==null){
                 	break;
                 }
-                PaperDetailUnitDto unitDto = paperDetailUnitDtos.get(j);
+				//设置答案
+				setSelectQuestionAnswerUnit(paperDetailUnit);
+
+                PaperDetailUnitDto unitDto = paperDetailUnitDtoAssembler.toDto(paperDetailUnit);
                 /**
                  * 此处不能传questionId,需要传paperDetailUnitId
                  * 因为选项乱序在paperDetailUnit里
@@ -600,6 +602,7 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
                     }
                     unitDto.setSubQuestions(subQuesDtos);
                 }
+                paperDetailUnitDtos.add(unitDto);
             }
             paperDetailDtos.get(i).setPaperDetailUnits(paperDetailUnitDtos);
             paperDetailDtos.get(i).setCnNum(CommonUtils.toCHNum(paperDetailDtos.get(i).getNumber()));
@@ -621,6 +624,15 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 			quesService.setSelectQuestionAnswer(question,optionOrder);
 		}
 	}
+
+	private void setSelectQuestionAnswerUnit(PaperDetailUnit paperDetailUnit){
+		Question question = paperDetailUnit.getQuestion();
+		if(paperDetailUnit == null || question == null){
+			return;
+		}
+		String optionOrder = paperDetailUnit.getOptionOrder();
+		quesService.setSelectQuestionAnswer(question,optionOrder);
+	}
 	
 	
 	/**

+ 10 - 3
cqb-question-resource/src/main/java/com/qmth/cqb/question/service/impl/QuesServiceImpl.java

@@ -330,9 +330,16 @@ public class QuesServiceImpl implements QuesService{
                 }
             }
             byte [] pkgByte = DocxProcessUtil.getPkgByte(wordMLPackage);
-            QuestionPkgPath quesPkgPath = quesPkgPathRepo.findFirstById(question.getQuesPkgPathId());
-            quesPkgPath.setQuesPkg(pkgByte);
-            quesPkgPathRepo.save(quesPkgPath);
+            if(question.getQuesPkgPathId() == null){
+                QuestionPkgPath quesPkgPath = new QuestionPkgPath(pkgByte);
+                QuestionPkgPath returnQuesPkgPath = quesPkgPathRepo.save(quesPkgPath);
+                question.setQuesPkgPathId(returnQuesPkgPath.getId());
+                quesRepo.save(question);
+            }else{
+                QuestionPkgPath quesPkgPath = quesPkgPathRepo.findFirstById(question.getQuesPkgPathId());
+                quesPkgPath.setQuesPkg(pkgByte);
+                quesPkgPathRepo.save(quesPkgPath);
+            }
             pkgByte = null;
         } catch (Exception e) {
             e.printStackTrace();