|
@@ -4,7 +4,17 @@ import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
|
-import com.qmth.cqb.paper.model.PaperSearchInfo;
|
|
|
+import com.google.gson.Gson;
|
|
|
+import com.qmth.cqb.paper.dao.PaperDetailRepo;
|
|
|
+import com.qmth.cqb.paper.dao.PaperDetailUnitRepo;
|
|
|
+import com.qmth.cqb.paper.dto.PaperDetailExp;
|
|
|
+import com.qmth.cqb.paper.dto.PaperDetailUnitExp;
|
|
|
+import com.qmth.cqb.paper.dto.PaperExp;
|
|
|
+import com.qmth.cqb.paper.model.*;
|
|
|
+import com.qmth.cqb.question.dao.QuesRepo;
|
|
|
+import com.qmth.cqb.question.model.QuesOption;
|
|
|
+import com.qmth.cqb.question.model.Question;
|
|
|
+import com.qmth.cqb.question.service.QuesService;
|
|
|
import com.qmth.cqb.utils.BeanCopierUtil;
|
|
|
import com.qmth.cqb.utils.CommonUtils;
|
|
|
import com.qmth.cqb.utils.enums.PaperStatus;
|
|
@@ -19,9 +29,6 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import com.qmth.cqb.paper.dao.ExamPaperRepo;
|
|
|
import com.qmth.cqb.paper.dao.PaperRepo;
|
|
|
-import com.qmth.cqb.paper.model.ExamPaper;
|
|
|
-import com.qmth.cqb.paper.model.Paper;
|
|
|
-import com.qmth.cqb.paper.model.PaperDetail;
|
|
|
|
|
|
/**
|
|
|
* Created by songyue on 16/12/28.
|
|
@@ -38,6 +45,24 @@ public class PaperService {
|
|
|
@Autowired
|
|
|
ExamPaperRepo examPaperRepo;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ PaperDetailRepo paperDetailRepo;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ PaperDetailUnitRepo paperDetailUnitRepo;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ QuesRepo quesRepo;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ Gson gson;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ PaperDetailUnitService paperDetailUnitService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ QuesService quesService;
|
|
|
+
|
|
|
/**
|
|
|
* 查询所有已导入试卷
|
|
|
* @param paperSearchInfo
|
|
@@ -54,6 +79,16 @@ public class PaperService {
|
|
|
return paperRepo.findAll(Example.of(importPaper),new PageRequest(curPage - 1,pageSize));
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 保存试卷
|
|
|
+ * @param paperExp
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Paper savePaper(PaperExp paperExp){
|
|
|
+ Paper paper = BeanCopierUtil.copyProperties(paperExp,Paper.class);
|
|
|
+ return paperRepo.save(paper);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 查询所有已组试卷
|
|
|
* @param paperSearchInfo
|
|
@@ -191,12 +226,87 @@ public class PaperService {
|
|
|
* 批量待审核试卷
|
|
|
* @param paperIds
|
|
|
*/
|
|
|
- public void initPapers(List<String> paperIds){
|
|
|
+ public void backPapers(List<String> paperIds){
|
|
|
List<Paper> papers = CommonUtils.toList(paperRepo.findAll(paperIds));
|
|
|
papers.stream().forEach(paper -> {paper.setPaperStatus(PaperStatus.DRAFT);});
|
|
|
paperRepo.save(papers);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 初始化导出试卷DTO
|
|
|
+ * @param id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public PaperExp getPaperDto(String id){
|
|
|
+
|
|
|
+ //获取paper
|
|
|
+ Paper paper = paperRepo.findOne(id);
|
|
|
+
|
|
|
+ //创建paperDto
|
|
|
+ PaperExp paperExp = BeanCopierUtil.copyProperties(paper,PaperExp.class);
|
|
|
+ //获取大题
|
|
|
+ List<PaperDetail> paperDetails = paperDetailRepo.findByPaper(paper);
|
|
|
+ List<PaperDetailExp> paperDetailExps =
|
|
|
+ BeanCopierUtil.copyPropertiesOfList(paperDetails,PaperDetailExp.class);
|
|
|
+ paperExp.setPaperDetails(paperDetailExps);
|
|
|
+
|
|
|
+ //封装小题
|
|
|
+ for(int i = 0; i < paperDetailExps.size(); i++){
|
|
|
+ List<PaperDetailUnit> paperDetailUnits =
|
|
|
+ paperDetailUnitRepo.findByPaperDetail(paperDetails.get(i));
|
|
|
+ List<PaperDetailUnitExp> paperDetailUnitExps =
|
|
|
+ BeanCopierUtil.copyPropertiesOfList(paperDetailUnits,PaperDetailUnitExp.class);
|
|
|
+ paperDetailExps.get(i).setPaperDetailUnits(paperDetailUnitExps);
|
|
|
+ }
|
|
|
+ //初始化试卷内容
|
|
|
+ initPaper(paperExp);
|
|
|
+
|
|
|
+ return paperExp;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化试卷内容(增加序号)
|
|
|
+ * @param paperExp
|
|
|
+ */
|
|
|
+ public void initPaper(PaperExp paperExp){
|
|
|
+ if(paperExp.getPaperDetails() == null || paperExp.getPaperDetails().size() == 0){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ int mainNum = 0;
|
|
|
+ int subNum = 0;
|
|
|
+ for(PaperDetailExp paperDetail: paperExp.getPaperDetails()){
|
|
|
+ //大题序号
|
|
|
+ paperDetail.setCnNum(CommonUtils.toCHNum(paperDetail.getNumber()));
|
|
|
+ paperDetail.setNumber(++mainNum);
|
|
|
+ if(paperDetail.getPaperDetailUnits() == null ||
|
|
|
+ paperDetail.getPaperDetailUnits().size() == 0){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //小题序号
|
|
|
+ for(PaperDetailUnitExp paperDetailUnit:paperDetail.getPaperDetailUnits()){
|
|
|
+
|
|
|
+ quesService.formatQues(paperDetailUnit.getQuestion());
|
|
|
+
|
|
|
+ List<Question> subQuesList = paperDetailUnit.getQuestion().getSubQuestions();
|
|
|
+ //套题序号
|
|
|
+ if(subQuesList != null && subQuesList.size() > 0){
|
|
|
+ for(Question subQues:subQuesList){
|
|
|
+ Map<String,String> params = new HashMap<String,String>();
|
|
|
+ params.put("number",String.valueOf(++subNum));
|
|
|
+ subQues.setQuesParams(params);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ paperDetailUnit.setNumber(++subNum);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 格式化查询条件
|
|
|
+ * @param paperSearchInfo
|
|
|
+ */
|
|
|
public void formatPaperSearchInfo(PaperSearchInfo paperSearchInfo){
|
|
|
if(StringUtils.isEmpty(paperSearchInfo.getCourseNo())){
|
|
|
paperSearchInfo.setCourseNo(null);
|