|
@@ -1,17 +1,22 @@
|
|
package cn.com.qmth.stmms.admin.exam;
|
|
package cn.com.qmth.stmms.admin.exam;
|
|
|
|
|
|
|
|
+import java.io.File;
|
|
|
|
+import java.io.FileInputStream;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+import java.util.UUID;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
|
|
+import org.apache.commons.io.FileUtils;
|
|
import org.apache.commons.lang.StringEscapeUtils;
|
|
import org.apache.commons.lang.StringEscapeUtils;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.ui.Model;
|
|
import org.springframework.ui.Model;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
@@ -27,16 +32,20 @@ import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamService;
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamService;
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
|
|
import cn.com.qmth.stmms.biz.exam.service.query.ExamSubjectSearchQuery;
|
|
import cn.com.qmth.stmms.biz.exam.service.query.ExamSubjectSearchQuery;
|
|
|
|
+import cn.com.qmth.stmms.biz.file.service.FileService;
|
|
import cn.com.qmth.stmms.biz.mark.model.PictureConfigItem;
|
|
import cn.com.qmth.stmms.biz.mark.model.PictureConfigItem;
|
|
import cn.com.qmth.stmms.biz.school.model.School;
|
|
import cn.com.qmth.stmms.biz.school.model.School;
|
|
import cn.com.qmth.stmms.biz.school.service.SchoolService;
|
|
import cn.com.qmth.stmms.biz.school.service.SchoolService;
|
|
import cn.com.qmth.stmms.common.annotation.Logging;
|
|
import cn.com.qmth.stmms.common.annotation.Logging;
|
|
import cn.com.qmth.stmms.common.annotation.RoleRequire;
|
|
import cn.com.qmth.stmms.common.annotation.RoleRequire;
|
|
|
|
+import cn.com.qmth.stmms.common.domain.WebUser;
|
|
import cn.com.qmth.stmms.common.enums.ExamStatus;
|
|
import cn.com.qmth.stmms.common.enums.ExamStatus;
|
|
import cn.com.qmth.stmms.common.enums.LogType;
|
|
import cn.com.qmth.stmms.common.enums.LogType;
|
|
import cn.com.qmth.stmms.common.enums.Role;
|
|
import cn.com.qmth.stmms.common.enums.Role;
|
|
import cn.com.qmth.stmms.common.utils.ExportExcel;
|
|
import cn.com.qmth.stmms.common.utils.ExportExcel;
|
|
import cn.com.qmth.stmms.common.utils.ImportExcel;
|
|
import cn.com.qmth.stmms.common.utils.ImportExcel;
|
|
|
|
+import cn.com.qmth.stmms.common.utils.MD5Util;
|
|
|
|
+import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
import net.sf.json.JSONArray;
|
|
import net.sf.json.JSONArray;
|
|
import net.sf.json.JSONObject;
|
|
import net.sf.json.JSONObject;
|
|
import net.sf.json.JsonConfig;
|
|
import net.sf.json.JsonConfig;
|
|
@@ -50,10 +59,14 @@ public class SubjectController extends BaseExamController {
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private ExamService examService;
|
|
private ExamService examService;
|
|
-
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private FileService fileService;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private SchoolService schoolService;
|
|
private SchoolService schoolService;
|
|
-
|
|
|
|
|
|
+ @Value("${file.temp}")
|
|
|
|
+ private String tempFile;
|
|
|
|
+
|
|
@RequestMapping("/list")
|
|
@RequestMapping("/list")
|
|
@ResponseBody
|
|
@ResponseBody
|
|
public JSONArray list(HttpServletRequest request, @RequestParam Integer examId) {
|
|
public JSONArray list(HttpServletRequest request, @RequestParam Integer examId) {
|
|
@@ -163,7 +176,18 @@ public class SubjectController extends BaseExamController {
|
|
if(StringUtils.isBlank(errMsg)) {
|
|
if(StringUtils.isBlank(errMsg)) {
|
|
model.addAttribute("message", "已成功导入");
|
|
model.addAttribute("message", "已成功导入");
|
|
}else {
|
|
}else {
|
|
- model.addAttribute("errmsg", errMsg);
|
|
|
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
|
+ File errFile = new File(tempFile + File.separator +UUID.randomUUID().toString()+ ".txt");
|
|
|
|
+ try {
|
|
|
|
+ errFile.getParentFile().mkdirs();
|
|
|
|
+ FileUtils.write(errFile, errMsg,"utf-8");
|
|
|
|
+ fileService.uploadSubjectSplitErr(new FileInputStream(errFile), MD5Util.md5Hex(errFile), schoolId,
|
|
|
|
+ examId, wu.getId());
|
|
|
|
+ model.addAttribute("errmsgUrl", fileService.getFileServer()+fileService.getSubjectSplitErrUri(schoolId, examId, wu.getId()));
|
|
|
|
+ model.addAttribute("errmsg", "导入信息有误,请查看error.txt文件");
|
|
|
|
+ } finally {
|
|
|
|
+ errFile.delete();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}catch (Exception e) {
|
|
}catch (Exception e) {
|
|
log.error("导入失败",e);
|
|
log.error("导入失败",e);
|