m87里的光 2024-08-16 23:01 采纳率: 0%
浏览 68

芋道系统工作流,请问自动跳过审批人为空

使用宇道工作流,请问自动跳过审批人为空?

网上是使用这种方式

Map<String, Object> varMap = new HashMap<>();
varMap.put("skip", false);
varMap.put("_FLOWABLE_SKIP_EXPRESSION_ENABLED", true);
String procId = runtimeService.startProcessInstanceByKey("simpleTextOnly", varMap).getId();
-------------------------------------------------------------------------------------------------------------------------------
如果是想要重新调整审批人为空时的逻辑,可以通过 TaskListener 监听器的实现类来代替全局监听的作用,以下代码可以参考下,记得移除全局监听器的逻辑

`
@Slf4j
@Component
public class SystemTaskListener implements TaskListener {
@Resource
private TaskService taskService;

@Override
public void notify(DelegateTask delegateTask) {
String assignee = delegateTask.getAssignee();
if (StringUtils.isEmpty(assignee)) {//为空时跳过
taskService.setAssignee(delegateTask.getId(), "");
taskService.complete(delegateTask.getId());
return;
}
//更换执行人
//taskService.setAssignee(delegateTask.getId(), "new_userId");
}

}
  • 写回答

1条回答 默认 最新

  • 一直免费一直爽 2024-08-16 23:01
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    要实现自动跳过审批人为空的逻辑,可以通过在流程定义中添加一个任务监听器(TaskListener)来实现。以下是一个简单的示例:

    1. 首先,创建一个实现TaskListener接口的类,例如SystemTaskListener
    import org.activiti.engine.delegate.DelegateTask;
    import org.activiti.engine.delegate.TaskListener;
    import org.springframework.stereotype.Component;
    
    @Component
    public class SystemTaskListener implements TaskListener {
        @Override
        public void notify(DelegateTask delegateTask) {
            String assignee = delegateTask.getAssignee();
            if (assignee == null || assignee.isEmpty()) {
                // 审批人为空时跳过
                delegateTask.setSkipped(true);
            } else {
                // 更换执行人
                // delegateTask.setAssignee("new_userId");
            }
        }
    }
    
    1. 在流程定义文件中,为需要检查审批人的节点添加任务监听器:
    <userTask id="approveTask" name="审批任务">
        <extensionElements>
            <activiti:taskListener event="create" class="com.example.SystemTaskListener"/>
        </extensionElements>
    </userTask>
    

    这样,在流程实例创建时,如果审批人为空,任务将被自动跳过。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月16日