|
@@ -1,29 +1,5 @@
|
|
|
package cn.com.qmth.stmms.admin.exam;
|
|
|
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.LinkedList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
-import javax.servlet.http.HttpServletResponse;
|
|
|
-
|
|
|
-import net.sf.json.JSONObject;
|
|
|
-
|
|
|
-import org.apache.commons.lang.StringUtils;
|
|
|
-import org.slf4j.Logger;
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.beans.factory.annotation.Value;
|
|
|
-import org.springframework.stereotype.Controller;
|
|
|
-import org.springframework.ui.Model;
|
|
|
-import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
-import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
-import org.springframework.web.bind.annotation.RequestParam;
|
|
|
-import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
-import org.springframework.web.multipart.MultipartFile;
|
|
|
-import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
-
|
|
|
import cn.com.qmth.stmms.admin.vo.ExamStudentVO;
|
|
|
import cn.com.qmth.stmms.admin.vo.UploadStudentVO;
|
|
|
import cn.com.qmth.stmms.biz.campus.model.Campus;
|
|
@@ -41,14 +17,35 @@ import cn.com.qmth.stmms.biz.mark.service.MarkService;
|
|
|
import cn.com.qmth.stmms.common.annotation.Logging;
|
|
|
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.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.PictureUrlBuilder;
|
|
|
import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
|
-
|
|
|
import com.google.common.collect.Lists;
|
|
|
+import net.sf.json.JSONObject;
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.stereotype.Controller;
|
|
|
+import org.springframework.ui.Model;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
+import org.springframework.web.bind.annotation.RequestParam;
|
|
|
+import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.LinkedList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
@Controller("examStudentController")
|
|
|
@RequestMapping("/admin/exam/student")
|
|
@@ -82,136 +79,138 @@ public class StudentController extends BaseExamController {
|
|
|
|
|
|
@Logging(menu = "查询考生", type = LogType.QUERY)
|
|
|
@RequestMapping
|
|
|
- public String list(Model model, HttpServletRequest request, ExamStudentSearchQuery query) {
|
|
|
+ public String query(Model model, HttpServletRequest request, ExamStudentSearchQuery query) {
|
|
|
WebUser wu = RequestUtils.getWebUser(request);
|
|
|
- int examId = getSessionExamId(request);
|
|
|
- query.setExamId(examId);
|
|
|
- if (query.getBatchCode() != null) {
|
|
|
- query.setBatchCode(StringUtils.upperCase(query.getBatchCode()));
|
|
|
+ List<Exam> examList = getExamList(wu);
|
|
|
+ if (query.getExamId() == null) {
|
|
|
+ query.setExamId(getQueryExamId(request, examList));
|
|
|
}
|
|
|
- subjectFilter(query, wu);
|
|
|
- query = studentService.findByQuery(query);
|
|
|
- if (query.getCurrentCount() > 0) {
|
|
|
- for (ExamStudent student : query.getResult()) {
|
|
|
- student.setSubject(subjectService.find(student.getExamId(), student.getSubjectCode()));
|
|
|
- buildSheetUrl(student);
|
|
|
- buildPackageUrl(student);
|
|
|
+ if (query.getExamId() != null) {
|
|
|
+ setSessionExamId(request, query.getExamId());
|
|
|
+
|
|
|
+ if (query.getBatchCode() != null) {
|
|
|
+ query.setBatchCode(StringUtils.upperCase(query.getBatchCode()));
|
|
|
}
|
|
|
- model.addAttribute("studentList", query.getResult());
|
|
|
+ query = studentService.findByQuery(query);
|
|
|
+ if (query.getCurrentCount() > 0) {
|
|
|
+ for (ExamStudent student : query.getResult()) {
|
|
|
+ student.setSubject(subjectService.find(student.getExamId(), student.getSubjectCode()));
|
|
|
+ buildSheetUrl(student);
|
|
|
+ buildPackageUrl(student);
|
|
|
+ }
|
|
|
+ model.addAttribute("studentList", query.getResult());
|
|
|
+ }
|
|
|
+ model.addAttribute("campusList", studentService.findDistinctCampusName(query.getExamId()));
|
|
|
+ model.addAttribute("subjectList", getExamSubject(query.getExamId(), wu));
|
|
|
+ model.addAttribute("levelList", subjectService.listLevel(query.getExamId()));
|
|
|
+ model.addAttribute("categoryList", subjectService.listCategory(query.getExamId()));
|
|
|
+ Exam exam = examService.findById(query.getExamId());
|
|
|
+ model.addAttribute("examType", exam.getType());
|
|
|
}
|
|
|
model.addAttribute("query", query);
|
|
|
- model.addAttribute("campusList", studentService.findDistinctCampusName(examId));
|
|
|
- model.addAttribute("subjectList", getExamSubject(examId, wu));
|
|
|
- model.addAttribute("levelList", subjectService.listLevel(examId));
|
|
|
- model.addAttribute("categoryList", subjectService.listCategory(examId));
|
|
|
+ model.addAttribute("examList", examList);
|
|
|
model.addAttribute("imageServer", imageServer);
|
|
|
model.addAttribute("packageServer", packageServer);
|
|
|
- Exam exam = examService.findById(examId);
|
|
|
- model.addAttribute("examType", exam.getType());
|
|
|
return "modules/exam/studentList";
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/add")
|
|
|
@RoleRequire(Role.SCHOOL_ADMIN)
|
|
|
- public String form(HttpServletRequest request, ExamStudent student, Model model) {
|
|
|
- Exam exam = examService.findById(getSessionExamId(request));
|
|
|
+ public String add(HttpServletRequest request, ExamStudent student, Model model) {
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
model.addAttribute("student", student);
|
|
|
- model.addAttribute("subjectList", getExamSubject(exam.getId(), RequestUtils.getWebUser(request)));
|
|
|
- model.addAttribute("campusList", studentService.findDistinctCampusName(exam.getId()));
|
|
|
- return "modules/exam/studentForm";
|
|
|
+ model.addAttribute("examList", getExamList(wu));
|
|
|
+ return "modules/exam/studentAdd";
|
|
|
+ }
|
|
|
+
|
|
|
+ @Logging(menu = "新增考生", type = LogType.ADD)
|
|
|
+ @RequestMapping(value = "/insert")
|
|
|
+ @RoleRequire(Role.SCHOOL_ADMIN)
|
|
|
+ public String insert(ExamStudent student, RedirectAttributes redirectAttributes, HttpServletRequest request) {
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
+ Exam exam = student.getExamId() != null ? examService.findById(student.getExamId()) : null;
|
|
|
+ ExamSubject subject = exam != null ? subjectService.find(exam.getId(), student.getSubjectCode()) : null;
|
|
|
+ if (exam == null) {
|
|
|
+ addMessage(redirectAttributes, "考试不存在");
|
|
|
+ } else if (exam.getStatus() != ExamStatus.START || !exam.getSchoolId().equals(wu.getUser().getSchoolId())) {
|
|
|
+ addMessage(redirectAttributes, "考试不可操作");
|
|
|
+ } else if (subject == null) {
|
|
|
+ addMessage(redirectAttributes, "科目不存在");
|
|
|
+ } else {
|
|
|
+ student.setSchoolId(exam.getSchoolId());
|
|
|
+ student.setSubjectName(subject.getName());
|
|
|
+ student.setAbsent(false);
|
|
|
+ student.setUpload(false);
|
|
|
+ student.setException(false);
|
|
|
+ student.setSliceCount(0);
|
|
|
+ student.setSheetCount(0);
|
|
|
+ student.setObjectiveScore(0d);
|
|
|
+ student.setSubjectiveScore(0d);
|
|
|
+ if (studentService.findByExamIdAndExamNumber(student.getExamId(), student.getExamNumber()) != null) {
|
|
|
+ redirectAttributes.addAttribute("student", student);
|
|
|
+ addMessage(redirectAttributes, "准考证号" + student.getExamNumber() + "已经存在");
|
|
|
+ return "redirect:/admin/exam/student/add";
|
|
|
+ } else {
|
|
|
+ studentService.save(student);
|
|
|
+ addMessage(redirectAttributes, "考生" + student.getExamNumber() + "添加成功");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return "redirect:/admin/exam/student";
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/update")
|
|
|
@RoleRequire(Role.SCHOOL_ADMIN)
|
|
|
public String update(HttpServletRequest request, Integer id, Model model) {
|
|
|
- Exam exam = examService.findById(getSessionExamId(request));
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
ExamStudent student = studentService.findById(id);
|
|
|
- model.addAttribute("student", student);
|
|
|
- model.addAttribute("subjectList", getExamSubject(exam.getId(), RequestUtils.getWebUser(request)));
|
|
|
- model.addAttribute("campusList", studentService.findDistinctCampusName(exam.getId()));
|
|
|
- return "modules/exam/studentForm";
|
|
|
+ Exam exam = student != null ? examService.findById(student.getExamId()) : null;
|
|
|
+ if (exam != null && exam.getStatus() == ExamStatus.START) {
|
|
|
+ model.addAttribute("student", student);
|
|
|
+ model.addAttribute("subjectList", getExamSubject(exam.getId(), wu));
|
|
|
+ return "modules/exam/studentEdit";
|
|
|
+ } else {
|
|
|
+ return "redirect:/admin/exam/student";
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- @Logging(menu = "新增(修改)考生", type = LogType.UPDATE)
|
|
|
+ @Logging(menu = "修改考生", type = LogType.UPDATE)
|
|
|
@RequestMapping(value = "/save")
|
|
|
@RoleRequire(Role.SCHOOL_ADMIN)
|
|
|
public String save(ExamStudent student, Model model, RedirectAttributes redirectAttributes,
|
|
|
HttpServletRequest request, HttpServletResponse response) {
|
|
|
- int examId = getSessionExamId(request);
|
|
|
- Exam exam = examService.findById(examId);
|
|
|
- ExamSubject subject = subjectService.find(examId, student.getSubjectCode());
|
|
|
- Campus campus = campusService.findBySchoolAndName(exam.getSchoolId(), student.getCampusName());
|
|
|
- if (subject == null) {
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
+ Exam exam = student.getExamId() != null ? examService.findById(student.getExamId()) : null;
|
|
|
+ ExamSubject subject = exam != null ? subjectService.find(exam.getId(), student.getSubjectCode()) : null;
|
|
|
+ if (exam == null) {
|
|
|
+ addMessage(redirectAttributes, "考试不存在");
|
|
|
+ } else if (exam.getStatus() != ExamStatus.START || !exam.getSchoolId().equals(wu.getUser().getSchoolId())) {
|
|
|
+ addMessage(redirectAttributes, "考试不可操作");
|
|
|
+ } else if (subject == null) {
|
|
|
addMessage(redirectAttributes, "科目不存在");
|
|
|
- } else if (campus == null) {
|
|
|
- addMessage(redirectAttributes, "学习中心不存在");
|
|
|
} else {
|
|
|
- if (student.getId() != null) {
|
|
|
- ExamStudent previous = studentService.findById(student.getId());
|
|
|
- if (previous != null) {
|
|
|
- // String previousSubjectCode = previous.getSubjectCode();
|
|
|
- student.setExamId(examId);
|
|
|
- ExamStudent old = checkExamNumber(student, new HashMap<String, ExamStudent>(),
|
|
|
- new HashMap<String, ExamStudent>());
|
|
|
- if (old != null && !old.getExamNumber().equals(previous.getExamNumber())) {
|
|
|
- addMessage(redirectAttributes, "准考证号" + student.getExamNumber() + "已经存在");
|
|
|
- return "redirect:/admin/exam/student";
|
|
|
- }
|
|
|
- if (!previous.isUpload()) {
|
|
|
- // 还未扫描上传的考生,才能修改准考证号、学习中心、科目
|
|
|
- previous.setCampusName(student.getCampusName());
|
|
|
- previous.setSubjectCode(subject.getCode());
|
|
|
- previous.setSubjectName(subject.getName());
|
|
|
- previous.setExamNumber(student.getExamNumber());
|
|
|
- }
|
|
|
- previous.setStudentCode(student.getStudentCode());
|
|
|
- previous.setName(student.getName());
|
|
|
- previous.setPackageCode(student.getPackageCode());
|
|
|
- previous.setCollege(student.getCollege());
|
|
|
- previous.setClassName(student.getClassName());
|
|
|
- previous.setTeacher(student.getTeacher());
|
|
|
- previous = studentService.save(previous);
|
|
|
- // if
|
|
|
- // (!previousSubjectCode.equals(previous.getSubjectCode()))
|
|
|
- // {
|
|
|
- // // 更新科目上传考生数量
|
|
|
- // subjectService.updateUploadCount(examId,
|
|
|
- // previousSubjectCode);
|
|
|
- // subjectService.updateUploadCount(examId,
|
|
|
- // previous.getSubjectCode());
|
|
|
- // // 删除已生成的评卷任务
|
|
|
- // libraryService.deleteByStudent(previous.getId());
|
|
|
- // // 更新科目大题任务数量
|
|
|
- // groupService.updateLibraryCount(examId,
|
|
|
- // previousSubjectCode);
|
|
|
- // // 重置科目所有大题构造评卷任务时间
|
|
|
- // groupService.resetBuildTime(examId,
|
|
|
- // previous.getSubjectCode());
|
|
|
- // }
|
|
|
- addMessage(redirectAttributes, "考生" + previous.getName() + "保存成功");
|
|
|
- } else {
|
|
|
- addMessage(redirectAttributes, "考生不存在");
|
|
|
- }
|
|
|
- } else {
|
|
|
- student.setExamId(examId);
|
|
|
- student.setSchoolId(exam.getSchoolId());
|
|
|
- student.setSubjectName(subject.getName());
|
|
|
- student.setAbsent(false);
|
|
|
- student.setUpload(false);
|
|
|
- student.setException(false);
|
|
|
- student.setSliceCount(0);
|
|
|
- student.setSheetCount(0);
|
|
|
- student.setObjectiveScore(0d);
|
|
|
- student.setSubjectiveScore(0d);
|
|
|
- ExamStudent old = checkExamNumber(student, new HashMap<String, ExamStudent>(),
|
|
|
- new HashMap<String, ExamStudent>());
|
|
|
- if (old != null) {
|
|
|
+ ExamStudent previous = studentService.findById(student.getId());
|
|
|
+ if (previous != null) {
|
|
|
+ if (studentService.findByExamIdAndExamNumber(exam.getId(), student.getExamNumber()) != null) {
|
|
|
addMessage(redirectAttributes, "准考证号" + student.getExamNumber() + "已经存在");
|
|
|
- return "redirect:/admin/exam/student";
|
|
|
- } else {
|
|
|
- studentService.save(student);
|
|
|
+ return "redirect:/admin/exam/student/update?id=" + student.getId();
|
|
|
+ }
|
|
|
+ if (!previous.isUpload()) {
|
|
|
+ // 还未扫描上传的考生,才能修改准考证号、学习中心、科目
|
|
|
+ previous.setSubjectCode(subject.getCode());
|
|
|
+ previous.setSubjectName(subject.getName());
|
|
|
+ previous.setExamNumber(student.getExamNumber());
|
|
|
+ previous.setCampusName(student.getCampusName());
|
|
|
}
|
|
|
- addMessage(redirectAttributes, "考生" + student.getName() + "保存成功");
|
|
|
+ previous.setStudentCode(student.getStudentCode());
|
|
|
+ previous.setName(student.getName());
|
|
|
+ previous.setPackageCode(student.getPackageCode());
|
|
|
+ previous.setCollege(student.getCollege());
|
|
|
+ previous.setClassName(student.getClassName());
|
|
|
+ previous.setTeacher(student.getTeacher());
|
|
|
+ previous = studentService.save(previous);
|
|
|
+ addMessage(redirectAttributes, "考生" + previous.getExamNumber() + "保存成功");
|
|
|
+ } else {
|
|
|
+ addMessage(redirectAttributes, "考生不存在");
|
|
|
}
|
|
|
}
|
|
|
return "redirect:/admin/exam/student";
|
|
@@ -225,11 +224,8 @@ public class StudentController extends BaseExamController {
|
|
|
if (student != null) {
|
|
|
studentService.deleteById(id);
|
|
|
markService.deleteByStudent(student);
|
|
|
- subjectService.updateUploadCount(
|
|
|
- student.getExamId(),
|
|
|
- student.getSubjectCode(),
|
|
|
- (int) studentService.countUploadedByExamIdAndSubjectCode(student.getExamId(),
|
|
|
- student.getSubjectCode()));
|
|
|
+ subjectService.updateUploadCount(student.getExamId(), student.getSubjectCode(), (int) studentService
|
|
|
+ .countUploadedByExamIdAndSubjectCode(student.getExamId(), student.getSubjectCode()));
|
|
|
addMessage(redirectAttributes, "删除考生成功");
|
|
|
RequestUtils.setLog(request, "删除成功,id:" + id);
|
|
|
} else {
|
|
@@ -255,9 +251,15 @@ public class StudentController extends BaseExamController {
|
|
|
@Logging(menu = "导入考生", type = LogType.IMPORT_FILE)
|
|
|
@RequestMapping(value = "/import", method = RequestMethod.POST)
|
|
|
@RoleRequire(Role.SCHOOL_ADMIN)
|
|
|
- public String importFile(HttpServletRequest request, MultipartFile file, RedirectAttributes redirectAttributes) {
|
|
|
- int examId = getSessionExamId(request);
|
|
|
+ public String importFile(HttpServletRequest request, @RequestParam Integer examId, MultipartFile file,
|
|
|
+ RedirectAttributes redirectAttributes) {
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
Exam exam = examService.findById(examId);
|
|
|
+ if (exam == null || exam.getStatus() != ExamStatus.START || !exam.getSchoolId()
|
|
|
+ .equals(wu.getUser().getSchoolId())) {
|
|
|
+ addMessage(redirectAttributes, "考试不存在或不可操作");
|
|
|
+ return "redirect:/admin/exam/student";
|
|
|
+ }
|
|
|
try {
|
|
|
int successNum = 0;
|
|
|
int failureNum = 0;
|
|
@@ -278,14 +280,12 @@ public class StudentController extends BaseExamController {
|
|
|
|
|
|
for (ExamStudent student : list) {
|
|
|
if (StringUtils.isBlank(student.getExamNumber()) || StringUtils.isBlank(student.getName())
|
|
|
- || StringUtils.isBlank(student.getSubjectCode())
|
|
|
- || StringUtils.isBlank(student.getSubjectName())
|
|
|
- || StringUtils.isBlank(student.getCampusName()) || StringUtils.isBlank(student.getCollege())
|
|
|
- || StringUtils.isBlank(student.getClassName()) || StringUtils.isBlank(student.getTeacher())
|
|
|
- || StringUtils.isBlank(student.getStudentCode())) {
|
|
|
+ || StringUtils.isBlank(student.getSubjectCode()) || StringUtils
|
|
|
+ .isBlank(student.getSubjectName()) || StringUtils.isBlank(student.getCampusName())
|
|
|
+ || StringUtils.isBlank(student.getCollege()) || StringUtils.isBlank(student.getClassName())
|
|
|
+ || StringUtils.isBlank(student.getTeacher()) || StringUtils.isBlank(student.getStudentCode())) {
|
|
|
continue;
|
|
|
}
|
|
|
-
|
|
|
student.setExamId(examId);
|
|
|
student.setSchoolId(exam.getSchoolId());
|
|
|
student.setAbsent(false);
|
|
@@ -322,14 +322,10 @@ public class StudentController extends BaseExamController {
|
|
|
@RequestMapping(value = "/export", method = RequestMethod.POST)
|
|
|
public String exportFile(ExamStudentSearchQuery query, HttpServletRequest request, HttpServletResponse response,
|
|
|
RedirectAttributes redirectAttributes) {
|
|
|
- WebUser wu = RequestUtils.getWebUser(request);
|
|
|
- int examId = getSessionExamId(request);
|
|
|
try {
|
|
|
query.setPageNumber(1);
|
|
|
query.setPageSize(Integer.MAX_VALUE);
|
|
|
- query.setExamId(examId);
|
|
|
query.orderByExamNumber();
|
|
|
- subjectFilter(query, wu);
|
|
|
query = studentService.findByQuery(query);
|
|
|
for (ExamStudent student : query.getResult()) {
|
|
|
ExamSubject subject = subjectService.find(student.getExamId(), student.getSubjectCode());
|
|
@@ -375,8 +371,15 @@ public class StudentController extends BaseExamController {
|
|
|
|
|
|
@Logging(menu = "导入缺考名单", type = LogType.IMPORT_FILE)
|
|
|
@RequestMapping(value = "/absentImport", method = RequestMethod.POST)
|
|
|
- public String absentImportFile(HttpServletRequest request, MultipartFile file, RedirectAttributes redirectAttributes) {
|
|
|
- int examId = getSessionExamId(request);
|
|
|
+ public String absentImportFile(HttpServletRequest request, @RequestParam Integer examId, MultipartFile file,
|
|
|
+ RedirectAttributes redirectAttributes) {
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
+ if (exam == null || exam.getStatus() != ExamStatus.START || !exam.getSchoolId()
|
|
|
+ .equals(wu.getUser().getSchoolId())) {
|
|
|
+ addMessage(redirectAttributes, "考试不存在或不可操作");
|
|
|
+ return "redirect:/admin/exam/student";
|
|
|
+ }
|
|
|
try {
|
|
|
int successNum = 0;
|
|
|
int failureNum = 0;
|
|
@@ -427,9 +430,15 @@ public class StudentController extends BaseExamController {
|
|
|
|
|
|
@Logging(menu = "导入违纪名单", type = LogType.IMPORT_FILE)
|
|
|
@RequestMapping(value = "/breachImport", method = RequestMethod.POST)
|
|
|
- public String breachImportFile(HttpServletRequest request, MultipartFile file, RedirectAttributes redirectAttributes) {
|
|
|
- int examId = getSessionExamId(request);
|
|
|
- // Exam exam = examService.findById(examId);
|
|
|
+ public String breachImportFile(HttpServletRequest request, @RequestParam Integer examId, MultipartFile file,
|
|
|
+ RedirectAttributes redirectAttributes) {
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
+ if (exam == null || exam.getStatus() != ExamStatus.START || !exam.getSchoolId()
|
|
|
+ .equals(wu.getUser().getSchoolId())) {
|
|
|
+ addMessage(redirectAttributes, "考试不存在或不可操作");
|
|
|
+ return "redirect:/admin/exam/student";
|
|
|
+ }
|
|
|
try {
|
|
|
int successNum = 0;
|
|
|
int failureNum = 0;
|
|
@@ -469,18 +478,16 @@ public class StudentController extends BaseExamController {
|
|
|
}
|
|
|
|
|
|
@Logging(menu = "违纪重置", type = LogType.UPDATE)
|
|
|
+ @RoleRequire(Role.SCHOOL_ADMIN)
|
|
|
@RequestMapping(value = "/updateBreach", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
public JSONObject updateBreach(HttpServletRequest request, Integer id) {
|
|
|
JSONObject result = new JSONObject();
|
|
|
- ExamStudent student = studentService.findById(id);
|
|
|
- student.setBreach(false);
|
|
|
- student = studentService.save(student);
|
|
|
- if (student != null) {
|
|
|
+ if (studentService.updateBreach(id, false)) {
|
|
|
result.accumulate("message", "重置成功!");
|
|
|
result.accumulate("success", true);
|
|
|
} else {
|
|
|
- result.accumulate("message", "将违纪考生信息重置为正常时出错!");
|
|
|
+ result.accumulate("message", "重置失败!");
|
|
|
result.accumulate("success", false);
|
|
|
}
|
|
|
return result;
|
|
@@ -501,9 +508,15 @@ public class StudentController extends BaseExamController {
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/uploadImport", method = RequestMethod.POST)
|
|
|
- public String uploadImportFile(HttpServletRequest request, MultipartFile file, RedirectAttributes redirectAttributes) {
|
|
|
- int examId = getSessionExamId(request);
|
|
|
- // Exam exam = examService.findById(examId);
|
|
|
+ public String uploadImportFile(HttpServletRequest request, @RequestParam Integer examId, MultipartFile file,
|
|
|
+ RedirectAttributes redirectAttributes) {
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
+ if (exam == null || exam.getStatus() != ExamStatus.START || !exam.getSchoolId()
|
|
|
+ .equals(wu.getUser().getSchoolId())) {
|
|
|
+ addMessage(redirectAttributes, "考试不存在或不可操作");
|
|
|
+ return "redirect:/admin/exam/student";
|
|
|
+ }
|
|
|
try {
|
|
|
int successNum = 0;
|
|
|
int failureNum = 0;
|
|
@@ -577,16 +590,17 @@ public class StudentController extends BaseExamController {
|
|
|
|
|
|
private void buildSheetUrl(ExamStudent student) {
|
|
|
Campus campus = campusService.findBySchoolAndName(student.getSchoolId(), student.getCampusName());
|
|
|
- student.setSheetUrls(PictureUrlBuilder.getSheetUrls(student.getExamId(), campus.getId(),
|
|
|
- student.getSubjectCode(), student.getExamNumber(), student.getSheetCount()));
|
|
|
+ student.setSheetUrls(PictureUrlBuilder
|
|
|
+ .getSheetUrls(student.getExamId(), campus.getId(), student.getSubjectCode(), student.getExamNumber(),
|
|
|
+ student.getSheetCount()));
|
|
|
}
|
|
|
|
|
|
private void buildPackageUrl(ExamStudent student) {
|
|
|
if (StringUtils.isNotBlank(student.getPackageCode())) {
|
|
|
ExamPackage ep = packageService.find(student.getExamId(), student.getPackageCode());
|
|
|
if (ep != null && ep.getPicCount() > 0) {
|
|
|
- student.setPackageUrls(PictureUrlBuilder.getPackageUrls(student.getExamId(), student.getPackageCode(),
|
|
|
- ep.getPicCount()));
|
|
|
+ student.setPackageUrls(PictureUrlBuilder
|
|
|
+ .getPackageUrls(student.getExamId(), student.getPackageCode(), ep.getPicCount()));
|
|
|
}
|
|
|
}
|
|
|
}
|