• activiti7.0工作流,举个例子实现自定义任务监听和执行监听代码


    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) {}
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
  • 相关阅读:
    公网环境下使用VNC远程连接Ubuntu系统桌面
    Verilog使用vscode
    MATLAB中polyvalm函数用法
    Jenkins | 流水线构建使用expect免密交互时卡住,直接退出
    2034. 股票价格波动
    Redis缓存问题二、缓存雪崩
    用对外贸分析工具,让你对竞争对手情况“了如指掌”!
    zabbix之邮箱告警,钉钉告警,电话告警
    Spring Boot 2.x源码系列【6】启动流程深入解析之创建、准备上下文
    C++知识点大纲(期末理论复习用/南邮计科
  • 原文地址:https://blog.csdn.net/weixin_44316527/article/details/134005507