Procházet zdrojové kódy

papertype在导入和上传时统一转大写;修复评卷员统计、仲裁处理

ting.yin před 6 roky
rodič
revize
125ddc5265

+ 11 - 6
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/MarkServiceImpl.java

@@ -659,7 +659,10 @@ public class MarkServiceImpl implements MarkService {
         double totalScore = 0.0;
         // 循环所有大题
         for (MarkGroup group : groups) {
-            if (!group.getStatus().equals(MarkStatus.TRIAL)||calculateGroup(group, studentId)) {
+        	if(group.getStatus().equals(MarkStatus.TRIAL)){
+        		return ;
+        	}
+            if (calculateGroup(group, studentId)) {
                 totalScore += group.getMarkScore();
                 scoreList.addAll(group.getMarkScoreDetail());
             } else {
@@ -946,11 +949,13 @@ public class MarkServiceImpl implements MarkService {
 
             sumScore += score;
             sumSpent += spent;
-            avgScore = sumScore / finishCount;
-            avgSpent = sumSpent / finishCount;
-            // 递归法计算标准差
-            tempScore = tempScore + 1.0 * (finishCount - 1) / finishCount * (score - avgScore) * (score - avgScore);
-            stdevScore = Math.sqrt(tempScore / (finishCount - 1));
+            if(finishCount>0){
+            	avgScore = sumScore / finishCount;
+            	avgSpent = sumSpent / finishCount;
+            	// 递归法计算标准差
+            	tempScore = tempScore + 1.0 * (finishCount - 1) / finishCount * (score - avgScore) * (score - avgScore);
+            	stdevScore = Math.sqrt(tempScore / (finishCount - 1));
+            }
         }
         markerDao.updateQualityById(marker.getId(), finishCount, validCount, avgSpent / 1000, avgScore, stdevScore);
     }

+ 1 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/admin/dto/ObjectiveQuestionDTO.java

@@ -50,7 +50,7 @@ public class ObjectiveQuestionDTO implements QuestionDTO {
     public ExamQuestion transform() {
         ExamQuestion question = new ExamQuestion();
         question.setSubjectCode(StringUtils.trimToNull(subjectCode));
-        question.setPaperType(StringUtils.trimToNull(paperType));
+        question.setPaperType(StringUtils.trimToNull(paperType).toUpperCase());
         question.setMainNumber(mainNumber);
         question.setSubNumber(subNumber);
         question.setObjective(true);

+ 14 - 7
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/MarkQualityController.java

@@ -27,6 +27,7 @@ import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
 import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
 import cn.com.qmth.stmms.biz.exam.service.MarkerService;
 import cn.com.qmth.stmms.biz.lock.LockService;
+import cn.com.qmth.stmms.biz.mark.query.MarkLibrarySearchQuery;
 import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
 import cn.com.qmth.stmms.biz.mark.thread.MarkQualityThread;
 import cn.com.qmth.stmms.common.domain.WebUser;
@@ -58,7 +59,7 @@ public class MarkQualityController extends BaseExamController {
 
     @Autowired
     private MarkLibraryService libraryService;
-
+    
     @RequestMapping
     public String list(Model model, HttpServletRequest request, MarkerSearchQuery query) {
         int examId = getSessionExamId(request);
@@ -123,9 +124,9 @@ public class MarkQualityController extends BaseExamController {
         if (group != null) {
             List<MarkerVO> list = new ArrayList<MarkerVO>();
             List<Marker> markers = markerService.findByExamAndSubjectAndGroup(examId, subjectCode, groupNumber);
+            List<Double> scores = libraryService.findScore(examId, subjectCode, groupNumber, LibraryStatus.MARKED);
             for (Marker marker : markers) {
-                List<Object[]> libraries = libraryService.findScoreCount(examId, subjectCode, groupNumber,
-                        marker.getId(), LibraryStatus.MARKED);
+                List<Object[]> libraries = libraryService.findScoreCount(examId, subjectCode, groupNumber,marker.getId(), LibraryStatus.MARKED);
                 Map<Double, Long> scoreCount = new HashMap<Double, Long>();
                 for (Object[] array : libraries) {
                     Double score = (Double) array[0];
@@ -138,7 +139,7 @@ public class MarkQualityController extends BaseExamController {
                 vo.setScoreCount(scoreCount);
                 list.add(vo);
             }
-            model.addAttribute("scores", libraryService.findScore(examId, subjectCode, groupNumber, LibraryStatus.MARKED));
+            model.addAttribute("scores", scores);
             model.addAttribute("markers", list);
             model.addAttribute("group", group);
         }
@@ -157,13 +158,19 @@ public class MarkQualityController extends BaseExamController {
         List<Marker> markers = markerService.findByExamAndSubjectAndGroup(examId, subjectCode, groupNumber);
         for (Marker marker : markers) {
             List<Object[]> libraries = libraryService.findScoreCount(examId, subjectCode, groupNumber, marker.getId(),
-                    LibraryStatus.MARKED);
-            long totalCount = libraryService.countByMarker(marker.getId());
+            			LibraryStatus.MARKED);
+            MarkLibrarySearchQuery query = new MarkLibrarySearchQuery();
+            query.setMarkerId(marker.getId());
+            query.addStatus(LibraryStatus.MARKED);
+            long totalCount = libraryService.countByQuery(query);
             Map<Double, Double> scorePercent = new HashMap<Double, Double>();
             for (Object[] array : libraries) {
                 Double score = (Double) array[0];
                 Long count = (Long) array[1];
-                double percent = count * 100 / totalCount;
+                double percent = 0;
+                if(marker.getValidCount()!=0){
+                	percent = count * 100 / totalCount;
+                }
                 scorePercent.put(score, percent);
             }
             MarkerVO vo = new MarkerVO();

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

@@ -352,7 +352,9 @@ public class MarkerController extends BaseExamController {
             log.error("Batch import marker error!", e);
             addMessage(redirectAttributes, "导入评卷员失败!失败信息:" + e.getMessage());
         }
-        return "redirect:" + "/admin/exam/marker";
+        WebUser wu = RequestUtils.getWebUser(request);
+        List<ExamSubject> list = getExamSubject(examId, wu);
+        return "redirect:" + "/admin/exam/marker?subjectCode="+list.get(0).getCode();
     }
 
     @RequestMapping(value = "/importUpdate", method = RequestMethod.POST)

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

@@ -70,7 +70,7 @@ public class ScanController extends BaseApiController {
                     student.setBatchCode(sc.getBatchCode());
                     student.setSliceCount(sc.getSliceCount());
                     student.setSheetCount(sc.getSheetCount());
-                    student.setPaperType(sc.getPaperType());
+                    student.setPaperType(sc.getPaperType().toUpperCase());
                     // 同步更新评卷任务
                     if (saveUploadStudent(student)) {
                         JSONObject obj = new JSONObject();

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

@@ -51,7 +51,7 @@
             <input type="text" name="examNumber" value="${query.examNumber}" maxlength="20" class="input-medium"/>
 			&nbsp;
 			<label>考生编号</label>
-            <input type="text" name="studentId" value="${query.studentId}" maxlength="10" class="input-medium"onkeyup="this.value=this.value.replace(/\D/g,'')"/>
+            <input type="text" name="studentId" id="studentId" value="${query.studentId}" maxlength="10" class="input-medium"onkeyup="this.value=this.value.replace(/\D/g,'')"/>
             &nbsp;
 			<input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>
 		</div>
@@ -195,8 +195,8 @@ function page(n,s){
 }
 function goSearch(){
     $("#pageNumber").val(1);
-    var studentId = parseInt($(".studentId")); 
-    if(isNaN(studentId)){
+    var studentId = parseInt($("#studentId").val());
+    if( $("#studentId").val()!="" && studentId>2147483647 ){
     	alert("考生编号不合法");
     }else{
 	    $("#searchForm").submit();

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

@@ -32,7 +32,7 @@
             </select>
 			&nbsp;
 			<input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>
-			<c:if test="${web_user.schoolAdmin==true && running!=null}">
+			<c:if test="${running!=null}">
             &nbsp;
             <c:if test="${running==true}">
             <a href="##" class="btn disabled">正在计算</a>

+ 3 - 3
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/trialList.jsp

@@ -35,7 +35,7 @@
             <label>准考证号</label>
             <input type="text" name="examNumber" value="${query.examNumber}" maxlength="20" class="input-small"/>
 			<label>考生编号</label>
-            <input type="text" name="studentId" value="${query.studentId}" maxlength="10" class="input-small" onkeyup="this.value=this.value.replace(/\D/g,'')"/>
+            <input type="text" name="studentId" id="studentId" value="${query.studentId}" maxlength="10" class="input-small" onkeyup="this.value=this.value.replace(/\D/g,'')"/>
             &nbsp;
 			<input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>
 		</div>
@@ -121,8 +121,8 @@ function page(n,s){
 }
 function goSearch(){
     $("#pageNumber").val(1);
-    var studentId = parseInt($(".studentId")); 
-    if(isNaN(studentId)){
+    var studentId = parseInt($("#studentId").val()); 
+    if( $("#studentId").val()!="" && studentId>2147483647 ){
     	alert("考生编号不合法");
     }else{
 	    $("#searchForm").submit();