Commit ee8c0b0c by “Kongxiangkun”

测试管理-题库试题导入问题修改

parent 83565782
......@@ -47,7 +47,7 @@ public class ExamImportController {
map.put("libraryId",importVO.getId());
map.put("url",importVO.getUrl());
log.info("题目导入入参:{}", JSONUtil.toJsonStr(map));
librarySubjectImport.execute(map, false);
librarySubjectImport.execute(map);
return Response.ok();
}
......
......@@ -12,7 +12,6 @@ package com.yizhi.application.exam.controller;
import cn.hutool.json.JSONUtil;
import com.yizhi.core.application.context.TaskContext;
import com.yizhi.core.application.file.task.AbstractDefaultTask;
import com.yizhi.exam.application.feign.QuestionLibrarySubjectClient;
import com.yizhi.exam.application.vo.TrQuestionLibrarySubjectVO;
import com.yizhi.exam.application.vo.TrQuestionSubjectOptionVO;
......@@ -47,7 +46,7 @@ import java.util.*;
* @since 1.0.0
*/
@Component
public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQuestionSubjectVO>, Map<String, Object>> {
public class LibrarySubjectImport /**extends AbstractDefaultTask<List<ImportExamQuestionSubjectVO>, Map<String, Object>>**/ {
private static String BASEPATH = "e:/";
private String XLSX = ".xlsx";
......@@ -59,8 +58,8 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
@Autowired
QuestionLibrarySubjectClient questionLibrarySubjectClient;
@Override
protected List<ImportExamQuestionSubjectVO> execute(Map<String, Object> map) {
//@Override
public List<ImportExamQuestionSubjectVO> execute(Map<String, Object> map) {
QuestionLibrary questionLibrary;
TrQuestionLibrarySubjectVO trQuestionLibrarySubjectVO = null;
List<TrQuestionLibrarySubjectVO> insertList = new ArrayList<>();
......@@ -81,7 +80,7 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
Workbook book = getFile(url);
Long id = System.currentTimeMillis();
TaskContext taskContext = new TaskContext(id, "QUESTION-IMPORT" + id, TASKNAME, accountId, time, siteId, companyId);
working(taskContext);
// working(taskContext);
List<ImportExamQuestionSubjectVO> list = readExcelFile(book, taskContext);
LOGGER.info("题库导入入参内容:", JSONUtil.toJsonStr(list));
int sort = 1; //生成默认排序
......@@ -112,7 +111,8 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
} else {
fail++;
typeErrorList.add(sort);
taskDetail(id, "第" + sort + "行试题类型不正确");
//taskDetail(id, "第" + sort + "行试题类型不正确");
LOGGER.error("第{}行试题类型不正确", sort);
continue;
}
if (type > 0 && type <= 4) {
......@@ -147,28 +147,32 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
if (rightAnswerNum != 1) {
fail++;
rightAnswerErrorList.add(sort);
taskDetail(id, "第" + sort + "行正确答案数不正确");
//taskDetail(id, "第" + sort + "行正确答案数不正确");
LOGGER.error("第{}行正确答案数不正确", sort);
}
}
if (type == 2) {
if (rightAnswerNum <= 1 || rightAnswerNum > options.size()) {
fail++;
rightAnswerErrorList.add(sort);
taskDetail(id, "第" + sort + "行正确答案数不正确");
// taskDetail(id, "第" + sort + "行正确答案数不正确");
LOGGER.error("第{}行正确答案数不正确", sort);
}
}
if (type == 3) {
if (rightAnswerNum != 1) {
fail++;
rightAnswerErrorList.add(sort);
taskDetail(id, "第" + sort + "行正确答案数不正确");
// taskDetail(id, "第" + sort + "行正确答案数不正确");
LOGGER.error("第{}行正确答案数不正确", sort);
}
}
int index = 1;
if (options.size() < 2) {
fail++;
optionErrorList.add(sort);
taskDetail(id, "第" + sort + "行试题选项个数不正确");
// taskDetail(id, "第" + sort + "行试题选项个数不正确");
LOGGER.error("第{}行试题选项个数不正确", sort);
continue;
}
......@@ -202,7 +206,8 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
}
if (!hasRightAnswer) {
rightAnswerErrorList.add(sort);
taskDetail(id, "第" + sort + "行正确答案数不正确");
//taskDetail(id, "第" + sort + "行正确答案数不正确");
LOGGER.error("第{}行正确答案数不正确", sort);
}
trQuestionLibrarySubjectVO.setTrQuestionSubjectOptionVOList(trQuestionSubjectOptionVOList);
}
......@@ -216,15 +221,16 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
success++;
} catch (Exception e) {
e.printStackTrace();
fail(taskContext, "导入过程中出现错误");
LOGGER.error("题库导入异常:{}", e.getMessage());
// fail(taskContext, "导入过程中出现错误");
LOGGER.error("导入过程中出现错误:{}", e.getMessage());
}
}
boolean result = true;
try {
if (CollectionUtils.isNotEmpty(optionErrorList) ||
CollectionUtils.isNotEmpty(rightAnswerErrorList) || CollectionUtils.isNotEmpty(typeErrorList)) {
success(taskContext, "导入数据有误,请查看明细", url);
// success(taskContext, "导入数据有误,请查看明细", url);
LOGGER.error("导入数据有误,请查看明细:{}", url);
return null;
}
LOGGER.info("题库导入insertList:", JSONUtil.toJsonStr(insertList));
......@@ -234,35 +240,43 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
for (int i = 0; i < n; i++) {
result = questionLibrarySubjectClient.insertList(insertList.subList(100 * i, 100 * i + 100));
if (!result) {
success(taskContext, "数据保存过程中出现错误", url);
// success(taskContext, "数据保存过程中出现错误", url);
LOGGER.error("数据保存过程中出现错误:{}", url);
}
}
if (insertList.size() % 100 > 0) {
result = questionLibrarySubjectClient.insertList(insertList.subList(100 * n, insertList.size()));
if (!result) {
success(taskContext, "数据保存过程中出现错误", url);
// success(taskContext, "数据保存过程中出现错误", url);
LOGGER.error("数据保存过程中出现错误:{}", url);
}
}
} else {
result = questionLibrarySubjectClient.insertList(insertList);
if (!result) {
success(taskContext, "数据保存过程中出现错误", url);
// success(taskContext, "数据保存过程中出现错误", url);
LOGGER.error("数据保存过程中出现错误:{}", url);
}
}
} else {
success(taskContext, "未检测到数据", "");
// success(taskContext, "未检测到数据", "");
LOGGER.error("未检测到数据:{}", url);
}
} catch (Exception e) {
e.printStackTrace();
success(taskContext, "数据保存过程中出现错误", url);
// success(taskContext, "数据保存过程中出现错误", url);
LOGGER.error("题库导入选项异常:{}", e.getMessage());
}
if (result) {
success(taskContext, "成功导入" + insertList.size() + "条", url);
// success(taskContext, "成功导入" + insertList.size() + "条", url);
LOGGER.info("成功导入:{}条", insertList.size());
} else {
success(taskContext, "数据保存过程中出现错误", url);
// success(taskContext, "数据保存过程中出现错误", url);
LOGGER.info("数据保存过程中出现错误:{}", insertList);
}
......@@ -351,7 +365,7 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
} catch (Exception e) {
errorMessage = "第" + (i + 1) + "行" + "第" + (j + 1) + "列解析出错!";
e.printStackTrace();
fail(taskContext, errorMessage);
// fail(taskContext, errorMessage);
}
}
try {
......@@ -362,7 +376,7 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
} catch (Exception e) {
errorMessage = "第" + (i + 2) + "行" + "第" + (index + 1) + "列解析出错!";
e.printStackTrace();
fail(taskContext, errorMessage);
//fail(taskContext, errorMessage);
}
try {
if (row.getCell(index) != null) {
......@@ -372,7 +386,7 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
} catch (Exception e) {
errorMessage = "第" + (i + 2) + "行" + "第" + (index + 1) + "列解析出错!";
e.printStackTrace();
fail(taskContext, errorMessage);
//fail(taskContext, errorMessage);
}
try {
if (row.getCell(index) != null) {
......@@ -382,7 +396,7 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
} catch (Exception e) {
errorMessage = "第" + (i + 2) + "行" + "第" + (index + 1) + "列解析出错!";
e.printStackTrace();
fail(taskContext, errorMessage);
//fail(taskContext, errorMessage);
}
try {
if (row.getCell(index) != null) {
......@@ -392,7 +406,7 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
} catch (Exception e) {
errorMessage = "第" + (i + 2) + "行" + "第" + (index + 1) + "列解析出错!";
e.printStackTrace();
fail(taskContext, errorMessage);
//fail(taskContext, errorMessage);
}
try {
if (row.getCell(index) != null) {
......@@ -401,9 +415,10 @@ public class LibrarySubjectImport extends AbstractDefaultTask<List<ImportExamQue
}
index++;
} catch (Exception e) {
errorMessage = "第" + (i + 2) + "行" + "第" + (index + 1) + "列解析出错!";
// errorMessage = "第" + (i + 2) + "行" + "第" + (index + 1) + "列解析出错!";
e.printStackTrace();
fail(taskContext, errorMessage);
LOGGER.error("第{}行" + "第{}列解析出错!", (i + 2), (index + 1));
// fail(taskContext, errorMessage);
}
vo.setOption(options);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment