From 15fd39fe98b9fdb26f98ff6375b61321fecc2030 Mon Sep 17 00:00:00 2001 From: tony <846249920@qq.com> Date: Fri, 16 Dec 2022 14:53:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=9B=91=E5=90=AC=E5=99=A8=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../listener/FlowExecutionListener.java | 37 +++++++++++++++++++ .../flowable/listener/FlowTaskListener.java | 31 ++++++++++++++++ .../flowable/listener/UserTaskListener.java | 18 --------- .../impl/FlowDefinitionServiceImpl.java | 3 +- 4 files changed, 70 insertions(+), 19 deletions(-) create mode 100644 ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/FlowExecutionListener.java create mode 100644 ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/FlowTaskListener.java delete mode 100644 ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/UserTaskListener.java diff --git a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/FlowExecutionListener.java b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/FlowExecutionListener.java new file mode 100644 index 00000000..2624a7b8 --- /dev/null +++ b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/FlowExecutionListener.java @@ -0,0 +1,37 @@ +package com.ruoyi.flowable.listener; + +import com.alibaba.fastjson2.JSON; +import lombok.extern.slf4j.Slf4j; +import org.flowable.common.engine.api.delegate.Expression; +import org.flowable.engine.delegate.DelegateExecution; +import org.flowable.engine.delegate.ExecutionListener; +import org.springframework.stereotype.Component; + +/** + * 执行监听器 + * + * 执行监听器允许在执行过程中执行Java代码。 + * 执行监听器可以捕获事件的类型: + * 流程实例启动,结束 + * 输出流捕获 + * 获取启动,结束 + * 路由开始,结束 + * 中间事件开始,结束 + * 触发开始事件,触发结束事件 + * + * @author Xuan xuan + * @date 2022/12/16 + */ +@Slf4j +@Component +public class FlowExecutionListener implements ExecutionListener { + /** + * 流程设计器添加的参数 + */ + private Expression param; + + @Override + public void notify(DelegateExecution execution) { + log.info("执行监听器:{}", JSON.toJSONString(execution)); + } +} diff --git a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/FlowTaskListener.java b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/FlowTaskListener.java new file mode 100644 index 00000000..53e89e3a --- /dev/null +++ b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/FlowTaskListener.java @@ -0,0 +1,31 @@ +package com.ruoyi.flowable.listener; + +import com.alibaba.fastjson2.JSON; +import lombok.extern.slf4j.Slf4j; +import org.flowable.engine.delegate.TaskListener; +import org.flowable.task.service.delegate.DelegateTask; +import org.springframework.stereotype.Component; + +/** + * 任务监听器 + * + * create(创建):在任务被创建且所有的任务属性设置完成后才触发 + * assignment(指派):在任务被分配给某个办理人之后触发 + * complete(完成):在配置了监听器的上一个任务完成时触发 + * delete(删除):在任务即将被删除前触发。请注意任务由completeTask正常完成时也会触发 + * + * @author Xuan xuan + * @date 2021/4/20 + */ +@Slf4j +@Component +public class FlowTaskListener implements TaskListener{ + + @Override + public void notify(DelegateTask delegateTask) { + + log.info("任务监听器:{}", JSON.toJSONString(delegateTask)); + // TODO 获取事件类型 delegateTask.getEventName(),可以通过监听器给任务执行人发送相应的通知消息 + } + +} diff --git a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/UserTaskListener.java b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/UserTaskListener.java deleted file mode 100644 index 4f2b6536..00000000 --- a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/UserTaskListener.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.ruoyi.flowable.listener; - -import org.flowable.engine.delegate.TaskListener; -import org.flowable.task.service.delegate.DelegateTask; -import org.springframework.stereotype.Component; - -/** - * @author Xuan xuan - * @date 2021/4/20 - */ -public class UserTaskListener implements TaskListener{ - - @Override - public void notify(DelegateTask delegateTask) { - - } - -} diff --git a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/FlowDefinitionServiceImpl.java b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/FlowDefinitionServiceImpl.java index aa218794..0dd6680b 100644 --- a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/FlowDefinitionServiceImpl.java +++ b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/FlowDefinitionServiceImpl.java @@ -193,7 +193,8 @@ public class FlowDefinitionServiceImpl extends FlowServiceFactory implements IFl if (Objects.nonNull(processDefinition) && processDefinition.isSuspended()) { return AjaxResult.error("流程已被挂起,请先激活流程"); } - +// // 加入多实例用户到流程变量中 +// variables.put("userList", sysUserService.selectUserList(null)); // 设置流程发起人Id到流程中 SysUser sysUser = SecurityUtils.getLoginUser().getUser(); identityService.setAuthenticatedUserId(sysUser.getUserId().toString());