|
@@ -1535,7 +1535,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void delete(Long id) {
|
|
|
+ public void delete(List<Long> idList) {
|
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
List<SysRole> sysRoleList = sysUserRoleService.listRoleByUserId(sysUser.getId());
|
|
|
boolean isSchoolAdmin = false;
|
|
@@ -1545,16 +1545,41 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- if (isSchoolAdmin) {
|
|
|
- // 学校管理员,可以删除
|
|
|
- this.applyDelete(id);
|
|
|
- } else {
|
|
|
- // 命题任务生成,命题老师未提交前允许删除
|
|
|
+ List<String> errorMsg = new ArrayList<>();
|
|
|
+ for (Long id : idList) {
|
|
|
ExamTask examTask = this.getById(id);
|
|
|
- if (examTask != null && examTask.getStatus().equals(ExamStatusEnum.SUBMIT)) {
|
|
|
- throw ExceptionResultEnum.ERROR.exception("命题老师已提交,不能删除");
|
|
|
+ if (Objects.isNull(examTask)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("系统异常: 未找到命题任务");
|
|
|
+ }
|
|
|
+ String paperNumber = examTask.getPaperNumber();
|
|
|
+ String prefix = String.format("试卷编号为[%s]的命题任务删除失败, ", paperNumber);
|
|
|
+ if (isSchoolAdmin) {
|
|
|
+ // 学校管理员,可以删除
|
|
|
+ QueryWrapper<TFFlowApprove> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.lambda().eq(TFFlowApprove::getFlowId, examTask.getFlowId());
|
|
|
+ TFFlowApprove tfFlowApprove = tfFlowApproveService.getOne(queryWrapper);
|
|
|
+ //审核状态
|
|
|
+ if (tfFlowApprove != null && !tfFlowApprove.getStatus().equals(FlowStatusEnum.START) && !tfFlowApprove.getStatus().equals(FlowStatusEnum.REJECT) && !tfFlowApprove.getStatus()
|
|
|
+ .equals(FlowStatusEnum.CANCEL)) {
|
|
|
+ errorMsg.add(prefix + tfFlowApprove.getStatus().getTitle() + "状态无法删除");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 删除命题任务及试卷信息
|
|
|
+ this.removeByExamTaskId(id);
|
|
|
+ // 删除考场信息
|
|
|
+ examDetailService.deleteByExamIdAndPaperNumber(examTask.getSchoolId(), examTask.getExamId(), examTask.getPaperNumber());
|
|
|
+ } else {
|
|
|
+ // 命题任务生成,命题老师未提交前允许删除
|
|
|
+ if (examTask.getStatus().equals(ExamStatusEnum.SUBMIT)) {
|
|
|
+ errorMsg.add(prefix + "命题老师已提交,不能删除");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ this.removeByExamTaskId(id);
|
|
|
}
|
|
|
- this.removeByExamTaskId(id);
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isNotEmpty(errorMsg)) {
|
|
|
+ // 报错
|
|
|
+ throw ExceptionResultEnum.ERROR.exception(String.join(";\n", errorMsg));
|
|
|
}
|
|
|
}
|
|
|
|