Forráskód Böngészése

Merge branch 'stmms_ft_dev' into test_20181225

luoshi 6 éve
szülő
commit
1e91d3d8b1

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

@@ -94,9 +94,9 @@ public interface MarkLibraryDao extends JpaRepository<MarkLibrary, Integer>, Jpa
     void updateByStudentIdAndGroupNumber(Integer studentId, Integer groupNumber, LibraryStatus status);
     void updateByStudentIdAndGroupNumber(Integer studentId, Integer groupNumber, LibraryStatus status);
 
 
     @Modifying(clearAutomatically = true)
     @Modifying(clearAutomatically = true)
-    @Query("update MarkLibrary l set l.markerId=?2, l.markerScore=?3, l.markerScoreList=?4, l.markerTime=?5, l.tags=?6, l.status=?7 "
-            + "where l.id=?1 and (l.status=?8 or (l.status=?7 and l.markerId=?2))")
-    int updateMarkerResult(Integer id, Integer markerId, Double markerScore, String markerScoreList, Date markerTime,
-            String tags, LibraryStatus markedStatus, LibraryStatus waitStatus);
+    @Query("update MarkLibrary l set l.status=?2, l.markerId=?3, l.markerScore=?4, l.markerScoreList=?5, l.markerTime=?6, l.tags=?7 "
+            + "where l.id=?1 and l.status in (?8) and (l.markerId=null or l.markerId=?3)")
+    int updateMarkerResult(Integer id, LibraryStatus newStatus, Integer markerId, Double markerScore,
+            String markerScoreList, Date markerTime, String tags, LibraryStatus... previousStatus);
 
 
 }
 }

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

@@ -329,9 +329,9 @@ public class MarkServiceImpl implements MarkService {
                 return;
                 return;
             }
             }
             // 尝试提交评卷结果
             // 尝试提交评卷结果
-            if (libraryDao.updateMarkerResult(library.getId(), library.getMarkerId(), library.getMarkerScore(),
-                    library.getMarkerScoreList(), now, library.getTags(), LibraryStatus.MARKED,
-                    LibraryStatus.WAITING) == 0) {
+            if (libraryDao.updateMarkerResult(library.getId(), LibraryStatus.MARKED, library.getMarkerId(),
+                    library.getMarkerScore(), library.getMarkerScoreList(), now, library.getTags(),
+                    LibraryStatus.WAITING, LibraryStatus.BACKED, LibraryStatus.MARKED) == 0) {
                 // 条件不符更新失败,直接返回
                 // 条件不符更新失败,直接返回
                 return;
                 return;
             }
             }

+ 4 - 4
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/LibraryController.java

@@ -63,10 +63,10 @@ public class LibraryController extends BaseExamController {
         }
         }
         subjectFilter(query, wu);
         subjectFilter(query, wu);
         List<MarkGroup> groupList = groupService.findByExamAndSubject(examId, query.getSubjectCode());
         List<MarkGroup> groupList = groupService.findByExamAndSubject(examId, query.getSubjectCode());
