|
@@ -30,12 +30,14 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
import cn.com.qmth.stmms.admin.dto.ExamQuestionDTO;
|
|
|
import cn.com.qmth.stmms.biz.campus.model.Campus;
|
|
|
import cn.com.qmth.stmms.biz.campus.service.CampusService;
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.Exam;
|
|
|
import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
|
|
|
import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
|
|
|
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.query.ExamStudentSearchQuery;
|
|
|
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.exam.service.MarkGroupService;
|
|
@@ -45,6 +47,7 @@ import cn.com.qmth.stmms.biz.mark.model.PictureConfigItem;
|
|
|
import cn.com.qmth.stmms.biz.mark.service.MarkService;
|
|
|
import cn.com.qmth.stmms.common.auth.annotation.RoleRequire;
|
|
|
import cn.com.qmth.stmms.common.domain.WebUser;
|
|
|
+import cn.com.qmth.stmms.common.enums.ExamType;
|
|
|
import cn.com.qmth.stmms.common.enums.LockType;
|
|
|
import cn.com.qmth.stmms.common.enums.MarkMode;
|
|
|
import cn.com.qmth.stmms.common.enums.MarkStatus;
|
|
@@ -87,6 +90,9 @@ public class MarkGroupController extends BaseExamController {
|
|
|
@Autowired
|
|
|
private LockService lockService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ExamService examService;
|
|
|
+
|
|
|
@Value("${slice.image.server}")
|
|
|
private String imageServer;
|
|
|
|
|
@@ -248,6 +254,8 @@ public class MarkGroupController extends BaseExamController {
|
|
|
model.addAttribute("markModeList", MarkMode.values());
|
|
|
model.addAttribute("scorePolicyList", ScorePolicy.values());
|
|
|
model.addAttribute("thirdPolicyList", ThirdPolicy.values());
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
+ model.addAttribute("examType", exam.getType());
|
|
|
return "modules/exam/groupAdd";
|
|
|
}
|
|
|
|
|
@@ -271,6 +279,8 @@ public class MarkGroupController extends BaseExamController {
|
|
|
model.addAttribute("markModeList", MarkMode.values());
|
|
|
model.addAttribute("scorePolicyList", ScorePolicy.values());
|
|
|
model.addAttribute("thirdPolicyList", ThirdPolicy.values());
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
+ model.addAttribute("examType", exam.getType());
|
|
|
return "modules/exam/groupEditSimple";
|
|
|
} else {
|
|
|
redirectAttributes.addAttribute("subjectCode", subjectCode);
|
|
@@ -316,6 +326,8 @@ public class MarkGroupController extends BaseExamController {
|
|
|
model.addAttribute("markModeList", MarkMode.values());
|
|
|
model.addAttribute("scorePolicyList", ScorePolicy.values());
|
|
|
model.addAttribute("thirdPolicyList", ThirdPolicy.values());
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
+ model.addAttribute("examType", exam.getType());
|
|
|
return "modules/exam/groupEditFull";
|
|
|
} else {
|
|
|
redirectAttributes.addAttribute("subjectCode", subjectCode);
|
|
@@ -425,14 +437,12 @@ public class MarkGroupController extends BaseExamController {
|
|
|
}
|
|
|
}
|
|
|
// quick update
|
|
|
- // picList = StringEscapeUtils.unescapeHtml(picList);
|
|
|
- // JSONArray array = JSONArray.fromObject(picList);
|
|
|
- // List<PictureConfigItem> list = JSONArray.toList(array, new
|
|
|
- // PictureConfigItem(), new JsonConfig());
|
|
|
- // if (list != null && !list.isEmpty()) {
|
|
|
- // groupService.updatePicList(examId, subjectCode, number,
|
|
|
- // list);
|
|
|
- // }
|
|
|
+ picList = StringEscapeUtils.unescapeHtml(picList);
|
|
|
+ JSONArray array = JSONArray.fromObject(picList);
|
|
|
+ List<PictureConfigItem> list = JSONArray.toList(array, new PictureConfigItem(), new JsonConfig());
|
|
|
+ if (list != null && !list.isEmpty()) {
|
|
|
+ groupService.updatePicList(examId, subjectCode, number, list);
|
|
|
+ }
|
|
|
if (doubleRate != null) {
|
|
|
groupService.updateDoubleRate(examId, subjectCode, number, doubleRate);
|
|
|
}
|
|
@@ -475,6 +485,7 @@ public class MarkGroupController extends BaseExamController {
|
|
|
@RequestParam(required = false) String markMode, @RequestParam(required = false) Integer trialCount,
|
|
|
@RequestParam(required = false) boolean sheetView) {
|
|
|
int examId = getSessionExamId(request);
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
MarkGroup group = groupService.findOne(examId, subjectCode, number);
|
|
|
if (group != null) {
|
|
|
addMessage(redirectAttributes, "评卷分组序号不能重复");
|
|
@@ -484,19 +495,20 @@ public class MarkGroupController extends BaseExamController {
|
|
|
addMessage(redirectAttributes, "大题详情必须设置");
|
|
|
redirectAttributes.addAttribute("subjectCode", subjectCode);
|
|
|
return "redirect:/admin/exam/group/add";
|
|
|
- // } else if (StringUtils.isBlank(picList)) {
|
|
|
- // addMessage(redirectAttributes, "图片范围必须设置");
|
|
|
- // redirectAttributes.addAttribute("subjectCode", subjectCode);
|
|
|
- // return "redirect:/admin/exam/group/add";
|
|
|
+ } else if (StringUtils.isBlank(picList) && !exam.getType().equals(ExamType.MULTI_MEDIA)) {
|
|
|
+ addMessage(redirectAttributes, "图片范围必须设置");
|
|
|
+ redirectAttributes.addAttribute("subjectCode", subjectCode);
|
|
|
+ return "redirect:/admin/exam/group/add";
|
|
|
} else {
|
|
|
try {
|
|
|
// create group
|
|
|
// build picList
|
|
|
- // picList = StringEscapeUtils.unescapeHtml(picList);
|
|
|
- // JSONArray array = JSONArray.fromObject(picList);
|
|
|
- // List<PictureConfigItem> picConfigList =
|
|
|
- // JSONArray.toList(array, new PictureConfigItem(),
|
|
|
- // new JsonConfig());
|
|
|
+ List<PictureConfigItem> picConfigList = null;
|
|
|
+ if (!exam.getType().equals(ExamType.MULTI_MEDIA)) {
|
|
|
+ picList = StringEscapeUtils.unescapeHtml(picList);
|
|
|
+ JSONArray array = JSONArray.fromObject(picList);
|
|
|
+ picConfigList = JSONArray.toList(array, new PictureConfigItem(), new JsonConfig());
|
|
|
+ }
|
|
|
// build questionDetail
|
|
|
questionDetail = StringEscapeUtils.unescapeHtml(questionDetail);
|
|
|
JSONArray array = JSONArray.fromObject(questionDetail);
|
|
@@ -510,8 +522,6 @@ public class MarkGroupController extends BaseExamController {
|
|
|
}
|
|
|
dto.setScoreList(scoreList);
|
|
|
}
|
|
|
- // if (picConfigList != null && detailList != null &&
|
|
|
- // picConfigList.size() > 0 && detailList.size() > 0) {
|
|
|
if (detailList != null && detailList.size() > 0) {
|
|
|
for (ExamQuestionDTO detail : detailList) {
|
|
|
if (questionService.countByExamAndSubjectAndObjectiveAndMainNumber(examId, subjectCode, false,
|
|
@@ -521,9 +531,7 @@ public class MarkGroupController extends BaseExamController {
|
|
|
return "redirect:/admin/exam/group/add";
|
|
|
}
|
|
|
}
|
|
|
- group = new MarkGroup(examId, subjectCode, number, null, 0d, doubleRate,
|
|
|
- // group = new MarkGroup(examId, subjectCode, number,
|
|
|
- // picConfigList, 0d, doubleRate,
|
|
|
+ group = new MarkGroup(examId, subjectCode, number, picConfigList, 0d, doubleRate,
|
|
|
arbitrateThreshold, scorePolicy, markMode, trialCount, sheetView, thirdPolicy);
|
|
|
// clear and replace exam_question
|
|
|
questionService
|