|
@@ -32,7 +32,10 @@ import com.qmth.teachcloud.mark.dto.mark.manage.*;
|
|
|
import com.qmth.teachcloud.mark.dto.mark.setting.MarkGroupTaskDto;
|
|
|
import com.qmth.teachcloud.mark.dto.mark.setting.MarkQuestionDto;
|
|
|
import com.qmth.teachcloud.mark.dto.mark.setting.MarkQuestionSubjectiveStepStatusDto;
|
|
|
-import com.qmth.teachcloud.mark.entity.*;
|
|
|
+import com.qmth.teachcloud.mark.entity.MarkPaper;
|
|
|
+import com.qmth.teachcloud.mark.entity.MarkQuestionAnswer;
|
|
|
+import com.qmth.teachcloud.mark.entity.MarkTask;
|
|
|
+import com.qmth.teachcloud.mark.entity.MarkUserQuestion;
|
|
|
import com.qmth.teachcloud.mark.enums.LockType;
|
|
|
import com.qmth.teachcloud.mark.enums.MarkTaskStatus;
|
|
|
import com.qmth.teachcloud.mark.lock.LockService;
|
|
@@ -668,37 +671,23 @@ public class MarkQuestionServiceImpl extends ServiceImpl<MarkQuestionMapper, Mar
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public IPage<MarkGroupClassProgressDto> summaryGroupClassProgress(Long examId, String paperNumber, String className, Integer pageNumber, Integer pageSize) {
|
|
|
+ public IPage<MarkClassProgressDto> summaryGroupClassProgress(Long examId, String paperNumber, String className, Integer pageNumber, Integer pageSize) {
|
|
|
MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, paperNumber);
|
|
|
if (markPaper.getClassMark()) {
|
|
|
- Page<MarkGroupClassProgressDto> page = new Page<>(pageNumber, pageSize);
|
|
|
- IPage<MarkGroupClassProgressDto> markGroupClassProgressDtoIPage = markUserClassService.pageClassByExamIdAndPaperNumber(page, examId, paperNumber, className);
|
|
|
- for (MarkGroupClassProgressDto markGroupClassProgressDto : markGroupClassProgressDtoIPage.getRecords()) {
|
|
|
- Long questionId = markGroupClassProgressDto.getQuestionId();
|
|
|
+ Page<MarkClassProgressDto> page = new Page<>(pageNumber, pageSize);
|
|
|
+ IPage<MarkClassProgressDto> markGroupClassProgressDtoIPage = markUserClassService.pageClassByExamIdAndPaperNumber(page, examId, paperNumber, className);
|
|
|
+ for (MarkClassProgressDto markGroupClassProgressDto : markGroupClassProgressDtoIPage.getRecords()) {
|
|
|
List<MarkTask> totalMarkTaskList = new ArrayList<>();
|
|
|
List<MarkUser> totalMarkUserList = new ArrayList<>();
|
|
|
- totalMarkTaskList.addAll(markTaskService.listByExamIdAndPaperNumberAndQuestionIdAndUserIdAndClassName(examId, paperNumber, questionId, null, markGroupClassProgressDto.getClassName()));
|
|
|
- totalMarkUserList.addAll(markUserQuestionService.listGroupUserByExamIdAndPaperNumberAndQuestionIdAndClassName(examId, paperNumber, questionId, markGroupClassProgressDto.getClassName()));
|
|
|
-
|
|
|
- MarkQuestion markQuestion = this.getById(questionId);
|
|
|
- List<MarkUser> markUserList = markUserClassService.listClassMarkerByExamIdAndPaperNumberAndQuestionIdAndClassName(examId, paperNumber, questionId, markGroupClassProgressDto.getClassName());
|
|
|
- int count = 0;
|
|
|
- for (MarkUser markUser : markUserList) {
|
|
|
- MarkUserQuestion markUserQuestion = markUserQuestionService.getByExamIdAndPaperNumberAndQuestionIdAndUserId(examId, paperNumber, questionId, markUser.getUserId());
|
|
|
- if (markUserQuestion != null) {
|
|
|
- int markerCount = markService.applyCurrentCount(markQuestion, markUserQuestion.getUserId());
|
|
|
- count += markerCount;
|
|
|
- }
|
|
|
- }
|
|
|
+ totalMarkTaskList.addAll(markTaskService.listByExamIdAndPaperNumberAndQuestionIdAndUserIdAndClassName(examId, paperNumber, null, null, markGroupClassProgressDto.getClassName()));
|
|
|
+ totalMarkUserList.addAll(markUserQuestionService.listGroupUserByExamIdAndPaperNumberAndQuestionIdAndClassName(examId, paperNumber, null, markGroupClassProgressDto.getClassName()));
|
|
|
|
|
|
// 待仲裁数量
|
|
|
- int arbitrateCount = markArbitrateHistoryService.waitArbitrateCount(examId, paperNumber, questionId, Arrays.asList(markGroupClassProgressDto.getClassName()));
|
|
|
- markGroupClassProgressDto.setQuestionNumber(markQuestion.getQuestionNumber());
|
|
|
+ int arbitrateCount = markArbitrateHistoryService.waitArbitrateCount(examId, paperNumber, null, Arrays.asList(markGroupClassProgressDto.getClassName()));
|
|
|
markGroupClassProgressDto.setMarkerCount(totalMarkUserList.size());
|
|
|
markGroupClassProgressDto.setTaskCount(totalMarkTaskList.size());
|
|
|
markGroupClassProgressDto.setMarkedCount(markTaskService.markedCount(totalMarkTaskList));
|
|
|
markGroupClassProgressDto.setLeftCount(markGroupClassProgressDto.getTaskCount() - markGroupClassProgressDto.getMarkedCount());
|
|
|
- markGroupClassProgressDto.setCurrentCount(count);
|
|
|
markGroupClassProgressDto.setPercent(Calculator.divide2String(Calculator.multiply(markGroupClassProgressDto.getMarkedCount(), 100), Double.valueOf(markGroupClassProgressDto.getTaskCount()), 2));
|
|
|
markGroupClassProgressDto.setArbitrateCount(arbitrateCount);
|
|
|
}
|
|
@@ -707,6 +696,32 @@ public class MarkQuestionServiceImpl extends ServiceImpl<MarkQuestionMapper, Mar
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<MarkClassDetailDto> detailGroupClassProgress(Long examId, String paperNumber, String className) {
|
|
|
+ MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, paperNumber);
|
|
|
+ List<MarkQuestion> markQuestionList = this.listByExamIdAndPaperNumberAndObjective(examId, paperNumber, false);
|
|
|
+ List<MarkClassDetailDto> markClassDetailDtoList = new ArrayList<>();
|
|
|
+ for (MarkQuestion markQuestion : markQuestionList) {
|
|
|
+ MarkClassDetailDto markClassDetailDto = new MarkClassDetailDto();
|
|
|
+ Long questionId = markQuestion.getId();
|
|
|
+ List<MarkTask> totalMarkTaskList = new ArrayList<>();
|
|
|
+ List<MarkUser> totalMarkUserList = new ArrayList<>();
|
|
|
+ totalMarkTaskList.addAll(markTaskService.listByExamIdAndPaperNumberAndQuestionIdAndUserIdAndClassName(examId, paperNumber, questionId, null, className));
|
|
|
+ totalMarkUserList.addAll(markUserQuestionService.listGroupUserByExamIdAndPaperNumberAndQuestionIdAndClassName(examId, paperNumber, questionId, className));
|
|
|
+
|
|
|
+ // 待仲裁数量
|
|
|
+ int arbitrateCount = markArbitrateHistoryService.waitArbitrateCount(examId, paperNumber, questionId, Arrays.asList(className));
|
|
|
+ markClassDetailDto.setQuestionNumber(markQuestion.getQuestionNumber());
|
|
|
+ markClassDetailDto.setTaskCount(totalMarkTaskList.size());
|
|
|
+ markClassDetailDto.setMarkedCount(markTaskService.markedCount(totalMarkTaskList));
|
|
|
+ List<MarkUser> markUserList = markUserClassService.listClassMarkerByExamIdAndPaperNumberAndQuestionIdAndClassName(examId, paperNumber, questionId, className);
|
|
|
+ String markerUser = markUserList.stream().map(m -> m.getName().concat("(".concat(m.getLoginName().concat(")")))).collect(Collectors.joining(";"));
|
|
|
+ markClassDetailDto.setMarkerUser(markerUser);
|
|
|
+ markClassDetailDtoList.add(markClassDetailDto);
|
|
|
+ }
|
|
|
+ return markClassDetailDtoList;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public List<MarkGroupQuestionsDto> listGroupQuestions(Long examId, String paperNumber) {
|
|
|
List<MarkQuestion> markQuestionList = this.listByExamIdAndPaperNumberAndObjective(examId, paperNumber, false);
|