-        if (groupList.isEmpty()) {
-            return "redirect:/admin/exam/mark";
-        }
-        if (query.getGroupNumber() == 0) {
+//        if (groupList.isEmpty()) {
+//            return "redirect:/admin/exam/mark";
+//        }
+        if (query.getGroupNumber() == 0 && !groupList.isEmpty()) {
             query.setGroupNumber(groupList.get(0).getNumber());
             query.setGroupNumber(groupList.get(0).getNumber());
         }
         }
         if (status != null) {
         if (status != null) {

+ 4 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/mark/MarkController.java

@@ -343,10 +343,12 @@ public class MarkController extends BaseController {
         if (!library.getGroupNumber().equals(marker.getGroupNumber())) {
         if (!library.getGroupNumber().equals(marker.getGroupNumber())) {
             return false;
             return false;
         }
         }
-        if (library.getStatus() != LibraryStatus.WAITING && library.getStatus() != LibraryStatus.MARKED) {
+        if (library.getStatus() != LibraryStatus.WAITING && library.getStatus() != LibraryStatus.MARKED
+                && library.getStatus() != LibraryStatus.BACKED) {
             return false;
             return false;
         }
         }
-        if (library.getStatus() == LibraryStatus.WAITING && !markService.hasApplied(library, marker)) {
+        if ((library.getStatus() == LibraryStatus.WAITING || library.getStatus() == LibraryStatus.BACKED)
+                && !markService.hasApplied(library, marker)) {
             return false;
             return false;
         }
         }
         return true;
         return true;

+ 1 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/mark/markTrack.jsp

@@ -27,7 +27,7 @@
 <script type="text/javascript" src="${ctxStatic}/mark-track/js/modules/change-name.js"></script>
 <script type="text/javascript" src="${ctxStatic}/mark-track/js/modules/change-name.js"></script>
 <script type="text/javascript" src="${ctxStatic}/mark-track/js/modules/tag-process.js"></script>
 <script type="text/javascript" src="${ctxStatic}/mark-track/js/modules/tag-process.js"></script>
 <script type="text/javascript" src="${ctxStatic}/mark-track/js/modules/view-sidebar.js"></script>
 <script type="text/javascript" src="${ctxStatic}/mark-track/js/modules/view-sidebar.js"></script>
-<script type="text/javascript" src="${ctxStatic}/mark-track/js/modules/specialTag.js"></script>
+<script type="text/javascript" src="${ctxStatic}/mark-new/js/modules/specialTag.js"></script>
 </head>
 </head>
 <body>
 <body>
 	<div class="container-fluid" id="container"></div>
 	<div class="container-fluid" id="container"></div>

+ 2 - 0
stmms-web/src/main/webapp/static/mark-new/js/modules/specialTag.js

@@ -116,9 +116,11 @@ SpecialTag.prototype.init = function() {
 SpecialTag.prototype.toggle = function(show) {
 SpecialTag.prototype.toggle = function(show) {
     if (show == true) {
     if (show == true) {
         this.show = true;
         this.show = true;
+        this.markControl.trigger('special.tag.enable');
         this.container.show();
         this.container.show();
     } else {
     } else {
         this.show = false;
         this.show = false;
+        this.markControl.trigger('special.tag.disable')
         this.container.hide();
         this.container.hide();
     }
     }
 }
 }

+ 29 - 17
stmms-web/src/main/webapp/static/mark-track/js/modules/mark-board.js

@@ -25,8 +25,16 @@ function MarkBoard(option) {
 	this.markControl.on('task.load.finish', this, function(event, context, eventObject) {
 	this.markControl.on('task.load.finish', this, function(event, context, eventObject) {
 		this.initByTask(context.task);
 		this.initByTask(context.task);
 	});
 	});
-	this.markControl.on('mark.track.set', this, function(event, context, track) {
-		if(track != undefined && this.currentStep != undefined && this.currentStep.currentScore != undefined) {
+	this.markControl.on('special.tag.enable', this, function(event, context, eventObject) {
+		this.specialTag=true;
+	});
+	this.markControl.on('special.tag.disable', this, function(event, context, eventObject) {
+		this.specialTag=false;
+	});
+	this.markControl.on('image.click.event', this, function(event, context, track) {
+		if(track != undefined && this.currentStep != undefined 
+			&& this.currentStep.currentScore != undefined
+			&& this.specialTag!=true) {
 			track.score = this.currentStep.currentScore;
 			track.score = this.currentStep.currentScore;
 			track.questionNumber = this.currentStep.questionNumber;
 			track.questionNumber = this.currentStep.questionNumber;
 			track.number = this.currentStep.trackList.length + 1;
 			track.number = this.currentStep.trackList.length + 1;
@@ -34,9 +42,26 @@ function MarkBoard(option) {
 			this.resetScore();
 			this.resetScore();
 			this.updateStepScore();
 			this.updateStepScore();
 			this.trySetScore(track.score);
 			this.trySetScore(track.score);
-			this.markControl.trigger('mark.track.show', track);
+			this.markControl.trigger('mark.tag.show', {
+				content: track.score,
+				positionX: track.positionX,
+				positionY: track.positionY
+			});
 		}
 		}
 	});
 	});
+	//图片重新加载后,恢复显示所有标记
+    this.markControl.on('image.reload.event', this, function(event, context, eventObject) {
+		for(var i = 0; i < this.stepList.length; i++) {
+			var step = this.stepList[i];
+			for(var j = 0; j < step.trackList.length; j++) {
+				this.markControl.trigger('mark.tag.show', {
+					content: step.trackList[j].score,
+					positionX: step.trackList[j].positionX,
+					positionY: step.trackList[j].positionY
+				});
+			}
+		}
+    });
 	this.markControl.on('key.press', this, function(e, context, event) {
 	this.markControl.on('key.press', this, function(e, context, event) {
         var code = event.keyCode;
         var code = event.keyCode;
         //console.log('key press:' + code);
         //console.log('key press:' + code);
@@ -83,7 +108,6 @@ MarkBoard.prototype.init = function() {
 			self.currentStep.trackList.pop();
 			self.currentStep.trackList.pop();
 			self.updateStepScore();
 			self.updateStepScore();
 			self.refreshTrack();
 			self.refreshTrack();
-			//self.markControl.trigger('mark.track.clear');
 		}
 		}
 	});
 	});
 	this.stepBoard.find('.clear-current-track-button').click(this, function() {
 	this.stepBoard.find('.clear-current-track-button').click(this, function() {
@@ -92,7 +116,6 @@ MarkBoard.prototype.init = function() {
 			self.currentStep.trackList = [];
 			self.currentStep.trackList = [];
 			self.updateStepScore();
 			self.updateStepScore();
 			self.refreshTrack();
 			self.refreshTrack();
-			//self.markControl.trigger('mark.track.clear');
 		}
 		}
 	});
 	});
 	this.stepBoard.find('.clear-all-track-button').click(this, function() {
 	this.stepBoard.find('.clear-all-track-button').click(this, function() {
@@ -103,7 +126,6 @@ MarkBoard.prototype.init = function() {
 				self.updateStepScore(self.stepList[i]);
 				self.updateStepScore(self.stepList[i]);
 			}
 			}
 			self.refreshTrack();
 			self.refreshTrack();
-			//self.markControl.trigger('mark.track.clear');
 		}
 		}
 	});
 	});
     var dom5 = this.stepBoard.find(".sublist");
     var dom5 = this.stepBoard.find(".sublist");
@@ -228,10 +250,6 @@ MarkBoard.prototype.onStepSelect = function(stepNumber) {
 				self.onScoreClick($(this).attr('data-number'));
 				self.onScoreClick($(this).attr('data-number'));
 			});
 			});
 		}
 		}
