|
@@ -1,7 +1,9 @@
|
|
|
package cn.com.qmth.stmms.admin.report;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
+import java.util.Set;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
@@ -13,21 +15,31 @@ 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.Qualifier;
|
|
|
+import org.springframework.core.task.AsyncTaskExecutor;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
import org.springframework.ui.Model;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
|
|
|
import cn.com.qmth.stmms.admin.dto.ReportSubjectRangeDTO;
|
|
|
import cn.com.qmth.stmms.admin.exam.BaseExamController;
|
|
|
+import cn.com.qmth.stmms.admin.thread.ScoreCalculateThread;
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamService;
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
|
|
|
import cn.com.qmth.stmms.biz.lock.LockService;
|
|
|
import cn.com.qmth.stmms.biz.report.model.ReportSubject;
|
|
|
import cn.com.qmth.stmms.biz.report.query.ReportSubjectQuery;
|
|
|
import cn.com.qmth.stmms.biz.report.service.ReportSubjectService;
|
|
|
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.LockType;
|
|
|
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.RequestUtils;
|
|
|
|
|
@@ -46,9 +58,25 @@ public class ReportSubjectRangeController extends BaseExamController {
|
|
|
@Autowired
|
|
|
private ReportSubjectService reportSubjectService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ExamSubjectService subjectService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ExamQuestionService questionService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private LockService lockService;
|
|
|
|
|
|
+ @Qualifier("task-executor")
|
|
|
+ @Autowired
|
|
|
+ private AsyncTaskExecutor taskExecutor;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ExamStudentService studentService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ExamService examService;
|
|
|
+
|
|
|
@Logging(menu = "课程分段统计", type = LogType.QUERY)
|
|
|
@RequestMapping
|
|
|
public String list(Model model, HttpServletRequest request, ReportSubjectQuery query) {
|
|
@@ -148,4 +176,21 @@ public class ReportSubjectRangeController extends BaseExamController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Logging(menu = "客观题统分", type = LogType.UPDATE)
|
|
|
+ @RequestMapping("/calculate")
|
|
|
+ @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
|
|
|
+ public String calculate(HttpServletRequest request, RedirectAttributes redirectAttributes,
|
|
|
+ @RequestParam String subjectCode) {
|
|
|
+ int examId = getSessionExamId(request);
|
|
|
+ Set<String> subjectSet = new HashSet<String>();
|
|
|
+ if (!lockService.isLocked(LockType.SCORE_CALCULATE, examId, subjectCode)) {
|
|
|
+ subjectSet.add(subjectCode);
|
|
|
+ }
|
|
|
+ if (!subjectSet.isEmpty()) {
|
|
|
+ ScoreCalculateThread thread = new ScoreCalculateThread(examId, subjectSet, lockService, studentService,
|
|
|
+ questionService, examService, subjectService, false);
|
|
|
+ taskExecutor.submit(thread);
|
|
|
+ }
|
|
|
+ return "redirect:/admin/exam/reportSubjectRange?subjectCode=" + subjectCode;
|
|
|
+ }
|
|
|
}
|