wangwei 7 years ago
parent
commit
64a7ec2433

+ 10 - 12
examcloud-core-examwork-api-provider/src/main/java/cn/com/qmth/examcloud/core/examwork/api/controller/ExamStudentController.java

@@ -2,6 +2,7 @@ package cn.com.qmth.examcloud.core.examwork.api.controller;
 
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -45,6 +46,7 @@ import cn.com.qmth.examcloud.common.dto.examwork.CommonExamStudent;
 import cn.com.qmth.examcloud.commons.base.util.ErrorMsg;
 import cn.com.qmth.examcloud.commons.base.util.excel.ExcelError;
 import cn.com.qmth.examcloud.commons.web.helpers.page.PageInfo;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.core.basic.api.StudentCloudService;
 import cn.com.qmth.examcloud.core.basic.api.request.InsertOrUpdateStudentReq;
@@ -396,18 +398,14 @@ public class ExamStudentController extends ControllerSupport {
 
 	@ApiOperation(value = "导入考试学生", notes = "导入")
 	@PostMapping("/import")
-	public ResponseEntity importExamStudent(@RequestParam Long examId,
-			@RequestParam CommonsMultipartFile file) {
-		cn.com.qmth.examcloud.commons.web.security.bean.User accessUser = getAccessUser();
-		try {
-			File tempFile = ImportUtils.getUploadFile(file);
-			List<ExcelError> excelErrors = examStudentService.importExamStudent(
-					accessUser.getUserToken(), examId, new FileInputStream(tempFile));
-			return new ResponseEntity(excelErrors, HttpStatus.OK);
-		} catch (Exception e) {
-			log.error("导入失败:", e);
-			return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);
-		}
+	public List<ExcelError> importExamStudent(@RequestParam Long examId,
+			@RequestParam CommonsMultipartFile file) throws Exception {
+		User accessUser = getAccessUser();
+
+		File tempFile = ImportUtils.getUploadFile(file);
+		List<ExcelError> excelErrors = examStudentService.importExamStudent(
+				accessUser.getUserToken(), examId, new FileInputStream(tempFile));
+		return excelErrors;
 	}
 
 	@ApiOperation(value = "下载导入模板", notes = "下载导入模板")

+ 5 - 14
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/impl/ExamStudentService.java

@@ -202,7 +202,8 @@ public class ExamStudentService {
 	 * 
 	 * @return
 	 */
-	public List<ExcelError> importExamStudent(String token, Long examId, InputStream inputStream) {
+	public List<ExcelError> importExamStudent(String userToken, Long examId,
+			InputStream inputStream) {
 		log.info("导入考生开始");
 		Exam exam = examRepo.findOne(examId);
 		List<ExcelError> excelErrors = new ArrayList<ExcelError>();
@@ -219,13 +220,13 @@ public class ExamStudentService {
 				ExamStudentDTO dto = (ExamStudentDTO) obj;
 				dto.setRootOrgId(exam.getRootOrgId());
 				dto.setExam(exam);
-				ExcelError error = importCheck(token, dto);
+				ExcelError error = importCheck(userToken, dto);
 				if (error == null) {
 					examStudents.add(examStudentAssembler.toDomain(dto));
 				}
 				int stu_num = examStudents.size();
 				if (stu_num % 5000 == 0) {
-					saveStudentList(token, examStudents);
+					saveStudentList(userToken, examStudents);
 					log.info("已导入" + stu_num + "条数据");
 				}
 				return error;
@@ -233,7 +234,7 @@ public class ExamStudentService {
 
 		});
 		int stu_num = examStudents.size();
-		saveStudentList(token, examStudents);
+		saveStudentList(userToken, examStudents);
 		log.info("已导入" + stu_num + "条数据");
 		log.info("导入考生结束");
 		return excelErrors;
@@ -322,16 +323,6 @@ public class ExamStudentService {
 		if (StringUtils.isEmpty(dto.getOrgCode())) {
 			return new ExcelError("学习中心代码不能为空");
 		}
-		// if(StringUtils.isEmpty(dto.getSpecialtyCode())){
-		// return new ExcelError("专业代码不能为空");
-		// }
-		//
-		// Specialty specialty =
-		// specialtyService.findByOrgIdAndCode(dto.getOrgId(),dto.getSpecialtyCode());
-		// if(specialty == null || !specialty.getEnable()){
-		// return new ExcelError("专业代码不存在/被禁用");
-		// }
-		// dto.setSpecialtyName(specialty.getName());
 
 		Course course = courseService.findByOrgIdAndCode(token, dto.getRootOrgId(),
 				dto.getCourseCode());