Browse Source

MarkLibrary增加spent字段及保存逻辑

luoshi 6 năm trước cách đây
mục cha
commit
ebad613118

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

@@ -4,12 +4,9 @@ import java.util.Date;
 import java.util.List;
 import java.util.List;
 import java.util.Set;
 import java.util.Set;
 
 
-import javax.persistence.LockModeType;
-
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
-import org.springframework.data.jpa.repository.Lock;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.jpa.repository.Query;
 
 
@@ -18,10 +15,6 @@ import cn.com.qmth.stmms.common.enums.LibraryStatus;
 
 
 public interface MarkLibraryDao extends JpaRepository<MarkLibrary, Integer>, JpaSpecificationExecutor<MarkLibrary> {
 public interface MarkLibraryDao extends JpaRepository<MarkLibrary, Integer>, JpaSpecificationExecutor<MarkLibrary> {
 
 
-    @Lock(LockModeType.PESSIMISTIC_WRITE)
-    @Query("select l from MarkLibrary l where l.id=?1")
-    MarkLibrary findByIdForLock(Integer id);
-
     List<MarkLibrary> findByExamIdAndSubjectCode(Integer examId, String subjectCode, Pageable page);
     List<MarkLibrary> findByExamIdAndSubjectCode(Integer examId, String subjectCode, Pageable page);
 
 
     List<MarkLibrary> findByExamIdAndSubjectCodeAndGroupNumberAndStatus(Integer examId, String subjectCode,
     List<MarkLibrary> findByExamIdAndSubjectCodeAndGroupNumberAndStatus(Integer examId, String subjectCode,
@@ -66,17 +59,20 @@ public interface MarkLibraryDao extends JpaRepository<MarkLibrary, Integer>, Jpa
     List<String> findTagSubjectCode(Integer examId);
     List<String> findTagSubjectCode(Integer examId);
 
 
     @Modifying(clearAutomatically = true)
     @Modifying(clearAutomatically = true)
-    @Query("update MarkLibrary m set m.status=?4, m.tags=null, m.markerId=null, m.markerTime=null, m.markerScore=null, m.markerScoreList=null , m.headerId=null , m.headerTime=null , m.headerScore=null , m.headerScoreList=null where m.examId=?1 and m.subjectCode=?2 and m.groupNumber=?3")
+    @Query("update MarkLibrary m set m.status=?4, m.tags=null, m.markerId=null, m.markerTime=null, m.markerScore=null, m.markerScoreList=null, m.markerSpent=null, "
+            + "m.headerId=null , m.headerTime=null , m.headerScore=null , m.headerScoreList=null where m.examId=?1 and m.subjectCode=?2 and m.groupNumber=?3")
     void resetByExamIdAndSubjectCodeAndGroupNumber(Integer examId, String subjectCode, Integer groupNumber,
     void resetByExamIdAndSubjectCodeAndGroupNumber(Integer examId, String subjectCode, Integer groupNumber,
             LibraryStatus status);
             LibraryStatus status);
 
 
     @Modifying(clearAutomatically = true)
     @Modifying(clearAutomatically = true)
-    @Query("update MarkLibrary m set m.status=?2, m.tags=null, m.markerId=null, m.markerTime=null, m.markerScore=null, m.markerScoreList=null, m.headerId=null , m.headerTime=null , m.headerScore=null , m.headerScoreList=null  where m.markerId=?1 and m.status!=?3 and m.status!=?4 ")
+    @Query("update MarkLibrary m set m.status=?2, m.tags=null, m.markerId=null, m.markerTime=null, m.markerScore=null, m.markerScoreList=null, m.markerSpent=null, "
+            + "m.headerId=null , m.headerTime=null , m.headerScore=null , m.headerScoreList=null  where m.markerId=?1 and m.status!=?3 and m.status!=?4 ")
     void resetByMarkerId(Integer markerId, LibraryStatus status, LibraryStatus libraryStatus1,
     void resetByMarkerId(Integer markerId, LibraryStatus status, LibraryStatus libraryStatus1,
             LibraryStatus libraryStatus2);
             LibraryStatus libraryStatus2);
 
 
     @Modifying(clearAutomatically = true)
     @Modifying(clearAutomatically = true)
-    @Query("update MarkLibrary m set m.status=?2, m.tags=null, m.markerId=null, m.markerTime=null, m.markerScore=null, m.markerScoreList=null , m.headerId=null , m.headerTime=null , m.headerScore=null , m.headerScoreList=null where m.id=?1 and m.status=?3")
+    @Query("update MarkLibrary m set m.status=?2, m.tags=null, m.markerId=null, m.markerTime=null, m.markerScore=null, m.markerScoreList=null, m.markerSpent=null, "
+            + "m.headerId=null , m.headerTime=null , m.headerScore=null , m.headerScoreList=null where m.id=?1 and m.status=?3")
     int resetById(Integer id, LibraryStatus newStatus, LibraryStatus previousStatus);
     int resetById(Integer id, LibraryStatus newStatus, LibraryStatus previousStatus);
 
 
     @Query("select f.markerId, count(*) as markerCount from MarkLibrary f where f.examId=?1 and f.status=?2 group by f.markerId")
     @Query("select f.markerId, count(*) as markerCount from MarkLibrary f where f.examId=?1 and f.status=?2 group by f.markerId")
@@ -110,9 +106,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.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)")
+    @Query("update MarkLibrary l set l.status=?2, l.markerId=?3, l.markerScore=?4, l.markerScoreList=?5, l.markerTime=?6, "
+            + "l.markerSpent=?7, l.tags=?8 where l.id=?1 and l.status in (?9) and (l.markerId=null or l.markerId=?3)")
     int updateMarkerResult(Integer id, LibraryStatus newStatus, Integer markerId, Double markerScore,
     int updateMarkerResult(Integer id, LibraryStatus newStatus, Integer markerId, Double markerScore,
-            String markerScoreList, Date markerTime, String tags, LibraryStatus... previousStatus);
+            String markerScoreList, Date markerTime, Integer spent, String tags, LibraryStatus... previousStatus);
 
 
 }
 }

+ 14 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/model/MarkLibrary.java

@@ -96,6 +96,12 @@ public class MarkLibrary implements Serializable {
     @Column(name = "marker_score_list")
     @Column(name = "marker_score_list")
     private String markerScoreList;
     private String markerScoreList;
 
 
+    /**
+     * 评卷时长
+     */
+    @Column(name = "marker_spent")
+    private Integer markerSpent;
+
     /**
     /**
      * 试卷标记信息
      * 试卷标记信息
      */
      */
@@ -311,4 +317,12 @@ public class MarkLibrary implements Serializable {
         this.taskNumber = taskNumber;
         this.taskNumber = taskNumber;
     }
     }
 
 
+    public Integer getMarkerSpent() {
+        return markerSpent;
+    }
+
+    public void setMarkerSpent(Integer markerSpent) {
+        this.markerSpent = markerSpent;
+    }
+
 }
 }

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

@@ -530,7 +530,8 @@ public class MarkServiceImpl implements MarkService {
         // 尝试提交评卷结果
         // 尝试提交评卷结果
         Date now = new Date();
         Date now = new Date();
         if (libraryDao.updateMarkerResult(library.getId(), LibraryStatus.MARKED, marker.getId(), result.getTotalScore(),
         if (libraryDao.updateMarkerResult(library.getId(), LibraryStatus.MARKED, marker.getId(), result.getTotalScore(),
-                result.getScoreList(), now, null, LibraryStatus.WAITING, LibraryStatus.MARKED) == 0) {
+                result.getScoreList(), now, result.getSpent(), null, LibraryStatus.WAITING,
+                LibraryStatus.MARKED) == 0) {
             // 条件不符更新失败,直接返回
             // 条件不符更新失败,直接返回
             return false;
             return false;
         }
         }