|
@@ -44,6 +44,7 @@ import cn.com.qmth.stmms.admin.dto.ObjectiveQuestionDTO;
|
|
import cn.com.qmth.stmms.admin.dto.QuestionDTO;
|
|
import cn.com.qmth.stmms.admin.dto.QuestionDTO;
|
|
import cn.com.qmth.stmms.admin.dto.SubjectQuestionDTO;
|
|
import cn.com.qmth.stmms.admin.dto.SubjectQuestionDTO;
|
|
import cn.com.qmth.stmms.admin.dto.SubjectiveQuestionDTO;
|
|
import cn.com.qmth.stmms.admin.dto.SubjectiveQuestionDTO;
|
|
|
|
+import cn.com.qmth.stmms.admin.thread.QuestionDeleteThread;
|
|
import cn.com.qmth.stmms.admin.thread.ScoreCalculateThread;
|
|
import cn.com.qmth.stmms.admin.thread.ScoreCalculateThread;
|
|
import cn.com.qmth.stmms.admin.thread.ScoreReportThread;
|
|
import cn.com.qmth.stmms.admin.thread.ScoreReportThread;
|
|
import cn.com.qmth.stmms.admin.vo.StructFile;
|
|
import cn.com.qmth.stmms.admin.vo.StructFile;
|
|
@@ -232,6 +233,10 @@ public class PaperController extends BaseExamController {
|
|
}
|
|
}
|
|
list.addAll(subjectiveList);
|
|
list.addAll(subjectiveList);
|
|
}
|
|
}
|
|
|
|
+ for (ExamQuestion examQuestion : list) {
|
|
|
|
+ examQuestion.setDeleting(lockService.isLocked(LockType.QUESTION_DELETE, examQuestion.getExamId(),
|
|
|
|
+ examQuestion.getSubjectCode(), examQuestion.getMainNumber(), examQuestion.getSubNumber()));
|
|
|
|
+ }
|
|
List<ExamQuestion> mainList = new LinkedList<ExamQuestion>();
|
|
List<ExamQuestion> mainList = new LinkedList<ExamQuestion>();
|
|
mainList.addAll(questionService.findMainByExamAndSubjectAndObjective(examId, subjectCode, true));
|
|
mainList.addAll(questionService.findMainByExamAndSubjectAndObjective(examId, subjectCode, true));
|
|
mainList.addAll(questionService.findMainByExamAndSubjectAndObjective(examId, subjectCode, false));
|
|
mainList.addAll(questionService.findMainByExamAndSubjectAndObjective(examId, subjectCode, false));
|
|
@@ -628,11 +633,23 @@ public class PaperController extends BaseExamController {
|
|
@RequestParam(required = false) Boolean upload) {
|
|
@RequestParam(required = false) Boolean upload) {
|
|
ExamQuestion question = questionService.findById(questionId);
|
|
ExamQuestion question = questionService.findById(questionId);
|
|
String subjectCode = question.getSubjectCode();
|
|
String subjectCode = question.getSubjectCode();
|
|
- if (markService.deleteByQuestion(question)) {
|
|
|
|
- addMessage(redirectAttributes, "删除成功");
|
|
|
|
- } else {
|
|
|
|
|
|
+ SelectiveGroup selectiveGroup = selectiveGroupService.findOne(question.getExamId(), question.getSubjectCode(),
|
|
|
|
+ question.getMainNumber());
|
|
|
|
+ if (selectiveGroup != null) {
|
|
|
|
+ addMessage(redirectAttributes, "删除失败,该题目已有分组或选做题存在选做题分组");
|
|
|
|
+ }
|
|
|
|
+ if (!question.isObjective() && question.getGroupNumber() != null) {
|
|
addMessage(redirectAttributes, "删除失败,该题目已有分组或选做题存在选做题分组");
|
|
addMessage(redirectAttributes, "删除失败,该题目已有分组或选做题存在选做题分组");
|
|
}
|
|
}
|
|
|
|
+ if (lockService.trylock(LockType.QUESTION_DELETE, question.getExamId(), question.getSubjectCode(),
|
|
|
|
+ question.getMainNumber(), question.getSubNumber())) {
|
|
|
|
+ List<ExamQuestion> list = new ArrayList<ExamQuestion>();
|
|
|
|
+ list.add(question);
|
|
|
|
+ taskExecutor.submit(new QuestionDeleteThread(list, markService, lockService));
|
|
|
|
+ RequestUtils.setLog(request,
|
|
|
|
+ "开始删除题目,subjectCode:" + subjectCode + " main number:" + question.getMainNumber() + " sub number:"
|
|
|
|
+ + question.getSubNumber());
|
|
|
|
+ }
|
|
String u = upload == null ? "" : upload.toString();
|
|
String u = upload == null ? "" : upload.toString();
|
|
String t = query.getTotalScoreNotEqual() == null ? "" : query.getTotalScoreNotEqual().toString();
|
|
String t = query.getTotalScoreNotEqual() == null ? "" : query.getTotalScoreNotEqual().toString();
|
|
return "redirect:/admin/exam/paper/detail?subjectCode=" + subjectCode + "&pageNumber=" + query.getPageNumber()
|
|
return "redirect:/admin/exam/paper/detail?subjectCode=" + subjectCode + "&pageNumber=" + query.getPageNumber()
|
|
@@ -733,12 +750,20 @@ public class PaperController extends BaseExamController {
|
|
@RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER, Role.COLLEGE_ADMIN })
|
|
@RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER, Role.COLLEGE_ADMIN })
|
|
public String delete(HttpServletRequest request, Model model, RedirectAttributes redirectAttributes,
|
|
public String delete(HttpServletRequest request, Model model, RedirectAttributes redirectAttributes,
|
|
@RequestParam Integer[] ids, ExamSubjectSearchQuery query, @RequestParam(required = false) Boolean upload) {
|
|
@RequestParam Integer[] ids, ExamSubjectSearchQuery query, @RequestParam(required = false) Boolean upload) {
|
|
|
|
+ List<ExamQuestion> list = new ArrayList<ExamQuestion>();
|
|
for (Integer id : ids) {
|
|
for (Integer id : ids) {
|
|
ExamQuestion question = questionService.findById(id);
|
|
ExamQuestion question = questionService.findById(id);
|
|
if (question != null) {
|
|
if (question != null) {
|
|
- markService.deleteByQuestion(question);
|
|
|
|
|
|
+ if (lockService.trylock(LockType.QUESTION_DELETE, question.getExamId(), question.getSubjectCode(),
|
|
|
|
+ question.getMainNumber(), question.getSubNumber())) {
|
|
|
|
+ RequestUtils.setLog(request, "开始删除题目,subjectCode:" + question.getSubjectCode() + " main number:"
|
|
|
|
+ + question.getMainNumber() + " sub number:" + question.getSubNumber());
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if (!list.isEmpty()) {
|
|
|
|
+ taskExecutor.submit(new QuestionDeleteThread(list, markService, lockService));
|
|
|
|
+ }
|
|
String u = upload == null ? "" : upload.toString();
|
|
String u = upload == null ? "" : upload.toString();
|
|
String t = query.getTotalScoreNotEqual() == null ? "" : query.getTotalScoreNotEqual().toString();
|
|
String t = query.getTotalScoreNotEqual() == null ? "" : query.getTotalScoreNotEqual().toString();
|
|
return "redirect:/admin/exam/paper/detail?subjectCode=" + query.getCode() + "&pageNumber="
|
|
return "redirect:/admin/exam/paper/detail?subjectCode=" + query.getCode() + "&pageNumber="
|