|
@@ -585,33 +585,39 @@ public class GenPaperService {
|
|
|
|
|
|
//将所有小题按questionId去重,并按试卷分类
|
|
|
private Map<String, List<PaperDetailUnit>> sortUnitsByPaper(Map<String, NumberDto> paperMap) {
|
|
|
- if (paperMap != null && paperMap.size() > 0) {
|
|
|
- //所有小题集合
|
|
|
- List<PaperDetailUnit> oldUnits = new ArrayList<>();
|
|
|
- //取到试卷id
|
|
|
- for (String paperId : paperMap.keySet()) {
|
|
|
- //取到所有小题
|
|
|
- Paper paper = Model.of(paperRepo.findById(paperId));
|
|
|
- List<PaperDetailUnit> unitList = unitRepo.findByPaperOrderByNumber(paper);
|
|
|
- oldUnits.addAll(unitList);
|
|
|
- }
|
|
|
- //如果是卷库来源,进行questionId去重
|
|
|
- Set<PaperDetailUnit> spareUnits = new HashSet<>();
|
|
|
- spareUnits.addAll(oldUnits);
|
|
|
- Map<String, List<PaperDetailUnit>> map = new HashMap<>();
|
|
|
- List<PaperDetailUnit> units = null;
|
|
|
- for (PaperDetailUnit unit : spareUnits) {
|
|
|
- if (map.get(unit.getPaper().getId()) == null) {
|
|
|
- units = new ArrayList<>();
|
|
|
- } else {
|
|
|
- units = map.get(unit.getPaper().getId());
|
|
|
- }
|
|
|
- units.add(unit);
|
|
|
- map.put(unit.getPaper().getId(), units);
|
|
|
+ if (paperMap == null || paperMap.isEmpty()) {
|
|
|
+ return new HashMap<>();
|
|
|
+ }
|
|
|
+
|
|
|
+ //所有小题集合
|
|
|
+ List<PaperDetailUnit> oldUnits = new ArrayList<>();
|
|
|
+
|
|
|
+ //取到试卷id
|
|
|
+ for (String paperId : paperMap.keySet()) {
|
|
|
+ //取到所有小题
|
|
|
+ Paper paper = Model.of(paperRepo.findById(paperId));
|
|
|
+ List<PaperDetailUnit> unitList = unitRepo.findByPaperOrderByNumber(paper);
|
|
|
+ oldUnits.addAll(unitList);
|
|
|
+ }
|
|
|
+
|
|
|
+ //如果是卷库来源,进行questionId去重
|
|
|
+ Set<PaperDetailUnit> spareUnits = new HashSet<>();
|
|
|
+ spareUnits.addAll(oldUnits);
|
|
|
+ Map<String, List<PaperDetailUnit>> map = new HashMap<>();
|
|
|
+
|
|
|
+ List<PaperDetailUnit> units;
|
|
|
+ for (PaperDetailUnit unit : spareUnits) {
|
|
|
+ if (map.get(unit.getPaper().getId()) == null) {
|
|
|
+ units = new ArrayList<>();
|
|
|
+ } else {
|
|
|
+ units = map.get(unit.getPaper().getId());
|
|
|
}
|
|
|
- return map;
|
|
|
+
|
|
|
+ units.add(unit);
|
|
|
+ map.put(unit.getPaper().getId(), units);
|
|
|
}
|
|
|
- return null;
|
|
|
+
|
|
|
+ return map;
|
|
|
}
|
|
|
|
|
|
//将试卷下面的所有小题按照 公开度 和 难度 进行分类
|