|
@@ -7,19 +7,25 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.qmth.distributed.print.business.bean.dto.ExamStudentCourseDto;
|
|
import com.qmth.distributed.print.business.bean.dto.ExamStudentCourseDto;
|
|
import com.qmth.distributed.print.business.bean.dto.ExamStudentDto;
|
|
import com.qmth.distributed.print.business.bean.dto.ExamStudentDto;
|
|
import com.qmth.distributed.print.business.bean.dto.pdf.ExamStudentInfo;
|
|
import com.qmth.distributed.print.business.bean.dto.pdf.ExamStudentInfo;
|
|
|
|
+import com.qmth.distributed.print.business.bean.params.ExamTaskSubmitContent;
|
|
|
|
+import com.qmth.distributed.print.business.entity.ExamDetail;
|
|
import com.qmth.distributed.print.business.entity.ExamDetailCourse;
|
|
import com.qmth.distributed.print.business.entity.ExamDetailCourse;
|
|
import com.qmth.distributed.print.business.entity.ExamStudent;
|
|
import com.qmth.distributed.print.business.entity.ExamStudent;
|
|
import com.qmth.distributed.print.business.entity.ExamTask;
|
|
import com.qmth.distributed.print.business.entity.ExamTask;
|
|
import com.qmth.distributed.print.business.mapper.ExamDetailCourseMapper;
|
|
import com.qmth.distributed.print.business.mapper.ExamDetailCourseMapper;
|
|
import com.qmth.distributed.print.business.mapper.ExamStudentMapper;
|
|
import com.qmth.distributed.print.business.mapper.ExamStudentMapper;
|
|
import com.qmth.distributed.print.business.service.BasicExamStudentService;
|
|
import com.qmth.distributed.print.business.service.BasicExamStudentService;
|
|
|
|
+import com.qmth.distributed.print.business.service.ExamDetailCourseService;
|
|
|
|
+import com.qmth.distributed.print.business.service.ExamDetailService;
|
|
import com.qmth.distributed.print.business.service.ExamStudentService;
|
|
import com.qmth.distributed.print.business.service.ExamStudentService;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.entity.BasicExamStudent;
|
|
import com.qmth.teachcloud.common.entity.BasicExamStudent;
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
import com.qmth.teachcloud.mark.entity.MarkStudent;
|
|
import com.qmth.teachcloud.mark.entity.MarkStudent;
|
|
|
|
+import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
@@ -36,12 +42,14 @@ import java.util.stream.Collectors;
|
|
@Service
|
|
@Service
|
|
public class ExamStudentServiceImpl extends ServiceImpl<ExamStudentMapper, ExamStudent> implements ExamStudentService {
|
|
public class ExamStudentServiceImpl extends ServiceImpl<ExamStudentMapper, ExamStudent> implements ExamStudentService {
|
|
|
|
|
|
- @Resource
|
|
|
|
- private ExamStudentMapper examStudentMapper;
|
|
|
|
@Resource
|
|
@Resource
|
|
private ExamDetailCourseMapper examDetailCourseMapper;
|
|
private ExamDetailCourseMapper examDetailCourseMapper;
|
|
@Resource
|
|
@Resource
|
|
private BasicExamStudentService basicExamStudentService;
|
|
private BasicExamStudentService basicExamStudentService;
|
|
|
|
+ @Resource
|
|
|
|
+ private ExamDetailService examDetailService;
|
|
|
|
+ @Resource
|
|
|
|
+ private ExamDetailCourseService examDetailCourseService;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public List<String> listPaperTypeByExamDetailCourseId(String examDetailCourseId) {
|
|
public List<String> listPaperTypeByExamDetailCourseId(String examDetailCourseId) {
|
|
@@ -134,10 +142,38 @@ public class ExamStudentServiceImpl extends ServiceImpl<ExamStudentMapper, ExamS
|
|
return this.count(queryWrapper);
|
|
return this.count(queryWrapper);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Transactional
|
|
@Override
|
|
@Override
|
|
public void deleteByBasicStudentId(Long basicStudentId) {
|
|
public void deleteByBasicStudentId(Long basicStudentId) {
|
|
- UpdateWrapper<ExamStudent> updateWrapper = new UpdateWrapper<>();
|
|
|
|
- updateWrapper.lambda().eq(ExamStudent::getBasicStudentId, basicStudentId);
|
|
|
|
- this.remove(updateWrapper);
|
|
|
|
|
|
+ List<ExamStudent> examStudentList = this.listByBasicStudentId(basicStudentId);
|
|
|
|
+ List<Long> examStudentIds = examStudentList.stream().map(ExamStudent::getId).collect(Collectors.toList());
|
|
|
|
+ this.removeByIds(examStudentIds);
|
|
|
|
+ List<Long> examDetailCourseIds = examStudentList.stream().map(ExamStudent::getExamDetailCourseId).distinct().collect(Collectors.toList());
|
|
|
|
+ // 更新考场科目表科次
|
|
|
|
+ for (Long examDetailCourseId : examDetailCourseIds) {
|
|
|
|
+ examDetailCourseService.updateTotalSubjects(examDetailCourseId, this.countByExamDetailCourseId(examDetailCourseId));
|
|
|
|
+ }
|
|
|
|
+ // 更新考场科次
|
|
|
|
+ List<ExamDetailCourse> examDetailCourseList = examDetailCourseService.listByIds(examDetailCourseIds);
|
|
|
|
+ for (ExamDetailCourse examDetailCourse : examDetailCourseList) {
|
|
|
|
+ List<ExamDetailCourse> examDetailCourses = examDetailCourseService.listByExamDetailId(examDetailCourse.getExamDetailId());
|
|
|
|
+ if (CollectionUtils.isNotEmpty(examDetailCourses)) {
|
|
|
|
+ examDetailService.updateTotalSubjects(examDetailCourse.getExamDetailId(), examDetailCourses.stream().filter(m->m.getTotalSubjects()!=null).mapToInt(m->m.getTotalSubjects()).sum());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<ExamStudent> listByBasicStudentId(Long basicStudentId) {
|
|
|
|
+ QueryWrapper<ExamStudent> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.lambda().eq(ExamStudent::getBasicStudentId, basicStudentId);
|
|
|
|
+ return this.list(queryWrapper);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public int countByExamDetailCourseId(Long examDetailCourseId) {
|
|
|
|
+ QueryWrapper<ExamStudent> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.lambda().eq(ExamStudent::getExamDetailCourseId, examDetailCourseId);
|
|
|
|
+ return this.count(queryWrapper);
|
|
}
|
|
}
|
|
}
|
|
}
|