Преглед изворни кода

修复考生编号验证;导入考生更新科目信息;给分曲线仅显示有分数的;处理仲裁bug;

ting.yin пре 6 година
родитељ
комит
1afd82f7e0

+ 3 - 3
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamStudentServiceImpl.java

@@ -154,9 +154,9 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
                 subject.setHasPaper(false);
                 subject.setRemark(es.getRemark());
             } else {
-                es.setName(subject.getName());
-                es.setLevel(subject.getLevel());
-                es.setCategory(subject.getCategory());
+            	subject.setLevel(es.getLevel());
+            	subject.setCategory(es.getCategory());
+            	subject.setRemark(es.getRemark());
             }
             subjectService.save(subject);
         }

+ 5 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/dao/MarkLibraryDao.java

@@ -116,5 +116,10 @@ public interface MarkLibraryDao extends JpaRepository<MarkLibrary, Integer>, Jpa
     @Query("select m.markerScore ,count(*) from MarkLibrary m where m.examId=?1 and m.subjectCode=?2 and m.groupNumber=?3 and m.markerId=?4 and m.status=?5 group by m.markerScore ")
 	List<Object[]> findScoreCount(int examId, String subjectCode,
 			Integer groupNumber, Integer markerId, LibraryStatus status);
+	
+    @Query("select m.markerScore from MarkLibrary m where m.examId=?1 and m.subjectCode=?2 and m.groupNumber=?3 and m.status=?4 group by m.markerScore ")
+	List<Double> findScore(int examId, String subjectCode,
+			Integer groupNumber, LibraryStatus status);
+
 
 }

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

@@ -155,5 +155,11 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
 			Integer groupNumber, Integer id, LibraryStatus status) {
 		return libraryDao.findScoreCount(examId, subjectCode, groupNumber, id, status);
 	}
+	
+	@Override
+	public List<Double> findScore(int examId, String subjectCode,
+			Integer groupNumber, LibraryStatus status) {
+		return libraryDao.findScore(examId, subjectCode, groupNumber, status);
+	}
 
 }

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

