@Override public List<Task> selectNowTask(String procInstId) { return taskService.createTaskQuery() .processInstanceId(procInstId) .active() .list(); }
@Override public Task complete(CompleteTaskPayload completeTaskPayload) { Task task = task(completeTaskPayload.getTaskId()); if (task == null) { throw new IllegalStateException("Task with id: " + completeTaskPayload.getTaskId() + " cannot be completed because it cannot be found."); } TaskImpl competedTaskData = new TaskImpl(task.getId(), task.getName(), Task.TaskStatus.COMPLETED); taskService.complete(completeTaskPayload.getTaskId(), completeTaskPayload.getVariables(),true); return competedTaskData; }
@Override public void claim(String taskId, String userId) { Task task = taskService.createTaskQuery(). taskId(taskId) .taskCandidateUser(userId) .active() .singleResult(); if (task == null) { throw new NotFoundException("无法签收此任务"); } if (!StringUtils.isNullOrEmpty(task.getAssignee())) { throw new BusinessException("任务已签售"); } else { taskService.claim(taskId, userId); } }
@Override public Task assign(AssignTaskPayload assignTaskPayload) { //We need to release, claim for assigned task is not working! taskService.unclaim(assignTaskPayload.getTaskId()); //Now assign a new user taskService.claim(assignTaskPayload.getTaskId(), assignTaskPayload.getAssignee()); return task(assignTaskPayload.getTaskId()); }
private List<IdentityLink> getIdentityLinks(String taskId) { String authenticatedUserId = securityManager.getAuthenticatedUserId(); if (authenticatedUserId != null && !authenticatedUserId.isEmpty()) { List<String> userRoles = userGroupManager.getUserRoles(authenticatedUserId); List<String> userGroups = userGroupManager.getUserGroups(authenticatedUserId); org.activiti.engine.task.Task internalTask = taskService.createTaskQuery().taskCandidateOrAssigned(authenticatedUserId, userGroups).taskId(taskId).singleResult(); if (internalTask == null) { throw new NotFoundException("Unable to find task for the given id: " + taskId + " for user: " + authenticatedUserId + " (with groups: " + userGroups + " & with roles: " + userRoles + ")"); } return taskService.getIdentityLinksForTask(taskId); } throw new IllegalStateException("There is no authenticated user, we need a user authenticated to find tasks"); }
private WorkflowTask endNormalTask(String taskId, String localTaskId, String transition) { // Retrieve task Task task = taskService.createTaskQuery().taskId(localTaskId).singleResult(); if(task == null) { String msg = messageService.getMessage(ERR_END_UNEXISTING_TASK, taskId); throw new WorkflowException(msg); } // Check if the assignee is equal to the current logged-in user. If not, assign task before ending String currentUserName = AuthenticationUtil.getFullyAuthenticatedUser(); if(task.getAssignee() == null || !task.getAssignee().equals(currentUserName)) { taskService.setAssignee(localTaskId, currentUserName); // Also update pojo used to set the outcome, this will read assignee as wel task.setAssignee(currentUserName); // Re-fetch the task-entity since it's revision has been updated by the setAssignee() call task = taskService.createTaskQuery().taskId(localTaskId).singleResult(); } setOutcome(task, transition); taskService.complete(localTaskId); // The task should have a historicTaskInstance HistoricTaskInstance historicTask = historyService.createHistoricTaskInstanceQuery().taskId(task.getId()).singleResult(); return typeConverter.convert(historicTask); }
/** * 完成任务(先领用再完成) * * @param taskId * @param map */ public void completeTaskByUser(String taskId, String username) { TransactionManager tm = new TransactionManager(); try { tm.begin(); // taskService = processEngine.getTaskService(); if (!isSignTask(taskId, username)) { taskService.claim(taskId, username); } taskService.complete(taskId); tm.commit(); } catch (Exception e) { throw new ProcessException(e); } finally { tm.release(); } }
Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); if (task == null) { throw new OneBaseException("找不到ID" + taskId + "为的任务"); runtimeService.setVariables(parentProcessInstance.getId(), variables); taskService.setAssignee(taskId, userId); taskService.setVariablesLocal(taskId, workFlowBean.getLocalVariables()); taskService.setVariables(taskId, workFlowBean.getVariables()); taskService.complete(taskId, variables); } catch (Exception e) { logger.error("执行环节任务异常", e);
Task task = taskService.createTaskQuery().processInstanceId(processInstance.getProcessInstanceId()).taskAssignee(startUserId).singleResult(); vactionVars.put("startDate", new Date()); vactionVars.put("motivation", "不想上班了,就是这么任性"); taskService.setVariables(task.getId(), vactionVars); taskService.complete(task.getId(), vactionVars); List<Task> taskGroups = taskService.createTaskQuery().processDefinitionId(processInstance.getProcessDefinitionId()). taskCandidateGroup(groupId).list(); System.out.println("用户组审批:" + taskGroups.size()); List<Task> tasks = taskService.createTaskQuery().processDefinitionId(processInstance.getProcessDefinitionId()). taskCandidateOrAssigned(approver).list(); for (Task task1 : tasks) { taskService.claim(task1.getId(), approver); vars.put("suggestion", "拒绝"); taskService.complete(task1.getId(), vars);
Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); String formKey = formService.getTaskFormKey(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); Object renderForm = null; if (renderForm != null) { taskService.setVariablesLocal(task.getId(), formData); taskService.resolveTask(taskId); variables.put(s,formData.get(s)); taskService.complete(taskId,variables); } else { Map<String, Object> taskVariables = runtimePageService.getTaskVariables(formProperties, formData); taskService.setVariablesLocal(taskId, taskVariables); if (DelegationState.PENDING == task.getDelegationState()) { taskService.resolveTask(taskId); taskService.complete(taskId,taskVariables);
request.tryValidate(); Task task = taskService.createTaskQuery() .taskId(request.getTaskId()) .includeProcessVariables() taskService.complete(task.getId(), null, transientVariables); setVariablesLocal(next.getId(), variable); if (!StringUtils.isNullOrEmpty(request.getNextClaimUserId())) { taskService.addCandidateUser(next.getId(), request.getNextClaimUserId()); } else { setCandidate(request.getCompleteUserId(), next);
@Override public void adminReassignProcessTask(ProcessInstance pi, BpmTask bpmTask, String userLogin) { log.severe("User: " + user.getLogin() + " attempting to reassign task " + bpmTask.getInternalTaskId() + " for process: " + pi.getInternalId() + " to user: " + userLogin); ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext(); pi = getProcessData(pi.getInternalId(), ctx); ProcessEngine processEngine = getProcessEngine(); TaskService ts = processEngine.getTaskService(); Task task = ts.createTaskQuery().taskId(bpmTask.getInternalTaskId()).singleResult(); if (nvl(userLogin, "").equals(nvl(task.getAssignee(), ""))) { log.severe("User: " + user.getLogin() + " has not reassigned task " + bpmTask.getInternalTaskId() + " for process: " + pi.getInternalId() + " as the user is the same: " + userLogin); return; } //this call should also take care of swimlanes ts.setAssignee(bpmTask.getInternalTaskId(), userLogin); fillProcessAssignmentData(pi, ctx); log.info("Process.running:" + pi.getRunning()); ctx.getProcessInstanceDAO().saveProcessInstance(pi); log.severe("User: " + user.getLogin() + " has reassigned task " + bpmTask.getInternalTaskId() + " for process: " + pi.getInternalId() + " to user: " + userLogin); }
List<Task> tasks = taskService.createTaskQuery().taskCandidateOrAssigned(assignee).list(); List<TaskVo> volist = new ArrayList<>(); if (!StrUtil.isEmpty(task.getAssignee()) && needDelegate(taskEntity, moduleId)) { taskService.delegateTask(task.getId(), attorney); volist.add(vo); } else { taskService.claim(task.getId(), candidateUser); taskService.delegateTask(task.getId(), attorney); volist.add(vo);
TaskQuery tq = taskService.createTaskQuery(); org.activiti.engine.task.Task task = tq.singleResult(); System.out.println("Task = " + task); List<IdentityLink> linksBefore = taskService.getIdentityLinksForTask(task.getId()); System.out.println("Identity links (before)" + linksBefore); taskService.addUserIdentityLink(task.getId(), "123", CommonProcessVariableNames.MIDPOINT_ASSIGNEE); taskService.addUserIdentityLink(task.getId(), "456", CommonProcessVariableNames.MIDPOINT_ASSIGNEE); List<IdentityLink> linksAfter = taskService.getIdentityLinksForTask(task.getId()); System.out.println("Identity links (after)" + linksAfter); TaskQuery tq1 = taskService.createTaskQuery() .taskInvolvedUser("UserType:"+userLead1Oid) .taskName(TASK_NAME); assertFound(tq1, "involved user (assignee)"); assertFound(taskService.createTaskQuery() .taskInvolvedUser("123") .taskName(TASK_NAME), "involved user (midpoint-assignee 123)"); assertFound(taskService.createTaskQuery() .taskInvolvedUser("456") .taskName(TASK_NAME), "involved user (midpoint-assignee 456)"); assertNotFound(taskService.createTaskQuery() .taskInvolvedUser("123xxx") .taskName(TASK_NAME),
Task task = taskService.createTaskQuery().taskId(workItemId).singleResult(); if (task == null) { throw new ObjectNotFoundException("The work item does not exist"); for (IdentityLink link : taskService.getIdentityLinksForTask(workItemId)) { if (IdentityLinkType.CANDIDATE.equals(link.getType())) { candidateFound = true; return; taskService.unclaim(workItemId); task = taskService.createTaskQuery().taskId(workItemId).singleResult(); if (task == null) { throw new ObjectNotFoundException("The work item does not exist");
@Override public Task claim(ClaimTaskPayload claimTaskPayload) { taskService.claim(claimTaskPayload.getTaskId(), claimTaskPayload.getAssignee()); return task(claimTaskPayload.getTaskId()); }
taskService.addCandidateUser(task.getId(), request.getNextClaimUserId()); } else { bpmTaskService.setCandidate(request.getCreatorId(), task); } else { candidateUserSetter.accept(taskService .createTaskQuery() .processInstanceId(processInstance.getProcessInstanceId()) .taskDefinitionKey(activityId)
public void completeTaskByUser(String taskId, String username, String reason, String bussinessop, String bussinessRemark) { TransactionManager tm = new TransactionManager(); try { tm.begin(); if (!isSignTask(taskId, username)) { taskService.claim(taskId, username); } taskService.completeWithReason(taskId, reason, bussinessop, bussinessRemark); tm.commit(); } catch (Exception e) { throw new ProcessException(e); } finally { tm.release(); } }
private List<IdentityLink> getIdentityLinks(String taskId) { return taskService.getIdentityLinksForTask(taskId); }
|| task.getAssignee() == null && !assignees.isEmpty()) { taskService.setAssignee(task.getId(), !assignees.isEmpty() ? assignees.get(0) : null); List<IdentityLink> currentLinks = taskService.getIdentityLinksForTask(task.getId()); for (IdentityLink currentLink : currentLinks) { if (!CommonProcessVariableNames.MIDPOINT_ASSIGNEE.equals(currentLink.getType())) { } else { if (currentLink.getUserId() != null) { taskService.deleteUserIdentityLink(task.getId(), currentLink.getUserId(), CommonProcessVariableNames.MIDPOINT_ASSIGNEE); } else { taskService.deleteGroupIdentityLink(task.getId(), currentLink.getGroupId(), CommonProcessVariableNames.MIDPOINT_ASSIGNEE); ObjectReferenceType assigneeRef = MiscDataUtil.stringToRef(assignee); if (assigneeRef.getType() == null || QNameUtil.match(UserType.COMPLEX_TYPE, assigneeRef.getType())) { taskService.addUserIdentityLink(task.getId(), assignee, CommonProcessVariableNames.MIDPOINT_ASSIGNEE); } else { taskService.addGroupIdentityLink(task.getId(), assignee, CommonProcessVariableNames.MIDPOINT_ASSIGNEE);