return leaveDao.get(id);
}
public Page<Leave> findTodoTasks(Page<Leave> page, Leave leave) {
//获取所有未未完成任务
User user = UserUtils.getUser();
DetachedCriteria dc = leaveDao.createDetachedCriteria();
if (StringUtils.isNotBlank(leave.getIds())){
dc.add(Restrictions.in("id", getIdList(leave.getIds())));
}
if(leave.getCreateDateStart()!=null) {
dc.add(Restrictions.ge("createDate", leave.getCreateDateStart()));
}
if(leave.getCreateDateEnd()!=null) {
dc.add(Restrictions.le("createDate", leave.getCreateDateEnd()));
}
if(StringUtils.isNotBlank(leave.getLeaveType())) {
dc.add(Restrictions.like("leaveType", leave.getLeaveType()));
}
dc.add(Restrictions.ne("processStatus","已完成"));
dc.add(Restrictions.eq("delFlag", Leave.DEL_FLAG_NORMAL));
dc.createAlias("createBy", "createBy");
dc.createAlias("createBy.office", "office");
dc.add(dataScopeFilter(UserUtils.getUser(), "office", "createBy"));
dc.addOrder(Order.desc("id"));
List<Leave> list = leaveDao.find(dc);
List<Leave> result = Lists.newArrayList();
//过滤出当前用户的任务
if(list.size()>0) {
List<Task> tasks =Lists.newArrayList();
List<Task> todoList = taskService.createTaskQuery().processDefinitionKey(processDefinitionKey).taskAssignee(ObjectUtils.toString(user.getId())).active().list();
List<Task> unsignedTasks = taskService.createTaskQuery().processDefinitionKey(processDefinitionKey).taskCandidateUser(ObjectUtils.toString(user.getId())).active().list();
tasks.addAll(todoList);
tasks.addAll(unsignedTasks);
Set<String> processInstanceIds = Sets.newHashSet();
for (Task task : tasks) {
processInstanceIds.add(task.getProcessInstanceId());