@@ -659,7 +659,7 @@ public class MarkServiceImpl implements MarkService {
         double totalScore = 0.0;
         // 循环所有大题
         for (MarkGroup group : groups) {
-            if (calculateGroup(group, studentId)) {
+            if (!group.getStatus().equals(MarkStatus.TRIAL)||calculateGroup(group, studentId)) {
                 totalScore += group.getMarkScore();
                 scoreList.addAll(group.getMarkScoreDetail());
             } else {
@@ -673,11 +673,14 @@ public class MarkServiceImpl implements MarkService {
 
     private boolean calculateGroup(MarkGroup group, Integer studentId) {
         double score = 0;
-        List<ScoreItem> detail = null;
+        List<ScoreItem> detail = new ArrayList<ScoreItem>();
         int count = 0;
         // 未设置算分策略的情况下,默认取平均分
         ScorePolicy policy = group.getScorePolicy() != null ? group.getScorePolicy() : ScorePolicy.AVG;
         List<MarkLibrary> list = libraryDao.findByStudentIdAndGroupNumber(studentId, group.getNumber());
+        if(list.isEmpty()){
+        	return false;
+        }
         for (MarkLibrary library : list) {
             if (library.getStatus() != LibraryStatus.MARKED && library.getStatus() != LibraryStatus.ARBITRATED) {
                 // 有非完成状态的评卷任务,直接返回

+ 1 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/MarkLibraryService.java

@@ -33,4 +33,5 @@ public interface MarkLibraryService {
 
 	List<Object[]> findScoreCount(int examId, String subjectCode,Integer groupNumber, Integer id,LibraryStatus status);
 
+	List<Double> findScore(int examId, String subjectCode,Integer groupNumber,LibraryStatus status);
 }

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

@@ -123,8 +123,6 @@ public class MarkQualityController extends BaseExamController {
         if (group != null) {
             List<MarkerVO> list = new ArrayList<MarkerVO>();
             List<Marker> markers = markerService.findByExamAndSubjectAndGroup(examId, subjectCode, groupNumber);
-            Double minScore = null;
-            Double maxScore = null;
             for (Marker marker : markers) {
                 List<Object[]> libraries = libraryService.findScoreCount(examId, subjectCode, groupNumber,
                         marker.getId(), LibraryStatus.MARKED);
@@ -133,17 +131,6 @@ public class MarkQualityController extends BaseExamController {
                     Double score = (Double) array[0];
                     Long count = (Long) array[1];
                     scoreCount.put(score, count);
-                    if (minScore == null || maxScore == null) {
-                        minScore = score;
-                        maxScore = score;
-                    } else {
-                        if (minScore > score) {
-                            minScore = score;
-                        }
-                        if (maxScore < score) {
-                            maxScore = score;
-                        }
-                    }
                 }
                 MarkerVO vo = new MarkerVO();
                 vo.setLoginName(marker.getLoginName());
@@ -151,8 +138,7 @@ public class MarkQualityController extends BaseExamController {
                 vo.setScoreCount(scoreCount);
                 list.add(vo);
             }
-            model.addAttribute("minScore", minScore);
-            model.addAttribute("maxScore", maxScore);
+            model.addAttribute("scores", libraryService.findScore(examId, subjectCode, groupNumber, LibraryStatus.MARKED));
             model.addAttribute("markers", list);
             model.addAttribute("group", group);
         }

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

@@ -345,7 +345,7 @@ public class StudentController extends BaseExamController {
 		previous.setRemark(student.getRemark());
 		previous.setSubjectLevel(student.getSubjectLevel());
 		previous.setSubjectCategory(student.getSubjectCategory());
-		previous.setSubjectRemark(student.getSubjectCategory());
+		previous.setSubjectRemark(student.getSubjectRemark());
 		return previous;
 	}
 

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

@@ -63,6 +63,7 @@
 				<th>科目代码</th>
 				<th>大题号</th>
 				<th>准考证号</th>
+				<th>考生编号</th>
 				<th>状态</th>
 				<th>评卷员</th>
 				<th>评卷总分</th>
@@ -77,6 +78,7 @@
 				<td>${result.subjectCode}</td>
 				<td>${result.groupNumber}</td>
 				<td>${result.examNumber}</td>
+				<td>${result.studentId}</td>
 				<td>${result.status.name}</td>
                 <td>
                     <c:if test="${result.marker!=null}">
@@ -193,7 +195,12 @@ function page(n,s){
 }
 function goSearch(){
     $("#pageNumber").val(1);
-    $("#searchForm").submit();
+    var studentId = parseInt($(".studentId")); 
+    if(isNaN(studentId)){
+    	alert("考生编号不合法");
+    }else{
+	    $("#searchForm").submit();
+    }
     return false;
 }
 </script>	

+ 13 - 14
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/qualityChart.jsp

@@ -20,8 +20,8 @@
 			<tr>
 				<th>评卷员</th>
 				<th>姓名</th>
-				<c:forEach var="i" begin="${minScore}" end="${maxScore}">
-					<th><c:out value="${i}"/>分</th>
+				<c:forEach items="${scores}" var="score">	
+					<th><c:out value="${score}"/>分</th>
 				</c:forEach>
 			</tr>
 		</thead>
@@ -30,10 +30,10 @@
 			<tr>
 				<td>${marker.loginName}</td>
 				<td>${marker.name}</td>
-				<c:forEach var="i" begin="${minScore}" end="${maxScore}">
+				<c:forEach items="${scores}" var="score">
 					<td>
-					<c:if test="${marker.scoreCount[i*1.0]!=null}">${marker.scoreCount[i*1.0] }</c:if>
-					<c:if test="${marker.scoreCount[i*1.0]==null }">0</c:if>
+					<c:if test="${marker.scoreCount[score]!=null}">${marker.scoreCount[score] }</c:if>
+					<c:if test="${marker.scoreCount[score]==null }">0</c:if>
 					</td>
 				</c:forEach>
 			</tr>
@@ -45,19 +45,18 @@ var groupNumber='${groupNumber}';
 var subjectCode='${subjectCode}';
 var markerArray= [] ;
 var nameList = [];
-var maxScore = ${maxScore};
-var minScore = ${minScore};
-var scoreArray = new Array();
-for(var i=minScore;i<= maxScore;i++){
-	scoreArray.push(i);
-}
+var scores = ${scores};
+/* var scoreArray = new Array();
+for(var i=0;scores< scores.length;i++){
+	scoreArray.push(scores[i]);
+} */
 $.post('${ctx}/admin/exam/quality/getChart', {subjectCode: subjectCode,groupNumber:groupNumber}, function(result){
 	for(var i=0;i<result.length;i++){
         var marker = result[i];
         var scorePercents= [];
 		
-		for(var j=minScore;j<= maxScore;j++){
-        	var key=j+".0";
+		for(var j=0;j<= scores.length;j++){
+        	var key=scores[j]+".0";
 			var percent = marker.scorePercent[key];
         	if(percent==undefined){
         		scorePercents.push(0);
@@ -91,7 +90,7 @@ $.post('${ctx}/admin/exam/quality/getChart', {subjectCode: subjectCode,groupNumb
 		            type : 'category',
 		            boundaryGap : false,
 		            name :'分值',
-		            data : scoreArray
+		            data : scores
 		        }
 		    ],
 		    yAxis : [

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

@@ -121,7 +121,12 @@ function page(n,s){
 }
 function goSearch(){
     $("#pageNumber").val(1);
-    $("#searchForm").submit();
+    var studentId = parseInt($(".studentId")); 
+    if(isNaN(studentId)){
+    	alert("考生编号不合法");
+    }else{
+	    $("#searchForm").submit();
+    }
     return false;
 }
 </script>