public class MyListener implements TaskListener, ExecutionListener {
// 实现任务监听TaskListener
@Override
public void notify(DelegateTask delegateTask) {
log.info("自定义任务监听器执行");
String eventName = delegateTask.getEventName();
switch (eventName){
case EVENTNAME_CREATE:
log.info("===create===");
create(delegateTask);
break;
case EVENTNAME_ASSIGNMENT:
log.info("===assignment===");
assigment(delegateTask);
break;
case EVENTNAME_COMPLETE:
log.info("===complete===");
complete(delegateTask);
break;
case EVENTNAME_DELETE:
log.info("===delete===");
delete(delegateTask);
break;
default:
break;
}
}
public void create(DelegateTask delegateTask){}
public void assigment(DelegateTask delegateTask){}
// 任务监听完成事件
public void complete(DelegateTask delegateTask){
Integer operateFlag = (Integer)delegateTask.getVariableLocal("operateFlag");
log.info("operateFlag:{}",operateFlag);
Workflow workflow = new Workflow();
workflow.setInstanceId(delegateTask.getProcessInstanceId());
// 修改状态
workflowMedia.setStatus(AuditStatus.Audit.getCode());
SpringUtils.getBean(IWorkflowService.class).updateWorkflow(workflowMedia);
}
}
public void delete(DelegateTask delegateTask){}
// 实现执行监听ExecutionListener
@Override
public void notify(DelegateExecution delegateExecution) {
log.info("自定义执行监听器执行");
String eventName = delegateExecution.getEventName();
switch (eventName) {
case EVENTNAME_START:
log.info("===start===");
start(delegateExecution);
break;
case EVENTNAME_END:
log.info("===end===");
end(delegateExecution);
break;
case EVENTNAME_TAKE:
log.info("===take===");
take(delegateExecution);
break;
default:
break;
}
}
private void start(DelegateExecution delegateExecution) {}
private void end(DelegateExecution delegateExecution) {}
private void take(DelegateExecution delegateExecution) {}
}
activiti7.0工作流,举个例子实现自定义任务监听和执行监听代码
于 2023-10-24 10:10:23 首次发布