|
@@ -1,11 +1,8 @@
|
|
|
package cn.com.qmth.stmms.admin.exam;
|
|
|
|
|
|
import java.io.File;
|
|
|
-import java.io.FileInputStream;
|
|
|
-import java.io.InputStream;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
-import java.util.UUID;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
@@ -33,7 +30,6 @@ 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.ExamSubjectService;
|
|
|
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.school.model.School;
|
|
|
import cn.com.qmth.stmms.biz.school.service.SchoolService;
|
|
@@ -45,7 +41,6 @@ import cn.com.qmth.stmms.common.enums.LogType;
|
|
|
import cn.com.qmth.stmms.common.enums.Role;
|
|
|
import cn.com.qmth.stmms.common.utils.ExportExcel;
|
|
|
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.JSONObject;
|
|
@@ -54,20 +49,17 @@ import net.sf.json.JsonConfig;
|
|
|
@Controller
|
|
|
@RequestMapping("/admin/exam/subject")
|
|
|
public class SubjectController extends BaseExamController {
|
|
|
- private static Logger log = LoggerFactory.getLogger(SubjectController.class);
|
|
|
+ private static Logger log = LoggerFactory.getLogger(SubjectController.class);
|
|
|
@Autowired
|
|
|
private ExamSubjectService subjectService;
|
|
|
|
|
|
@Autowired
|
|
|
private ExamService examService;
|
|
|
- @Autowired
|
|
|
- private FileService fileService;
|
|
|
-
|
|
|
@Autowired
|
|
|
private SchoolService schoolService;
|
|
|
- @Value("${file.temp}")
|
|
|
- private String tempFile;
|
|
|
-
|
|
|
+ @Value("${file.temp}")
|
|
|
+ private String tempFile;
|
|
|
+
|
|
|
@RequestMapping("/list")
|
|
|
@ResponseBody
|
|
|
public JSONArray list(HttpServletRequest request, @RequestParam Integer examId) {
|
|
@@ -151,10 +143,11 @@ public class SubjectController extends BaseExamController {
|
|
|
model.addAttribute("schoolId", schoolId);
|
|
|
model.addAttribute("schoolName", s.getName());
|
|
|
List<Exam> examList = examService.findBySchoolId(schoolId);
|
|
|
- if(examList!=null&&examList.size()>0) {
|
|
|
- List<Exam> tem=examList.stream().filter(e->!ExamStatus.FINISH.equals(e.getStatus())).collect(Collectors.toList());
|
|
|
+ if (examList != null && examList.size() > 0) {
|
|
|
+ List<Exam> tem = examList.stream().filter(e -> !ExamStatus.FINISH.equals(e.getStatus()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
model.addAttribute("examList", tem);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
model.addAttribute("examList", examList);
|
|
|
}
|
|
|
return "modules/exam/subjectSplit";
|
|
@@ -171,37 +164,41 @@ public class SubjectController extends BaseExamController {
|
|
|
model.addAttribute("schoolName", s.getName());
|
|
|
List<Exam> examList = examService.findBySchoolId(schoolId);
|
|
|
model.addAttribute("examList", examList);
|
|
|
- ImportExcel ei= new ImportExcel(file, 1, 0);
|
|
|
+ ImportExcel ei = new ImportExcel(file, 1, 0);
|
|
|
List<SubjectSplit> list = ei.getDataList(SubjectSplit.class);
|
|
|
- String errMsg=subjectService.split(schoolId,examId,list);
|
|
|
- if(StringUtils.isBlank(errMsg)) {
|
|
|
+ String errMsg = subjectService.split(schoolId, examId, list);
|
|
|
+ if (StringUtils.isBlank(errMsg)) {
|
|
|
model.addAttribute("message", "已成功导入");
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
WebUser wu = RequestUtils.getWebUser(request);
|
|
|
- File errFile = new File(tempFile +File.separator+ "subject-split-err"+File.separator +UUID.randomUUID().toString()+ ".txt");
|
|
|
- InputStream in=null;
|
|
|
- try {
|
|
|
- errFile.getParentFile().mkdirs();
|
|
|
- FileUtils.write(errFile, errMsg,"utf-8");
|
|
|
- in=new FileInputStream(errFile);
|
|
|
- fileService.uploadSubjectSplitErr(in, MD5Util.md5Hex(errFile), schoolId,
|
|
|
- examId, wu.getId());
|
|
|
- model.addAttribute("errmsgUrl", fileService.getFileServer()+fileService.getSubjectSplitErrUri(schoolId, examId, wu.getId()));
|
|
|
- model.addAttribute("errmsg", "导入信息有误,请查看error.txt文件");
|
|
|
- } finally {
|
|
|
- if(in!=null){
|
|
|
- in.close();
|
|
|
- }
|
|
|
+ File errFile = new File(getSubjectSplitErrFile(wu.getId()));
|
|
|
+ errFile.getParentFile().mkdirs();
|
|
|
+ if (errFile.exists()) {
|
|
|
errFile.delete();
|
|
|
}
|
|
|
+ FileUtils.write(errFile, errMsg, "utf-8");
|
|
|
+ model.addAttribute("errmsgFile", true);
|
|
|
+ model.addAttribute("errmsg", "导入信息有误,请查看error.txt文件");
|
|
|
}
|
|
|
- }catch (Exception e) {
|
|
|
- log.error("导入失败",e);
|
|
|
- model.addAttribute("errmsg", "导入失败:"+e.getMessage());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("导入失败", e);
|
|
|
+ model.addAttribute("errmsg", "导入失败:" + e.getMessage());
|
|
|
}
|
|
|
return "modules/exam/subjectSplit";
|
|
|
}
|
|
|
|
|
|
+ @RequestMapping(value = "split/err", method = RequestMethod.GET)
|
|
|
+ public void getImportTemplate(HttpServletRequest request, HttpServletResponse response) {
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
+ File file = new File(getSubjectSplitErrFile(wu.getId()));
|
|
|
+ exportFile("error.txt", file, response);
|
|
|
+ }
|
|
|
+
|
|
|
+ private String getSubjectSplitErrFile(Integer userId) {
|
|
|
+ String path = tempFile + File.separator + "subject-split-err" + File.separator + userId + File.separator + "error.txt";
|
|
|
+ return path;
|
|
|
+ }
|
|
|
+
|
|
|
@RequestMapping(value = "split/template")
|
|
|
public String splitTemplate(HttpServletResponse response, RedirectAttributes redirectAttributes) {
|
|
|
try {
|