|
@@ -20,7 +20,6 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
-import javax.naming.event.ObjectChangeListener;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -163,7 +162,7 @@ public class StageControlService {
|
|
|
}
|
|
|
|
|
|
if (markSubject.getTest() != 1) {
|
|
|
- if(ParamCache.paramMap.get(workId).getAllowTaskOverlay() == 0) {
|
|
|
+ if (ParamCache.paramMap.get(workId).getAllowTaskOverlay() == 0) {
|
|
|
//是否有未结束的分档任务
|
|
|
int count = paperRepo.countByWorkIdAndSubjectAndLevelIsNullAndIsMissingFalseAndActiveTrueAndBatchNoNotNullAndTest(workId, subject, 0);
|
|
|
if (count > 0) {
|
|
@@ -375,7 +374,7 @@ public class StageControlService {
|
|
|
this.isPtFull(workId, markSubject);
|
|
|
//打分随机发任务校验分组
|
|
|
List<MarkerGroup> markerGroups = null;
|
|
|
- if(ParamCache.paramMap.get(workId).getIsLevelToScore() == 0) {
|
|
|
+ if (ParamCache.paramMap.get(workId).getIsLevelToScore() == 0) {
|
|
|
markerGroups = markerGroupRepo.findByWorkIdAndSubject(workId, subject);
|
|
|
if (markerGroups.size() == 0) {
|
|
|
statusMap.put(markSubject.getId(), false);
|
|
@@ -405,8 +404,8 @@ public class StageControlService {
|
|
|
}
|
|
|
|
|
|
//总的发布任务数
|
|
|
- int totalTaskCount = taskList.stream().map(m->{
|
|
|
- if(Objects.isNull(m.getTaskCount())){
|
|
|
+ int totalTaskCount = taskList.stream().map(m -> {
|
|
|
+ if (Objects.isNull(m.getTaskCount())) {
|
|
|
m.setTaskCount(0);
|
|
|
}
|
|
|
return m;
|
|
@@ -418,7 +417,7 @@ public class StageControlService {
|
|
|
int totalCount = taskList.stream().mapToInt(TaskPublishSetting::getTotalCount).sum();
|
|
|
|
|
|
//谁分档谁打分时,必须一次发布所有任务
|
|
|
- if(ParamCache.paramMap.get(workId).getIsLevelToScore() == 1){
|
|
|
+ if (ParamCache.paramMap.get(workId).getIsLevelToScore() == 1) {
|
|
|
if (totalCount - totalTaskCount != 0) {
|
|
|
statusMap.put(markSubject.getId(), false);
|
|
|
throw new RuntimeException("谁分档谁打分时,要发布所有任务");
|
|
@@ -439,10 +438,10 @@ public class StageControlService {
|
|
|
// papers = paperRepo.findByWorkIdAndQuestionIdAndSubjectAndIsMissingFalseAndActiveTrueAndScoreBatchNoIsNull(workId, questionId0, subject, sort);
|
|
|
papers = new ArrayList<>();
|
|
|
for (TaskPublishSetting taskPublishSetting : taskList) {
|
|
|
- if(taskPublishSetting.getTaskCount() == 0){
|
|
|
+ if (taskPublishSetting.getTaskCount() == 0) {
|
|
|
continue;
|
|
|
}
|
|
|
- List<Paper> paperList = paperRepo.findByWorkIdAndQuestionIdAndSubjectAndLevelAndIsMissingFalseAndActiveTrueAndScoreBatchNoIsNull(workId, questionId0, subject, taskPublishSetting.getCode(), sort);
|
|
|
+ List<Paper> paperList = paperRepo.findByWorkIdAndQuestionIdAndSubjectAndLevelAndIsMissingFalseAndActiveTrueAndScoreBatchNoIsNull(workId, questionId0, subject, taskPublishSetting.getCode(), sort);
|
|
|
List<Paper> subPaperList = paperList.subList(0, taskPublishSetting.getTaskCount());
|
|
|
papers.addAll(subPaperList);
|
|
|
}
|
|
@@ -619,7 +618,7 @@ public class StageControlService {
|
|
|
else {
|
|
|
List<Object[]> settingList1 = taskPublishSettingRepo.findAllByWorkIdAndSubjectAndPublishCount(markSubject.getWorkId(), markSubject.getSubject().name(), maxCount);
|
|
|
List<TaskPublishSetting> taskPublishSettings = new ArrayList<>();
|
|
|
- settingList1.forEach(m->{
|
|
|
+ settingList1.forEach(m -> {
|
|
|
TaskPublishSetting taskPublishSetting = new TaskPublishSetting();
|
|
|
taskPublishSetting.setWorkId(Long.valueOf(m[0].toString()));
|
|
|
taskPublishSetting.setSubject(String.valueOf(m[1]));
|
|
@@ -648,19 +647,28 @@ public class StageControlService {
|
|
|
List<LevleProgressDTO> list = new ArrayList<>();
|
|
|
List<ExamQuestion> examQuestions = examQuestionRepo.findByWorkIdAndSubject(workId, markSubject.getSubject());
|
|
|
for (ExamQuestion examQuestion : examQuestions) {
|
|
|
- //已评任务数
|
|
|
- int areaSuccessCount = paperRepo.countByWorkIdAndSubjectAndLevelNotNullAndIsMissingFalseAndActiveTrueAndTestAndQuestionId(workId, subject, 0, examQuestion.getId());
|
|
|
//所有任务数(查询所有有效试卷)
|
|
|
int areaTotalCount = paperRepo.countByWorkIdAndSubjectAndIsMissingFalseAndTestAndQuestionId(workId, subject, 0, examQuestion.getId());
|
|
|
+ //已定档任务数
|
|
|
+ int areaSuccessCount = paperRepo.countByWorkIdAndSubjectAndLevelNotNullAndIsMissingFalseAndActiveTrueAndTestAndQuestionId(workId, subject, 0, examQuestion.getId());
|
|
|
|
|
|
- BigDecimal areaWaitTotal = BigDecimal.valueOf(areaTotalCount).subtract(BigDecimal.valueOf(areaSuccessCount));
|
|
|
+ // 待评数量
|
|
|
+ int areaWaitCount = paperRepo.countByWorkIdAndSubjectAndLevelNullAndIsMissingFalseAndActiveTrueAndTestAndQuestionId(workId, subject, 0, examQuestion.getId());
|
|
|
+
|
|
|
+ // 待发数量
|
|
|
+ int areaWaitPublishCount = paperRepo.countByWorkIdAndSubjectAndIsMissingFalseAndActiveFalseAndTestAndQuestionId(workId, subject, 0, examQuestion.getId());
|
|
|
+
|
|
|
+ if (areaSuccessCount + areaWaitCount + areaWaitPublishCount - areaTotalCount != 0) {
|
|
|
+ throw new RuntimeException("已定档数量+待评数量+待发数量≠总数量");
|
|
|
+ }
|
|
|
//进度
|
|
|
BigDecimal areaProgress = BigDecimal.ZERO.compareTo(BigDecimal.valueOf(areaTotalCount)) == 0 ? BigDecimal.ZERO : BigDecimal.valueOf(areaSuccessCount).multiply(BigDecimal.valueOf(100)).divide(BigDecimal.valueOf(areaTotalCount), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
LevleProgressDTO areaProgressDTO = new LevleProgressDTO();
|
|
|
areaProgressDTO.setSuccessCount(areaSuccessCount);
|
|
|
areaProgressDTO.setTotalCount(areaTotalCount);
|
|
|
- areaProgressDTO.setWaitCount(areaWaitTotal.intValue());
|
|
|
+ areaProgressDTO.setWaitCount(areaWaitCount);
|
|
|
+ areaProgressDTO.setWaitPublishCount(areaWaitPublishCount);
|
|
|
areaProgressDTO.setProgress(areaProgress.doubleValue());
|
|
|
areaProgressDTO.setAreaName(examQuestion.getAreaName());
|
|
|
areaProgressDTO.setQuestionId(examQuestion.getId());
|