|
@@ -9,6 +9,7 @@ import com.qmth.distributed.print.business.bean.ApiUser;
|
|
import com.qmth.distributed.print.business.bean.dto.*;
|
|
import com.qmth.distributed.print.business.bean.dto.*;
|
|
import com.qmth.distributed.print.business.entity.*;
|
|
import com.qmth.distributed.print.business.entity.*;
|
|
import com.qmth.distributed.print.business.enums.ExamStatusEnum;
|
|
import com.qmth.distributed.print.business.enums.ExamStatusEnum;
|
|
|
|
+import com.qmth.distributed.print.business.enums.ReviewStatusEnum;
|
|
import com.qmth.distributed.print.business.mapper.ExamTaskMapper;
|
|
import com.qmth.distributed.print.business.mapper.ExamTaskMapper;
|
|
import com.qmth.distributed.print.business.service.*;
|
|
import com.qmth.distributed.print.business.service.*;
|
|
import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
|
|
import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
|
|
@@ -82,13 +83,41 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public boolean assignUser(ExamTask examTask) {
|
|
public boolean assignUser(ExamTask examTask) {
|
|
|
|
+ if (examTask.getId() == null) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("参数有误");
|
|
|
|
+ }
|
|
|
|
+
|
|
UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
|
|
UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
|
|
- updateWrapper.lambda().set(ExamTask::getUserId, examTask.getUserId()).eq(ExamTask::getId, examTask.getId());
|
|
|
|
|
|
+ ExamTask task = this.getById(examTask.getId());
|
|
|
|
+ // 指派命题老师
|
|
|
|
+ if (task.getStatus().name().equals(ExamStatusEnum.NEW)) {
|
|
|
|
+ if (!task.getEnable()) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("命题任务已禁用,不能指派命题老师");
|
|
|
|
+ }
|
|
|
|
+ updateWrapper.lambda().set(ExamTask::getUserId, examTask.getUserId()).set(ExamTask::getStatus, ExamStatusEnum.READY).eq(ExamTask::getId, examTask.getId());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 更改命题老师
|
|
|
|
+ if (task.getStatus().name().equals(ExamStatusEnum.READY)) {
|
|
|
|
+ if (task.getEnable()) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("命题任务禁用后,才能更改命题老师");
|
|
|
|
+ }
|
|
|
|
+ updateWrapper.lambda().set(ExamTask::getUserId, examTask.getUserId()).eq(ExamTask::getId, examTask.getId());
|
|
|
|
+ }
|
|
|
|
+
|
|
return this.update(updateWrapper);
|
|
return this.update(updateWrapper);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public boolean enable(ExamTask examTask) {
|
|
public boolean enable(ExamTask examTask) {
|
|
|
|
+ if (examTask.getId() == null) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("参数有误");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ ExamTask task = this.getById(examTask.getId());
|
|
|
|
+ if (task.getStatus().name().equals(ExamStatusEnum.FINISH)) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("命题任务状态为已完成,不能启用/禁用操作");
|
|
|
|
+ }
|
|
UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
|
|
UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
|
|
updateWrapper.lambda().set(ExamTask::getEnable, examTask.getEnable()).eq(ExamTask::getId, examTask.getId());
|
|
updateWrapper.lambda().set(ExamTask::getEnable, examTask.getEnable()).eq(ExamTask::getId, examTask.getId());
|
|
return this.update(updateWrapper);
|
|
return this.update(updateWrapper);
|
|
@@ -103,6 +132,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
if (basicExamRule == null) {
|
|
if (basicExamRule == null) {
|
|
throw ExceptionResultEnum.ERROR.exception("通用规则未设置");
|
|
throw ExceptionResultEnum.ERROR.exception("通用规则未设置");
|
|
}
|
|
}
|
|
|
|
+ examTask.setStatus(ExamStatusEnum.NEW);
|
|
examTask.setReview(basicExamRule.getReview());
|
|
examTask.setReview(basicExamRule.getReview());
|
|
return this.save(examTask);
|
|
return this.save(examTask);
|
|
}
|
|
}
|
|
@@ -156,7 +186,8 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
@Override
|
|
@Override
|
|
public IPage<ExamTaskDto> listTaskApply(Long schoolId, String auditStatus, String reviewStatus, Long cardRuleId, String courseCode, String paperNumber, Long startTime, Long endTime, Integer pageNumber, Integer pageSize) {
|
|
public IPage<ExamTaskDto> listTaskApply(Long schoolId, String auditStatus, String reviewStatus, Long cardRuleId, String courseCode, String paperNumber, Long startTime, Long endTime, Integer pageNumber, Integer pageSize) {
|
|
Page<ExamTaskDto> page = new Page<>(pageNumber, pageSize);
|
|
Page<ExamTaskDto> page = new Page<>(pageNumber, pageSize);
|
|
- IPage<ExamTaskDto> examTaskDtoIPage = this.baseMapper.listTaskApply(page, schoolId, auditStatus, reviewStatus, cardRuleId, courseCode, paperNumber, startTime, endTime);
|
|
|
|
|
|
+ String[] strings = new String[]{ExamStatusEnum.NEW.name(), ExamStatusEnum.FINISH.name()};
|
|
|
|
+ IPage<ExamTaskDto> examTaskDtoIPage = this.baseMapper.listTaskApply(page, schoolId, auditStatus, reviewStatus, cardRuleId, courseCode, paperNumber, startTime, endTime, strings);
|
|
return examTaskDtoIPage;
|
|
return examTaskDtoIPage;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -182,13 +213,25 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
|
|
|
// 更新命题任务状态
|
|
// 更新命题任务状态
|
|
UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
|
|
UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
|
|
- updateWrapper.lambda().set(ExamTask::getReviewStatus, taskReviewLog.getReviewStatus()).eq(ExamTask::getId, taskReviewLog.getExamTaskId());
|
|
|
|
|
|
+ ExamStatusEnum statusEnum = null;
|
|
|
|
+ if (taskReviewLog.getReviewStatus().name().equals(ReviewStatusEnum.PASS.name())) {
|
|
|
|
+ statusEnum = ExamStatusEnum.FINISH;
|
|
|
|
+ } else {
|
|
|
|
+ statusEnum = ExamStatusEnum.STAGE;
|
|
|
|
+ }
|
|
|
|
+ updateWrapper.lambda().set(ExamTask::getStatus, statusEnum).set(ExamTask::getReviewStatus, taskReviewLog.getReviewStatus()).eq(ExamTask::getId, taskReviewLog.getExamTaskId());
|
|
return this.update(updateWrapper);
|
|
return this.update(updateWrapper);
|
|
}
|
|
}
|
|
|
|
|
|
@Transactional
|
|
@Transactional
|
|
@Override
|
|
@Override
|
|
public boolean taskReviewSaveBatch(ExamTaskReviewLog taskReviewLog) {
|
|
public boolean taskReviewSaveBatch(ExamTaskReviewLog taskReviewLog) {
|
|
|
|
+ ExamStatusEnum statusEnum = null;
|
|
|
|
+ if (taskReviewLog.getReviewStatus().name().equals(ReviewStatusEnum.PASS.name())) {
|
|
|
|
+ statusEnum = ExamStatusEnum.FINISH;
|
|
|
|
+ } else {
|
|
|
|
+ statusEnum = ExamStatusEnum.STAGE;
|
|
|
|
+ }
|
|
for (Long examTaskId : taskReviewLog.getExamTaskIds()) {
|
|
for (Long examTaskId : taskReviewLog.getExamTaskIds()) {
|
|
// 审核日志
|
|
// 审核日志
|
|
taskReviewLog.setExamTaskId(examTaskId);
|
|
taskReviewLog.setExamTaskId(examTaskId);
|
|
@@ -196,7 +239,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
|
|
|
// 更新命题任务状态
|
|
// 更新命题任务状态
|
|
UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
|
|
UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
|
|
- updateWrapper.lambda().set(ExamTask::getReviewStatus, taskReviewLog.getReviewStatus()).eq(ExamTask::getId, taskReviewLog.getExamTaskId());
|
|
|
|
|
|
+ updateWrapper.lambda().set(ExamTask::getStatus, statusEnum).set(ExamTask::getReviewStatus, taskReviewLog.getReviewStatus()).eq(ExamTask::getId, taskReviewLog.getExamTaskId());
|
|
this.update(updateWrapper);
|
|
this.update(updateWrapper);
|
|
}
|
|
}
|
|
return true;
|
|
return true;
|
|
@@ -216,11 +259,77 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
QueryWrapper<ExamTaskDetail> queryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<ExamTaskDetail> queryWrapper = new QueryWrapper<>();
|
|
queryWrapper.lambda().eq(ExamTaskDetail::getExamTaskId, relatePaperDto.getId()).eq(ExamTaskDetail::getEnable, true);
|
|
queryWrapper.lambda().eq(ExamTaskDetail::getExamTaskId, relatePaperDto.getId()).eq(ExamTaskDetail::getEnable, true);
|
|
ExamTaskDetail examTaskDetail = this.examTaskDetailService.getOne(queryWrapper);
|
|
ExamTaskDetail examTaskDetail = this.examTaskDetailService.getOne(queryWrapper);
|
|
- if (examTaskDetail != null){
|
|
|
|
|
|
+ if (examTaskDetail != null) {
|
|
String unexposedPaperType = examTaskDetail.getUnexposedPaperType();
|
|
String unexposedPaperType = examTaskDetail.getUnexposedPaperType();
|
|
relatePaperDto.setPaperTypes(StringUtils.isBlank(unexposedPaperType) ? null : Arrays.asList(unexposedPaperType.split("/")));
|
|
relatePaperDto.setPaperTypes(StringUtils.isBlank(unexposedPaperType) ? null : Arrays.asList(unexposedPaperType.split("/")));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return list;
|
|
return list;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Transactional
|
|
|
|
+ @Override
|
|
|
|
+ public boolean saveExamTaskDetail(ExamTaskDetail examTaskDetail) {
|
|
|
|
+ if (examTaskDetail.getExamTaskId() == null) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("命题任务ID不能为空");
|
|
|
|
+ }
|
|
|
|
+ if (StringUtils.isBlank(examTaskDetail.getOperateType())) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("保存类型不能为空");
|
|
|
|
+ }
|
|
|
|
+ // 提交时,校验
|
|
|
|
+ if (ExamStatusEnum.SUBMIT.name().equals(examTaskDetail.getOperateType())) {
|
|
|
|
+ if (StringUtils.isBlank(examTaskDetail.getPaperType())) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("试卷类型不能为空");
|
|
|
|
+ }
|
|
|
|
+ if (StringUtils.isBlank(examTaskDetail.getPaperAttachmentIds())) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("试卷ID不能为空");
|
|
|
|
+ }
|
|
|
|
+ if (examTaskDetail.getCardId() == null) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("题卡ID不能为空");
|
|
|
|
+ }
|
|
|
|
+ if (StringUtils.isBlank(examTaskDetail.getPaperConfirmAttachmentIds())) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("入库审核ID不能为空");
|
|
|
|
+ }
|
|
|
|
+ QueryWrapper<ExamTaskDetail> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.lambda().eq(ExamTaskDetail::getExamTaskId, examTaskDetail.getExamTaskId());
|
|
|
|
+ ExamTaskDetail detail = examTaskDetailService.getOne(queryWrapper);
|
|
|
|
+ if (detail != null) {
|
|
|
|
+ examTaskDetail.setId(detail.getId());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 更新examTask状态status
|
|
|
|
+ ExamTask examTask = this.getById(examTaskDetail.getExamTaskId());
|
|
|
|
+ if (examTask.getStatus().name().equals(ExamStatusEnum.SUBMIT.name()) && !examTask.getReview()) {
|
|
|
|
+ examTask.setStatus(ExamStatusEnum.FINISH);
|
|
|
|
+ this.updateById(examTask);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return examTaskDetailService.saveOrUpdate(examTaskDetail);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean status(ExamTask examTask) {
|
|
|
|
+ if (examTask.getId() == null) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("参数有误");
|
|
|
|
+ }
|
|
|
|
+ ExamTask task = this.getById(examTask.getId());
|
|
|
|
+ UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
|
|
|
|
+ // 撤回
|
|
|
|
+ if (examTask.getStatus().name().equals(ExamStatusEnum.CANCEL.name())) {
|
|
|
|
+ if (!task.getStatus().name().equals(ExamStatusEnum.FINISH.name())) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("命题任务状态为已完成,才能撤回");
|
|
|
|
+ }
|
|
|
|
+ updateWrapper.lambda().set(ExamTask::getStatus, examTask.getStatus()).eq(ExamTask::getId, examTask.getId());
|
|
|
|
+ return this.update(updateWrapper);
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public ExamTaskDetail applyGetOne(Long examTaskId) {
|
|
|
|
+ QueryWrapper<ExamTaskDetail> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.lambda().eq(ExamTaskDetail::getExamTaskId, examTaskId);
|
|
|
|
+ return examTaskDetailService.getOne(queryWrapper);
|
|
|
|
+ }
|
|
}
|
|
}
|