|
@@ -139,7 +139,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
|
|
|
public IPage<PrintTaskDto> listPrintTask(Long semesterId, Long examId, Long printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Long printStartTime, Long printEndTime, Long printHouseId, Integer pageNumber, Integer pageSize) {
|
|
|
Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
- DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId,requestUser.getId(),ServletUtil.getRequest().getServletPath());
|
|
|
+ DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, requestUser.getId(), ServletUtil.getRequest().getServletPath());
|
|
|
Page<PrintTaskDto> page = new Page<>(pageNumber, pageSize);
|
|
|
return this.baseMapper.listPrintTask(page, schoolId, semesterId, examId, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, printStartTime, printEndTime, printHouseId, dpr);
|
|
|
}
|
|
@@ -148,7 +148,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
|
|
|
public PrintTaskTotalDto taskTotalData(Long printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Long printStartTime, Long printEndTime, Long printHouseId) {
|
|
|
Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
- DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId,requestUser.getId(),ServletUtil.getRequest().getServletPath());
|
|
|
+ DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, requestUser.getId(), ServletUtil.getRequest().getServletPath());
|
|
|
PrintTaskTotalDto printTaskTotalDto = this.baseMapper.taskTotalData(schoolId, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, printStartTime, printEndTime, printHouseId, dpr);
|
|
|
|
|
|
if (printTaskTotalDto != null) {
|
|
@@ -184,7 +184,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
|
|
|
JSONObject object = jsonArray.getJSONObject(i);
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.put(SystemConstant.TYPE, Objects.nonNull(object.get("printType")) ? PdfTypeEnum.valueOf((String) object.get("printType")) : null);
|
|
|
- jsonObject.put("url", Objects.nonNull(object.get(SystemConstant.PDF_PATH)) ? teachcloudCommonService.filePreviewByPathAndType((String) object.get(SystemConstant.PDF_PATH),(String) object.get(SystemConstant.UPLOAD_TYPE), (String) object.get("type"), false) : null);
|
|
|
+ jsonObject.put("url", Objects.nonNull(object.get(SystemConstant.PDF_PATH)) ? teachcloudCommonService.filePreviewByPathAndType((String) object.get(SystemConstant.PDF_PATH), (String) object.get(SystemConstant.UPLOAD_TYPE), (String) object.get("type"), false) : null);
|
|
|
list.add(jsonObject);
|
|
|
}
|
|
|
}
|
|
@@ -682,7 +682,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
|
|
|
examStudent.setClazzId(String.valueOf(basicClazzService.getOne(new QueryWrapper<BasicClazz>()
|
|
|
.lambda()
|
|
|
.eq(BasicClazz::getClazzName, examStudent.getClazzName())
|
|
|
- .eq(BasicClazz::getSchoolId,examStudent.getSchoolId())).getId()));
|
|
|
+ .eq(BasicClazz::getSchoolId, examStudent.getSchoolId())).getId()));
|
|
|
}
|
|
|
examStudentService.saveBatch(examStudentList);
|
|
|
|
|
@@ -712,7 +712,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
|
|
|
}
|
|
|
List<Long> printPlanIdList = null;
|
|
|
if (map.get("printPlanIdList") != null) {
|
|
|
- printPlanIdList = JSON.parseArray(map.get("printPlanIdList").toString(),Long.class);
|
|
|
+ printPlanIdList = JSON.parseArray(map.get("printPlanIdList").toString(), Long.class);
|
|
|
}
|
|
|
String courseCode = null;
|
|
|
if (map.get("courseCode") != null) {
|
|
@@ -898,6 +898,66 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
|
|
|
return examDetailMapper.findPdfDownload(ids);
|
|
|
}
|
|
|
|
|
|
+ @Transactional
|
|
|
+ @Override
|
|
|
+ public void dataDelete(Long id) {
|
|
|
+ ExamDetail examDetail = this.getById(id);
|
|
|
+ if (examDetail == null) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("考场数据不存在");
|
|
|
+ }
|
|
|
+ if (ExamDetailStatusEnum.WAITING.equals(examDetail.getStatus())) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("考场数据已提交印刷,请先撤回后再删除");
|
|
|
+ } else if (ExamDetailStatusEnum.PRINTING.equals(examDetail.getStatus())) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("考场数据已提交印刷,正在打印中,无法删除");
|
|
|
+ } else if (ExamDetailStatusEnum.FINISH.equals(examDetail.getStatus())) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("考场数据已打印完成,无法删除");
|
|
|
+ }
|
|
|
+ //删除exam_detail
|
|
|
+ this.removeById(id);
|
|
|
+ // 删除exam_detail_course
|
|
|
+ QueryWrapper<ExamDetailCourse> examDetailCourseQueryWrapper = new QueryWrapper<>();
|
|
|
+ examDetailCourseQueryWrapper.lambda().eq(ExamDetailCourse::getExamDetailId, id);
|
|
|
+ List<ExamDetailCourse> examDetailCourses = examDetailCourseService.list(examDetailCourseQueryWrapper);
|
|
|
+ if (!examDetailCourses.isEmpty()) {
|
|
|
+ for (ExamDetailCourse examDetailCourse : examDetailCourses) {
|
|
|
+ examDetailCourseService.removeById(examDetailCourse.getId());
|
|
|
+
|
|
|
+ // 删除 exam_student
|
|
|
+ QueryWrapper<ExamStudent> examStudentQueryWrapper = new QueryWrapper<>();
|
|
|
+ examStudentQueryWrapper.lambda().eq(ExamStudent::getExamDetailCourseId, examDetailCourse.getId());
|
|
|
+ List<ExamStudent> examStudents = examStudentService.list(examStudentQueryWrapper);
|
|
|
+ if (!examStudents.isEmpty()) {
|
|
|
+ List<Long> examStudentIds = examStudents.stream().map(ExamStudent::getId).collect(Collectors.toList());
|
|
|
+ examStudentService.removeByIds(examStudentIds);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 修改exam_print_plan状态
|
|
|
+ QueryWrapper<ExamDetail> examDetailQueryWrapper = new QueryWrapper<>();
|
|
|
+ examDetailQueryWrapper.lambda().eq(ExamDetail::getPrintPlanId, examDetail.getPrintPlanId());
|
|
|
+ List<ExamDetail> examDetailList = this.list(examDetailQueryWrapper);
|
|
|
+ PrintPlanStatusEnum printPlanStatusEnum = PrintPlanStatusEnum.READY;
|
|
|
+ if (examDetailList.isEmpty()) {
|
|
|
+ printPlanStatusEnum = PrintPlanStatusEnum.NEW;
|
|
|
+ } else {
|
|
|
+ // 打印中
|
|
|
+ long printingCount = examDetailList.stream().filter(m -> m.getStatus().equals(ExamDetailStatusEnum.PRINTING)).count();
|
|
|
+ // 已完成
|
|
|
+ long finishCount = examDetailList.stream().filter(m -> !m.getStatus().equals(ExamDetailStatusEnum.FINISH)).count();
|
|
|
+ if (printingCount > 0) {
|
|
|
+ printPlanStatusEnum = PrintPlanStatusEnum.PRINTING;
|
|
|
+ } else if (finishCount == 0) {
|
|
|
+ printPlanStatusEnum = PrintPlanStatusEnum.PRINT_FINISH;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ // 由于考场数据变动,要同步更新最新的计划状态
|
|
|
+ UpdateWrapper<ExamPrintPlan> updateWrapper = new UpdateWrapper<>();
|
|
|
+ updateWrapper.lambda().set(ExamPrintPlan::getStatus, printPlanStatusEnum).eq(ExamPrintPlan::getId, examDetail.getPrintPlanId());
|
|
|
+ examPrintPlanService.update(updateWrapper);
|
|
|
+ }
|
|
|
+
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public void deleteExaminationData(Long printPlanId, ExamDataSourceEnum source) {
|