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);
|
validTask(historicTaskInstance, (TaskEntity) task, approver, nodeTypes);
|
||||||
|
|
||||||
((TaskEntity) task).setTransientVariable(TASK_COMPLETE_OPERATION_TYPE + task.getId(), REJECTED.getStatus());
|
((TaskEntity) task).setTransientVariable(TASK_COMPLETE_OPERATION_TYPE + task.getId(), REJECTED.getStatus());
|
||||||
if (!Objects.equals(operationDesc, "自动驳回")) {
|
Task virtualTask = createVirtualTask(commandContext, extAxHiTaskInstService, task.getProcessInstanceId(), task.getName(),
|
||||||
task = createVirtualTask(commandContext, extAxHiTaskInstService, task.getProcessInstanceId(), task.getName(),
|
task.getTaskDefinitionKey(), advice, Objects.equals(operationDesc, "自动驳回") ? null : approver, REJECTED.getStatus());
|
||||||
task.getTaskDefinitionKey(), advice, 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();
|
RuntimeService runtimeService = processEngineConfiguration.getRuntimeService();
|
||||||
finishProcessInstance(commandContext, runtimeService, task, advice);
|
finishProcessInstance(commandContext, runtimeService, task, advice);
|
||||||
|
|||||||
@ -339,6 +339,7 @@ public class CustomTaskHelper {
|
|||||||
// 创建临时节点
|
// 创建临时节点
|
||||||
taskService.saveTask(task);
|
taskService.saveTask(task);
|
||||||
|
|
||||||
|
if (Objects.nonNull(assigner)) {
|
||||||
CommandContextUtil.getEntityCache().findInCache(TaskEntity.class).stream()
|
CommandContextUtil.getEntityCache().findInCache(TaskEntity.class).stream()
|
||||||
.filter(i -> Objects.equals(i.getId(), task.getId())).findAny()
|
.filter(i -> Objects.equals(i.getId(), task.getId())).findAny()
|
||||||
.ifPresent(i -> i.setAssignee(assigner.buildAssigneeId()));
|
.ifPresent(i -> i.setAssignee(assigner.buildAssigneeId()));
|
||||||
@ -346,16 +347,19 @@ public class CustomTaskHelper {
|
|||||||
CommandContextUtil.getEntityCache().findInCache(HistoricTaskInstanceEntity.class).stream()
|
CommandContextUtil.getEntityCache().findInCache(HistoricTaskInstanceEntity.class).stream()
|
||||||
.filter(i -> Objects.equals(i.getId(), task.getId())).findAny()
|
.filter(i -> Objects.equals(i.getId(), task.getId())).findAny()
|
||||||
.ifPresent(i -> i.setAssignee(assigner.buildAssigneeId()));
|
.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(),
|
CustomTaskHelper.createExtTaskInst(extAxHiTaskInstService, task.getProcessInstanceId(), task.getId(),
|
||||||
task.getTaskDefinitionKey(), assigner, extTaskInstStatus);
|
task.getTaskDefinitionKey(), assigner, extTaskInstStatus);
|
||||||
task.setTransientVariable(TASK_COMPLETE_OPERATION_TYPE + task.getId(), 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());
|
task.setVariable(INTERNAL_TASK_RELATION_ASSIGNEE_INFO + task.getId(), assigner.toJson());
|
||||||
|
}
|
||||||
|
|
||||||
// 完成临时节点
|
// 完成临时节点
|
||||||
taskService.complete(task.getId());
|
taskService.complete(task.getId());
|
||||||
@ -384,7 +388,7 @@ public class CustomTaskHelper {
|
|||||||
entity.setTaskDefinitionKey(taskDefinitionKey);
|
entity.setTaskDefinitionKey(taskDefinitionKey);
|
||||||
entity.setTaskId(taskId);
|
entity.setTaskId(taskId);
|
||||||
entity.setStatus(StringUtils.hasLength(status) ? status : PROCESSING.getStatus());
|
entity.setStatus(StringUtils.hasLength(status) ? status : PROCESSING.getStatus());
|
||||||
entity.setAssignee(assignee.buildAssigneeId());
|
entity.setAssignee(Objects.nonNull(assignee) ? assignee.buildAssigneeId() : null);
|
||||||
extAxHiTaskInstService.save(entity);
|
extAxHiTaskInstService.save(entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user