wangliang пре 4 година
родитељ
комит
4bef92d3fc

+ 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()));

+ 1 - 0
themis-business/src/main/resources/mapper/TEExamReexamMapper.xml

@@ -48,6 +48,7 @@
                     and tees.identity like CONCAT('%', #{identity},'%')
                 </if>
                 and tees.enable = 1
+                and tee.monitor_status <![CDATA[ <> ]]> 'FINISHED'
             </where>
         ) t where t.examCount = 0 and statusCount = 0
             order by t.roomCode

+ 2 - 0
themis-business/src/main/resources/mapper/TOeExamRecordMapper.xml

@@ -550,6 +550,7 @@
 			</if>
 			and tee.enable = 1
 			and teea.enable = 1
+			and tee.monitor_status <![CDATA[ <> ]]> 'FINISHED'
 		</where>
 		order by tees.room_code
 	</select>
@@ -607,6 +608,7 @@
 			</if>
 			and tee.enable = 1
 			and teea.enable = 1
+			and tee.monitor_status <![CDATA[ <> ]]> 'FINISHED'
 		</where>
 		group by tee.id,tees.room_code,tee.name,teea.id,teea.code,tees.`identity`,tees.name,leftExamCount,status,tes.mobile_number
 		order by tees.room_code