mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
ALF-10598: Activiti now offers single query for multiple candidate groups + hooked into ActivitiWorkflowEngine
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31041 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1456,20 +1456,18 @@ public class ActivitiWorkflowEngine extends BPMEngine implements WorkflowEngine
|
||||
{
|
||||
// Candidate user
|
||||
addTasksForCandidateUser(firstAuthority, resultingTasks);
|
||||
if(authorities.size() > 1) {
|
||||
List<String> remainingAuthorities = authorities.subList(1, authorities.size());
|
||||
addTasksForCandidateGroups(remainingAuthorities, resultingTasks);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Candidate group
|
||||
addTasksForCandidateGroup(firstAuthority, resultingTasks);
|
||||
}
|
||||
for (int i=1; i<authorities.size(); i++)
|
||||
{
|
||||
// All folowing authorities are groups, just add the cadidate-group tasks
|
||||
addTasksForCandidateGroup(authorities.get(i), resultingTasks);
|
||||
addTasksForCandidateGroups(authorities, resultingTasks);
|
||||
}
|
||||
|
||||
List<Task> tasks = new ArrayList<Task>();
|
||||
|
||||
// Only tasks that have NO assignee, should be returned
|
||||
for(Task task : resultingTasks.values())
|
||||
{
|
||||
@@ -1495,14 +1493,16 @@ public class ActivitiWorkflowEngine extends BPMEngine implements WorkflowEngine
|
||||
}
|
||||
}
|
||||
|
||||
private void addTasksForCandidateGroup(String groupName, Map<String, Task> resultingTasks)
|
||||
private void addTasksForCandidateGroups(List<String> groupNames, Map<String, Task> resultingTasks)
|
||||
{
|
||||
List<Task> tasks = taskService.createTaskQuery().taskCandidateGroup(groupName).list();
|
||||
if(groupNames != null && groupNames.size() > 0) {
|
||||
List<Task> tasks = taskService.createTaskQuery().taskCandidateGroupIn(groupNames).list();
|
||||
for(Task task : tasks)
|
||||
{
|
||||
resultingTasks.put(task.getId(), task);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void addTasksForCandidateUser(String userName, Map<String, Task> resultingTasks)
|
||||
{
|
||||
|
Reference in New Issue
Block a user