// 获取正在操作的任务实例对象
TaskInstanceEntity taskInstance = getTaskInstanceEntity();
// 获取正在操作的任务命令对象实例
TaskCommandInst taskCommand = getTaskCommandInst();
if (taskInstance != null) {
// 结束任务
taskInstance.customEnd(taskCommand, this.taskComment);
}
ProcessInstanceEntity processInstanceImpl = getProcessInstance();
String parentProcessTokenId=processInstanceImpl.getParentProcessInstanceTokenId();
if(StringUtil.isEmpty(parentProcessTokenId)){
throw new FixFlowException("流程实例没有父流程");
}
// 终止流程实例
processInstanceImpl.termination();
saveProcessInstance(commandContext);
ProcessInstanceEntity parentProcessInstance = processInstanceImpl.getParentProcessInstance();
parentProcessInstance.terminationSubProcess(parentProcessTokenId);
ExecutionContext subExecutionContext = getExecutionContext();
Object expressionValue = null;
if (taskCommand != null && taskCommand.getExpression() != null) {
try {
expressionValue = ExpressionMgmt.execute(taskCommand.getExpression(), subExecutionContext);
} catch (Exception e) {
throw new FixFlowException(taskInstance.getToken().getFlowNode().getName() + " 节点,用户命令表达式执行异常!", e);
}
}