Browse Source

feat: 监听器处理

master
tony 3 years ago
parent
commit
15fd39fe98
  1. 37
      ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/FlowExecutionListener.java
  2. 31
      ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/FlowTaskListener.java
  3. 18
      ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/UserTaskListener.java
  4. 3
      ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/FlowDefinitionServiceImpl.java

37
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));
}
}

31
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(),可以通过监听器给任务执行人发送相应的通知消息
}
}

18
ruoyi-flowable/src/main/java/com/ruoyi/flowable/listener/UserTaskListener.java

@ -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) {
}
}

3
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());

Loading…
Cancel
Save