|
@@ -203,11 +203,13 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public boolean assignUser(ExamTask examTask) {
|
|
|
|
|
|
+ public Boolean assignUser(ExamTask examTask) {
|
|
if (examTask.getId() == null) {
|
|
if (examTask.getId() == null) {
|
|
throw ExceptionResultEnum.ERROR.exception("参数有误");
|
|
throw ExceptionResultEnum.ERROR.exception("参数有误");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ ExamStatusEnum examStatusEnum = ExamStatusEnum.DRAFT;
|
|
|
|
+ Long flowId = null;
|
|
UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
|
|
UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
|
|
ExamTask task = this.getById(examTask.getId());
|
|
ExamTask task = this.getById(examTask.getId());
|
|
// 指派命题老师
|
|
// 指派命题老师
|
|
@@ -215,23 +217,43 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
if (!task.getEnable()) {
|
|
if (!task.getEnable()) {
|
|
throw ExceptionResultEnum.ERROR.exception("命题任务已禁用,不能指派命题老师");
|
|
throw ExceptionResultEnum.ERROR.exception("命题任务已禁用,不能指派命题老师");
|
|
}
|
|
}
|
|
- updateWrapper.lambda().set(ExamTask::getUserId, examTask.getUserId()).set(ExamTask::getStatus, ExamStatusEnum.SUBMIT).eq(ExamTask::getId, examTask.getId());
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
+ if(Objects.nonNull(examTask.getUserId())) {
|
|
|
|
+ examStatusEnum = ExamStatusEnum.STAGE;
|
|
|
|
+ //TODO 这里以后要判断学校code来取流程key
|
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
|
+ map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> String.valueOf(examTask.getUserId()));
|
|
|
|
+ ProcessInstance processInstance = activitiService.startActivity(SystemConstant.GDYKDX_FLOW_KEY, map);
|
|
|
|
+ flowId = Long.parseLong(processInstance.getId());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
// 更改命题老师
|
|
// 更改命题老师
|
|
- if (task.getStatus().name().equals(ExamStatusEnum.SUBMIT.name())) {
|
|
|
|
|
|
+ else if (task.getStatus().name().equals(ExamStatusEnum.STAGE.name())) {
|
|
if (task.getEnable()) {
|
|
if (task.getEnable()) {
|
|
throw ExceptionResultEnum.ERROR.exception("命题任务禁用后,才能更改命题老师");
|
|
throw ExceptionResultEnum.ERROR.exception("命题任务禁用后,才能更改命题老师");
|
|
}
|
|
}
|
|
- ExamStatusEnum examStatusEnum;
|
|
|
|
|
|
+
|
|
if (examTask.getUserId() == null) {
|
|
if (examTask.getUserId() == null) {
|
|
examStatusEnum = ExamStatusEnum.DRAFT;
|
|
examStatusEnum = ExamStatusEnum.DRAFT;
|
|
} else {
|
|
} else {
|
|
examStatusEnum = ExamStatusEnum.STAGE;
|
|
examStatusEnum = ExamStatusEnum.STAGE;
|
|
|
|
+
|
|
|
|
+ if(examTask.getUserId().longValue() != task.getUserId().longValue()) {
|
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
|
+ map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> String.valueOf(examTask.getUserId()));
|
|
|
|
+ ProcessInstance processInstance = activitiService.startActivity(SystemConstant.GDYKDX_FLOW_KEY, map);
|
|
|
|
+ flowId = Long.parseLong(processInstance.getId());
|
|
|
|
+ } else {
|
|
|
|
+ flowId = task.getFlowId();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- updateWrapper.lambda().set(ExamTask::getUserId, examTask.getUserId()).set(ExamTask::getStatus, examStatusEnum).eq(ExamTask::getId, examTask.getId());
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ updateWrapper.lambda().set(ExamTask::getUserId, examTask.getUserId())
|
|
|
|
+ .set(ExamTask::getStatus, examStatusEnum)
|
|
|
|
+ .set(ExamTask::getFlowId, flowId)
|
|
|
|
+ .eq(ExamTask::getId, examTask.getId());
|
|
|
|
+
|
|
return this.update(updateWrapper);
|
|
return this.update(updateWrapper);
|
|
}
|
|
}
|
|
|
|
|