|
@@ -141,7 +141,7 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
|
|
|
@Override
|
|
|
public void exportLogic(BasicExamStudentPageQuery query) {
|
|
|
Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.BASIC_EXAM_STUDENT_EXPORT, null, (SysUser) ServletUtil.getRequestUser());
|
|
|
- map.put("query",query);
|
|
|
+ map.put("query", query);
|
|
|
map.put("privilegeId", ServletUtil.getCurrentPrivilegeId());
|
|
|
asyncBasicExamStudentExportService.exportTask(map);
|
|
|
}
|
|
@@ -152,29 +152,36 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
|
|
|
if (CollectionUtils.isNotEmpty(idList)) {
|
|
|
List<BasicExamStudent> basicExamStudentList = this.listByIds(idList);
|
|
|
for (BasicExamStudent basicExamStudent : basicExamStudentList) {
|
|
|
- List<MarkStudent> markStudentList = markStudentService.listByStudentId(basicExamStudent.getId());
|
|
|
+ List<MarkStudent> markStudentList = markStudentService.listByBasicStudentId(basicExamStudent.getId());
|
|
|
if (CollectionUtils.isNotEmpty(markStudentList)) {
|
|
|
- StringJoiner stringJoiner = new StringJoiner(";");
|
|
|
for (MarkStudent markStudent : markStudentList) {
|
|
|
if (markTaskService.countByStudentId(markStudent.getId()) > 0) {
|
|
|
BasicCourse basicCourse = basicCourseService.getById(markStudent.getCourseId());
|
|
|
- stringJoiner.add("课程[" + basicCourse.getName() + "(" + basicCourse.getCode() + ")],学号[" + basicExamStudent.getStudentCode() + "]考生已开始评卷,不允许删除");
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("课程[" + basicCourse.getName() + "(" + basicCourse.getCode() + ")],学号[" + basicExamStudent.getStudentCode() + "]考生已有评卷任务,不允许删除");
|
|
|
}
|
|
|
}
|
|
|
- if (stringJoiner.toString().length() > 0) {
|
|
|
- throw ExceptionResultEnum.ERROR.exception(stringJoiner.toString());
|
|
|
- }
|
|
|
}
|
|
|
examStudentService.deleteByBasicStudentId(basicExamStudent.getId());
|
|
|
markStudentService.deleteByBasicStudentId(basicExamStudent.getId());
|
|
|
- // 更新扫描数据
|
|
|
- long count = markStudentService.countByExamIdAndPaperNumber(basicExamStudent.getExamId(), basicExamStudent.getPaperNumber(), null);
|
|
|
- if (count == 0) {
|
|
|
- markPaperService.deleteByExamIdAndPaperNumber(basicExamStudent.getExamId(), basicExamStudent.getPaperNumber());
|
|
|
- } else {
|
|
|
- markPaperService.updateStudentCountByExamIdAndPaperNumberAndPaperType(basicExamStudent.getExamId(), basicExamStudent.getPaperNumber(), null);
|
|
|
- markPaperService.updateUploadCount(basicExamStudent.getExamId(), basicExamStudent.getPaperNumber(),
|
|
|
- markStudentService.countUploadedByExamIdAndPaperNumber(basicExamStudent.getExamId(), basicExamStudent.getPaperNumber()));
|
|
|
+ }
|
|
|
+
|
|
|
+ Set<String> paperNumberSet = basicExamStudentList.stream().filter(m -> StringUtils.isNotBlank(m.getPaperNumber())).map(BasicExamStudent::getPaperNumber).collect(Collectors.toSet());
|
|
|
+ if(CollectionUtils.isNotEmpty(paperNumberSet)){
|
|
|
+ Long examId = basicExamStudentList.get(0).getExamId();
|
|
|
+ for (String paperNumber : paperNumberSet) {
|
|
|
+ MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, paperNumber);
|
|
|
+ if(markPaper == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 更新扫描数据
|
|
|
+ long count = markStudentService.countByExamIdAndPaperNumber(examId, paperNumber, null);
|
|
|
+ if (count == 0) {
|
|
|
+ markPaperService.deleteByExamIdAndPaperNumber(examId, paperNumber);
|
|
|
+ } else {
|
|
|
+ markPaperService.updateStudentCountByExamIdAndPaperNumberAndPaperType(examId, paperNumber, null);
|
|
|
+ markPaperService.updateUploadCount(examId, paperNumber,
|
|
|
+ markStudentService.countUploadedByExamIdAndPaperNumber(examId, paperNumber));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
this.removeByIds(idList);
|
|
@@ -280,6 +287,12 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
|
|
|
.eq(BasicExamStudent::getStudentCode, basicExamStudent.getStudentCode())) > 0) {
|
|
|
throw ExceptionResultEnum.ERROR.exception(String.format("学号[%s]考生已存在", basicExamStudent.getStudentCode()));
|
|
|
}
|
|
|
+ // 试卷编号绑定其它课程
|
|
|
+ if (this.count(new QueryWrapper<BasicExamStudent>().lambda()
|
|
|
+ .eq(BasicExamStudent::getExamId, basicExamStudent.getExamId()).eq(BasicExamStudent::getPaperNumber, basicExamStudent.getPaperNumber())
|
|
|
+ .ne(BasicExamStudent::getCourseId, basicExamStudent.getCourseId())) > 0) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception(String.format("试卷编号[%s]已绑定其它课程", basicExamStudent.getPaperNumber()));
|
|
|
+ }
|
|
|
basicExamStudent.insertInfo(requestUserId);
|
|
|
}
|
|
|
|