Forráskód Böngészése

改善调卷性能

宋悦 7 éve
szülő
commit
86a0d67a30

+ 12 - 14
cqb-paper/src/main/java/com/qmth/cqb/paper/service/impl/ExtractConfigServiceImpl.java

@@ -292,10 +292,9 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 
 		//将小题全部取出来,只取一次
 		List<PaperDetailUnit> allPaperDetailUnits = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
-		//从小题中抽取大题
-		List<PaperDetail> paperDetails = allPaperDetailUnits.stream()
-				.map(PaperDetailUnit::getPaperDetail)
-				.collect(Collectors.toList());
+		//获取大题
+		List<PaperDetail> paperDetails = paperDetailRepo.findByPaperOrderByNumber(paper);
+
 		//抽取大题号对应的小题
 		Map<String,List<PaperDetailUnit>> pduMap = allPaperDetailUnits.stream()
 				.collect(Collectors.groupingBy(PaperDetailUnit::getDetailId));
@@ -328,25 +327,27 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 					Collections.shuffle(paperDetailUnits);//打乱小题List
 				}
 			}
-			//保存大题信息
+			//设置大题信息
 			paperDetail.setId(null);
 			paperDetail.setPaper(newPaper);
-			PaperDetail newPaperDetail = paperDetailRepo.insert(paperDetail);
 
 			for(int j = 0;j<paperDetailUnits.size();j++){
 				//重新设置保存PaperDetailUnit
 				PaperDetailUnit paperDetailUnit = paperDetailUnits.get(j);
 				paperDetailUnit.setPaperType(paperType);
 				paperDetailUnit.setPaper(newPaper);
-				paperDetailUnit.setPaperDetail(newPaperDetail);
+				paperDetailUnit.setPaperDetail(paperDetail);
 				paperDetailUnit.setNumber(minNumber+j);			//重新设置序号
 				reSavePaperDetailUtilAndQuestion(paperDetailUnit,upSetOptionOrder);
-//				savePaperDetailUnits.add(paperDetailUnit);
+				savePaperDetailUnits.add(paperDetailUnit);
 			}
 
 		}
+		//保存大题信息
+		paperDetailRepo.insert(paperDetails);
 		//保存小题信息
-//		paperDetailUnitRepo.insert(savePaperDetailUnits);
+		paperDetailUnitRepo.insert(savePaperDetailUnits);
+
 
 		//清空所有list
 		allPaperDetailUnits.clear();
@@ -466,7 +467,6 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 			}
 		}
 		paperDetailUnit.setId(null);
-		paperDetailUnitRepo.insert(paperDetailUnit);
 	}
 
 	@Override
@@ -499,10 +499,8 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 
 		//将小题全部取出来,只取一次
 		List<PaperDetailUnit> allPaperDetailUnits = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
-		//从小题中抽取大题
-		List<PaperDetail> paperDetails = allPaperDetailUnits.stream()
-				.map(PaperDetailUnit::getPaperDetail)
-				.collect(Collectors.toList());
+		//获取大题
+		List<PaperDetail> paperDetails = paperDetailRepo.findByPaperOrderByNumber(paper);
 		//抽取大题Id对应的小题
 		Map<String,List<PaperDetailUnit>> pduMap = allPaperDetailUnits.stream()
 				.collect(Collectors.groupingBy(PaperDetailUnit::getDetailId));