|
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.Update;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
@@ -72,6 +73,9 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
|
|
|
@Resource
|
|
|
private ExamDetailCourseService examDetailCourseService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private ExamDetailCoursePaperTypeService examDetailCoursePaperTypeService;
|
|
|
+
|
|
|
@Resource
|
|
|
private BasicExamRuleService basicExamRuleService;
|
|
|
|
|
@@ -114,9 +118,6 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
|
|
|
@Resource
|
|
|
ExamTaskService examTaskService;
|
|
|
|
|
|
- @Resource
|
|
|
- ExamTaskDetailService examTaskDetailService;
|
|
|
-
|
|
|
@Resource
|
|
|
RedisUtil redisUtil;
|
|
|
|
|
@@ -1134,6 +1135,50 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
|
|
|
examStudentService.remove(new QueryWrapper<ExamStudent>().lambda().in(ExamStudent::getId, examStudentIds));
|
|
|
}
|
|
|
|
|
|
+ @Transactional
|
|
|
+ @Override
|
|
|
+ public void resetExamDetail(Long entityId) {
|
|
|
+ // 清掉客户端产生的数据,包含缓存状态、校验状态
|
|
|
+ ExamDetail examDetail = this.getById(entityId);
|
|
|
+ QueryWrapper<ClientStatus> clientStatusQueryWrapper = new QueryWrapper<>();
|
|
|
+ clientStatusQueryWrapper.lambda().eq(ClientStatus::getSchoolId, examDetail.getSchoolId())
|
|
|
+ .eq(ClientStatus::getExamDetailId, entityId);
|
|
|
+ List<ClientStatus> clientStatusList = clientStatusService.list(clientStatusQueryWrapper);
|
|
|
+ if (!CollectionUtils.isEmpty(clientStatusList)) {
|
|
|
+ for (ClientStatus clientStatus : clientStatusList) {
|
|
|
+ clientStatus.setPass(false);
|
|
|
+ clientStatus.setDownload(false);
|
|
|
+ }
|
|
|
+ clientStatusService.updateBatchById(clientStatusList);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 清掉客户端产生的数据和考场文件,包含状态、校验状态,pdf文件路径,打印信息
|
|
|
+ UpdateWrapper<ExamDetail> examDetailUpdateWrapper = new UpdateWrapper<>();
|
|
|
+ examDetailUpdateWrapper.lambda().set(ExamDetail::getStatus, ExamDetailStatusEnum.NEW)
|
|
|
+ .set(ExamDetail::getValidate, false)
|
|
|
+ .set(ExamDetail::getAttachmentId, null)
|
|
|
+ .set(ExamDetail::getCardAttachmentId, null)
|
|
|
+ .set(ExamDetail::getAttachmentPath, null)
|
|
|
+ .set(ExamDetail::getPrintProgress, null)
|
|
|
+ .set(ExamDetail::getPrintStartTime, null)
|
|
|
+ .set(ExamDetail::getPrintEndTime, null)
|
|
|
+ .eq(ExamDetail::getId, entityId);
|
|
|
+ this.update(examDetailUpdateWrapper);
|
|
|
+
|
|
|
+ // 清掉考场-课程表中关联的试卷编号
|
|
|
+ List<ExamDetailCourse> examDetailCourseList = examDetailCourseService.listByExamDetailId(entityId);
|
|
|
+ if (!CollectionUtils.isEmpty(examDetailCourseList)) {
|
|
|
+ for (ExamDetailCourse examDetailCourse : examDetailCourseList) {
|
|
|
+ examDetailCourse.setPaperType(null);
|
|
|
+ }
|
|
|
+ examDetailCourseService.updateBatchById(examDetailCourseList);
|
|
|
+
|
|
|
+ List<Long> examDetailCourseIds = examDetailCourseList.stream().map(ExamDetailCourse::getId).collect(Collectors.toList());
|
|
|
+ examDetailCoursePaperTypeService.removeByExamDetailCourseIds(examDetailCourseIds);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public void deleteExaminationData(Long printPlanId, ExamDataSourceEnum source) {
|