Search in sources :

Example 11 with Deadline

use of org.kie.internal.task.api.model.Deadline in project jbpm by kiegroup.

the class UserTaskAdminServiceImpl method reassign.

protected Long reassign(String deploymentId, long taskId, String timeExpression, DeadlineType type, OrganizationalEntity... orgEntities) throws TaskNotFoundException {
    UserTaskInstanceDesc task = runtimeDataService.getTaskById(taskId);
    validateTask(deploymentId, taskId, task);
    if (timeExpression == null || timeExpression.isEmpty()) {
        throw new IllegalArgumentException("Invalid time expression");
    }
    if (orgEntities == null || orgEntities.length <= 0) {
        throw new IllegalArgumentException("Invalid org entity");
    }
    List<Escalation> escalations = new ArrayList<Escalation>();
    Deadline taskDeadline = TaskModelProvider.getFactory().newDeadline();
    taskDeadline.setEscalations(escalations);
    Escalation escalation = TaskModelProvider.getFactory().newEscalation();
    escalations.add(escalation);
    escalation.setName("Admin reassignment for task " + taskId);
    List<Reassignment> reassignments = new ArrayList<Reassignment>();
    Reassignment reassignment = TaskModelProvider.getFactory().newReassignment();
    reassignment.setPotentialOwners(new ArrayList<>(Arrays.asList(orgEntities)));
    reassignments.add(reassignment);
    escalation.setReassignments(reassignments);
    return userTaskService.execute(task.getDeploymentId(), ProcessInstanceIdContext.get(task.getProcessInstanceId()), new ScheduleTaskDeadlineCommand(identityProvider.getName(), taskId, type, taskDeadline, timeExpression));
}
Also used : Escalation(org.kie.internal.task.api.model.Escalation) Deadline(org.kie.internal.task.api.model.Deadline) ArrayList(java.util.ArrayList) ScheduleTaskDeadlineCommand(org.jbpm.kie.services.impl.admin.commands.ScheduleTaskDeadlineCommand) UserTaskInstanceDesc(org.jbpm.services.api.model.UserTaskInstanceDesc) TaskReassignment(org.jbpm.services.api.admin.TaskReassignment) Reassignment(org.kie.internal.task.api.model.Reassignment)

Aggregations

Deadline (org.kie.internal.task.api.model.Deadline)11 ArrayList (java.util.ArrayList)6 Escalation (org.kie.internal.task.api.model.Escalation)6 Notification (org.kie.internal.task.api.model.Notification)4 Task (org.kie.api.task.model.Task)3 Deadlines (org.kie.internal.task.api.model.Deadlines)3 Reassignment (org.kie.internal.task.api.model.Reassignment)3 Date (java.util.Date)2 ScheduleTaskDeadlineCommand (org.jbpm.kie.services.impl.admin.commands.ScheduleTaskDeadlineCommand)2 UserTaskInstanceDesc (org.jbpm.services.api.model.UserTaskInstanceDesc)2 TaskEventSupport (org.jbpm.services.task.events.TaskEventSupport)2 OrganizationalEntity (org.kie.api.task.model.OrganizationalEntity)2 TaskPersistenceContext (org.kie.internal.task.api.TaskPersistenceContext)2 UserInfo (org.kie.internal.task.api.UserInfo)2 EmailNotification (org.kie.internal.task.api.model.EmailNotification)2 InternalTask (org.kie.internal.task.api.model.InternalTask)2 NotificationEvent (org.kie.internal.task.api.model.NotificationEvent)2 HashMap (java.util.HashMap)1 List (java.util.List)1 Map (java.util.Map)1