|
@@ -41,181 +41,190 @@ import cn.com.qmth.stmms.common.utils.ExportExcel;
|
|
import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
import net.sf.json.JSONObject;
|
|
import net.sf.json.JSONObject;
|
|
|
|
|
|
-
|
|
|
|
@Controller("scoreVerifyController")
|
|
@Controller("scoreVerifyController")
|
|
@RequestMapping("/admin/exam/score/verify")
|
|
@RequestMapping("/admin/exam/score/verify")
|
|
public class ScoreVerifyController extends BaseExamController {
|
|
public class ScoreVerifyController extends BaseExamController {
|
|
|
|
|
|
- protected static Logger log = LoggerFactory.getLogger(ScoreVerifyController.class);
|
|
|
|
-
|
|
|
|
|
|
+ protected static Logger log = LoggerFactory.getLogger(ScoreVerifyController.class);
|
|
|
|
+
|
|
|
|
+ public static final String UN_SELECTIVE_SCORE = "-1";
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private ExamStudentService studentService;
|
|
private ExamStudentService studentService;
|
|
- @Autowired
|
|
|
|
- private ScoreVerifyService scoreVerifyService;
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ScoreVerifyService scoreVerifyService;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private TaskService taskService;
|
|
private TaskService taskService;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private FileService fileService;
|
|
private FileService fileService;
|
|
- @Autowired
|
|
|
|
- private ExamService examService;
|
|
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ExamService examService;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private SystemCache systemCache;
|
|
private SystemCache systemCache;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private SchoolService schoolService;
|
|
private SchoolService schoolService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private ExamSubjectService subjectService;
|
|
private ExamSubjectService subjectService;
|
|
- @RequestMapping(value = "reset")
|
|
|
|
- public String reset(Model model, HttpServletRequest request) {
|
|
|
|
- Integer examId = getSessionExamId(request);
|
|
|
|
- Exam exam = examService.findById(examId);
|
|
|
|
- if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
|
|
|
|
- return "modules/exam/permission";
|
|
|
|
- }
|
|
|
|
- WebUser wu = RequestUtils.getWebUser(request);
|
|
|
|
- if(!scoreVerifyService.existByExamIdAndUserId(examId,wu.getId())) {
|
|
|
|
- model.addAttribute("errmsg", "没有数据需要重置");
|
|
|
|
- model.addAttribute("showType", "query");
|
|
|
|
- return "modules/exam/scoreVerify";
|
|
|
|
- }else {
|
|
|
|
- scoreVerifyService.reset(examId,wu.getId());
|
|
|
|
- model.addAttribute("showType", "query");
|
|
|
|
- return "modules/exam/scoreVerify";
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @RequestMapping(value = "init")
|
|
|
|
- public String init(Model model, HttpServletRequest request, ScoreVerifyQuery query) {
|
|
|
|
- Integer examId = getSessionExamId(request);
|
|
|
|
- Exam exam = examService.findById(examId);
|
|
|
|
- if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
|
|
|
|
- return "modules/exam/permission";
|
|
|
|
- }
|
|
|
|
- WebUser wu = RequestUtils.getWebUser(request);
|
|
|
|
- query.setExamId(examId);
|
|
|
|
- query.setUserId(wu.getId());
|
|
|
|
- if(!scoreVerifyService.existByExamIdAndUserId(examId,wu.getId())) {
|
|
|
|
- model.addAttribute("showType", "query");
|
|
|
|
- return "modules/exam/scoreVerify";
|
|
|
|
- }else {
|
|
|
|
- model.addAttribute("fileServer", fileService.getFileServer());
|
|
|
|
- model.addAttribute("examType", exam.getType());
|
|
|
|
- return query(model, request, query);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @RequestMapping(value = "page")
|
|
|
|
- public String page(Model model, HttpServletRequest request, ScoreVerifyQuery query) {
|
|
|
|
- Integer examId = getSessionExamId(request);
|
|
|
|
- Exam exam = examService.findById(examId);
|
|
|
|
- if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
|
|
|
|
- return "modules/exam/permission";
|
|
|
|
- }
|
|
|
|
- WebUser wu = RequestUtils.getWebUser(request);
|
|
|
|
- query.setExamId(examId);
|
|
|
|
- query.setUserId(wu.getId());
|
|
|
|
|
|
+
|
|
|
|
+ @RequestMapping(value = "reset")
|
|
|
|
+ public String reset(Model model, HttpServletRequest request) {
|
|
|
|
+ Integer examId = getSessionExamId(request);
|
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
|
+ if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
|
|
|
|
+ return "modules/exam/permission";
|
|
|
|
+ }
|
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
|
+ if (!scoreVerifyService.existByExamIdAndUserId(examId, wu.getId())) {
|
|
|
|
+ model.addAttribute("errmsg", "没有数据需要重置");
|
|
|
|
+ model.addAttribute("showType", "query");
|
|
|
|
+ return "modules/exam/scoreVerify";
|
|
|
|
+ } else {
|
|
|
|
+ scoreVerifyService.reset(examId, wu.getId());
|
|
|
|
+ model.addAttribute("showType", "query");
|
|
|
|
+ return "modules/exam/scoreVerify";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @RequestMapping(value = "init")
|
|
|
|
+ public String init(Model model, HttpServletRequest request, ScoreVerifyQuery query) {
|
|
|
|
+ Integer examId = getSessionExamId(request);
|
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
|
+ if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
|
|
|
|
+ return "modules/exam/permission";
|
|
|
|
+ }
|
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
|
+ query.setExamId(examId);
|
|
|
|
+ query.setUserId(wu.getId());
|
|
|
|
+ if (!scoreVerifyService.existByExamIdAndUserId(examId, wu.getId())) {
|
|
|
|
+ model.addAttribute("showType", "query");
|
|
|
|
+ return "modules/exam/scoreVerify";
|
|
|
|
+ } else {
|
|
|
|
+ model.addAttribute("fileServer", fileService.getFileServer());
|
|
|
|
+ model.addAttribute("examType", exam.getType());
|
|
|
|
+ return query(model, request, query);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @RequestMapping(value = "page")
|
|
|
|
+ public String page(Model model, HttpServletRequest request, ScoreVerifyQuery query) {
|
|
|
|
+ Integer examId = getSessionExamId(request);
|
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
|
+ if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
|
|
|
|
+ return "modules/exam/permission";
|
|
|
|
+ }
|
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
|
+ query.setExamId(examId);
|
|
|
|
+ query.setUserId(wu.getId());
|
|
model.addAttribute("fileServer", fileService.getFileServer());
|
|
model.addAttribute("fileServer", fileService.getFileServer());
|
|
model.addAttribute("examType", exam.getType());
|
|
model.addAttribute("examType", exam.getType());
|
|
- if(!scoreVerifyService.existByExamIdAndUserId(examId,wu.getId())) {
|
|
|
|
- return createAndQuery(model, request, query);
|
|
|
|
- }else {
|
|
|
|
- return query(model, request, query);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private String createAndQuery(Model model, HttpServletRequest request, ScoreVerifyQuery query) {
|
|
|
|
- try {
|
|
|
|
- scoreVerifyService.createQuery(query);
|
|
|
|
- Integer totalCount = scoreVerifyService.countByQuery(query.getExamId(),query.getUserId());
|
|
|
|
- if(totalCount>0) {
|
|
|
|
- List<ScoreVerifyVo> list = scoreVerifyService.findByQuery(query);
|
|
|
|
- Integer needVerifyCount = scoreVerifyService.needVerifyCount(query.getExamId(),query.getUserId());
|
|
|
|
- query.setResult(list);
|
|
|
|
- query.setTotalCount(totalCount);
|
|
|
|
- model.addAttribute("needVerifyCount", needVerifyCount);
|
|
|
|
- }else {
|
|
|
|
- query.setResult(new ArrayList<>());
|
|
|
|
- query.setTotalCount(0);
|
|
|
|
- model.addAttribute("needVerifyCount", 0);
|
|
|
|
- }
|
|
|
|
- } catch (StatusException e) {
|
|
|
|
- model.addAttribute("errmsg", e.getDesc());
|
|
|
|
- model.addAttribute("showType", "query");
|
|
|
|
- return "modules/exam/scoreVerify";
|
|
|
|
- }
|
|
|
|
- model.addAttribute("showType", "page");
|
|
|
|
- model.addAttribute("query", query);
|
|
|
|
- return "modules/exam/scoreVerify";
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private String query(Model model, HttpServletRequest request, ScoreVerifyQuery query) {
|
|
|
|
- Integer totalCount = scoreVerifyService.countByQuery(query.getExamId(),query.getUserId());
|
|
|
|
- if(totalCount>0) {
|
|
|
|
- List<ScoreVerifyVo> list = scoreVerifyService.findByQuery(query);
|
|
|
|
- Integer needVerifyCount = scoreVerifyService.needVerifyCount(query.getExamId(),query.getUserId());
|
|
|
|
- query.setResult(list);
|
|
|
|
- query.setTotalCount(totalCount);
|
|
|
|
- model.addAttribute("needVerifyCount", needVerifyCount);
|
|
|
|
- }else {
|
|
|
|
- query.setResult(new ArrayList<>());
|
|
|
|
- query.setTotalCount(0);
|
|
|
|
- model.addAttribute("needVerifyCount", 0);
|
|
|
|
- }
|
|
|
|
- model.addAttribute("query", query);
|
|
|
|
- model.addAttribute("showType", "page");
|
|
|
|
- return "modules/exam/scoreVerify";
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ if (!scoreVerifyService.existByExamIdAndUserId(examId, wu.getId())) {
|
|
|
|
+ return createAndQuery(model, request, query);
|
|
|
|
+ } else {
|
|
|
|
+ return query(model, request, query);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private String createAndQuery(Model model, HttpServletRequest request, ScoreVerifyQuery query) {
|
|
|
|
+ try {
|
|
|
|
+ scoreVerifyService.createQuery(query);
|
|
|
|
+ Integer totalCount = scoreVerifyService.countByQuery(query.getExamId(), query.getUserId());
|
|
|
|
+ if (totalCount > 0) {
|
|
|
|
+ List<ScoreVerifyVo> list = scoreVerifyService.findByQuery(query);
|
|
|
|
+ Integer needVerifyCount = scoreVerifyService.needVerifyCount(query.getExamId(), query.getUserId());
|
|
|
|
+ query.setResult(list);
|
|
|
|
+ query.setTotalCount(totalCount);
|
|
|
|
+ model.addAttribute("needVerifyCount", needVerifyCount);
|
|
|
|
+ } else {
|
|
|
|
+ query.setResult(new ArrayList<>());
|
|
|
|
+ query.setTotalCount(0);
|
|
|
|
+ model.addAttribute("needVerifyCount", 0);
|
|
|
|
+ }
|
|
|
|
+ } catch (StatusException e) {
|
|
|
|
+ model.addAttribute("errmsg", e.getDesc());
|
|
|
|
+ model.addAttribute("showType", "query");
|
|
|
|
+ return "modules/exam/scoreVerify";
|
|
|
|
+ }
|
|
|
|
+ model.addAttribute("showType", "page");
|
|
|
|
+ model.addAttribute("query", query);
|
|
|
|
+ return "modules/exam/scoreVerify";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private String query(Model model, HttpServletRequest request, ScoreVerifyQuery query) {
|
|
|
|
+ Integer totalCount = scoreVerifyService.countByQuery(query.getExamId(), query.getUserId());
|
|
|
|
+ if (totalCount > 0) {
|
|
|
|
+ List<ScoreVerifyVo> list = scoreVerifyService.findByQuery(query);
|
|
|
|
+ for (ScoreVerifyVo e : list) {
|
|
|
|
+ e.setSubjectiveScoreList(e.getSubjectiveScoreList().replace(UN_SELECTIVE_SCORE, "/"));
|
|
|
|
+ }
|
|
|
|
+ Integer needVerifyCount = scoreVerifyService.needVerifyCount(query.getExamId(), query.getUserId());
|
|
|
|
+ query.setResult(list);
|
|
|
|
+ query.setTotalCount(totalCount);
|
|
|
|
+ model.addAttribute("needVerifyCount", needVerifyCount);
|
|
|
|
+ } else {
|
|
|
|
+ query.setResult(new ArrayList<>());
|
|
|
|
+ query.setTotalCount(0);
|
|
|
|
+ model.addAttribute("needVerifyCount", 0);
|
|
|
|
+ }
|
|
|
|
+ model.addAttribute("query", query);
|
|
|
|
+ model.addAttribute("showType", "page");
|
|
|
|
+ return "modules/exam/scoreVerify";
|
|
|
|
+ }
|
|
|
|
+
|
|
@RequestMapping(value = "export", method = RequestMethod.POST)
|
|
@RequestMapping(value = "export", method = RequestMethod.POST)
|
|
public String exportFile(HttpServletRequest request, HttpServletResponse response,
|
|
public String exportFile(HttpServletRequest request, HttpServletResponse response,
|
|
RedirectAttributes redirectAttributes) {
|
|
RedirectAttributes redirectAttributes) {
|
|
- Integer examId = getSessionExamId(request);
|
|
|
|
- Exam exam = examService.findById(examId);
|
|
|
|
- if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
|
|
|
|
- return "modules/exam/permission";
|
|
|
|
- }
|
|
|
|
- WebUser wu = RequestUtils.getWebUser(request);
|
|
|
|
- if(!scoreVerifyService.existByExamIdAndUserId(examId,wu.getId())) {
|
|
|
|
- addMessage(redirectAttributes, "没有数据需要导出");
|
|
|
|
- return "redirect:/admin/exam/score/verify/init";
|
|
|
|
- }
|
|
|
|
|
|
+ Integer examId = getSessionExamId(request);
|
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
|
+ if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
|
|
|
|
+ return "modules/exam/permission";
|
|
|
|
+ }
|
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
|
+ if (!scoreVerifyService.existByExamIdAndUserId(examId, wu.getId())) {
|
|
|
|
+ addMessage(redirectAttributes, "没有数据需要导出");
|
|
|
|
+ return "redirect:/admin/exam/score/verify/init";
|
|
|
|
+ }
|
|
try {
|
|
try {
|
|
- List<ScoreVerifyVo> list = scoreVerifyService.findFlagged(examId,wu.getId());
|
|
|
|
|
|
+ List<ScoreVerifyVo> list = scoreVerifyService.findFlagged(examId, wu.getId());
|
|
String fileName = "标记卷数据.xlsx";
|
|
String fileName = "标记卷数据.xlsx";
|
|
- new ExportExcel("标记卷数据", ScoreVerifyVo.class).setDataList(list).write(response, fileName)
|
|
|
|
- .dispose();
|
|
|
|
|
|
+ new ExportExcel("标记卷数据", ScoreVerifyVo.class).setDataList(list).write(response, fileName).dispose();
|
|
return null;
|
|
return null;
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
- addErrMessage(redirectAttributes,e, "导出数据失败");
|
|
|
|
|
|
+ addErrMessage(redirectAttributes, e, "导出数据失败");
|
|
}
|
|
}
|
|
return "redirect:/admin/exam/score/verify/init";
|
|
return "redirect:/admin/exam/score/verify/init";
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
@ResponseBody
|
|
@ResponseBody
|
|
@RequestMapping(value = "needverify", method = RequestMethod.POST)
|
|
@RequestMapping(value = "needverify", method = RequestMethod.POST)
|
|
public JSONObject needVerify(HttpServletRequest request) {
|
|
public JSONObject needVerify(HttpServletRequest request) {
|
|
- Integer examId = getSessionExamId(request);
|
|
|
|
- WebUser wu = RequestUtils.getWebUser(request);
|
|
|
|
- JSONObject ret = new JSONObject();
|
|
|
|
|
|
+ Integer examId = getSessionExamId(request);
|
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
|
+ JSONObject ret = new JSONObject();
|
|
Exam exam = examService.findById(examId);
|
|
Exam exam = examService.findById(examId);
|
|
ret.accumulate("examType", exam.getType());
|
|
ret.accumulate("examType", exam.getType());
|
|
ret.accumulate("fileServer", fileService.getFileServer());
|
|
ret.accumulate("fileServer", fileService.getFileServer());
|
|
School school = schoolService.findById(exam.getSchoolId());
|
|
School school = schoolService.findById(exam.getSchoolId());
|
|
ret.accumulate("doubleTrack", systemCache.isDoubleTrack() && school.isDoubleTrack());
|
|
ret.accumulate("doubleTrack", systemCache.isDoubleTrack() && school.isDoubleTrack());
|
|
- if(!scoreVerifyService.existByExamIdAndUserId(examId,wu.getId())) {
|
|
|
|
- return ret;
|
|
|
|
- }
|
|
|
|
- List<ScoreVerifyVo> temlist = scoreVerifyService.needVerify(examId,wu.getId());
|
|
|
|
- if(temlist==null||temlist.size()==0) {
|
|
|
|
- return ret;
|
|
|
|
- }
|
|
|
|
- List<Integer> list=temlist.stream().map(e->e.getStudentId()).collect(Collectors.toList());
|
|
|
|
- ret.accumulate("studentIds", list);
|
|
|
|
- return ret;
|
|
|
|
|
|
+ if (!scoreVerifyService.existByExamIdAndUserId(examId, wu.getId())) {
|
|
|
|
+ return ret;
|
|
|
|
+ }
|
|
|
|
+ List<ScoreVerifyVo> temlist = scoreVerifyService.needVerify(examId, wu.getId());
|
|
|
|
+ if (temlist == null || temlist.size() == 0) {
|
|
|
|
+ return ret;
|
|
|
|
+ }
|
|
|
|
+ List<Integer> list = temlist.stream().map(e -> e.getStudentId()).collect(Collectors.toList());
|
|
|
|
+ ret.accumulate("studentIds", list);
|
|
|
|
+ return ret;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
@RequestMapping("info")
|
|
@RequestMapping("info")
|
|
@ResponseBody
|
|
@ResponseBody
|
|
public ScoreVerifyInfo info(HttpServletRequest request, @RequestParam Integer studentId) {
|
|
public ScoreVerifyInfo info(HttpServletRequest request, @RequestParam Integer studentId) {
|
|
@@ -228,13 +237,13 @@ public class ScoreVerifyController extends BaseExamController {
|
|
int examId = getSessionExamId(request);
|
|
int examId = getSessionExamId(request);
|
|
ExamSubject examSubject = subjectService.find(examId, student.getSubjectCode());
|
|
ExamSubject examSubject = subjectService.find(examId, student.getSubjectCode());
|
|
examSubject.setPaperAnswerUrl(fileService);
|
|
examSubject.setPaperAnswerUrl(fileService);
|
|
- info.setPaperUrl( examSubject.getPaperUrl() == null ? "" : examSubject.getPaperUrl());
|
|
|
|
|
|
+ info.setPaperUrl(examSubject.getPaperUrl() == null ? "" : examSubject.getPaperUrl());
|
|
WebUser wu = RequestUtils.getWebUser(request);
|
|
WebUser wu = RequestUtils.getWebUser(request);
|
|
- scoreVerifyService.view(examId,wu.getId(),studentId);
|
|
|
|
|
|
+ scoreVerifyService.view(examId, wu.getId(), studentId);
|
|
}
|
|
}
|
|
return info;
|
|
return info;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
@RequestMapping("tag")
|
|
@RequestMapping("tag")
|
|
@ResponseBody
|
|
@ResponseBody
|
|
public Object tag(HttpServletRequest request, @RequestParam Integer studentId, @RequestParam boolean isTag) {
|
|
public Object tag(HttpServletRequest request, @RequestParam Integer studentId, @RequestParam boolean isTag) {
|
|
@@ -243,7 +252,7 @@ public class ScoreVerifyController extends BaseExamController {
|
|
if (student != null) {
|
|
if (student != null) {
|
|
int examId = getSessionExamId(request);
|
|
int examId = getSessionExamId(request);
|
|
WebUser wu = RequestUtils.getWebUser(request);
|
|
WebUser wu = RequestUtils.getWebUser(request);
|
|
- scoreVerifyService.tag(examId,wu.getId(),studentId,isTag);
|
|
|
|
|
|
+ scoreVerifyService.tag(examId, wu.getId(), studentId, isTag);
|
|
obj.accumulate("success", true);
|
|
obj.accumulate("success", true);
|
|
} else {
|
|
} else {
|
|
obj.accumulate("success", false);
|
|
obj.accumulate("success", false);
|