ソースを参照

修复打回任务无法正常评卷提交的bug

luoshi 6 年 前
コミット
b1a0ccf9c7

+ 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);
 
     @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;
             }
             // 尝试提交评卷结果
-            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;
             }

+ 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())) {
             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;
         }
-        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 true;