Jelajahi Sumber

Merge remote-tracking branch 'origin/dev_v3.3.4' into dev_v3.3.4

wangliang 1 tahun lalu
induk
melakukan
eb1cc1d89e

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceImpl.java

@@ -553,7 +553,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
         QueryWrapper<TCFinalScore> tcFinalScoreQueryWrapper = new QueryWrapper<>();
         tcFinalScoreQueryWrapper.lambda().eq(TCFinalScore::getCultureProgramId, cultureProgramId)
                 .eq(TCFinalScore::getCourseId, courseId);
-        if (tcUsualScoreService.count(tcUsualScoreQueryWrapper) > 0){
+        if (tcFinalScoreService.count(tcFinalScoreQueryWrapper) > 0){
             throw ExceptionResultEnum.ERROR.exception("已导入期末成绩,无法删除");
         }
     }

+ 10 - 4
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkGroupServiceImpl.java

@@ -22,6 +22,7 @@ import com.qmth.teachcloud.mark.entity.MarkPaper;
 import com.qmth.teachcloud.mark.entity.MarkTask;
 import com.qmth.teachcloud.mark.entity.MarkUserGroup;
 import com.qmth.teachcloud.mark.enums.LockType;
+import com.qmth.teachcloud.mark.enums.MarkTaskStatus;
 import com.qmth.teachcloud.mark.enums.ScorePolicy;
 import com.qmth.teachcloud.mark.lock.LockService;
 import com.qmth.teachcloud.mark.mapper.MarkGroupMapper;
@@ -33,10 +34,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -121,6 +119,10 @@ public class MarkGroupServiceImpl extends MppServiceImpl<MarkGroupMapper, MarkGr
     @Transactional
     @Override
     public void deleteGroupByExamIdAndPaperNumberAndGroupNumber(Long examId, String paperNumber, Integer groupNumber) {
+        List<MarkTaskStatus> markTaskStatuses = Arrays.asList(MarkTaskStatus.MARKED, MarkTaskStatus.WAIT_ARBITRATE, MarkTaskStatus.PROBLEM, MarkTaskStatus.REJECTED, MarkTaskStatus.ARBITRATED);
+        if (markTaskService.countByExamIdAndPaperNumberAndGroupNumberAndStatusIn(examId, paperNumber, groupNumber, markTaskStatuses) > 0) {
+            throw ExceptionResultEnum.ERROR.exception("该分组已开始评卷,不允许删除");
+        }
         MarkGroup markGroup = this.getByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, groupNumber);
         if (lockService.trylock(LockType.GROUP_DELETE, examId, paperNumber, groupNumber)) {
             markSyncService.deleteMarkGroup(markGroup, true);
@@ -405,6 +407,10 @@ public class MarkGroupServiceImpl extends MppServiceImpl<MarkGroupMapper, MarkGr
 
         // 增加或减少分组内题目数量和题目变动、单双评切换、开启双评且双评比例值修改过。则删除任务
         if (isClear) {
+            List<MarkTaskStatus> markTaskStatuses = Arrays.asList(MarkTaskStatus.MARKED, MarkTaskStatus.WAIT_ARBITRATE, MarkTaskStatus.PROBLEM, MarkTaskStatus.REJECTED, MarkTaskStatus.ARBITRATED);
+            if (markTaskService.countByExamIdAndPaperNumberAndGroupNumberAndStatusIn(examId, paperNumber, markGroupDto.getGroupNumber(), markTaskStatuses) > 0) {
+                throw ExceptionResultEnum.ERROR.exception("该分组已开始评卷,不允许修改");
+            }
             this.updateMarkedCount(examId, paperNumber, markGroupDto.getGroupNumber(), 0);
             this.updateTaskCount(examId, paperNumber, markGroupDto.getGroupNumber(), 0);
             if (lockService.trylock(LockType.GROUP_DELETE, examId, paperNumber, markGroupDto.getGroupNumber())) {