|
@@ -99,6 +99,7 @@ public class InspectedController extends BaseExamController {
|
|
|
|
|
|
@Autowired
|
|
|
private CollationLabelService collationLabelService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private OperationLogService logService;
|
|
|
|
|
@@ -110,11 +111,7 @@ public class InspectedController extends BaseExamController {
|
|
|
private static final String DEFAULT_SECRET_NUMBER = "***";
|
|
|
|
|
|
@RequestMapping(value = "/list")
|
|
|
- public String list(Model model, HttpServletRequest request, InspectQuery query,
|
|
|
- @RequestParam(required = false) SubjectiveStatus status,
|
|
|
- @RequestParam(required = false) SelectiveStatus selectiveStatus,
|
|
|
- @RequestParam(required = false) Integer mainNumber, @RequestParam(required = false) Double mainStartScore,
|
|
|
- @RequestParam(required = false) Double mainEndScore) {
|
|
|
+ public String list(Model model, HttpServletRequest request, InspectQuery query) {
|
|
|
int examId = getSessionExamId(request);
|
|
|
Exam exam = examService.findById(examId);
|
|
|
if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
|
|
@@ -128,11 +125,11 @@ public class InspectedController extends BaseExamController {
|
|
|
subjectList.forEach(e -> subjectCodeIn.add(e.getCode()));
|
|
|
query.setSubjectCodeIn(StringUtils.join(subjectCodeIn, ","));
|
|
|
}
|
|
|
- if(wu.getRole() != Role.SCHOOL_ADMIN&&subjectList!=null&&subjectList.size()>0&&query.getSubjectCode()==null) {
|
|
|
- query.setSubjectCode(subjectList.get(0).getCode());
|
|
|
+ if (wu.getRole() != Role.SCHOOL_ADMIN && subjectList != null && subjectList.size() > 0
|
|
|
+ && query.getSubjectCode() == null) {
|
|
|
+ query.setSubjectCode(subjectList.get(0).getCode());
|
|
|
}
|
|
|
- List<ExamStudentVo> list = inspectedService.findByQuery(query, status, mainNumber, mainStartScore,
|
|
|
- mainEndScore, selectiveStatus);
|
|
|
+ List<ExamStudentVo> list = inspectedService.findByQuery(query);
|
|
|
for (ExamStudentVo e : list) {
|
|
|
e.setSubjectiveScoreList(e.getSubjectiveScoreList().replace(UN_SELECTIVE_SCORE, "/"));
|
|
|
// e.setInspectHistoryList(inspectHistoryService.findByStudentIdLimit3(e.getId()));
|
|
@@ -143,10 +140,8 @@ public class InspectedController extends BaseExamController {
|
|
|
maxInspectRound = subjectService.findMaxInspectRound(examId, subjectCodes);
|
|
|
inspectedService.fillInspectHistoryMap(list, maxInspectRound);
|
|
|
}
|
|
|
- Integer totalCount = inspectedService.countByQuery(query, status, mainNumber, mainStartScore, mainEndScore,
|
|
|
- selectiveStatus);
|
|
|
- Integer inspectCount = inspectedService.needInspectCount(query, mainNumber, mainStartScore, mainEndScore,
|
|
|
- selectiveStatus);
|
|
|
+ Integer totalCount = inspectedService.countByQuery(query);
|
|
|
+ Integer inspectCount = inspectedService.needInspectCount(query);
|
|
|
query.setResult(list);
|
|
|
query.setTotalCount(totalCount);
|
|
|
model.addAttribute("query", query);
|
|
@@ -154,27 +149,26 @@ public class InspectedController extends BaseExamController {
|
|
|
model.addAttribute("inspectCount", inspectCount);
|
|
|
model.addAttribute("questionList",
|
|
|
questionService.findMainByExamAndSubjectAndObjective(examId, query.getSubjectCode(), false));
|
|
|
- model.addAttribute("mainNumber", mainNumber);
|
|
|
- model.addAttribute("mainStartScore", mainStartScore);
|
|
|
- model.addAttribute("mainEndScore", mainEndScore);
|
|
|
+ model.addAttribute("mainNumber", query.getMainNumber());
|
|
|
+ model.addAttribute("mainStartScore", query.getMainStartScore());
|
|
|
+ model.addAttribute("mainEndScore", query.getMainEndScore());
|
|
|
model.addAttribute("subjectList", subjectList);
|
|
|
model.addAttribute("statusList", SubjectiveStatus.getOptionList());
|
|
|
model.addAttribute("selectiveStatusList", SelectiveStatus.getOptionList());
|
|
|
- model.addAttribute("status", status);
|
|
|
- model.addAttribute("selectiveStatus", selectiveStatus);
|
|
|
+ model.addAttribute("selectiveStatus", query.getSelectiveStatus());
|
|
|
model.addAttribute("exam", exam);
|
|
|
model.addAttribute("examFinish", checkFinish(exam));
|
|
|
model.addAttribute("collegeList", studentService.findDistinctCollege(examId));
|
|
|
model.addAttribute("inspectRoundList", inspectHistoryService.findInspectRound(examId));
|
|
|
if (StringUtils.isNotBlank(query.getSubjectCode())) {
|
|
|
- if(!exam.getInspectRoundLimit()) {
|
|
|
- model.addAttribute("showNextInspect", true);
|
|
|
- }else {
|
|
|
- ExamSubject es = subjectService.find(examId, query.getSubjectCode());
|
|
|
- if (inspectedService.inspectFinish(examId, query.getSubjectCode(), es.getInspectRound())) {
|
|
|
- model.addAttribute("showNextInspect", true);
|
|
|
- }
|
|
|
- }
|
|
|
+ if (!exam.getInspectRoundLimit()) {
|
|
|
+ model.addAttribute("showNextInspect", true);
|
|
|
+ } else {
|
|
|
+ ExamSubject es = subjectService.find(examId, query.getSubjectCode());
|
|
|
+ if (inspectedService.inspectFinish(examId, query.getSubjectCode(), es.getInspectRound())) {
|
|
|
+ model.addAttribute("showNextInspect", true);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
return "modules/exam/inspectedList";
|
|
|
}
|
|
@@ -194,11 +188,8 @@ public class InspectedController extends BaseExamController {
|
|
|
@RequestMapping(value = "/getTask", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
public Task getTask(HttpServletRequest request, HttpServletResponse response, RedirectAttributes ra,
|
|
|
- InspectQuery query,
|
|
|
- @RequestParam(required = false, defaultValue = "false") SelectiveStatus selectiveStatus,
|
|
|
- @RequestParam(required = false) Integer mainNumber, @RequestParam(required = false) Double mainStartScore,
|
|
|
- @RequestParam(required = false) Double mainEndScore, @RequestParam(required = false) Double questionScore,
|
|
|
- @RequestParam(required = false) Integer studentId) {
|
|
|
+ InspectQuery query) {
|
|
|
+ Integer studentId = query.getStudentId();
|
|
|
int examId = getSessionExamId(request);
|
|
|
WebUser wu = RequestUtils.getWebUser(request);
|
|
|
Exam exam = examService.findById(examId);
|
|
@@ -226,37 +217,36 @@ public class InspectedController extends BaseExamController {
|
|
|
if (inspectedService.applyStudent(ExamStudentVo.of(student), wu.getId())) {
|
|
|
task = taskService.build(student, wu.getUser());
|
|
|
}
|
|
|
- }else {
|
|
|
- int retry = 1;
|
|
|
- while (task == null) {
|
|
|
- List<ExamStudentVo> list = new ArrayList<>();
|
|
|
- // 需要判断评卷员是否绑定了班级
|
|
|
- query.setExamId(examId);
|
|
|
- query.setPageNumber(retry);
|
|
|
- query.setPageSize(20);
|
|
|
- List<ExamSubject> subjectList = getExamSubject(examId, wu);
|
|
|
- if (StringUtils.isBlank(query.getSubjectCode()) && !subjectList.isEmpty()) {
|
|
|
- query.setSubjectCode(subjectList.get(0).getCode());
|
|
|
- }
|
|
|
- query.setInspected(false);
|
|
|
- query.setInspectUnrepeated(exam.getInspectUnrepeated());
|
|
|
- query.setInspectorId(wu.getId());
|
|
|
- list = inspectedService.findByQuery(query, SubjectiveStatus.MARKED, mainNumber, mainStartScore,
|
|
|
- mainEndScore, selectiveStatus);
|
|
|
- if (list.isEmpty()) {
|
|
|
- break;
|
|
|
- }
|
|
|
- for (ExamStudentVo student : list) {
|
|
|
- if (inspectedService.applyStudent(student, wu.getId())) {
|
|
|
- task = taskService.build(ExamStudent.of(student), wu.getUser());
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- if (task == null) {
|
|
|
- retry++;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ } else {
|
|
|
+ int retry = 1;
|
|
|
+ while (task == null) {
|
|
|
+ List<ExamStudentVo> list = new ArrayList<>();
|
|
|
+ // 需要判断评卷员是否绑定了班级
|
|
|
+ query.setExamId(examId);
|
|
|
+ query.setPageNumber(retry);
|
|
|
+ query.setPageSize(20);
|
|
|
+ List<ExamSubject> subjectList = getExamSubject(examId, wu);
|
|
|
+ if (StringUtils.isBlank(query.getSubjectCode()) && !subjectList.isEmpty()) {
|
|
|
+ query.setSubjectCode(subjectList.get(0).getCode());
|
|
|
+ }
|
|
|
+ query.setInspected(false);
|
|
|
+ query.setInspectUnrepeated(exam.getInspectUnrepeated());
|
|
|
+ query.setInspectorId(wu.getId());
|
|
|
+ list = inspectedService.findByQuery(query);
|
|
|
+ if (list.isEmpty()) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ for (ExamStudentVo student : list) {
|
|
|
+ if (inspectedService.applyStudent(student, wu.getId())) {
|
|
|
+ task = taskService.build(ExamStudent.of(student), wu.getUser());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (task == null) {
|
|
|
+ retry++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
return task;
|
|
|
}
|
|
|
|
|
@@ -267,8 +257,8 @@ public class InspectedController extends BaseExamController {
|
|
|
WebUser wu = RequestUtils.getWebUser(request);
|
|
|
JSONObject obj = new JSONObject();
|
|
|
ExamStudent student = studentService.findById(studentId);
|
|
|
- if(student==null) {
|
|
|
- obj.accumulate("success", false);
|
|
|
+ if (student == null) {
|
|
|
+ obj.accumulate("success", false);
|
|
|
obj.accumulate("message", "未找到考生信息");
|
|
|
return obj;
|
|
|
}
|
|
@@ -311,15 +301,15 @@ public class InspectedController extends BaseExamController {
|
|
|
return obj;
|
|
|
}
|
|
|
|
|
|
-// @Logging(menu = "取消复核", type = LogType.UPDATE)
|
|
|
+ // @Logging(menu = "取消复核", type = LogType.UPDATE)
|
|
|
@RequestMapping(value = "/cancel", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
@RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER, Role.INSPECTOR, Role.COLLEGE_ADMIN })
|
|
|
public JSONObject cancel(HttpServletRequest request, @RequestParam Integer studentId) {
|
|
|
JSONObject obj = new JSONObject();
|
|
|
ExamStudent student = studentService.findById(studentId);
|
|
|
- if(student==null) {
|
|
|
- obj.accumulate("success", false);
|
|
|
+ if (student == null) {
|
|
|
+ obj.accumulate("success", false);
|
|
|
obj.accumulate("message", "未找到考生信息");
|
|
|
return obj;
|
|
|
}
|
|
@@ -329,7 +319,7 @@ public class InspectedController extends BaseExamController {
|
|
|
try {
|
|
|
lockService.watch(LockType.EXAM_SUBJECT, student.getExamId(), student.getSubjectCode());
|
|
|
lockService.waitlock(LockType.STUDENT, studentId);
|
|
|
- if (student.getInspected()&&inspectedService.cancelByStudent(studentId)) {
|
|
|
+ if (student.getInspected() && inspectedService.cancelByStudent(studentId)) {
|
|
|
OperationLog log = new OperationLog();
|
|
|
log.setCreateTime(new Date());
|
|
|
log.setMenu("取消复核");
|
|
@@ -341,7 +331,8 @@ public class InspectedController extends BaseExamController {
|
|
|
int examId = SessionExamUtils.getExamId(request);
|
|
|
log.setExamId(examId > 0 ? examId : null);
|
|
|
log.setSchoolId(wu.getUser().getSchoolId());
|
|
|
- log.setDescription("科目代码:"+student.getSubjectCode()+" 准考证号:"+student.getExamNumber()+" 密号:"+student.getSecretNumber());
|
|
|
+ log.setDescription("科目代码:" + student.getSubjectCode() + " 准考证号:" + student.getExamNumber() + " 密号:"
|
|
|
+ + student.getSecretNumber());
|
|
|
logService.save(log);
|
|
|
obj.accumulate("success", true);
|
|
|
} else {
|
|
@@ -362,55 +353,57 @@ public class InspectedController extends BaseExamController {
|
|
|
}
|
|
|
return obj;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@RequestMapping(value = "nextround/check", method = RequestMethod.POST)
|
|
|
@RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER, Role.INSPECTOR, Role.COLLEGE_ADMIN })
|
|
|
@ResponseBody
|
|
|
- public JSONObject nextroundCheck(RedirectAttributes ra, HttpServletRequest request, @RequestParam String subjectCode) {
|
|
|
- JSONObject obj = new JSONObject();
|
|
|
- //status -1 错误,0需确认,1通过
|
|
|
+ public JSONObject nextroundCheck(RedirectAttributes ra, HttpServletRequest request,
|
|
|
+ @RequestParam String subjectCode) {
|
|
|
+ JSONObject obj = new JSONObject();
|
|
|
+ // status -1 错误,0需确认,1通过
|
|
|
int examId = getSessionExamId(request);
|
|
|
lockService.waitlock(LockType.EXAM_SUBJECT, examId, subjectCode);
|
|
|
- try {
|
|
|
- Exam exam = examService.findById(examId);
|
|
|
- ExamSubject es = subjectService.find(examId, subjectCode);
|
|
|
- if(exam.getInspectRoundLimit()) {
|
|
|
- if (!inspectedService.inspectFinish(examId, subjectCode, es.getInspectRound())) {
|
|
|
- obj.put("status", -1);
|
|
|
- obj.put("message", "该科目第" + es.getInspectRound() + "次复核还未完成");
|
|
|
- return obj;
|
|
|
- }else {
|
|
|
- obj.put("status", 1);
|
|
|
- return obj;
|
|
|
- }
|
|
|
- }else {
|
|
|
- ExamStudentSearchQuery sQuery = new ExamStudentSearchQuery();
|
|
|
- sQuery.setExamId(examId);
|
|
|
- sQuery.setUpload(true);
|
|
|
- sQuery.setAbsent(false);
|
|
|
- sQuery.setBreach(false);
|
|
|
- sQuery.setSubjectCode(subjectCode);
|
|
|
- sQuery.setInspected(true);
|
|
|
- long inspectedCount = studentService.countByQuery(sQuery);
|
|
|
- if(inspectedCount==0) {
|
|
|
- obj.put("status", -1);
|
|
|
- obj.put("message", "本轮无复核记录,无法开启再次复核");
|
|
|
- return obj;
|
|
|
- }
|
|
|
- sQuery.setInspected(null);
|
|
|
- long totalCount = studentService.countByQuery(sQuery);
|
|
|
- if(inspectedCount==totalCount) {
|
|
|
- obj.put("status", 1);
|
|
|
- return obj;
|
|
|
- }else {
|
|
|
- String percent = totalCount > 0 ? (new DecimalFormat("####.###")
|
|
|
- .format(inspectedCount * 100.0 / totalCount) + "%") : "0%";
|
|
|
- String msg="本轮复核进度为"+percent+",还有"+(totalCount-inspectedCount)+"份未完成复核,是否进入下一轮复核?";
|
|
|
- obj.put("status", 0);
|
|
|
- obj.put("message", msg);
|
|
|
- return obj;
|
|
|
- }
|
|
|
- }
|
|
|
+ try {
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
+ ExamSubject es = subjectService.find(examId, subjectCode);
|
|
|
+ if (exam.getInspectRoundLimit()) {
|
|
|
+ if (!inspectedService.inspectFinish(examId, subjectCode, es.getInspectRound())) {
|
|
|
+ obj.put("status", -1);
|
|
|
+ obj.put("message", "该科目第" + es.getInspectRound() + "次复核还未完成");
|
|
|
+ return obj;
|
|
|
+ } else {
|
|
|
+ obj.put("status", 1);
|
|
|
+ return obj;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ ExamStudentSearchQuery sQuery = new ExamStudentSearchQuery();
|
|
|
+ sQuery.setExamId(examId);
|
|
|
+ sQuery.setUpload(true);
|
|
|
+ sQuery.setAbsent(false);
|
|
|
+ sQuery.setBreach(false);
|
|
|
+ sQuery.setSubjectCode(subjectCode);
|
|
|
+ sQuery.setInspected(true);
|
|
|
+ long inspectedCount = studentService.countByQuery(sQuery);
|
|
|
+ if (inspectedCount == 0) {
|
|
|
+ obj.put("status", -1);
|
|
|
+ obj.put("message", "本轮无复核记录,无法开启再次复核");
|
|
|
+ return obj;
|
|
|
+ }
|
|
|
+ sQuery.setInspected(null);
|
|
|
+ long totalCount = studentService.countByQuery(sQuery);
|
|
|
+ if (inspectedCount == totalCount) {
|
|
|
+ obj.put("status", 1);
|
|
|
+ return obj;
|
|
|
+ } else {
|
|
|
+ String percent = totalCount > 0
|
|
|
+ ? (new DecimalFormat("####.###").format(inspectedCount * 100.0 / totalCount) + "%")
|
|
|
+ : "0%";
|
|
|
+ String msg = "本轮复核进度为" + percent + ",还有" + (totalCount - inspectedCount) + "份未完成复核,是否进入下一轮复核?";
|
|
|
+ obj.put("status", 0);
|
|
|
+ obj.put("message", msg);
|
|
|
+ return obj;
|
|
|
+ }
|
|
|
+ }
|
|
|
} finally {
|
|
|
lockService.unlock(LockType.EXAM_SUBJECT, examId, subjectCode);
|
|
|
}
|
|
@@ -420,54 +413,54 @@ public class InspectedController extends BaseExamController {
|
|
|
@RequestMapping(value = "nextround", method = RequestMethod.POST)
|
|
|
@RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER, Role.INSPECTOR, Role.COLLEGE_ADMIN })
|
|
|
public String nextround(RedirectAttributes ra, HttpServletRequest request, @RequestParam String subjectCode) {
|
|
|
- String url="redirect:/admin/exam/inspected/list?subjectCode="+subjectCode;
|
|
|
+ String url = "redirect:/admin/exam/inspected/list?subjectCode=" + subjectCode;
|
|
|
int examId = getSessionExamId(request);
|
|
|
lockService.waitlock(LockType.EXAM_SUBJECT, examId, subjectCode);
|
|
|
try {
|
|
|
- Exam exam = examService.findById(examId);
|
|
|
- ExamSubject es = subjectService.find(examId, subjectCode);
|
|
|
- StringBuilder sb=new StringBuilder();
|
|
|
- sb.append("科目代码:"+subjectCode);
|
|
|
- sb.append(" | 开启第"+(es.getInspectRound()+1)+"轮");
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
+ ExamSubject es = subjectService.find(examId, subjectCode);
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ sb.append("科目代码:" + subjectCode);
|
|
|
+ sb.append(" | 开启第" + (es.getInspectRound() + 1) + "轮");
|
|
|
sb.append(" | 上轮进度");
|
|
|
- ExamStudentSearchQuery sQuery = new ExamStudentSearchQuery();
|
|
|
- sQuery.setExamId(examId);
|
|
|
- sQuery.setUpload(true);
|
|
|
- sQuery.setAbsent(false);
|
|
|
- sQuery.setBreach(false);
|
|
|
- sQuery.setSubjectCode(subjectCode);
|
|
|
- sQuery.setInspected(true);
|
|
|
- if(exam.getInspectRoundLimit()) {
|
|
|
- if (!inspectedService.inspectFinish(examId, subjectCode, es.getInspectRound())) {
|
|
|
- ra.addFlashAttribute("errmsg", "该科目第" + es.getInspectRound() + "次复核还未完成");
|
|
|
- return url;
|
|
|
- }else {
|
|
|
- long inspectedCount = studentService.countByQuery(sQuery);
|
|
|
- sQuery.setInspected(null);
|
|
|
- long totalCount = studentService.countByQuery(sQuery);
|
|
|
- sb.append(" 总量:"+totalCount);
|
|
|
- sb.append(" 已复核:"+inspectedCount);
|
|
|
- sb.append(" 未复核:"+(totalCount-inspectedCount));
|
|
|
- subjectService.nextInspectRound(examId, subjectCode);
|
|
|
-
|
|
|
- RequestUtils.setLog(request, sb.toString());
|
|
|
- return url;
|
|
|
- }
|
|
|
- }else {
|
|
|
- long inspectedCount = studentService.countByQuery(sQuery);
|
|
|
- if(inspectedCount==0) {
|
|
|
- ra.addFlashAttribute("errmsg", "本轮无复核记录,无法开启再次复核");
|
|
|
- return url;
|
|
|
- }
|
|
|
- sQuery.setInspected(null);
|
|
|
- long totalCount = studentService.countByQuery(sQuery);
|
|
|
- sb.append(" 总量:"+totalCount);
|
|
|
- sb.append(" 已复核:"+inspectedCount);
|
|
|
- sb.append(" 未复核:"+(totalCount-inspectedCount));
|
|
|
- subjectService.nextInspectRound(examId, subjectCode);
|
|
|
- RequestUtils.setLog(request, sb.toString());
|
|
|
+ ExamStudentSearchQuery sQuery = new ExamStudentSearchQuery();
|
|
|
+ sQuery.setExamId(examId);
|
|
|
+ sQuery.setUpload(true);
|
|
|
+ sQuery.setAbsent(false);
|
|
|
+ sQuery.setBreach(false);
|
|
|
+ sQuery.setSubjectCode(subjectCode);
|
|
|
+ sQuery.setInspected(true);
|
|
|
+ if (exam.getInspectRoundLimit()) {
|
|
|
+ if (!inspectedService.inspectFinish(examId, subjectCode, es.getInspectRound())) {
|
|
|
+ ra.addFlashAttribute("errmsg", "该科目第" + es.getInspectRound() + "次复核还未完成");
|
|
|
+ return url;
|
|
|
+ } else {
|
|
|
+ long inspectedCount = studentService.countByQuery(sQuery);
|
|
|
+ sQuery.setInspected(null);
|
|
|
+ long totalCount = studentService.countByQuery(sQuery);
|
|
|
+ sb.append(" 总量:" + totalCount);
|
|
|
+ sb.append(" 已复核:" + inspectedCount);
|
|
|
+ sb.append(" 未复核:" + (totalCount - inspectedCount));
|
|
|
+ subjectService.nextInspectRound(examId, subjectCode);
|
|
|
+
|
|
|
+ RequestUtils.setLog(request, sb.toString());
|
|
|
+ return url;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ long inspectedCount = studentService.countByQuery(sQuery);
|
|
|
+ if (inspectedCount == 0) {
|
|
|
+ ra.addFlashAttribute("errmsg", "本轮无复核记录,无法开启再次复核");
|
|
|
+ return url;
|
|
|
+ }
|
|
|
+ sQuery.setInspected(null);
|
|
|
+ long totalCount = studentService.countByQuery(sQuery);
|
|
|
+ sb.append(" 总量:" + totalCount);
|
|
|
+ sb.append(" 已复核:" + inspectedCount);
|
|
|
+ sb.append(" 未复核:" + (totalCount - inspectedCount));
|
|
|
+ subjectService.nextInspectRound(examId, subjectCode);
|
|
|
+ RequestUtils.setLog(request, sb.toString());
|
|
|
return url;
|
|
|
- }
|
|
|
+ }
|
|
|
} finally {
|
|
|
lockService.unlock(LockType.EXAM_SUBJECT, examId, subjectCode);
|
|
|
}
|
|
@@ -486,7 +479,8 @@ public class InspectedController extends BaseExamController {
|
|
|
obj.accumulate("message", "无法打回");
|
|
|
return obj;
|
|
|
}
|
|
|
- if (student.getSubjectiveStatus().equals(SubjectiveStatus.MARKED) && subjectCheck(student.getSubjectCode(), wu)) {
|
|
|
+ if (student.getSubjectiveStatus().equals(SubjectiveStatus.MARKED)
|
|
|
+ && subjectCheck(student.getSubjectCode(), wu)) {
|
|
|
try {
|
|
|
lockService.watch(LockType.EXAM_SUBJECT, student.getExamId(), student.getSubjectCode());
|
|
|
lockService.waitlock(LockType.STUDENT, student.getId());
|
|
@@ -516,8 +510,8 @@ public class InspectedController extends BaseExamController {
|
|
|
@Logging(menu = "回看全卷复核任务", type = LogType.QUERY)
|
|
|
@RequestMapping(value = "/getHistory", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
- public Object getHistory(HttpServletRequest request, @RequestParam String subjectCode,
|
|
|
- @RequestParam int pageNumber, @RequestParam int pageSize) throws Exception {
|
|
|
+ public Object getHistory(HttpServletRequest request, @RequestParam String subjectCode, @RequestParam int pageNumber,
|
|
|
+ @RequestParam int pageSize) throws Exception {
|
|
|
int examId = getSessionExamId(request);
|
|
|
WebUser wu = RequestUtils.getWebUser(request);
|
|
|
List<Task> list = new ArrayList<>();
|
|
@@ -540,15 +534,11 @@ public class InspectedController extends BaseExamController {
|
|
|
|
|
|
@RequestMapping(value = "/getStatus", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
- public JSONObject status(HttpServletRequest request, InspectQuery query,
|
|
|
- @RequestParam(required = false) SelectiveStatus selectiveStatus,
|
|
|
- @RequestParam(required = false) Integer mainNumber, @RequestParam(required = false) Double mainStartScore,
|
|
|
- @RequestParam(required = false) Double mainEndScore, @RequestParam(required = false) Double questionScore) {
|
|
|
+ public JSONObject status(HttpServletRequest request, InspectQuery query) {
|
|
|
JSONObject status = new JSONObject();
|
|
|
int examId = getSessionExamId(request);
|
|
|
query.setExamId(examId);
|
|
|
- Integer totalCount = inspectedService.needInspectCount(query, mainNumber, mainStartScore, mainEndScore,
|
|
|
- selectiveStatus);
|
|
|
+ Integer totalCount = inspectedService.needInspectCount(query);
|
|
|
status.accumulate("totalCount", totalCount);
|
|
|
status.accumulate("valid", true);
|
|
|
return status;
|
|
@@ -587,7 +577,7 @@ public class InspectedController extends BaseExamController {
|
|
|
List<CollationLabel> list = collationLabelService.list(examId);
|
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
try {
|
|
|
- setting.accumulate("collationLabelList",mapper.writeValueAsString(list));
|
|
|
+ setting.accumulate("collationLabelList", mapper.writeValueAsString(list));
|
|
|
} catch (JsonProcessingException e) {
|
|
|
log.error("MarkController-整理异常获取出错", e);
|
|
|
}
|
|
@@ -625,7 +615,7 @@ public class InspectedController extends BaseExamController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// @Logging(menu = "取消复核", type = LogType.UPDATE)
|
|
|
+ // @Logging(menu = "取消复核", type = LogType.UPDATE)
|
|
|
@RequestMapping(value = "/batchCancel", method = RequestMethod.POST)
|
|
|
@RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER, Role.INSPECTOR, Role.COLLEGE_ADMIN })
|
|
|
public String batchCancel(HttpServletRequest request, @RequestParam Integer[] ids) {
|
|
@@ -636,7 +626,7 @@ public class InspectedController extends BaseExamController {
|
|
|
try {
|
|
|
lockService.watch(LockType.EXAM_SUBJECT, student.getExamId(), student.getSubjectCode());
|
|
|
lockService.waitlock(LockType.STUDENT, student.getId());
|
|
|
- if(student.getInspected()&&inspectedService.cancelByStudent(id)){
|
|
|
+ if (student.getInspected() && inspectedService.cancelByStudent(id)) {
|
|
|
OperationLog log = new OperationLog();
|
|
|
log.setCreateTime(new Date());
|
|
|
log.setMenu("取消复核");
|
|
@@ -648,7 +638,8 @@ public class InspectedController extends BaseExamController {
|
|
|
int examId = SessionExamUtils.getExamId(request);
|
|
|
log.setExamId(examId > 0 ? examId : null);
|
|
|
log.setSchoolId(wu.getUser().getSchoolId());
|
|
|
- log.setDescription("科目代码:"+student.getSubjectCode()+" 准考证号:"+student.getExamNumber()+" 密号:"+student.getSecretNumber());
|
|
|
+ log.setDescription("科目代码:" + student.getSubjectCode() + " 准考证号:" + student.getExamNumber()
|
|
|
+ + " 密号:" + student.getSecretNumber());
|
|
|
logService.save(log);
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
@@ -732,8 +723,9 @@ public class InspectedController extends BaseExamController {
|
|
|
if (vo.getLeftCount() < 0) {
|
|
|
vo.setLeftCount(0);
|
|
|
}
|
|
|
- String percent = totalPaperCount > 0 ? (new DecimalFormat("####.###")
|
|
|
- .format(inspectedCount * 100.0 / totalPaperCount) + "%") : "0%";
|
|
|
+ String percent = totalPaperCount > 0
|
|
|
+ ? (new DecimalFormat("####.###").format(inspectedCount * 100.0 / totalPaperCount) + "%")
|
|
|
+ : "0%";
|
|
|
vo.setPercent(percent);
|
|
|
if (unFinishSet.contains(vo.getSubject().getCode())) {
|
|
|
vo.setFinishCount(vo.getSubject().getInspectRound() - 1);
|
|
@@ -758,11 +750,11 @@ public class InspectedController extends BaseExamController {
|
|
|
long total = studentService.countByQuery(sQuery);
|
|
|
model.addAttribute("unMarkedCount", total - markedCount);
|
|
|
model.addAttribute("markedCount", markedCount);
|
|
|
-// long subjectCount = subjectService.count(examId);
|
|
|
+ // long subjectCount = subjectService.count(examId);
|
|
|
Set<String> hasTask = studentService.findSubjectHasTaskByExamId(examId);
|
|
|
- long hasTaskCount=0;
|
|
|
- if(hasTask!=null) {
|
|
|
- hasTaskCount=hasTask.size();
|
|
|
+ long hasTaskCount = 0;
|
|
|
+ if (hasTask != null) {
|
|
|
+ hasTaskCount = hasTask.size();
|
|
|
}
|
|
|
model.addAttribute("unFinishCount", unFinishSet.size());
|
|
|
model.addAttribute("finishCount", hasTaskCount - unFinishSet.size());
|
|
@@ -775,11 +767,7 @@ public class InspectedController extends BaseExamController {
|
|
|
|
|
|
@RequestMapping(value = "list/export", method = RequestMethod.POST)
|
|
|
public String exportListFile(HttpServletRequest request, HttpServletResponse response,
|
|
|
- RedirectAttributes redirectAttributes, InspectQuery query,
|
|
|
- @RequestParam(required = false) SubjectiveStatus status,
|
|
|
- @RequestParam(required = false) SelectiveStatus selectiveStatus,
|
|
|
- @RequestParam(required = false) Integer mainNumber, @RequestParam(required = false) Double mainStartScore,
|
|
|
- @RequestParam(required = false) Double mainEndScore) {
|
|
|
+ RedirectAttributes redirectAttributes, InspectQuery query) {
|
|
|
int examId = getSessionExamId(request);
|
|
|
Exam exam = examService.findById(examId);
|
|
|
if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
|
|
@@ -794,8 +782,7 @@ public class InspectedController extends BaseExamController {
|
|
|
query.setSubjectCodeIn(StringUtils.join(subjectCodeIn, ","));
|
|
|
}
|
|
|
query.setExport(true);
|
|
|
- List<ExamStudentVo> list = inspectedService.findByQuery(query, status, mainNumber, mainStartScore,
|
|
|
- mainEndScore, selectiveStatus);
|
|
|
+ List<ExamStudentVo> list = inspectedService.findByQuery(query);
|
|
|
for (ExamStudentVo e : list) {
|
|
|
e.setSubjectiveScoreList(e.getSubjectiveScoreList().replace(UN_SELECTIVE_SCORE, "/"));
|
|
|
if (exam.isForbiddenInfo() && !Role.SCHOOL_ADMIN.equals(wu.getRole())) {
|