浏览代码

成绩校验主观题明细处理未选做分数显示

ting.yin 1 年之前
父节点
当前提交
028c6979cc
共有 1 个文件被更改,包括 150 次插入141 次删除
  1. 150 141
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ScoreVerifyController.java

+ 150 - 141
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ScoreVerifyController.java

@@ -41,181 +41,190 @@ import cn.com.qmth.stmms.common.utils.ExportExcel;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
 import net.sf.json.JSONObject;
 
-
 @Controller("scoreVerifyController")
 @RequestMapping("/admin/exam/score/verify")
 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
     private ExamStudentService studentService;
-	@Autowired
-	private ScoreVerifyService scoreVerifyService;
-	
+
+    @Autowired
+    private ScoreVerifyService scoreVerifyService;
+
     @Autowired
     private TaskService taskService;
+
     @Autowired
     private FileService fileService;
-	@Autowired
-	private ExamService examService;
+
+    @Autowired
+    private ExamService examService;
+
     @Autowired
     private SystemCache systemCache;
+
     @Autowired
     private SchoolService schoolService;
 
     @Autowired
     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("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)
     public String exportFile(HttpServletRequest request, HttpServletResponse response,
             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 {
-        	List<ScoreVerifyVo> list = scoreVerifyService.findFlagged(examId,wu.getId());
+            List<ScoreVerifyVo> list = scoreVerifyService.findFlagged(examId, wu.getId());
             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;
         } catch (Exception e) {
-        	addErrMessage(redirectAttributes,e, "导出数据失败");
+            addErrMessage(redirectAttributes, e, "导出数据失败");
         }
         return "redirect:/admin/exam/score/verify/init";
     }
-    
+
     @ResponseBody
     @RequestMapping(value = "needverify", method = RequestMethod.POST)
     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);
         ret.accumulate("examType", exam.getType());
         ret.accumulate("fileServer", fileService.getFileServer());
         School school = schoolService.findById(exam.getSchoolId());
         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")
     @ResponseBody
     public ScoreVerifyInfo info(HttpServletRequest request, @RequestParam Integer studentId) {
@@ -228,13 +237,13 @@ public class ScoreVerifyController extends BaseExamController {
             int examId = getSessionExamId(request);
             ExamSubject examSubject = subjectService.find(examId, student.getSubjectCode());
             examSubject.setPaperAnswerUrl(fileService);
-            info.setPaperUrl( examSubject.getPaperUrl() == null ? "" : examSubject.getPaperUrl());
+            info.setPaperUrl(examSubject.getPaperUrl() == null ? "" : examSubject.getPaperUrl());
             WebUser wu = RequestUtils.getWebUser(request);
-            scoreVerifyService.view(examId,wu.getId(),studentId);
+            scoreVerifyService.view(examId, wu.getId(), studentId);
         }
         return info;
     }
-    
+
     @RequestMapping("tag")
     @ResponseBody
     public Object tag(HttpServletRequest request, @RequestParam Integer studentId, @RequestParam boolean isTag) {
@@ -243,7 +252,7 @@ public class ScoreVerifyController extends BaseExamController {
         if (student != null) {
             int examId = getSessionExamId(request);
             WebUser wu = RequestUtils.getWebUser(request);
-            scoreVerifyService.tag(examId,wu.getId(),studentId,isTag);
+            scoreVerifyService.tag(examId, wu.getId(), studentId, isTag);
             obj.accumulate("success", true);
         } else {
             obj.accumulate("success", false);