wangliang há 4 anos atrás
pai
commit
bbf733cf5f

+ 13 - 8
themis-business/src/main/java/com/qmth/themis/business/templete/impl/TaskMarkResultStandardExportTemplete.java

@@ -123,21 +123,26 @@ public class TaskMarkResultStandardExportTemplete implements TaskExportTemplete
                         tOeExamAnswerQueryWrapper.lambda().eq(TOeExamAnswer::getExamRecordId, m.getRecordId());
                         List<TOeExamAnswer> tOeExamAnswerList = tOeExamAnswerService.list(tOeExamAnswerQueryWrapper);
                         for (TOeExamAnswer s : tOeExamAnswerList) {
-                            String questionsTitle = s.getMainNumber() + "_" + s.getSubNumber();
+                            String questionsTitle = String.valueOf(s.getMainNumber());
+                            questionsTitle = Objects.nonNull(s.getSubNumber()) ? questionsTitle + "_" + s.getSubNumber() : questionsTitle;
+                            questionsTitle = Objects.nonNull(s.getSubIndex()) ? questionsTitle + "_" + s.getSubIndex() : questionsTitle;
                             if (Objects.nonNull(s.getAnswer())) {
                                 ObjectiveAnswerCacheBean objectiveAnswerCacheBean = objectiveAnswerCacheBeanMap.get(questionsTitle);
                                 if (Objects.nonNull(objectiveAnswerCacheBean)) {
                                     String title = QuestionTypeEnum.convertToTitle(objectiveAnswerCacheBean.getStructType()) + questionsTitle;
-                                    String answer = null;
+                                    String answer = "无";
                                     if (objectiveAnswerCacheBean.getStructType().intValue() == 1 || objectiveAnswerCacheBean.getStructType().intValue() == 2) {
-                                        List<String> list = Arrays.asList(s.getAnswer().replace("[", "").replace("]", "").replaceAll(" ", "").replaceAll("\n", "").split(","));
-                                        List<String> answerList = new ArrayList<>();
-                                        for (String s1 : list) {
-                                            answerList.add(AnswerTypeEnum.convertToTitle(s1.toUpperCase()));
+                                        String string = s.getAnswer().replace("[", "").replace("]", "").replaceAll(" ", "").replaceAll("\n", "");
+                                        if (Objects.nonNull(string) && !Objects.equals(string, "")) {
+                                            List<String> list = Arrays.asList(string.split(","));
+                                            List<String> answerList = new ArrayList<>();
+                                            for (String s1 : list) {
+                                                answerList.add(AnswerTypeEnum.convertToTitle(s1.toUpperCase()));
+                                            }
+                                            answer = answerList.toString();
                                         }
-                                        answer = answerList.toString();
                                     } else if (objectiveAnswerCacheBean.getStructType().intValue() == 3) {
-                                        answer = AnswerTypeEnum.convertToTitle(s.getAnswer().toUpperCase());
+                                        answer = AnswerTypeEnum.convertToTitle(s.getAnswer().replaceAll("\n", "").toUpperCase());
                                     }
                                     ExcelDto excelAnswerDto = new ExcelDto(title + "作答", answer);
                                     ExcelDto excelScoreDto = new ExcelDto(title + "得分", String.valueOf(s.getScore()));