Browse Source

修复重置评卷员,特殊标记和轨迹清除除开待仲裁和已仲裁;

ting.yin 6 years ago
parent
commit
deeb3a4a4c

+ 3 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/dao/MarkSpecialTagDao.java

@@ -8,6 +8,7 @@ import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.PagingAndSortingRepository;
 
 import cn.com.qmth.stmms.biz.mark.model.MarkSpecialTag;
+import cn.com.qmth.stmms.common.enums.LibraryStatus;
 
 public interface MarkSpecialTagDao
         extends PagingAndSortingRepository<MarkSpecialTag, Integer>, JpaSpecificationExecutor<MarkSpecialTag> {
@@ -24,8 +25,8 @@ public interface MarkSpecialTagDao
     public List<MarkSpecialTag> findByLibraryIdOrderByIdAsc(Integer libraryId);
 
     @Modifying
-    @Query("delete from MarkSpecialTag s where s.libraryId in (select m.id from MarkLibrary m where m.markerId=?1)")
-    public void deleteByMarkerId(Integer markerId);
+    @Query("delete from MarkSpecialTag s where s.libraryId in (select m.id from MarkLibrary m where m.markerId=?1  and m.status!=?2 and m.status!=?3 ) ")
+    public void deleteByMarkerId(Integer markerId, LibraryStatus arbitrated, LibraryStatus waitArbitrate);
 
     @Modifying
     @Query("delete from MarkSpecialTag s where s.libraryId in (select m.id from MarkLibrary m where m.examId=?1 and m.subjectCode=?2 and m.groupNumber=?3)")

+ 3 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/dao/MarkTrackDao.java

@@ -9,6 +9,7 @@ import org.springframework.data.jpa.repository.Query;
 
 import cn.com.qmth.stmms.biz.mark.model.MarkTrack;
 import cn.com.qmth.stmms.biz.mark.model.MarkTrackPK;
+import cn.com.qmth.stmms.common.enums.LibraryStatus;
 
 public interface MarkTrackDao extends JpaRepository<MarkTrack, MarkTrackPK>, JpaSpecificationExecutor<MarkTrack> {
 
@@ -25,8 +26,8 @@ public interface MarkTrackDao extends JpaRepository<MarkTrack, MarkTrackPK>, Jpa
     void deleteByStudentId(Integer studentId);
 
     @Modifying
-    @Query("delete from MarkTrack t where t.markerId=?1")
-    void deleteByMarkerId(Integer markerId);
+    @Query("delete from MarkTrack t where t.pk.libraryId in (select m.id from MarkLibrary m where m.markerId=?1  and m.status!=?2 and m.status!=?3 )")
+    void deleteByMarkerId(Integer markerId, LibraryStatus arbitrated, LibraryStatus waitArbitrate);
 
     @Modifying
     @Query("delete from MarkTrack t where t.examId=?1 and t.subjectCode=?2 and t.groupNumber=?3")

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

@@ -251,9 +251,9 @@ public class MarkServiceImpl implements MarkService {
             lockService.waitUnlockGroup(marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber());
             lockService.lockMarker(marker.getId());
             //仲裁和等待仲裁的任务不被重置
+            trackDao.deleteByMarkerId(marker.getId(),LibraryStatus.ARBITRATED,LibraryStatus.WAIT_ARBITRATE);
+            specialTagDao.deleteByMarkerId(marker.getId(),LibraryStatus.ARBITRATED,LibraryStatus.WAIT_ARBITRATE);
             libraryDao.resetByMarkerId(marker.getId(), LibraryStatus.WAITING,LibraryStatus.ARBITRATED,LibraryStatus.WAIT_ARBITRATE);
-            trackDao.deleteByMarkerId(marker.getId());
-            specialTagDao.deleteByMarkerId(marker.getId());
             updateLibraryCount(marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber());
             releaseByMarker(marker);
         } catch (Exception e) {

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

@@ -4,6 +4,7 @@ import cn.com.qmth.stmms.biz.common.BaseQueryService;
 import cn.com.qmth.stmms.biz.mark.dao.MarkSpecialTagDao;
 import cn.com.qmth.stmms.biz.mark.model.MarkSpecialTag;
 import cn.com.qmth.stmms.biz.mark.service.MarkSpecialTagService;
+import cn.com.qmth.stmms.common.enums.LibraryStatus;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -32,7 +33,7 @@ public class MarkSpecialTagServiceImpl extends BaseQueryService<MarkSpecialTag>
     }
 	@Override
 	public void deleteByMarkerId(Integer markerId) {
-		markSpecialTagDao.deleteByMarkerId(markerId);
+		markSpecialTagDao.deleteByMarkerId(markerId,LibraryStatus.ARBITRATED,LibraryStatus.WAIT_ARBITRATE);
 	}
 	@Override
 	public void deleteByExamAndSubjectAndGroup(Integer examId,

+ 14 - 6
stmms-web/src/main/webapp/static/mark-track/js/mark-control.js

@@ -498,12 +498,20 @@ MarkControl.prototype.submitTask = function(submitUrl) {
     if (task != undefined && this.context.submitting != true) {
     	
 //开启强制标记
-//        if(this.option.forceSpecialTag===true){
-//        	if(task.tagList==undefined ||task.tagList==null ||task.tagList.length <= 0){
-//        		markControl.trigger('task.submit.forceSpecialTag');
-//        		return;
-//        	}
-//        }
+        if(this.option.forceSpecialTag===true){
+        	var isTag = !(task.tagList==undefined ||task.tagList==null ||task.tagList.length <= 0);
+        	var isTrack = false;
+        	for(var i in task.trackList) {
+        		var track = task.trackList[i];
+        		if(track.positionX!=0 || track.positionY!=0 ){
+        			isTrack = true;
+        		}
+        	}
+        	if(!(isTag||isTrack)){
+        		markControl.trigger('task.submit.forceSpecialTag');
+        		return;
+        	}
+        }
         
         var submitObj = $.extend(true, {}, task);
         submitObj.markStepList = undefined;

+ 1 - 1
stmms-web/src/main/webapp/static/mark-track/js/modules/warning-info.js

@@ -46,7 +46,7 @@ function WarningInfo(option) {
         this.toggle(true, '网络异常,任务提交失败', '关闭');
     });
     this.markControl.on('task.submit.forceSpecialTag', this, function(event, context, eventObject) {
-        this.toggle(true, '强制特殊标记已开启,至少使用一个特殊标记', '关闭');
+        this.toggle(true, '强制标记已开启,至少使用一个标记', '关闭');
     });
 }