|
@@ -17,6 +17,7 @@ import com.qmth.teachcloud.mark.dto.mark.setting.MarkUserClassDetailDto;
|
|
|
import com.qmth.teachcloud.mark.dto.mark.setting.MarkUserClassDto;
|
|
|
import com.qmth.teachcloud.mark.entity.MarkGroup;
|
|
|
import com.qmth.teachcloud.mark.entity.MarkUserClass;
|
|
|
+import com.qmth.teachcloud.mark.entity.MarkUserGroup;
|
|
|
import com.qmth.teachcloud.mark.mapper.MarkUserClassMapper;
|
|
|
import com.qmth.teachcloud.mark.service.*;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
@@ -66,26 +67,26 @@ public class MarkUserClassServiceImpl extends ServiceImpl<MarkUserClassMapper, M
|
|
|
List<MarkGroup> markGroupList = markGroupService.listGroupByExamIdAndPaperNumber(examId, paperNumber);
|
|
|
List<MarkGroupDto> markGroupDtoList = markGroupList.stream().map(m -> {
|
|
|
MarkGroupDto markGroupDto = new MarkGroupDto();
|
|
|
- markGroupDto.setGroupNumber(m.getNumber());
|
|
|
- markGroupDto.setMarkers(markUserGroupService.listGroupUserByExamIdAndPaperNumberAndGroupNumberAndClassName(examId, paperNumber, m.getNumber(), null));
|
|
|
- markGroupDto.setGroupQuestions(markQuestionService.assembleGroupQuestionsByExamIdAndPaperNumberAndNumber(examId, paperNumber, m.getNumber()));
|
|
|
+// markGroupDto.setGroupNumber(m.getNumber());
|
|
|
+// markGroupDto.setMarkers();
|
|
|
+// markGroupDto.setGroupQuestions(markQuestionService.assembleGroupQuestionsByExamIdAndPaperNumberAndNumber(examId, paperNumber, m.getNumber()));
|
|
|
return markGroupDto;
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
+ List<MarkUser> markUserList = markUserGroupService.listGroupUserByExamIdAndPaperNumberAndGroupNumberAndClassName(examId, paperNumber, null, null);
|
|
|
+
|
|
|
MarkUserClassDto markUserClassDto = new MarkUserClassDto();
|
|
|
markUserClassDto.setClassNames(paperNumberClassList);
|
|
|
|
|
|
List<MarkUserClassDetailDto> markUserClassDetailDtos = new ArrayList<>();
|
|
|
- for (MarkGroupDto markGroupDto : markGroupDtoList) {
|
|
|
- for (MarkUser marker : markGroupDto.getMarkers()) {
|
|
|
- MarkUserClassDetailDto markUserClassDetailDto = new MarkUserClassDetailDto();
|
|
|
- markUserClassDetailDto.setGroupNumber(markGroupDto.getGroupNumber());
|
|
|
- markUserClassDetailDto.setGroupQuestions(markGroupDto.getGroupQuestions());
|
|
|
- markUserClassDetailDto.setMarker(marker);
|
|
|
- List<MarkUserClass> markUserClasses = this.baseMapper.listMarkerClassByExamIdAndPaperNumberAndGroupNumberAndUserId(examId, paperNumber, markGroupDto.getGroupNumber(), marker.getUserId());
|
|
|
- markUserClassDetailDto.setMarkerClassList(markUserClasses.stream().map(MarkUserClass::getClassName).collect(Collectors.toList()));
|
|
|
- markUserClassDetailDtos.add(markUserClassDetailDto);
|
|
|
- }
|
|
|
+ for (MarkUser marker : markUserList) {
|
|
|
+ MarkUserClassDetailDto markUserClassDetailDto = new MarkUserClassDetailDto();
|
|
|
+// markUserClassDetailDto.setGroupNumber(markGroupDto.getGroupNumber());
|
|
|
+// markUserClassDetailDto.setGroupQuestions(markGroupDto.getGroupQuestions());
|
|
|
+ markUserClassDetailDto.setMarker(marker);
|
|
|
+ List<MarkUserClass> markUserClasses = this.baseMapper.listMarkerClassByExamIdAndPaperNumberAndUserId(examId, paperNumber, marker.getUserId());
|
|
|
+ markUserClassDetailDto.setMarkerClassList(markUserClasses.stream().map(MarkUserClass::getClassName).collect(Collectors.toList()));
|
|
|
+ markUserClassDetailDtos.add(markUserClassDetailDto);
|
|
|
}
|
|
|
markUserClassDto.setMarkerClass(markUserClassDetailDtos);
|
|
|
return markUserClassDto;
|
|
@@ -102,29 +103,23 @@ public class MarkUserClassServiceImpl extends ServiceImpl<MarkUserClassMapper, M
|
|
|
Long examId = markClassUserParams.getExamId();
|
|
|
String paperNumber = markClassUserParams.getPaperNumber();
|
|
|
|
|
|
- // 校验分组、班级是否绑定完成
|
|
|
+ // 校验班级是否绑定完成
|
|
|
List<String> listUserClass = markStudentService.listClassByExamIdAndCourseCode(examId, paperNumber);
|
|
|
if (CollectionUtils.isNotEmpty(listUserClass)) {
|
|
|
- Map<Integer, Set<String>> groupBindClassMap = new HashMap<>();
|
|
|
- for (MarkGroupClassUserParams groupUserClassInfo : markClassUserParams.getGroupMarkerClass()) {
|
|
|
- Integer groupNumber = groupUserClassInfo.getGroupNumber();
|
|
|
- if (!groupBindClassMap.containsKey(groupNumber)) {
|
|
|
- groupBindClassMap.put(groupNumber, new HashSet<>());
|
|
|
- }
|
|
|
- groupBindClassMap.get(groupNumber).addAll(groupUserClassInfo.getMarkerClassList());
|
|
|
- }
|
|
|
-
|
|
|
- if (!groupBindClassMap.isEmpty()) {
|
|
|
- StringJoiner stringJoiner = new StringJoiner(";");
|
|
|
- for (Map.Entry<Integer, Set<String>> entry : groupBindClassMap.entrySet()) {
|
|
|
- List<String> groupAllClass = listUserClass;
|
|
|
- groupAllClass.removeAll(entry.getValue());
|
|
|
- if (CollectionUtils.isNotEmpty(groupAllClass)) {
|
|
|
- stringJoiner.add(String.format("班级[%s]在分组[%s]中未被任何评卷员绑定", String.join(",", entry.getValue()), entry.getKey()));
|
|
|
+ List<MarkGroup> markGroupList = markGroupService.listGroupByExamIdAndPaperNumber(examId, paperNumber);
|
|
|
+ for (MarkGroup markGroup : markGroupList) {
|
|
|
+ markGroup.setQuestionList(markQuestionService.listQuestionByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, markGroup.getNumber(), false));
|
|
|
+ Set<String> groupBindClassSet = new HashSet<>();
|
|
|
+ List<MarkUserGroup> markUserGroupList = markUserGroupService.listByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, markGroup.getNumber());
|
|
|
+ for (MarkGroupClassUserParams groupUserClassInfo : markClassUserParams.getGroupMarkerClass()) {
|
|
|
+ if (markUserGroupList.stream().filter(m -> m.getUserId().equals(groupUserClassInfo.getMarker().getUserId())).count() > 0) {
|
|
|
+ groupBindClassSet.addAll(groupUserClassInfo.getMarkerClassList());
|
|
|
}
|
|
|
}
|
|
|
- if (stringJoiner.toString().length() > 0) {
|
|
|
- throw ExceptionResultEnum.ERROR.exception(stringJoiner.toString());
|
|
|
+
|
|
|
+ Collection<String> subtractList = CollectionUtils.subtract(listUserClass, groupBindClassSet);
|
|
|
+ if (CollectionUtils.isNotEmpty(subtractList)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception(String.format("班级[%s]在评阅题目[%s]中未被任何评卷员绑定", String.join(",", subtractList), markGroup.getGroupQuestions()));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -136,7 +131,6 @@ public class MarkUserClassServiceImpl extends ServiceImpl<MarkUserClassMapper, M
|
|
|
markUserClass.setId(SystemConstant.getDbUuid());
|
|
|
markUserClass.setExamId(examId);
|
|
|
markUserClass.setPaperNumber(paperNumber);
|
|
|
- markUserClass.setGroupNumber(groupUserClassInfo.getGroupNumber());
|
|
|
markUserClass.setClassName(className);
|
|
|
markUserClass.setUserId(groupUserClassInfo.getMarker().getUserId());
|
|
|
markUserClasses.add(markUserClass);
|