ting.yin 2 éve
szülő
commit
babd6c7286

+ 1 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/AnswerCheckController.java

@@ -109,7 +109,7 @@ public class AnswerCheckController extends BaseExamController {
             if (absent != null) {
                 student.setAbsent(absent);
             }
-            student.setAnswers(answers.toUpperCase());
+            student.setAnswers(answers == null ? null : answers.toUpperCase());
             if (paperType.matches(PAPER_TYPES_REGEX)) {
                 student.setPaperType(paperType);
             }

+ 5 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/MarkGroupController.java

@@ -617,9 +617,12 @@ public class MarkGroupController extends BaseExamController {
                     if (trialCount != null && trialCount > 0) {
                         subjectService.updateTrialCount(examId, subjectCode, trialCount);
                     }
-                    ExamSubject subject = subjectService.find(examId, subjectCode);
+                    if (this.groupService.countByExamAndSubjectAndStatus(examId, subjectCode, MarkStatus.TRIAL) > 0) {
+                        ExamSubject subject = subjectService.find(examId, subjectCode);
+                        trialCount = subject.getTrialCount();
+                    }
                     group = new MarkGroup(examId, subjectCode, number, picConfigList, totalScore.doubleValue(),
-                            doubleRate, arbitrateThreshold, scorePolicy, markMode, subject.getTrialCount(), sheetView,
+                            doubleRate, arbitrateThreshold, scorePolicy, markMode, trialCount, sheetView,
                             enableAllZero, thirdPolicy, selective);
                     // clear and replace exam_question
                     questionService.save(list);

+ 1 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/CardController.java

@@ -109,7 +109,7 @@ public class CardController extends BaseApiController {
             card.setParameter(parameter);
             card.setRemark(remark);
             card.setSinglePage(singlePage);
-            card.setSource(CardSource.valueOf(source));
+            card.setSource(CardSource.CLIENT);
             card.setSubjectCode(subjectCode);
             card.setUpdateTime(new Date());
             answerCardService.save(card);

+ 61 - 12
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/ScanController.java

@@ -1,5 +1,23 @@
 package cn.com.qmth.stmms.api.controller;
 
+import java.util.Date;
+
+import javax.servlet.http.HttpServletRequest;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
 import cn.com.qmth.stmms.api.exception.ApiException;
 import cn.com.qmth.stmms.api.utils.ScanStudentParameter;
 import cn.com.qmth.stmms.biz.exam.model.CheckStudent;
@@ -8,22 +26,17 @@ import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
 import cn.com.qmth.stmms.biz.exam.service.CheckStudentService;
 import cn.com.qmth.stmms.biz.exam.service.ExamService;
 import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
+import cn.com.qmth.stmms.biz.file.service.FileService;
 import cn.com.qmth.stmms.common.annotation.Logging;
 import cn.com.qmth.stmms.common.annotation.RoleRequire;
 import cn.com.qmth.stmms.common.domain.ApiUser;
-import cn.com.qmth.stmms.common.enums.*;
+import cn.com.qmth.stmms.common.enums.CheckType;
+import cn.com.qmth.stmms.common.enums.ExamStatus;
+import cn.com.qmth.stmms.common.enums.ExamType;
+import cn.com.qmth.stmms.common.enums.LogType;
+import cn.com.qmth.stmms.common.enums.Role;
 import cn.com.qmth.stmms.common.utils.DateUtils;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletRequest;
 
 @Controller
 @RequestMapping("/api/scan")
@@ -40,6 +53,9 @@ public class ScanController extends BaseApiController {
     @Autowired
     private CheckStudentService checkStudentService;
 
+    @Autowired
+    private FileService fileService;
+
     private static final String PAPER_TYPES_REGEX = "[a-zA-Z#]";
 
     /**
@@ -51,7 +67,7 @@ public class ScanController extends BaseApiController {
      * @return
      */
     @Logging(menu = "扫描端-考生识别上传", type = LogType.UPDATE)
-    @RoleRequire({ Role.SCHOOL_ADMIN, Role.SCANNER })
+    @RoleRequire({ Role.SCHOOL_ADMIN, Role.SCANNER, Role.SCAN_ADMIN })
     @RequestMapping(value = "/student/{examId}", method = RequestMethod.POST)
     @ResponseBody
     public JSONArray saveStudent(HttpServletRequest request, @PathVariable Integer examId,
@@ -100,4 +116,37 @@ public class ScanController extends BaseApiController {
         return array;
     }
 
+    @Logging(menu = "扫描端-考生识别上传取消", type = LogType.UPDATE)
+    @RoleRequire({ Role.SCHOOL_ADMIN, Role.SCANNER, Role.SCAN_ADMIN })
+    @RequestMapping(value = "/student/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public JSONObject deleteStudent(HttpServletRequest request, @RequestParam Integer examId,
+            @RequestParam String examNumber) {
+        ApiUser user = RequestUtils.getApiUser(request);
+        Exam exam = examService.findById(examId);
+        // 判断上传权限
+        if (exam == null || !exam.getSchoolId().equals(user.getSchoolId())
+                || !ExamStatus.START.equals(exam.getStatus()) || !ExamType.SCAN_IMAGE.equals(exam.getType())) {
+            throw ApiException.EXAM_NOT_ACCESSIBLED;
+        }
+        examNumber = validate("examNumber", examNumber, true, 32);
+        ExamStudent student = studentService.findByExamIdAndExamNumber(examId, examNumber);
+        if (student == null) {
+            throw ApiException.QUERY_PARAM_ERROR.replaceMessage("examNumber invalid");
+        }
+        student.setUpload(false);
+        student.setAbsent(false);
+        student.setAnswers(null);
+        student.setBatchCode(null);
+        student.setSliceCount(0);
+        student.setSheetCount(0);
+        student.setPaperType(null);
+        student.setCardNumber(null);
+        student.setUploadTime(new Date());
+        JSONObject obj = new JSONObject();
+        if (saveUploadStudent(student)) {
+            obj.accumulate("updateTime", DateUtils.formatDateTime(student.getUploadTime()));
+        }
+        return obj;
+    }
 }

+ 5 - 2
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/libraryList.jsp

@@ -118,7 +118,7 @@
             <option value="给分较高" <c:if test="${query.rejectReason=='给分较高'}">selected</c:if>>给分较高</option>
             <option value="给分较低" <c:if test="${query.rejectReason=='给分较低'}">selected</c:if>>给分较低</option>
             <option value="判分错误" <c:if test="${query.rejectReason=='判分错误'}">selected</c:if>>判分错误</option>
-            <option value="其他" <c:if test="${query.rejectReason=='其他'}">selected</c:if>>其他</option>
+            <option value="其它" <c:if test="${query.rejectReason=='其它'}">selected</c:if>>其它</option>
         </select>
         </span>
         <label>评卷员</label>
@@ -249,7 +249,7 @@
 	    		<input name="rejectReasonSelect" type="radio"  value="给分较高"/>给分较高<br/>
             	<input name="rejectReasonSelect" type="radio"  value="给分较低"/>给分较低<br/>
             	<input name="rejectReasonSelect" type="radio"  value="判分错误"/>判分错误<br/>
-            	<input name="rejectReasonSelect" type="radio"  value="其他"/>其他<br/>
+            	<input name="rejectReasonSelect" type="radio"  value="其它"/>其它<br/>
 	    		<textarea id="rejectReasonInput" rows="3" maxlength="60" class="input-large"></textarea>
 	    <i class="wrong">
 	    </i></div>
@@ -361,6 +361,9 @@
         var rejectReason =$("input[name='rejectReasonSelect']:checked").val();
         var rejectReasonInput = $('#rejectReasonInput').val();
         var rejectId=$("#rejectId").val();
+        if(rejectReason==""||rejectReason==undefined){
+        	alert("请选择打回原因");
+        }
         if(rejectReasonInput!="" ||rejectReasonInput!=null){
         	rejectReason =rejectReason+":"+rejectReasonInput;
         }