yxk-20260506-自定义监听class:

SaveCurrentTaskAssigneeLocalListener保存当前节点办理人到子流程的局部变量中去
This commit is contained in:
ye1023
2026-05-06 09:14:05 +08:00
parent 2c50c98549
commit 1b4a8b6b55
@@ -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);
}
}