|
@@ -17,6 +17,8 @@ import org.apache.commons.lang3.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.Qualifier;
|
|
|
|
+import org.springframework.core.task.AsyncTaskExecutor;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.ui.Model;
|
|
import org.springframework.ui.Model;
|
|
@@ -25,17 +27,22 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
|
|
|
import cn.com.qmth.stmms.admin.dto.SelectivePartDTO;
|
|
import cn.com.qmth.stmms.admin.dto.SelectivePartDTO;
|
|
|
|
+import cn.com.qmth.stmms.admin.thread.SubjectiveCalculateThread;
|
|
import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
|
|
import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
|
|
import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
|
|
import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
|
|
import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
|
|
import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
|
|
import cn.com.qmth.stmms.biz.exam.model.SelectiveGroup;
|
|
import cn.com.qmth.stmms.biz.exam.model.SelectiveGroup;
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
|
|
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.MarkGroupService;
|
|
import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
|
|
import cn.com.qmth.stmms.biz.exam.service.SelectiveGroupService;
|
|
import cn.com.qmth.stmms.biz.exam.service.SelectiveGroupService;
|
|
|
|
+import cn.com.qmth.stmms.biz.lock.LockService;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.service.MarkService;
|
|
import cn.com.qmth.stmms.common.annotation.Logging;
|
|
import cn.com.qmth.stmms.common.annotation.Logging;
|
|
import cn.com.qmth.stmms.common.enums.LogType;
|
|
import cn.com.qmth.stmms.common.enums.LogType;
|
|
import cn.com.qmth.stmms.common.enums.ScorePolicy;
|
|
import cn.com.qmth.stmms.common.enums.ScorePolicy;
|
|
|
|
+import cn.com.qmth.stmms.common.enums.SubjectiveStatus;
|
|
|
|
|
|
@Controller("selectiveGroupController")
|
|
@Controller("selectiveGroupController")
|
|
@RequestMapping("/admin/exam/selectiveGroup")
|
|
@RequestMapping("/admin/exam/selectiveGroup")
|
|
@@ -55,6 +62,19 @@ public class SelectiveGroupController extends BaseExamController {
|
|
@Autowired
|
|
@Autowired
|
|
private SelectiveGroupService selectiveGroupService;
|
|
private SelectiveGroupService selectiveGroupService;
|
|
|
|
|
|
|
|
+ @Qualifier("task-executor")
|
|
|
|
+ @Autowired
|
|
|
|
+ private AsyncTaskExecutor taskExecutor;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private LockService lockService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private MarkService markService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ExamStudentService studentService;
|
|
|
|
+
|
|
@Logging(menu = "选做题查询", type = LogType.QUERY)
|
|
@Logging(menu = "选做题查询", type = LogType.QUERY)
|
|
@RequestMapping
|
|
@RequestMapping
|
|
public String list(HttpServletRequest request, Model model, @RequestParam String subjectCode) {
|
|
public String list(HttpServletRequest request, Model model, @RequestParam String subjectCode) {
|
|
@@ -221,6 +241,11 @@ public class SelectiveGroupController extends BaseExamController {
|
|
@RequestParam String subjectCode, @RequestParam Integer selectiveIndex, @RequestParam Integer policy) {
|
|
@RequestParam String subjectCode, @RequestParam Integer selectiveIndex, @RequestParam Integer policy) {
|
|
int examId = getSessionExamId(request);
|
|
int examId = getSessionExamId(request);
|
|
selectiveGroupService.updateScorePolicy(examId, subjectCode, selectiveIndex, ScorePolicy.findByValue(policy));
|
|
selectiveGroupService.updateScorePolicy(examId, subjectCode, selectiveIndex, ScorePolicy.findByValue(policy));
|
|
|
|
+ List<Integer> studentList = studentService.findIdByExamIdAndSubjectCodeAndSubjectiveStatus(examId, subjectCode,
|
|
|
|
+ SubjectiveStatus.UNMARK, SubjectiveStatus.MARKED);
|
|
|
|
+ SubjectiveCalculateThread thread = new SubjectiveCalculateThread(examId, subjectCode, studentList, markService,
|
|
|
|
+ lockService, questionService, groupService);
|
|
|
|
+ taskExecutor.submit(thread);
|
|
return "redirect:/admin/exam/selectiveGroup?subjectCode=" + subjectCode;
|
|
return "redirect:/admin/exam/selectiveGroup?subjectCode=" + subjectCode;
|
|
}
|
|
}
|
|
|
|
|