update - 自动驳回功能,利用现有的 rejectionCmd 的能力,并调整其内部逻辑
This commit is contained in:
parent
78a381f5ee
commit
d5d8b1eb8f
@ -102,14 +102,12 @@ public class CustomRejectionTaskCmd extends AbstractCommand<Void> implements Ser
|
||||
validTask(historicTaskInstance, (TaskEntity) task, approver, nodeTypes);
|
||||
|
||||
((TaskEntity) task).setTransientVariable(TASK_COMPLETE_OPERATION_TYPE + task.getId(), REJECTED.getStatus());
|
||||
if (!Objects.equals(operationDesc, "自动驳回")) {
|
||||
task = createVirtualTask(commandContext, extAxHiTaskInstService, task.getProcessInstanceId(), task.getName(),
|
||||
task.getTaskDefinitionKey(), advice, approver, REJECTED.getStatus());
|
||||
}
|
||||
Task virtualTask = createVirtualTask(commandContext, extAxHiTaskInstService, task.getProcessInstanceId(), task.getName(),
|
||||
task.getTaskDefinitionKey(), advice, Objects.equals(operationDesc, "自动驳回") ? null : approver, REJECTED.getStatus());
|
||||
|
||||
addComment(commandContext, task, COMMENT_TYPE_OPERATION_DESC, operationDesc);
|
||||
addComment(commandContext, virtualTask, COMMENT_TYPE_OPERATION_DESC, operationDesc);
|
||||
|
||||
batchAddAttachment(commandContext, task.getProcessInstanceId(), task.getId(), attachmentList, approver);
|
||||
batchAddAttachment(commandContext, task.getProcessInstanceId(), virtualTask.getId(), attachmentList, approver);
|
||||
|
||||
RuntimeService runtimeService = processEngineConfiguration.getRuntimeService();
|
||||
finishProcessInstance(commandContext, runtimeService, task, advice);
|
||||
|
||||
@ -339,6 +339,7 @@ public class CustomTaskHelper {
|
||||
// 创建临时节点
|
||||
taskService.saveTask(task);
|
||||
|
||||
if (Objects.nonNull(assigner)) {
|
||||
CommandContextUtil.getEntityCache().findInCache(TaskEntity.class).stream()
|
||||
.filter(i -> Objects.equals(i.getId(), task.getId())).findAny()
|
||||
.ifPresent(i -> i.setAssignee(assigner.buildAssigneeId()));
|
||||
@ -346,16 +347,19 @@ public class CustomTaskHelper {
|
||||
CommandContextUtil.getEntityCache().findInCache(HistoricTaskInstanceEntity.class).stream()
|
||||
.filter(i -> Objects.equals(i.getId(), task.getId())).findAny()
|
||||
.ifPresent(i -> i.setAssignee(assigner.buildAssigneeId()));
|
||||
}
|
||||
|
||||
// 添加审批意见
|
||||
addAdvice(commandContext, task, advice, assigner.buildAssigneeId());
|
||||
addAdvice(commandContext, task, advice, Objects.nonNull(assigner) ? assigner.buildAssigneeId() : null);
|
||||
|
||||
CustomTaskHelper.createExtTaskInst(extAxHiTaskInstService, task.getProcessInstanceId(), task.getId(),
|
||||
task.getTaskDefinitionKey(), assigner, extTaskInstStatus);
|
||||
task.setTransientVariable(TASK_COMPLETE_OPERATION_TYPE + task.getId(), extTaskInstStatus);
|
||||
|
||||
if (Objects.nonNull(assigner)) {
|
||||
// 设置快照信息
|
||||
task.setVariable(INTERNAL_TASK_RELATION_ASSIGNEE_INFO + task.getId(), assigner.toJson());
|
||||
}
|
||||
|
||||
// 完成临时节点
|
||||
taskService.complete(task.getId());
|
||||
@ -384,7 +388,7 @@ public class CustomTaskHelper {
|
||||
entity.setTaskDefinitionKey(taskDefinitionKey);
|
||||
entity.setTaskId(taskId);
|
||||
entity.setStatus(StringUtils.hasLength(status) ? status : PROCESSING.getStatus());
|
||||
entity.setAssignee(assignee.buildAssigneeId());
|
||||
entity.setAssignee(Objects.nonNull(assignee) ? assignee.buildAssigneeId() : null);
|
||||
extAxHiTaskInstService.save(entity);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user