|
@@ -14,7 +14,6 @@ import cn.com.qmth.stmms.biz.utils.ScoreItem;
|
|
import cn.com.qmth.stmms.common.annotation.Logging;
|
|
import cn.com.qmth.stmms.common.annotation.Logging;
|
|
import cn.com.qmth.stmms.common.annotation.RoleRequire;
|
|
import cn.com.qmth.stmms.common.annotation.RoleRequire;
|
|
import cn.com.qmth.stmms.common.domain.WebUser;
|
|
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.LogType;
|
|
import cn.com.qmth.stmms.common.enums.MarkStatus;
|
|
import cn.com.qmth.stmms.common.enums.MarkStatus;
|
|
import cn.com.qmth.stmms.common.enums.Role;
|
|
import cn.com.qmth.stmms.common.enums.Role;
|
|
@@ -36,7 +35,6 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
-import java.text.DecimalFormat;
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
|
@Controller
|
|
@Controller
|
|
@@ -94,42 +92,36 @@ public class ScoreController extends BaseExamController {
|
|
public ModelAndView list(HttpServletRequest request, ExamStudentSearchQuery query,
|
|
public ModelAndView list(HttpServletRequest request, ExamStudentSearchQuery query,
|
|
@RequestParam(defaultValue = "0") Integer filter) {
|
|
@RequestParam(defaultValue = "0") Integer filter) {
|
|
WebUser wu = RequestUtils.getWebUser(request);
|
|
WebUser wu = RequestUtils.getWebUser(request);
|
|
- List<Exam> examList = getExamList(wu);
|
|
|
|
- if (query.getExamId() != null) {
|
|
|
|
- query.setExamId(getSessionExamId(request));
|
|
|
|
- }
|
|
|
|
ModelAndView view = new ModelAndView("modules/exam/scoreList");
|
|
ModelAndView view = new ModelAndView("modules/exam/scoreList");
|
|
- if (query.getExamId() != null) {
|
|
|
|
- query.orderByExamNumber();
|
|
|
|
- if (filter == 1) {
|
|
|
|
- query.setObjectiveScore(0d);
|
|
|
|
- query.setSubjectiveScoreGt(0d);
|
|
|
|
- } else if (filter == 2) {
|
|
|
|
- query.setObjectiveScoreGt(0d);
|
|
|
|
- query.setSubjectiveScore(0d);
|
|
|
|
- }
|
|
|
|
- query = studentService.findByQuery(query);
|
|
|
|
- for (ExamStudent student : query.getResult()) {
|
|
|
|
- buildSheetUrl(student);
|
|
|
|
- buildPackageUrl(student);
|
|
|
|
- buildAnswerUrl(student);
|
|
|
|
- student.setAnswerUrl(PictureUrlBuilder
|
|
|
|
- .getAnswerJson(student.getExamId(), student.getSubjectCode(), student.getPaperType(),
|
|
|
|
- student.getExamNumber()));
|
|
|
|
- }
|
|
|
|
- String exportMessage =
|
|
|
|
- query.getSubjectCode() != null ? enableExport(query.getExamId(), query.getSubjectCode()) : null;
|
|
|
|
- if (exportMessage != null) {
|
|
|
|
- view.addObject("exportMessage", exportMessage);
|
|
|
|
- view.addObject("enableExport", false);
|
|
|
|
- } else {
|
|
|
|
- view.addObject("enableExport", true);
|
|
|
|
- }
|
|
|
|
- view.addObject("subjectList", getExamSubject(query.getExamId(), wu));
|
|
|
|
- view.addObject("running", lockService.isLocked(LockType.SCORE_CALCULATE, query.getExamId()));
|
|
|
|
- Exam exam = examService.findById(query.getExamId());
|
|
|
|
- view.addObject("examType", exam.getType());
|
|
|
|
|
|
+ query.setExamId(getSessionExamId(request));
|
|
|
|
+ query.orderByExamNumber();
|
|
|
|
+ if (filter == 1) {
|
|
|
|
+ query.setObjectiveScore(0d);
|
|
|
|
+ query.setSubjectiveScoreGt(0d);
|
|
|
|
+ } else if (filter == 2) {
|
|
|
|
+ query.setObjectiveScoreGt(0d);
|
|
|
|
+ query.setSubjectiveScore(0d);
|
|
|
|
+ }
|
|
|
|
+ query = studentService.findByQuery(query);
|
|
|
|
+ for (ExamStudent student : query.getResult()) {
|
|
|
|
+ buildSheetUrl(student);
|
|
|
|
+ buildPackageUrl(student);
|
|
|
|
+ buildAnswerUrl(student);
|
|
|
|
+ student.setAnswerUrl(PictureUrlBuilder
|
|
|
|
+ .getAnswerJson(student.getExamId(), student.getSubjectCode(), student.getPaperType(),
|
|
|
|
+ student.getExamNumber()));
|
|
}
|
|
}
|
|
|
|
+ String exportMessage =
|
|
|
|
+ query.getSubjectCode() != null ? enableExport(query.getExamId(), query.getSubjectCode()) : null;
|
|
|
|
+ if (exportMessage != null) {
|
|
|
|
+ view.addObject("exportMessage", exportMessage);
|
|
|
|
+ view.addObject("enableExport", false);
|
|
|
|
+ } else {
|
|
|
|
+ view.addObject("enableExport", true);
|
|
|
|
+ }
|
|
|
|
+ view.addObject("subjectList", getExamSubject(query.getExamId(), wu));
|
|
|
|
+ Exam exam = examService.findById(query.getExamId());
|
|
|
|
+ view.addObject("examType", exam.getType());
|
|
view.addObject("query", query);
|
|
view.addObject("query", query);
|
|
view.addObject("filter", filter);
|
|
view.addObject("filter", filter);
|
|
view.addObject("imageServer", imageServer);
|
|
view.addObject("imageServer", imageServer);
|
|
@@ -199,11 +191,15 @@ public class ScoreController extends BaseExamController {
|
|
@Logging(menu = "重新统分", type = LogType.UPDATE)
|
|
@Logging(menu = "重新统分", type = LogType.UPDATE)
|
|
@RequestMapping("/calculate")
|
|
@RequestMapping("/calculate")
|
|
@RoleRequire(Role.SCHOOL_ADMIN)
|
|
@RoleRequire(Role.SCHOOL_ADMIN)
|
|
- public ModelAndView calculate(HttpServletRequest request, @RequestParam Integer examId) {
|
|
|
|
- if (lockService.trylock(LockType.SCORE_CALCULATE, examId)) {
|
|
|
|
- ScoreCalculateThread thread = new ScoreCalculateThread(examId, getSubjectCodeSet(examId), lockService,
|
|
|
|
- studentService, questionService, markService, reportService, examService, subjectService,
|
|
|
|
- groupService);
|
|
|
|
|
|
+ public ModelAndView calculate(HttpServletRequest request, RedirectAttributes redirectAttributes) {
|
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
|
+ Exam exam = examService.findById(getSessionExamId(request));
|
|
|
|
+ if (exam == null || !exam.getSchoolId().equals(wu.getUser().getSchoolId())) {
|
|
|
|
+ addMessage(redirectAttributes, "请选择正确的考试");
|
|
|
|
+ } else {
|
|
|
|
+ ScoreCalculateThread thread = new ScoreCalculateThread(exam.getId(), getSubjectCodeSet(exam.getId()),
|
|
|
|
+ lockService, studentService, questionService, markService, reportService, examService,
|
|
|
|
+ subjectService, groupService);
|
|
taskExecutor.submit(thread);
|
|
taskExecutor.submit(thread);
|
|
}
|
|
}
|
|
return new ModelAndView("redirect:/admin/exam/score");
|
|
return new ModelAndView("redirect:/admin/exam/score");
|
|
@@ -297,9 +293,9 @@ public class ScoreController extends BaseExamController {
|
|
|
|
|
|
@RequestMapping("/enableExport")
|
|
@RequestMapping("/enableExport")
|
|
@ResponseBody
|
|
@ResponseBody
|
|
- public JSONObject query(HttpServletRequest request, @RequestParam Integer examId,
|
|
|
|
- @RequestParam String subjectCode) {
|
|
|
|
|
|
+ public JSONObject query(HttpServletRequest request, @RequestParam String subjectCode) {
|
|
JSONObject obj = new JSONObject();
|
|
JSONObject obj = new JSONObject();
|
|
|
|
+ int examId = getSessionExamId(request);
|
|
String exportMessage = enableExport(examId, subjectCode);
|
|
String exportMessage = enableExport(examId, subjectCode);
|
|
if (exportMessage != null) {
|
|
if (exportMessage != null) {
|
|
obj.accumulate("enableExport", false);
|
|
obj.accumulate("enableExport", false);
|
|
@@ -310,23 +306,6 @@ public class ScoreController extends BaseExamController {
|
|
return obj;
|
|
return obj;
|
|
}
|
|
}
|
|
|
|
|
|
- @RequestMapping("/getProcess")
|
|
|
|
- @ResponseBody
|
|
|
|
- public JSONObject getProcess(HttpServletRequest request) {
|
|
|
|
- int examId = getSessionExamId(request);
|
|
|
|
- Exam exam = examService.findById(examId);
|
|
|
|
- boolean running = lockService.isLocked(LockType.SCORE_CALCULATE, examId);
|
|
|
|
- JSONObject obj = new JSONObject();
|
|
|
|
- obj.accumulate("running", running);
|
|
|
|
- if (exam.getProcess() != null) {
|
|
|
|
- DecimalFormat format = new DecimalFormat("##.##");
|
|
|
|
- obj.accumulate("process", format.format(exam.getProcess()));
|
|
|
|
- } else {
|
|
|
|
- obj.accumulate("process", 0);
|
|
|
|
- }
|
|
|
|
- return obj;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
private List<ScoreItem> buildScoreList(ExamStudent student) {
|
|
private List<ScoreItem> buildScoreList(ExamStudent student) {
|
|
List<ScoreItem> scoreList = new LinkedList<ScoreItem>();
|
|
List<ScoreItem> scoreList = new LinkedList<ScoreItem>();
|
|
|
|
|