wisdomisite-java/src/main/java/com/zhgd/xmgl/util/FlowSeviceUtil.java

66 lines
2.4 KiB
Java
Raw Normal View History

package com.zhgd.xmgl.util;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wflow.workflow.bean.vo.ProcessTaskVo;
import com.zhgd.xmgl.security.SecurityUtil;
import com.zhgd.xmgl.security.util.SecurityUtils;
import com.zhgd.xmgl.tenant.TenantContextHolder;
import org.flowable.engine.RuntimeService;
import org.flowable.engine.TaskService;
import org.flowable.engine.runtime.ProcessInstanceQuery;
import org.flowable.task.api.Task;
import org.flowable.task.api.TaskQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@Component
public class FlowSeviceUtil {
@Lazy
@Autowired
private TaskService taskService;
@Lazy
@Autowired
private RuntimeService runtimeService;
/**
* 获取我的待办的instanceIdList
*
* @param code 表单id安全检查wf66f6451c48b718d0aaf27522
* @return
*/
public List<String> getMyTodoInstanceIds(String code,String projectSn) {
if (SecurityUtils.getUser() == null) {
ArrayList<String> list = new ArrayList<>();
list.add("-1");
return list;
}
String userId = String.valueOf(SecurityUtils.getUser().getUserId());
TaskQuery taskQuery = taskService.createTaskQuery();
if (StrUtil.isNotBlank(code)) {
taskQuery.processDefinitionKey(code);
}
ProcessInstanceQuery processInstanceQuery = runtimeService.createProcessInstanceQuery();
Set<String> stringSet = processInstanceQuery.list().stream().map(p -> p.getProcessInstanceId()).collect(Collectors.toSet());
taskQuery.active().taskTenantId(projectSn)
.processInstanceIdIn(stringSet)
.taskCandidateOrAssigned(userId)
.orderByTaskCreateTime().desc();
Page<ProcessTaskVo> page = new Page<>();
List<Task> taskList = new ArrayList<>();
taskList = taskQuery.list();
List<String> list = taskList.stream().map(o -> o.getProcessInstanceId()).collect(Collectors.toList());
if (CollUtil.isEmpty(list)) {
list.add("-1");
}
return list;
}
}