|
@@ -22,6 +22,7 @@ import com.qmth.teachcloud.mark.entity.MarkPaper;
|
|
import com.qmth.teachcloud.mark.entity.MarkTask;
|
|
import com.qmth.teachcloud.mark.entity.MarkTask;
|
|
import com.qmth.teachcloud.mark.entity.MarkUserGroup;
|
|
import com.qmth.teachcloud.mark.entity.MarkUserGroup;
|
|
import com.qmth.teachcloud.mark.enums.LockType;
|
|
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.enums.ScorePolicy;
|
|
import com.qmth.teachcloud.mark.lock.LockService;
|
|
import com.qmth.teachcloud.mark.lock.LockService;
|
|
import com.qmth.teachcloud.mark.mapper.MarkGroupMapper;
|
|
import com.qmth.teachcloud.mark.mapper.MarkGroupMapper;
|
|
@@ -33,10 +34,7 @@ import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
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;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -121,6 +119,10 @@ public class MarkGroupServiceImpl extends MppServiceImpl<MarkGroupMapper, MarkGr
|
|
@Transactional
|
|
@Transactional
|
|
@Override
|
|
@Override
|
|
public void deleteGroupByExamIdAndPaperNumberAndGroupNumber(Long examId, String paperNumber, Integer groupNumber) {
|
|
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);
|
|
MarkGroup markGroup = this.getByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, groupNumber);
|
|
if (lockService.trylock(LockType.GROUP_DELETE, examId, paperNumber, groupNumber)) {
|
|
if (lockService.trylock(LockType.GROUP_DELETE, examId, paperNumber, groupNumber)) {
|
|
markSyncService.deleteMarkGroup(markGroup, true);
|
|
markSyncService.deleteMarkGroup(markGroup, true);
|
|
@@ -405,6 +407,10 @@ public class MarkGroupServiceImpl extends MppServiceImpl<MarkGroupMapper, MarkGr
|
|
|
|
|
|
// 增加或减少分组内题目数量和题目变动、单双评切换、开启双评且双评比例值修改过。则删除任务
|
|
// 增加或减少分组内题目数量和题目变动、单双评切换、开启双评且双评比例值修改过。则删除任务
|
|
if (isClear) {
|
|
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.updateMarkedCount(examId, paperNumber, markGroupDto.getGroupNumber(), 0);
|
|
this.updateTaskCount(examId, paperNumber, markGroupDto.getGroupNumber(), 0);
|
|
this.updateTaskCount(examId, paperNumber, markGroupDto.getGroupNumber(), 0);
|
|
if (lockService.trylock(LockType.GROUP_DELETE, examId, paperNumber, markGroupDto.getGroupNumber())) {
|
|
if (lockService.trylock(LockType.GROUP_DELETE, examId, paperNumber, markGroupDto.getGroupNumber())) {
|