浏览代码

修复云阅卷格式不一致导致标准版成绩无法导出的问题

wangliang 2 年之前
父节点
当前提交
9def402619

+ 10 - 2
themis-business/src/main/java/com/qmth/themis/business/templete/impl/TaskMarkResultStandardExportTemplete.java

@@ -33,6 +33,7 @@ import com.qmth.themis.common.util.GsonUtil;
 import com.qmth.themis.common.util.Result;
 import com.qmth.themis.common.util.ResultUtil;
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
 import org.slf4j.Logger;
@@ -161,8 +162,15 @@ public class TaskMarkResultStandardExportTemplete implements TaskExportTemplete
                                 for (int i = 0; i < subjectiveScoreDetailJsonArray.size(); i++) {
                                     JSONObject jsonObject = subjectiveScoreDetailJsonArray.getJSONObject(i);
                                     Integer mainNumber = jsonObject.getInteger("mainNumber");
-                                    Integer subNumber = jsonObject.getInteger("subNumber");
-                                    Integer subIndex = jsonObject.getInteger("subIndex");
+                                    String subNumberStr = jsonObject.getString("subNumber");
+                                    Integer subNumber = null, subIndex = null;
+                                    if (Objects.nonNull(subNumberStr)) {
+                                        String[] strs = StringUtils.split(subNumberStr, "-");
+                                        subNumber = Integer.parseInt(strs[0]);
+                                        if (strs.length > 1) {
+                                            subIndex = Integer.parseInt(strs[1]);
+                                        }
+                                    }
                                     Double score = jsonObject.getDouble("score");
                                     String questionsTitle = String.valueOf(mainNumber);
                                     questionsTitle = Objects.nonNull(subNumber) ?