Ver Fonte

fixbugs

ting.yin há 4 anos atrás
pai
commit
c9147c7973

+ 31 - 30
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/InspectedController.java

@@ -70,9 +70,9 @@ public class InspectedController extends BaseExamController {
 
     @RequestMapping
     public String list(Model model, HttpServletRequest request, ExamStudentSearchQuery query,
-            @RequestParam(required = false) SubjectiveStatus status, @RequestParam(required = false) Integer mainNumber,
-            @RequestParam(required = false) Double mainStartScore, @RequestParam(required = false) Double mainEndScore,
-            @RequestParam(required = false) Double questionScore) {
+            @RequestParam(required = false) SubjectiveStatus status,
+            @RequestParam(required = false) Integer mainNumber, @RequestParam(required = false) Double mainStartScore,
+            @RequestParam(required = false) Double mainEndScore, @RequestParam(required = false) Double questionScore) {
         int examId = getSessionExamId(request);
         Exam exam = examService.findById(examId);
         if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
@@ -84,12 +84,12 @@ public class InspectedController extends BaseExamController {
         if (StringUtils.isBlank(query.getSubjectCode()) && !subjectList.isEmpty()) {
             query.setSubjectCode(subjectList.get(0).getCode());
         }
-        List<ExamStudent> list = inspectedService
-                .findByQuery(query, status, mainNumber, mainStartScore, mainEndScore, questionScore);
-        Integer totalCount = inspectedService
-                .countByQuery(query, null, mainNumber, mainStartScore, mainEndScore, questionScore);
-        Integer inspectCount = inspectedService
-                .countByQuery(query, SubjectiveStatus.MARKED, mainNumber, mainStartScore, mainEndScore, questionScore);
+        List<ExamStudent> list = inspectedService.findByQuery(query, status, mainNumber, mainStartScore, mainEndScore,
+                questionScore);
+        Integer totalCount = inspectedService.countByQuery(query, null, mainNumber, mainStartScore, mainEndScore,
+                questionScore);
+        Integer inspectCount = inspectedService.countByQuery(query, SubjectiveStatus.MARKED, mainNumber,
+                mainStartScore, mainEndScore, questionScore);
         query.setResult(list);
         query.setTotalCount(totalCount);
         model.addAttribute("query", query);
@@ -110,10 +110,10 @@ public class InspectedController extends BaseExamController {
     @Logging(menu = "开始考生复核", type = LogType.QUERY)
     @RequestMapping(value = "/getTask", method = RequestMethod.POST)
     @ResponseBody
-    public Task getTask(HttpServletRequest request, RedirectAttributes redirectAttributes, ExamStudentSearchQuery query,
-            @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) {
+    public Task getTask(HttpServletRequest request, RedirectAttributes redirectAttributes,
+            ExamStudentSearchQuery query, @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) {
         int examId = getSessionExamId(request);
         WebUser wu = RequestUtils.getWebUser(request);
         Task task = null;
@@ -135,9 +135,8 @@ public class InspectedController extends BaseExamController {
             if (StringUtils.isBlank(query.getSubjectCode()) && !subjectList.isEmpty()) {
                 query.setSubjectCode(subjectList.get(0).getCode());
             }
-            list = inspectedService
-                    .findByQuery(query, SubjectiveStatus.MARKED, mainNumber, mainStartScore, mainEndScore,
-                            questionScore);
+            list = inspectedService.findByQuery(query, SubjectiveStatus.MARKED, mainNumber, mainStartScore,
+                    mainEndScore, questionScore);
             if (list.isEmpty()) {
                 break;
             }
@@ -162,11 +161,11 @@ public class InspectedController extends BaseExamController {
         ExamStudent student = studentService.findById(studentId);
         JSONObject obj = new JSONObject();
         try {
-            if (lockService.trylock(LockType.STUDENT, student.getId()) && inspectedService
-                    .hasApplied(student, wu.getId()) && SubjectiveStatus.MARKED.equals(student.getSubjectiveStatus())) {
-                studentService
-                        .updateSubjectiveStatusAndTimeAndInspectorId(studentId, SubjectiveStatus.INSPECTED, new Date(),
-                                wu.getUser().getId());
+            if (lockService.trylock(LockType.STUDENT, student.getId())
+                    && inspectedService.hasApplied(student, wu.getId())
+                    && SubjectiveStatus.MARKED.equals(student.getSubjectiveStatus())) {
+                studentService.updateSubjectiveStatusAndTimeAndInspectorId(studentId, SubjectiveStatus.INSPECTED,
+                        new Date(), wu.getUser().getId());
                 inspectedService.releaseByStudent(student);
                 obj.accumulate("success", true);
             } else {
@@ -213,9 +212,8 @@ public class InspectedController extends BaseExamController {
             if (subjectCheck(student.getSubjectCode(), wu)) {
                 try {
                     if (lockService.trylock(LockType.STUDENT, student.getId())) {
-                        studentService
-                                .updateSubjectiveStatusAndTimeAndInspectorId(student.getId(), SubjectiveStatus.MARKED,
-                                        null, null);
+                        studentService.updateSubjectiveStatusAndTimeAndInspectorId(student.getId(),
+                                SubjectiveStatus.MARKED, null, null);
                         obj.accumulate("success", true);
                     } else {
                         obj.accumulate("success", false);
@@ -247,12 +245,15 @@ public class InspectedController extends BaseExamController {
         JSONObject obj = new JSONObject();
         ExamStudent student = studentService.findById(rejectResult.getStudentId());
         WebUser wu = RequestUtils.getWebUser(request);
-        if (student != null && (student.getSubjectiveStatus().equals(SubjectiveStatus.MARKED) || student
-                .getSubjectiveStatus().equals(SubjectiveStatus.INSPECTED))) {
+        if (student != null
+                && inspectedService.hasApplied(student, wu.getId())
+                && (student.getSubjectiveStatus().equals(SubjectiveStatus.MARKED) || student.getSubjectiveStatus()
+                        .equals(SubjectiveStatus.INSPECTED))) {
             if (subjectCheck(student.getSubjectCode(), wu) && lockService.trylock(LockType.STUDENT, student.getId())) {
                 try {
                     lockService.watch(LockType.EXAM_SUBJECT, student.getExamId(), student.getSubjectCode());
                     if (markService.rejectedStudent(student, rejectResult.getQuestionList(), wu.getId())) {
+                        inspectedService.releaseByStudent(student);
                         obj.accumulate("success", true);
                     } else {
                         obj.accumulate("success", false);
@@ -280,8 +281,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<>();
@@ -310,8 +311,8 @@ public class InspectedController extends BaseExamController {
         JSONObject status = new JSONObject();
         int examId = getSessionExamId(request);
         query.setExamId(examId);
-        Integer totalCount = inspectedService
-                .countByQuery(query, SubjectiveStatus.MARKED, mainNumber, mainStartScore, mainEndScore, questionScore);
+        Integer totalCount = inspectedService.countByQuery(query, SubjectiveStatus.MARKED, mainNumber, mainStartScore,
+                mainEndScore, questionScore);
         status.accumulate("totalCount", totalCount);
         status.accumulate("valid", true);
         return status;

+ 8 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/inspectedList.jsp

@@ -97,7 +97,14 @@
             ${result.inspector.loginName}
             	</c:if>
             </td>
-            <td>${result.inspectTime}</td>
+            <td>
+            	<c:if test="${result.inspectTime!=null}">
+                    <fmt:formatDate value="${result.inspectTime}" pattern="yyyy-MM-dd HH:mm:ss"/>
+                </c:if>
+                <c:if test="${result.inspectTime==null}">
+                    &nbsp;
+                </c:if>
+            </td>
             <td>
                 <c:if test="${result.subjectiveStatus=='MARKED'}">
 	                <a target="_blank" href="${ctx}/web/admin/exam/inspected/start?studentId=${result.id}">进入复核</a>