yxk-20260506-自定义监听class:
SaveCurrentTaskAssigneeLocalListener保存当前节点办理人到子流程的局部变量中去
This commit is contained in:
+44
@@ -0,0 +1,44 @@
|
|||||||
|
package org.jeecg.modules.extbpm.listener.task;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.flowable.engine.RuntimeService;
|
||||||
|
import org.flowable.engine.delegate.TaskListener;
|
||||||
|
import org.flowable.task.service.delegate.DelegateTask;
|
||||||
|
import org.jeecg.common.util.SpringContextUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Save the current task assignee as an execution local variable.
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
public class SaveCurrentTaskAssigneeLocalListener implements TaskListener {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
private static final String VARIABLE_NAME = "subApproveLeader";
|
||||||
|
|
||||||
|
private static RuntimeService runtimeService;
|
||||||
|
|
||||||
|
static {
|
||||||
|
runtimeService = SpringContextUtils.getBean(RuntimeService.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void notify(DelegateTask delegateTask) {
|
||||||
|
if (delegateTask == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String assignee = delegateTask.getAssignee();
|
||||||
|
if (StringUtils.isBlank(assignee)) {
|
||||||
|
log.warn("SaveCurrentTaskAssigneeLocalListener skipped, taskId={}, taskDefinitionKey={}, assignee is blank",
|
||||||
|
delegateTask.getId(), delegateTask.getTaskDefinitionKey());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (StringUtils.isBlank(delegateTask.getExecutionId())) {
|
||||||
|
log.warn("SaveCurrentTaskAssigneeLocalListener skipped, taskId={}, taskDefinitionKey={}, executionId is blank",
|
||||||
|
delegateTask.getId(), delegateTask.getTaskDefinitionKey());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
runtimeService.setVariableLocal(delegateTask.getExecutionId(), VARIABLE_NAME, assignee);
|
||||||
|
log.info("SaveCurrentTaskAssigneeLocalListener success, taskId={}, taskDefinitionKey={}, variableName={}, assignee={}",
|
||||||
|
delegateTask.getId(), delegateTask.getTaskDefinitionKey(), VARIABLE_NAME, assignee);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user