Browse Source

考生信息如果是已经上传答题卡的,需要修改考生信息中的“学习中心”或“课程名称”或“准考证号”的情况,就提示它必须重新上传答题卡

nikang 6 years ago
parent
commit
f3db0d99e3

+ 31 - 7
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/parameter/ExamStudentController.java

@@ -168,6 +168,18 @@ public class ExamStudentController extends BaseParameterController {
             if (student.getId() != null) {
                 ExamStudent previous = studentService.findById(student.getId());
                 if (previous != null) {
+                    /**
+                     * 前提条件:该学生已经上传答题卡 upload = true
+                     * 处理逻辑:如果修改“学习中心”或“课程名称”或“准考证号”则需要要求重新上传答题卡,并将上传状态重置为“未上传”
+                     */
+                    boolean showTip = false;
+                    if(previous.isUpload()){
+                        if((!previous.getCampusName().equals(student.getCampusName())) || (!previous.getSubjectCode().equals(student.getSubjectCode()))
+                                || (!previous.getExamNumber().equals(student.getExamNumber()))){
+                            previous.setUpload(false);
+                            showTip =true;
+                        }
+                    }
                     previous.setCampusName(student.getCampusName());
                     previous.setSubjectCode(subject.getCode());
                     previous.setSubjectName(subject.getName());
@@ -178,6 +190,7 @@ public class ExamStudentController extends BaseParameterController {
                     if (checkExamNumber(previous, null, null)) {
                         studentService.save(previous);
                         addMessage(redirectAttributes, "考生" + previous.getName() + "保存成功");
+                        if(showTip) addMessage(redirectAttributes,"修改成功,但需要重新上传考生答题卡");
                     } else {
                         addMessage(redirectAttributes, "准考证号" + previous.getExamNumber() + "已存在");
                         redirectAttributes.addAttribute("id", student.getId());
@@ -300,7 +313,7 @@ public class ExamStudentController extends BaseParameterController {
             String fileName = "违纪考生导入模板.xlsx";
             List<ExamStudentVO> list = Lists.newArrayList();
             list.add(new ExamStudentVO());
-            new ExportExcel("", ExamStudentVO.class, 2).setDataList(list).write(response, fileName).dispose();
+            new ExportExcel("违纪考生", ExamStudentVO.class, 2).setDataList(list).write(response, fileName).dispose();
             return null;
         } catch (Exception e) {
             addMessage(redirectAttributes, "导入模板下载失败!失败信息:" + e.getMessage());
@@ -314,19 +327,30 @@ public class ExamStudentController extends BaseParameterController {
         Exam exam = examService.findById(examId);
         try {
             int successNum = 0;
-            ImportExcel ei = new ImportExcel(file, 0, 0);
+            int failureNum = 0;
+            StringBuilder failureMsg = new StringBuilder();
+            ImportExcel ei = new ImportExcel(file, 1, 0);
             List<ExamStudentVO> list = ei.getDataList(ExamStudentVO.class);
             for (ExamStudentVO studentVO : list) {
                 if ( StringUtils.isBlank(studentVO.getExamNumber())) {
                     continue;
                 }
                 ExamStudent student = studentService.findByExamIdAndExamNumber(examId,studentVO.getExamNumber());
-                student.setBreach(true);
-                studentService.save(student);
-                saveMarkLibrary(student);
-                successNum ++;
+                if(student != null){
+                    student.setBreach(true);
+                    studentService.save(student);
+                    saveMarkLibrary(student);
+                    successNum ++;
+                }else {
+                    failureMsg.append("<br/>准考证号 " + studentVO.getExamNumber() + " 不存在; ");
+                    failureNum ++;
+                }
+
             }
-            addMessage(redirectAttributes, "已成功导入 " + successNum + " 条用户");
+            if (failureNum > 0) {
+                failureMsg.insert(0, ",失败 " + failureNum + " 条用户");
+            }
+            addMessage(redirectAttributes, "已成功导入 " + successNum + " 条用户" + failureMsg);
         } catch (Exception e) {
             log.error("Batch import BreachStudent error!", e);
             addMessage(redirectAttributes, "导入违纪考生失败!失败信息:" + e.getMessage());