Status status = newStatus != null ? newStatus : ti.getTaskData().getStatus(); result = persistenceContext.queryStringWithParametersInTransaction("select bts from BAMTaskSummaryImpl bts where bts.taskId=:taskId", true, persistenceContext.addParametersToMap("taskId", ti.getId()), BAMTaskSummaryImpl.class); logger.warn("Unable find bam task entry for task id {} '{}', skipping bam task update", ti.getId(), ti.getName()); return null; result.setStatus(status.toString()); if (ti.getTaskData().getActualOwner() != null) { result.setUserId(ti.getTaskData().getActualOwner().getId()); persistenceContext.merge(result);
protected void cleanup(TaskPersistenceContext persistenceContext) { if (emf != null) { persistenceContext.close(); } }
@Override public RequestContext createContext() { final TaskPersistenceContext persistenceContext = tpm.getPersistenceContext(); persistenceContext.joinTransaction(); return new TransactionContext(persistenceContext); }
public List<TaskSummary> getTasksAssignedAsPotentialOwner(String userId) { return (List<TaskSummary>) persistenceContext.queryWithParametersInTransaction("TasksAssignedAsPotentialOwner", persistenceContext.addParametersToMap("userId", userId), ClassUtil.<List<TaskSummary>>castClass(List.class)); }
public long addAttachment(long taskId, Attachment attachment, Content content) { Task task = persistenceContext.findTask(taskId); persistenceContext.persistAttachment(attachment); persistenceContext.persistContent(content); ((InternalAttachment) attachment).setContent(content); persistenceContext.addAttachmentToTask(attachment, task); return attachment.getId(); }
public List<TaskEvent> getTaskEventsById(long taskId) { return persistenceContext.queryStringWithParametersInTransaction("select te from TaskEvent te where te.taskId =:taskId ", persistenceContext.addParametersToMap("taskId", taskId), ClassUtil.<List<TaskEvent>>castClass(List.class)); }
@Override public void afterTaskResumedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.RESUMED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId)); AuditTaskImpl auditTaskImpl = getAuditTask(event, persistenceContext, ti); if (auditTaskImpl == null) { logger.warn("Unable find audit task entry for task id {} '{}', skipping audit task update", ti.getId(), ti.getName()); return; } auditTaskImpl.setDescription(ti.getDescription()); auditTaskImpl.setName(ti.getName()); auditTaskImpl.setActivationTime(ti.getTaskData().getActivationTime()); auditTaskImpl.setPriority(ti.getPriority()); auditTaskImpl.setDueDate(ti.getTaskData().getExpirationTime()); auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setLastModificationDate(event.getEventDate()); persistenceContext.merge(auditTaskImpl); } finally { cleanup(persistenceContext); } }
@Override public void afterTaskCompletedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.COMPLETED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId)); AuditTaskImpl auditTaskImpl = getAuditTask(event, persistenceContext, ti); if (auditTaskImpl == null) { logger.warn("Unable find audit task entry for task id {} '{}', skipping audit task update", ti.getId(), ti.getName()); return; } auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setLastModificationDate(event.getEventDate()); persistenceContext.merge(auditTaskImpl); } finally { cleanup(persistenceContext); } }
TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { if(ti.getTaskData().getProcessId() != null){ userId = ti.getTaskData().getProcessId(); ti.getId(), ti.getName(), ti.getTaskData().getStatus().name(), ti.getTaskData().getActivationTime(), (ti.getTaskData().getActualOwner() != null) ? ti.getTaskData().getActualOwner().getId() : "", ti.getDescription(), ti.getPriority(), (ti.getTaskData().getCreatedBy() != null) ? ti.getTaskData().getCreatedBy().getId() : "", ti.getTaskData().getCreatedOn(), ti.getTaskData().getExpirationTime(), event.getEventDate() ); persistenceContext.persist(auditTaskImpl); persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.ADDED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId)); } finally { cleanup(persistenceContext);
Status status = newStatus != null ? newStatus : ti.getTaskData().getStatus(); if (ti.getTaskData().getActualOwner() != null) { actualOwner = ti.getTaskData().getActualOwner().getId(); result = new BAMTaskSummaryImpl(ti.getId(), ti.getName(), status.toString(), event.getEventDate(), actualOwner, ti.getTaskData().getProcessInstanceId()); if (worker != null) worker.createTask(result, ti); persistenceContext.persist(result);
persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.UPDATED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId, message)); if( (ti.getName() != null && !ti.getName().equals(auditTaskImpl.getName())) || (ti.getName() == null && auditTaskImpl.getName() != null)){ String message = getUpdateFieldLog("Name", auditTaskImpl.getName(), ti.getName()); persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.UPDATED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId, message)); if( auditTaskImpl.getPriority() != ti.getPriority()){ String message = getUpdateFieldLog("Priority", String.valueOf(auditTaskImpl.getPriority()), String.valueOf(ti.getPriority())); persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.UPDATED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId, message)); fromDate, toDate ); persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.UPDATED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId, message)); auditTaskImpl.setDueDate(ti.getTaskData().getExpirationTime()); auditTaskImpl.setLastModificationDate(event.getEventDate()); persistenceContext.merge(auditTaskImpl);
@Override public void beforeTaskReleasedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.RELEASED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId)); } finally { cleanup(persistenceContext); } }
params.put("taskId", task.getId()); int removed = persistenceContext.executeUpdate("DeleteTaskVariableForTask", params); logger.debug("Deleted {} output variables logs for task id {}", removed, task.getId()); persistenceContext.persist(new TaskEventImpl(task.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.UPDATED, task.getTaskData().getProcessInstanceId(), task.getTaskData().getWorkItemId(), userId, message)); AuditTaskImpl auditTaskImpl = getAuditTask(event, persistenceContext, task); persistenceContext.merge(auditTaskImpl);
public void unschedule(long taskId, DeadlineType type) { Task task = persistenceContext.findTask(taskId); String deploymentId = task.getTaskData().getDeploymentId(); List<DeadlineSummary> resultList = (List<DeadlineSummary>)persistenceContext.queryWithParametersInTransaction("UnescalatedStartDeadlinesByTaskId", persistenceContext.addParametersToMap("taskId", taskId), ClassUtil.<List<DeadlineSummary>>castClass(List.class)); for (DeadlineSummary summary : resultList) { TaskDeadlineJob deadlineJob = new TaskDeadlineJob(summary.getTaskId(), summary.getDeadlineId(), DeadlineType.START, deploymentId, task.getTaskData().getProcessInstanceId()); logger.debug("unscheduling timer job for deadline {} {} and task {} using timer service {}", deadlineJob.getId(), summary.getDeadlineId(), taskId, timerService); JobHandle jobHandle = jobHandles.remove(deadlineJob.getId()); if (jobHandle == null) { jobHandle = ((GlobalTimerService) timerService).buildJobHandleForContext(new TaskDeadlineJobContext(deadlineJob.getId(), task.getTaskData().getProcessInstanceId(), deploymentId)); List<DeadlineSummary> resultList = (List<DeadlineSummary>)persistenceContext.queryWithParametersInTransaction("UnescalatedEndDeadlinesByTaskId", persistenceContext.addParametersToMap("taskId", taskId), ClassUtil.<List<DeadlineSummary>>castClass(List.class)); for (DeadlineSummary summary : resultList) {
protected AuditTaskImpl getAuditTask(TaskPersistenceContext persistenceContext, Task ti) { AuditTaskImpl auditTaskImpl = persistenceContext.queryWithParametersInTransaction("getAuditTaskById", true, persistenceContext.addParametersToMap("taskId", ti.getId()), ClassUtil.<AuditTaskImpl>castClass(AuditTaskImpl.class)); return auditTaskImpl; }
public long addComment(long taskId, Comment comment) { Task task = persistenceContext.findTask(taskId); if (persistenceContext.findUser(comment.getAddedBy().getId()) == null) { persistenceContext.persistUser(comment.getAddedBy()); } persistenceContext.persistComment(comment); persistenceContext.addCommentToTask(comment, task); return comment.getId(); }
@Override public UserTaskLoad getUserTaskLoad(User user, TaskContext context) { UserTaskLoad load = new UserTaskLoad(getIdentifier(), user); TaskPersistenceContext persistenceContext = ((org.jbpm.services.task.commands.TaskContext)context).getPersistenceContext(); Map<String, Object> params = new HashMap<>(); params.put("owner", user.getId()); logger.debug("DB query to be used for finding assignments :: '{}'", getSingleUserQuery()); List<Integer> assignmentCounts = persistenceContext.queryStringWithParametersInTransaction(getSingleUserQuery(), params, ClassUtil.<List<Integer>>castClass(List.class)); if (assignmentCounts != null && !assignmentCounts.isEmpty()) { load.setCalculatedLoad(new Double(assignmentCounts.get(0))); } else { load.setCalculatedLoad(new Double(0)); } return load; }
private List<DeadlineSummary> getAlldeadlines(TaskPersistenceContext persistenceContext, TaskData taskData) { List<DeadlineSummary> resultList; // get no-completed notification if(Status.InProgress == taskData.getStatus() || Status.Suspended == taskData.getStatus()){ resultList = persistenceContext.queryWithParametersInTransaction("UnescalatedEndDeadlinesByTaskIdForReminder", persistenceContext.addParametersToMap("taskId", taskId), ClassUtil.<List<DeadlineSummary>>castClass(List.class)); }else{ // get no-started notification resultList =persistenceContext.queryWithParametersInTransaction("UnescalatedStartDeadlinesByTaskIdForReminder", persistenceContext.addParametersToMap("taskId", taskId), ClassUtil.<List<DeadlineSummary>>castClass(List.class)); } return resultList; }
@Override public Assignment apply(Task task, TaskContext context, String excludedUser) { if (task.getPeopleAssignments().getPotentialOwners().isEmpty()) { logger.debug("No potential owners in the task {} can't auto assign", task); return null; List<OrganizationalEntity> potentialOwners = new ArrayList<>(task.getPeopleAssignments().getPotentialOwners()); Set<String> resolvedUsers = new TreeSet<>(Collections.reverseOrder()); List<OrganizationalEntity> excludedOwners = ((InternalPeopleAssignments)task.getPeopleAssignments()).getExcludedOwners(); List<Assignment> assignments = persistenceContext.queryStringWithParametersInTransaction(getQuery(), params, ClassUtil.<List<Assignment>>castClass(List.class));
@Override public List<BAMTaskSummaryImpl> execute(Context context) { TaskPersistenceContext persistenceContext = ((TaskContext) context).getPersistenceContext(); if( this.taskId != null ) { return persistenceContext.queryWithParametersInTransaction("getAllBAMTaskSummaries", persistenceContext.addParametersToMap("taskId", taskId), ClassUtil.<List<BAMTaskSummaryImpl>>castClass(List.class)); } else { return persistenceContext.queryStringInTransaction("FROM BAMTaskSummaryImpl", ClassUtil.<List<BAMTaskSummaryImpl>>castClass(List.class)); } }