|
@@ -3,8 +3,11 @@ package com.qmth.cqb.paper.service.impl;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.Iterator;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.Map.Entry;
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -17,9 +20,11 @@ import com.qmth.cqb.paper.dao.AudioTimeConfigRepo;
|
|
|
import com.qmth.cqb.paper.dao.PaperDetailUnitRepo;
|
|
|
import com.qmth.cqb.paper.dao.PaperRepo;
|
|
|
import com.qmth.cqb.paper.model.AudioTimeConfig;
|
|
|
+import com.qmth.cqb.paper.model.ExtractConfig;
|
|
|
import com.qmth.cqb.paper.model.Paper;
|
|
|
import com.qmth.cqb.paper.model.PaperDetailUnit;
|
|
|
import com.qmth.cqb.paper.service.AudioTimeConfigService;
|
|
|
+import com.qmth.cqb.paper.service.ExtractConfigService;
|
|
|
import com.qmth.cqb.question.service.QuesService;
|
|
|
|
|
|
/**
|
|
@@ -43,6 +48,9 @@ public class AudioTimeConfigServiceImpl implements AudioTimeConfigService{
|
|
|
@Autowired
|
|
|
private QuesService quesService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ExtractConfigService extractConfigService;
|
|
|
+
|
|
|
@Override
|
|
|
public void saveAudioTimeConfig(List<AudioTimeConfig> audioTimeConfigs,AccessUser user) {
|
|
|
this.deleteByExamIdAndCourseCode(audioTimeConfigs.get(0).getExamId(),audioTimeConfigs.get(0).getCourseCode());
|
|
@@ -69,25 +77,21 @@ public class AudioTimeConfigServiceImpl implements AudioTimeConfigService{
|
|
|
List<AudioTimeConfig> audioTimeConfigList = new ArrayList<AudioTimeConfig>();
|
|
|
for(AudioTimeConfig audioTimeConfig:audioTimeConfigModelList){
|
|
|
Paper paper = paperRepo.findOne(audioTimeConfig.getPaper().getId());
|
|
|
- //判断是否为音频卷
|
|
|
- if(paper != null && paper.getHasAudio() != null && paper.getHasAudio() == true){
|
|
|
- //根据试卷查询所有小题
|
|
|
- List<PaperDetailUnit> list = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
|
|
|
- for(PaperDetailUnit paperDetailUnit:list){
|
|
|
- if(paperDetailUnit.getQuestion().getHasAudio() != null && paperDetailUnit.getQuestion().getHasAudio() == true){
|
|
|
- AudioTimeConfig audioTimeCon = new AudioTimeConfig();
|
|
|
- audioTimeCon.setExamId(audioTimeConfig.getExamId());
|
|
|
- audioTimeCon.setExamName(audioTimeConfig.getExamName());
|
|
|
- audioTimeCon.setGroupCode(audioTimeConfig.getGroupCode());
|
|
|
- audioTimeCon.setPaper(paper);
|
|
|
- audioTimeCon.setCourseCode(audioTimeConfig.getCourseCode());
|
|
|
- quesService.formatQues(paperDetailUnit.getQuestion());
|
|
|
- audioTimeCon.setPaperDetailUnit(paperDetailUnit);
|
|
|
- audioTimeConfigList.add(audioTimeCon);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
+ //根据试卷查询所有小题
|
|
|
+ List<PaperDetailUnit> list = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
|
|
|
+ for(PaperDetailUnit paperDetailUnit:list){
|
|
|
+ if(paperDetailUnit.getQuestion().getHasAudio() != null && paperDetailUnit.getQuestion().getHasAudio() == true){
|
|
|
+ AudioTimeConfig audioTimeCon = new AudioTimeConfig();
|
|
|
+ audioTimeCon.setExamId(audioTimeConfig.getExamId());
|
|
|
+ audioTimeCon.setExamName(audioTimeConfig.getExamName());
|
|
|
+ audioTimeCon.setGroupCode(audioTimeConfig.getGroupCode());
|
|
|
+ audioTimeCon.setPaper(paper);
|
|
|
+ audioTimeCon.setCourseCode(audioTimeConfig.getCourseCode());
|
|
|
+ quesService.formatQues(paperDetailUnit.getQuestion());
|
|
|
+ audioTimeCon.setPaperDetailUnit(paperDetailUnit);
|
|
|
+ audioTimeConfigList.add(audioTimeCon);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
return audioTimeConfigList;
|
|
|
}
|
|
@@ -100,11 +104,47 @@ public class AudioTimeConfigServiceImpl implements AudioTimeConfigService{
|
|
|
|
|
|
@Override
|
|
|
public List<AudioTimeConfig> findAudioTimeConfigByExamId(String examId,String courseCode) {
|
|
|
- List<AudioTimeConfig> list = audioTimeConfigRepo.findByExamIdAndCourseCode(examId,courseCode);
|
|
|
- for(AudioTimeConfig audioTimeConfig : list){
|
|
|
+ List<AudioTimeConfig> audioTimeConfigList = audioTimeConfigRepo.findByExamIdAndCourseCodeOrderByGroupCode(examId,courseCode);
|
|
|
+ List<String> questionIds = new ArrayList<String>();
|
|
|
+ for(AudioTimeConfig audioTimeConfig:audioTimeConfigList){
|
|
|
+ questionIds.add(audioTimeConfig.getQuestionId());
|
|
|
+ }
|
|
|
+ ExtractConfig condition = new ExtractConfig();
|
|
|
+ condition.setExamId(Long.valueOf(examId));
|
|
|
+ condition.setCourseCode(courseCode);
|
|
|
+ ExtractConfig extractConfig = extractConfigService.findConfig(condition);
|
|
|
+
|
|
|
+ Map<String,String> paperIdMap = extractConfig.getFinishedPaperIdMap();
|
|
|
+ Set<Entry<String,String>> entrySet = paperIdMap.entrySet();
|
|
|
+ Iterator<Entry<String,String>> iterator = entrySet.iterator();
|
|
|
+ while(iterator.hasNext()){
|
|
|
+ Entry<String,String> entry = iterator.next();
|
|
|
+ String groupCode = entry.getKey();
|
|
|
+ String paperId = entry.getValue();
|
|
|
+ Paper paper = paperRepo.findOne(paperId);
|
|
|
+ //根据试卷查询所有小题
|
|
|
+ List<PaperDetailUnit> list = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
|
|
|
+ for(PaperDetailUnit paperDetailUnit:list){
|
|
|
+ if(paperDetailUnit.getQuestion().getHasAudio() != null && paperDetailUnit.getQuestion().getHasAudio() == true){
|
|
|
+ if(questionIds.contains(paperDetailUnit.getQuestion().getId())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ AudioTimeConfig audioTimeConfig = new AudioTimeConfig();
|
|
|
+ audioTimeConfig.setExamId(examId);
|
|
|
+ audioTimeConfig.setExamName(extractConfig.getExamName());
|
|
|
+ audioTimeConfig.setGroupCode(groupCode);
|
|
|
+ audioTimeConfig.setPaper(paper);
|
|
|
+ audioTimeConfig.setCourseCode(courseCode);
|
|
|
+ audioTimeConfig.setPaperDetailUnit(paperDetailUnit);
|
|
|
+ audioTimeConfigList.add(audioTimeConfig);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for(AudioTimeConfig audioTimeConfig : audioTimeConfigList){
|
|
|
quesService.formatQues(audioTimeConfig.getPaperDetailUnit().getQuestion());
|
|
|
}
|
|
|
- return list;
|
|
|
+ return audioTimeConfigList;
|
|
|
}
|
|
|
|
|
|
@Override
|