activiti实现节点处理人为空跳过该节点
1.给每个节点增加任务监听器
2.判断当前节点处理人是否为空。
3.实现TaskListener接口
代码实现
public class NoAssigneeAutoSkipTaskListener implements TaskListener {
private TaskService taskService = SpringContextKit.getBean(TaskService.class);
private ProcessDomainService processDomainService = SpringContextKit.getBean(ProcessDomainService.class);
private final static String HANDLER ="系统";
@Transactional(rollbackFor = Exception.class)
@Override
public void notify(DelegateTask execution) {
String processInstanceId = execution.getProcessInstanceId();
String taskId = execution.getId();
// 流程实例为空则结束
if(StringUtils.isBlank(processInstanceId) && StringUtils.isBlank(taskId)){
return;
}
if(StringUtils.isBlank(execution.getAssignee())){
completeTaskById(taskId,processInstanceId);
}
}
// 审批人为空自动处理
public void completeTaskById(String taskId,String processInstanceId){
// 添加处理意见
taskService.addComment(taskId, procInstId, "pass, "审批人为空字段跳过");
// 自动审批通过
taskService.complete(taskId);
}
}