|
@@ -7,6 +7,7 @@ import java.util.regex.Pattern;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.apache.commons.lang3.SystemUtils;
|
|
|
import org.nlpcn.commons.lang.util.StringUtil;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -166,37 +167,53 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
|
|
|
public Map<String, Object> extractExamPaper(Long exam_id,String course_code,String group_code){
|
|
|
Map<String, Object> returnMap = new HashMap<String,Object>();
|
|
|
logger.info("调卷开始...");
|
|
|
+ long beginTime = System.currentTimeMillis();
|
|
|
logger.info("开始根据examId:"+exam_id+"和courseCode:"+course_code+"获取调卷规则");
|
|
|
ExtractConfig extractConfig = this.findConfig(new ExtractConfig(exam_id,course_code));
|
|
|
if(extractConfig==null){
|
|
|
- logger.debug("该考试和课程下调卷规则未制定,请先制定调卷规则,调卷程序退出");
|
|
|
+ logger.error("该考试和课程下调卷规则未制定,请先制定调卷规则,调卷程序退出");
|
|
|
returnMap.put("errorMsg","该考试和课程下调卷规则未制定,请先制定调卷规则");
|
|
|
return returnMap;
|
|
|
}
|
|
|
- logger.debug("根据调卷规则中设置的概率获取类型为"+group_code+"的试卷");
|
|
|
+ long configFinishTime = System.currentTimeMillis();
|
|
|
+ logger.info("获取调卷规则共耗时:"+(configFinishTime - beginTime)+"ms");
|
|
|
+ logger.info("根据调卷规则中设置的概率获取类型为"+group_code+"的试卷");
|
|
|
Map<String,Paper> paperMap = this.getExamPaperByProbability(extractConfig.getExamPaperList());
|
|
|
if(paperMap.isEmpty()){
|
|
|
- logger.debug("该考试和课程下调卷规则中试卷不存在,请检查调卷规则,调卷程序退出");
|
|
|
+ logger.error("该考试和课程下调卷规则中试卷不存在,请检查调卷规则,调卷程序退出");
|
|
|
returnMap.put("errorMsg","该考试和课程下调卷规则中试卷不存在,请重新制定调卷规则");
|
|
|
return returnMap;
|
|
|
}
|
|
|
+
|
|
|
+ long paperMapFinishTime = System.currentTimeMillis();
|
|
|
+ logger.info("获取类型为"+group_code+"的试卷共耗时:"+(paperMapFinishTime - configFinishTime)+"ms");
|
|
|
+
|
|
|
Paper basePaper = paperMap.get(group_code);
|
|
|
if(basePaper==null){
|
|
|
- logger.debug("该考试和课程下调卷规则中该类型试卷不存在,请检查调卷规则,调卷程序退出");
|
|
|
+ logger.error("该考试和课程下调卷规则中该类型试卷不存在,请检查调卷规则,调卷程序退出");
|
|
|
returnMap.put("errorMsg","该考试和课程下调卷规则中该类型试卷不存在,请重新制定调卷规则");
|
|
|
return returnMap;
|
|
|
}
|
|
|
String basePaperId = basePaper.getId();
|
|
|
- logger.debug("将原始试卷:"+basePaperId+"根据规则重新组卷");
|
|
|
+ logger.info("将原始试卷:"+basePaperId+"根据规则重新组卷");
|
|
|
Paper newPaper = this.recombinationPaper(basePaper,PaperType.STUDENT_EXAM,
|
|
|
extractConfig.getScrambling_the_question_order(),
|
|
|
extractConfig.getScrambling_the_option_order());
|
|
|
- logger.debug("根据新试卷 paperId:"+newPaper.getId()+"组装PaperDto后返回");
|
|
|
+ logger.info("根据新试卷 paperId:"+newPaper.getId()+"组装PaperDto后返回");
|
|
|
+
|
|
|
+ long genPaperFinishTime = System.currentTimeMillis();
|
|
|
+ logger.info("组卷共耗时:"+(genPaperFinishTime - paperMapFinishTime)+"ms");
|
|
|
+
|
|
|
PaperDto paperDto = getPaperDtoByPaper(newPaper);
|
|
|
+
|
|
|
+ long paperDtoFinishTime = System.currentTimeMillis();
|
|
|
+ logger.info("获取试卷Dto共耗时:"+(paperDtoFinishTime - genPaperFinishTime)+"ms");
|
|
|
+
|
|
|
paperDto.setBasePaperId(basePaperId);
|
|
|
paperDto.setAllQbjectiveQuestion(checkIsAllQbjectiveQuestion(basePaperId));
|
|
|
returnMap.put("paperDto",paperDto);
|
|
|
logger.info("调卷完成");
|
|
|
+ logger.info("总共耗时:"+(System.currentTimeMillis() - beginTime)+"ms");
|
|
|
return returnMap;
|
|
|
}
|
|
|
|