|
@@ -1,6 +1,13 @@
|
|
|
package com.qmth.cqb.genpaper.service;
|
|
|
|
|
|
-import java.util.*;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.LinkedList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.UUID;
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -43,10 +50,11 @@ public class GenPaperService {
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
public Map<String, Object> genPaper(GenPaperDto genPaperDto) {
|
|
|
String msg = "";
|
|
|
Map<String, Object> paperMsgMap = new HashMap<String, Object>();
|
|
|
- LinkedList<Question> questions = new LinkedList<Question>();// 所有试题集合
|
|
|
+ LinkedList<Question> questions = new LinkedList<Question>();
|
|
|
PaperStruct paperStruct = paperStructRepo.findOne(genPaperDto.getPaperStructId());
|
|
|
PaperContext paperContext = new PaperContext(paperStruct, genPaperDto.getConditions());
|
|
|
List<UnitContext> unitContexts = new LinkedList<UnitContext>();
|
|
@@ -93,37 +101,24 @@ public class GenPaperService {
|
|
|
paperMsgMap.put("msg", msg);
|
|
|
return paperMsgMap;
|
|
|
}
|
|
|
- List<PaperDetail> paperDetails = new ArrayList<PaperDetail>();
|
|
|
- List<PaperDetailUnit> paperDetailunits = new ArrayList<PaperDetailUnit>();
|
|
|
- for (DetailContext dc : detailContexts) {
|
|
|
- List<PaperDetailUnit> unitsTemp = new ArrayList<PaperDetailUnit>();
|
|
|
- List<UnitContext> units = dc.getUnits();
|
|
|
- Iterator iterator = quesSet.iterator();
|
|
|
- for (UnitContext uc : units) {
|
|
|
- while(iterator.hasNext()) {
|
|
|
- Question ques = (Question) iterator.next();
|
|
|
- if (uc.getUnitStruct().getQuestionType() == ques.getQuestionType()) {
|
|
|
- PaperDetailUnit pdu = new PaperDetailUnit();
|
|
|
- pdu.setCreateTime(CommonUtils.getCurDateTime());
|
|
|
- pdu.setQuestion(ques);
|
|
|
- pdu.setQuestionType(ques.getQuestionType());
|
|
|
- pdu.setScore(uc.getUnitStruct().getScore());
|
|
|
- unitsTemp.add(pdu);
|
|
|
- iterator.remove();
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- paperDetails.add(this.constuctPaperDeatil(unitsTemp, dc.getDetailStruct().getNumber(),
|
|
|
- dc.getDetailStruct().getName()));
|
|
|
- paperDetailunits.addAll(unitsTemp);
|
|
|
+ List<Object> list = paperContext.build(paperStruct);
|
|
|
+ if (list != null && list.size() == 3) {
|
|
|
+ Paper paper = (Paper) list.get(0);
|
|
|
+ List<PaperDetail> paperDetails = (List<PaperDetail>) list.get(1);
|
|
|
+ List<PaperDetailUnit> paperDetailunits = (List<PaperDetailUnit>) list.get(2);
|
|
|
+ // 补全paper属性
|
|
|
+ paper.setName(genPaperDto.getPaperName());
|
|
|
+ paper.setCourseNo(genPaperDto.getCourseNo());
|
|
|
+ paper.setCourseName(genPaperDto.getCourseName());
|
|
|
+ paper.setCreator(genPaperDto.getCreator());
|
|
|
+ paper.setCreateTime(CommonUtils.getCurDateTime());
|
|
|
+ paper.setUnitCount(this.getTotalQuesNum(paperDetailunits));
|
|
|
+ // 数据入库
|
|
|
+ paper = this.persistentPaper(paperDetailunits, paperDetails, paper);
|
|
|
+ msg = "success";
|
|
|
+ paperMsgMap.put("paper", paper);
|
|
|
+ paperMsgMap.put("msg", msg);
|
|
|
}
|
|
|
-
|
|
|
- Paper paper = this.persistentPaper(paperDetailunits, paperDetails,
|
|
|
- this.constuctPaperByPaperDetails(paperDetails, genPaperDto));
|
|
|
- msg = "success";
|
|
|
- paperMsgMap.put("paper", paper);
|
|
|
- paperMsgMap.put("msg", msg);
|
|
|
return paperMsgMap;
|
|
|
}
|
|
|
|
|
@@ -234,7 +229,7 @@ public class GenPaperService {
|
|
|
if (units != null && units.size() > 0) {
|
|
|
Double score = 0d;
|
|
|
for (PaperDetailUnit pdu : units) {
|
|
|
- score += pdu.getScore()==null ? 0:pdu.getScore();
|
|
|
+ score += pdu.getScore() == null ? 0 : pdu.getScore();
|
|
|
|
|
|
}
|
|
|
pd.setId(UUID.randomUUID().toString());
|
|
@@ -262,7 +257,7 @@ public class GenPaperService {
|
|
|
if (details != null && details.size() > 0) {
|
|
|
Double score = 0d;
|
|
|
for (PaperDetail pd : details) {
|
|
|
- score += pd.getScore()==null ? 0:pd.getScore();
|
|
|
+ score += pd.getScore() == null ? 0 : pd.getScore();
|
|
|
|
|
|
}
|
|
|
paper.setId(UUID.randomUUID().toString());
|
|
@@ -312,8 +307,9 @@ public class GenPaperService {
|
|
|
for (QuesStructType qType : unitMap.keySet()) {
|
|
|
details.add(this.constuctPaperDeatil(unitMap.get(qType), qTypeIndexMap.get(qType), qType.getName()));
|
|
|
}
|
|
|
- Paper paper = this.persistentPaper(selectedUnits, details,
|
|
|
- this.constuctPaperByPaperDetails(details, genPaperDto));
|
|
|
+ Paper paper = this.constuctPaperByPaperDetails(details, genPaperDto);
|
|
|
+ paper.setUnitCount(this.getTotalQuesNum(selectedUnits));// 设置小题数量,需统计subQuestion
|
|
|
+ paper = this.persistentPaper(selectedUnits, details, paper);
|
|
|
return paper;
|
|
|
|
|
|
}
|
|
@@ -342,6 +338,7 @@ public class GenPaperService {
|
|
|
|
|
|
/**
|
|
|
* 获取所试题数量
|
|
|
+ *
|
|
|
* @param units
|
|
|
* @return
|
|
|
*/
|