-		//this.markControl.trigger('mark.track.clear');
-		//for(var i = 0; i < this.currentStep.trackList.length; i++) {
-		//	this.markControl.trigger('mark.track.show', this.currentStep.trackList[i]);
-		//}
 	}
 	}
 }
 }
 
 
@@ -312,13 +330,7 @@ MarkBoard.prototype.refreshTrack = function() {
 	if(this.stepList == undefined) {
 	if(this.stepList == undefined) {
 		return;
 		return;
 	}
 	}
-	this.markControl.trigger('mark.track.clear');
-	for(var i = 0; i < this.stepList.length; i++) {
-		var step = this.stepList[i];
-		for(var j = 0; j < step.trackList.length; j++) {
-			this.markControl.trigger('mark.track.show', step.trackList[j]);
-		}
-	}
+	this.markControl.trigger('mark.tag.clear');
 }
 }
 
 
 MarkBoard.prototype.updateStepScore = function(step) {
 MarkBoard.prototype.updateStepScore = function(step) {

+ 9 - 32
stmms-web/src/main/webapp/static/mark-track/js/modules/single-image-view.js

@@ -26,24 +26,14 @@ function SingleImageView(option) {
         this.image = undefined;
         this.image = undefined;
         this.render();
         this.render();
     });
     });
