xiaof 3 жил өмнө
parent
commit
18c420df39

+ 1 - 1
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/TaskPublishSettingRepo.java

@@ -32,5 +32,5 @@ public interface TaskPublishSettingRepo extends JpaRepository<TaskPublishSetting
 
     List<TaskPublishSetting> findByWorkIdAndSubjectAndPublishCount(Long workId, String name, int max);
 
-    void deleteByWorkIdAndSubjectAndPublishCountNot(Long workId, String name, int publishCount);
+    void deleteByWorkIdAndSubject(Long workId, String name);
 }

+ 5 - 5
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/AssignTaskService.java

@@ -291,7 +291,7 @@ public class AssignTaskService {
             }
             markerGroupRepo.delete(markerGroups);
             //初始化打分任务数据
-            initTaskPublishData(markSubject);
+            initTaskPublishData(markSubject.getWorkId(), markSubject.getSubject().name());
 
         }
 
@@ -306,7 +306,7 @@ public class AssignTaskService {
         dbBackupUtils.startBackup(markSubject.getWorkId(), "分档");
     }
 
-    private void initTaskPublishData(MarkSubject markSubject) {
+    public void initTaskPublishData(Long workId, String suject) {
         StringBuffer sql = new StringBuffer();
         sql.append("  SELECT                                                                    ");
         sql.append("          p.work_id workId,                                                  ");
@@ -314,12 +314,12 @@ public class AssignTaskService {
         sql.append("          p.subject,                                                         ");
         sql.append("          p.level,                                                           ");
         sql.append("              COUNT(1) AS totalCount                                         ");
-//        sql.append("              SUM(IF(p.score IS NOT NULL, 1, 0)) successCount,               ");
-//        sql.append("              SUM(IF(p.score IS NULL, 1, 0)) waitCount                        ");
+//        sql.append("              SUM(IF(p.score IS NOT NULL, 1, 0)) successCount,             ");
+//        sql.append("              SUM(IF(p.score IS NULL, 1, 0)) waitCount                     ");
         sql.append("      FROM                                                                   ");
         sql.append("          paper p                                                            ");
         sql.append("      WHERE                                                                  ");
-        sql.append("          p.work_id = '" + markSubject.getWorkId() + "' AND p.subject = '" + markSubject.getSubject().name() + "'                                    ");
+        sql.append("          p.work_id = '" + workId + "' AND p.subject = '" + suject + "'      ");
         sql.append("              AND p.is_test = 0                                              ");
         sql.append("              AND p.level IS NOT NULL                                        ");
         sql.append("              AND p.is_missing = FALSE                                       ");

+ 8 - 2
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/MarkingService.java

@@ -78,6 +78,9 @@ public class MarkingService {
     @Autowired
     private CacheService cacheService;
 
+    @Autowired
+    AssignTaskService assignTaskService;
+
     /**
      * 提交分档。如果每个评卷都提交了,则进行仲裁判定,如果没有触发仲裁就定档
      *
@@ -401,10 +404,13 @@ public class MarkingService {
         markerGroupRepo.deleteBySubjectAndWorkId(subject, workId);
         if (MarkStage.SCORE.equals(stage)) {
             // 打分阶段
-            // 删除task_publish_setting数据
-            taskPublishSettingRepo.deleteByWorkIdAndSubjectAndPublishCountNot(workId, subject.name(), 0);
             // 清除paper中的分数
             paperRepo.updateScoreByWorkIdAndSubject(workId, subject.name());
+            //初始化打分任务数据
+            // 删除task_publish_setting数据
+            taskPublishSettingRepo.deleteByWorkIdAndSubject(workId, subject.name());
+            // 重新计算打分数量
+            assignTaskService.initTaskPublishData(workId, subject.name());
         } else if (MarkStage.LEVEL.equals(stage)) {
             // 分档阶段
             // 清除paper中的档位,各种状态