Browse Source

机构版-迭代

xiaof 4 năm trước cách đây
mục cha
commit
d7c4e627d9

+ 8 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/PaperRepo.java

@@ -390,5 +390,13 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
 
     long countByWorkIdAndQuestionIdAndIsMissingIsFalse(Long workId, Long questionId);
 
+    @Modifying
+    @Query("update Paper p set p.score = null, p.scoreBatchNo = null, p.shift = false, p.shiftScore = false where p.workId = ?1 and p.subject = ?2")
+    void updateScoreByWorkIdAndSubject(Long workId, Subject subject);
+
+    @Modifying
+    @Query("update Paper p set p.level = null, p.redoLevel = null, p.batchNo = null, p.arbitrated = false, p.manual = false, p.rejected = false, p.tagged = false, p.markByLeader = false, p.oneClick = false, p.relate = false where p.workId = ?1 and p.subject = ?2")
+    void updateLevelByWorkIdAndSubject(Long workId, Subject subject);
+
 //    List<Paper> findByWorkIdAndSubjectAndInspectRange(Long workId, Subject subject, Long inspectRange);
 }

+ 13 - 3
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/MarkingService.java

@@ -407,6 +407,7 @@ public class MarkingService {
 
     /**
      * 清空当前阶段数据
+     *
      * @param workId
      * @param subject
      * @param stage
@@ -415,13 +416,22 @@ public class MarkingService {
     public void subjectReset(Long workId, Subject subject, MarkStage stage) {
         // 删除mark_task阶段数据
         markTaskRepo.deleteByWorkIdAndSubjectAndStage(workId, subject, stage);
-        // 除mark_user分组
+        // 除mark_user分组
         markUserRepo.updateByWorkIdAndSubject(workId, subject);
         // 删除mark_group分组
         markerGroupRepo.deleteBySubjectAndWorkId(subject, workId);
-        // 打分阶段,删除task_publish_setting数据
-        if(MarkStage.SCORE.equals(stage)){
+        if (MarkStage.SCORE.equals(stage)) {
+            // 打分阶段
+            // 删除task_publish_setting数据
             taskPublishSettingRepo.deleteByWorkIdAndSubject(workId, subject);
+            // 清除paper中的分数
+            paperRepo.updateScoreByWorkIdAndSubject(workId, subject);
+        } else if (MarkStage.LEVEL.equals(stage)) {
+            // 分档阶段
+            // 清除paper中的档位,各种状态
+            paperRepo.updateLevelByWorkIdAndSubject(workId, subject);
+        } else {
+            throw new RuntimeException("当前阶段无法重置数据");
         }
     }
 }