-    this.markControl.on('mark.track.show', this, function(event, context, track){
-        if(this.task != undefined && track != undefined){
-        	this.drawScore(track);
+    this.markControl.on('mark.tag.show', this, function(event, context, tag){
+        if(this.task != undefined && tag != undefined){
+        	this.drawTag(tag);
         }
         }
     });
     });
-    this.markControl.on('mark.specialTag.show', this, function(event, context, specialTag){
-        if(this.task != undefined && specialTag != undefined){
-        	this.drawTag(specialTag);
-        }
-    });
-    this.markControl.on('mark.track.clear', this, function(event, context, track){
-        this.reloadImage();
-        //显示特殊标记的历史痕迹
-        this.markControl.trigger('show.specialTag.event');
-    });
-    this.markControl.on('mark.specialTag.clear', this, function(event, context, track){
+    this.markControl.on('mark.tag.clear', this, function(event, context, track){
         this.reloadImage();
         this.reloadImage();
-        this.markControl.trigger('show.track.event');
+        this.markControl.trigger('image.reload.event');
     });
     });
 }
 }
 
 
@@ -61,12 +51,7 @@ SingleImageView.prototype.init = function() {
     
     
     $(this.canvas).click(function(event){
     $(this.canvas).click(function(event){
         if(self.task != undefined){
         if(self.task != undefined){
-        	self.markControl.trigger('mark.track.set', {
-        		positionX: ((event.pageX - $(self.canvas).offset().left)/$(self.canvas).width()).toFixed(3),
-                positionY: ((event.pageY - $(self.canvas).offset().top)/$(self.canvas).height()).toFixed(3)
-        	});
-
-        	self.markControl.trigger('mark.specialTag.set', {
+        	self.markControl.trigger('image.click.event', {
         		positionX: ((event.pageX - $(self.canvas).offset().left)/$(self.canvas).width()).toFixed(3),
         		positionX: ((event.pageX - $(self.canvas).offset().left)/$(self.canvas).width()).toFixed(3),
                 positionY: ((event.pageY - $(self.canvas).offset().top)/$(self.canvas).height()).toFixed(3)
                 positionY: ((event.pageY - $(self.canvas).offset().top)/$(self.canvas).height()).toFixed(3)
         	});
         	});
@@ -99,19 +84,11 @@ SingleImageView.prototype.reloadImage = function() {
     }
     }
 }
 }
 
 
-SingleImageView.prototype.drawScore = function(track){
-    if(track != undefined && track.positionX > 0 && track.positionY > 0){
-        this.ctx.font ="60px Arial";
-        this.ctx.fillStyle = 'red';
-        this.ctx.fillText(track.score, track.positionX*this.canvas.width, track.positionY*this.canvas.height);
-    }
-}
-
-SingleImageView.prototype.drawTag = function(specialTag){
-    if(specialTag != undefined && specialTag.positionX > 0 && specialTag.positionY > 0){
+SingleImageView.prototype.drawTag = function(tag){
+    if(tag != undefined && tag.positionX > 0 && tag.positionY > 0){
         this.ctx.font ="60px Arial";
         this.ctx.font ="60px Arial";
         this.ctx.fillStyle = 'red';
         this.ctx.fillStyle = 'red';
-        this.ctx.fillText(specialTag.tagName, specialTag.positionX*this.canvas.width, specialTag.positionY*this.canvas.height);
+        this.ctx.fillText(tag.content, tag.positionX*this.canvas.width, tag.positionY*this.canvas.height);
     }
     }
 }
 }
 
 

+ 0 - 0
stmms-web/src/main/webapp/static/mark-track/js/modules/specialTag.js → stmms-web/src/main/webapp/static/mark-track/js/modules/specialTag-bak.js