/** * 得到试卷所有小题,将同一大题的小题存到同一个list中,并且以大题Id为键名,将list存到map中 * * @param examId 试卷编号 */ private Map<Integer, List<Question>> getQuestionsOfExam(int examId, Map<String, Image> images) { List<LStrMap<Object>> list = nwd.getQuestionsOfExam(examId); if (list.size() > 0) { Map<Integer, List<Question>> resultMap = new LinkedHashMap<Integer, List<Question>>(); for (Iterator<LStrMap<Object>> iterator = list.iterator(); iterator.hasNext(); ) { LStrMap<Object> tempMap = iterator.next(); // 组合小题信息到小题对象 Question question = new Question(); images.putAll(question.setContents(tempMap.get("ques_content").toString())); question.setDifficulty(Double.parseDouble(tempMap.get("difficulty").toString())); question.setIndexNo(tempMap.get("m_topic").toString()); Object keyword = tempMap.get("keyword"); images.putAll(question.setParses(keyword == null ? "" : keyword.toString())); question.setQuestionId(Integer.parseInt(tempMap.get("ques_id").toString())); question.setQuestionType(Integer.parseInt(tempMap.get("ques_type").toString())); question.setScore(Double.parseDouble(tempMap.get("score").toString())); question.setShareFlag(Integer.parseInt(tempMap.get("share_flag").toString())); Object quesRefer = tempMap.get("ques_refer"); String answer = quesRefer == null ? "" : quesRefer.toString(); if (question.getQuestionType() == 2) // 多选题要去除@@ answer.replace("@@", ""); else if (question.getQuestionType() == 4) // 填空题要去除选项号之前的## answer.replaceAll("##", ""); Object referIds = tempMap.get("remark"); if (referIds == null) question.setReferIds(""); else question.setReferIds(referIds.toString()); images.putAll(question.setAnswers(answer)); int typeId = Integer.parseInt(tempMap.get("type_id").toString()); if (resultMap.containsKey(typeId)) { resultMap.get(typeId).add(question); } else { ArrayList<Question> tempList = new ArrayList<Question>(); tempList.add(question); resultMap.put(typeId, tempList); } } fixArtAndQuestions(resultMap); // 封装材料和材料下小题 return resultMap; } return null; }