TSK-156 Add workbasketSummary to task. Refactor loading and querying of tasks.
This commit is contained in:
parent
5419132014
commit
a9ebb41a29
|
@ -409,7 +409,13 @@ public class TaskImpl implements Task {
|
|||
taskSummary.setAttachmentSummaries(attSummaries);
|
||||
taskSummary.setBusinessProcessId(this.businessProcessId);
|
||||
taskSummary.setClaimed(claimed);
|
||||
taskSummary.setClassificationSummary(classificationSummary);
|
||||
if (classificationSummary != null) {
|
||||
taskSummary.setClassificationSummary(classificationSummary);
|
||||
} else {
|
||||
ClassificationSummaryImpl aClassificationSummary = new ClassificationSummaryImpl();
|
||||
aClassificationSummary.setKey(classificationKey);
|
||||
taskSummary.setClassificationSummary(aClassificationSummary);
|
||||
}
|
||||
taskSummary.setCompleted(completed);
|
||||
taskSummary.setCreated(created);
|
||||
taskSummary.setCustom1(custom1);
|
||||
|
@ -457,6 +463,14 @@ public class TaskImpl implements Task {
|
|||
this.classificationSummary = classificationSummary;
|
||||
}
|
||||
|
||||
public ClassificationSummaryImpl getClassificationSummaryImpl() {
|
||||
return (ClassificationSummaryImpl) classificationSummary;
|
||||
}
|
||||
|
||||
public void setClassificationSummaryImpl(ClassificationSummaryImpl classificationSummary) {
|
||||
this.classificationSummary = classificationSummary;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Attachment removeAttachment(String attachmentId) {
|
||||
Attachment result = null;
|
||||
|
|
|
@ -3,6 +3,7 @@ package pro.taskana.impl;
|
|||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
@ -42,7 +43,6 @@ import pro.taskana.model.ObjectReference;
|
|||
import pro.taskana.model.TaskState;
|
||||
import pro.taskana.model.WorkbasketAuthorization;
|
||||
import pro.taskana.model.mappings.AttachmentMapper;
|
||||
import pro.taskana.model.mappings.ObjectReferenceMapper;
|
||||
import pro.taskana.model.mappings.TaskMapper;
|
||||
import pro.taskana.security.CurrentUserContext;
|
||||
|
||||
|
@ -64,7 +64,7 @@ public class TaskServiceImpl implements TaskService {
|
|||
private AttachmentMapper attachmentMapper;
|
||||
|
||||
public TaskServiceImpl(TaskanaEngine taskanaEngine, TaskMapper taskMapper,
|
||||
ObjectReferenceMapper objectReferenceMapper, AttachmentMapper attachmentMapper) {
|
||||
AttachmentMapper attachmentMapper) {
|
||||
super();
|
||||
this.taskanaEngine = taskanaEngine;
|
||||
this.taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
|
||||
|
@ -211,22 +211,27 @@ public class TaskServiceImpl implements TaskService {
|
|||
resultTask = taskMapper.findById(id);
|
||||
if (resultTask != null) {
|
||||
List<AttachmentImpl> attachmentImpls = attachmentMapper.findAttachmentsByTaskId(resultTask.getId());
|
||||
List<Attachment> attachments = addClassificationSummariesToAttachments(resultTask, attachmentImpls);
|
||||
resultTask.setAttachments(attachments);
|
||||
Classification classification;
|
||||
try {
|
||||
classification = this.classificationService.getClassification(resultTask.getClassificationKey(),
|
||||
resultTask.getDomain());
|
||||
} catch (ClassificationNotFoundException e) {
|
||||
LOGGER.debug(
|
||||
"getTask(taskId = {}) caught a ClassificationNotFoundException when attemptin to get "
|
||||
+ "the classification for the task. Throwing a SystemException ",
|
||||
id);
|
||||
throw new SystemException(
|
||||
"TaskService.getTask could not find the classification associated to " + id);
|
||||
if (attachmentImpls == null) {
|
||||
attachmentImpls = new ArrayList<>();
|
||||
}
|
||||
|
||||
resultTask.setClassificationSummary(classification.asSummary());
|
||||
List<ClassificationSummary> classifications;
|
||||
try {
|
||||
classifications = findClassificationForTaskImplAndAttachments(resultTask, attachmentImpls);
|
||||
} catch (NotAuthorizedException e1) {
|
||||
LOGGER.error(
|
||||
"ClassificationQuery unexpectedly returned NotauthorizedException. Throwing SystemException ");
|
||||
throw new SystemException("ClassificationQuery unexpectedly returned NotauthorizedException.");
|
||||
}
|
||||
|
||||
List<Attachment> attachments = addClassificationSummariesToAttachments(resultTask, attachmentImpls,
|
||||
classifications);
|
||||
resultTask.setAttachments(attachments);
|
||||
|
||||
ClassificationSummary classification = getMatchingClassificationFromList(classifications,
|
||||
resultTask.getClassificationSummary().getKey(), resultTask.getDomain());
|
||||
|
||||
resultTask.setClassificationSummary(classification);
|
||||
return resultTask;
|
||||
} else {
|
||||
LOGGER.warn("Method getTaskById() didn't find task with id {}. Throwing TaskNotFoundException", id);
|
||||
|
@ -402,7 +407,6 @@ public class TaskServiceImpl implements TaskService {
|
|||
attachmentMapper.insert(attachmentImpl);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -436,62 +440,127 @@ public class TaskServiceImpl implements TaskService {
|
|||
|
||||
List<TaskSummary> augmentTaskSummariesByContainedSummaries(List<TaskSummaryImpl> taskSummaries)
|
||||
throws NotAuthorizedException {
|
||||
LOGGER.debug("entry to augmentTaskSummariesByContainedSummaries()");
|
||||
List<TaskSummary> result = new ArrayList<>();
|
||||
if (taskSummaries == null || taskSummaries.isEmpty()) {
|
||||
return result;
|
||||
}
|
||||
addClassificationSummariesToTaskSummaries(taskSummaries);
|
||||
|
||||
Set<String> taskIdSet = taskSummaries.stream().map(TaskSummaryImpl::getTaskId).collect(Collectors.toSet());
|
||||
String[] taskIdArray = taskIdSet.toArray(new String[0]);
|
||||
|
||||
LOGGER.debug("augmentTaskSummariesByContainedSummaries() about to query for attachments ");
|
||||
List<AttachmentSummaryImpl> attachmentSummaries = attachmentMapper
|
||||
.findAttachmentSummariesByTaskIds(taskIdArray);
|
||||
|
||||
List<ClassificationSummary> classifications = findClassificationsForTasksAndAttachments(taskSummaries,
|
||||
attachmentSummaries);
|
||||
|
||||
addClassificationSummariesToTaskSummaries(taskSummaries, classifications);
|
||||
addWorkbasketSummariesToTaskSummaries(taskSummaries);
|
||||
addAttachmentSummariesToTaskSummaries(taskSummaries);
|
||||
addAttachmentSummariesToTaskSummaries(taskSummaries, attachmentSummaries, classifications);
|
||||
result.addAll(taskSummaries);
|
||||
LOGGER.debug("exit from to augmentTaskSummariesByContainedSummaries()");
|
||||
return result;
|
||||
}
|
||||
|
||||
void addClassificationSummariesToTaskSummaries(List<TaskSummaryImpl> tasks) throws NotAuthorizedException {
|
||||
private void addClassificationSummariesToTaskSummaries(List<TaskSummaryImpl> tasks,
|
||||
List<ClassificationSummary> classifications) {
|
||||
if (tasks == null || tasks.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// calculate parameters for classification query: domains and keys
|
||||
// use Set to avoid duplicate entries
|
||||
Set<String> classificationDomainSet = new HashSet<>();
|
||||
Set<String> classificationKeySet = new HashSet<>();
|
||||
for (TaskSummaryImpl task : tasks) {
|
||||
classificationDomainSet.add(task.getDomain());
|
||||
classificationKeySet.add(task.getClassificationSummary().getKey());
|
||||
}
|
||||
String[] classificationDomainArray = classificationDomainSet.toArray(new String[0]);
|
||||
String[] classificationKeyArray = classificationKeySet.toArray(new String[0]);
|
||||
|
||||
// perform classification query
|
||||
List<ClassificationSummary> classifications = this.classificationService.createClassificationQuery()
|
||||
.domain(classificationDomainArray)
|
||||
.key(classificationKeyArray)
|
||||
.list();
|
||||
|
||||
// assign query results to appropriate tasks.
|
||||
for (TaskSummaryImpl task : tasks) {
|
||||
String taskClassKey = task.getClassificationSummary().getKey();
|
||||
String taskDomain = task.getDomain();
|
||||
|
||||
// find the appropriate classification from the query result
|
||||
ClassificationSummary aClassification = classifications.stream()
|
||||
.filter(x -> taskClassKey != null && taskClassKey.equals(x.getKey()) && taskDomain != null
|
||||
&& taskDomain.equals(x.getDomain()))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
if (aClassification == null) {
|
||||
LOGGER.error("Could not find a Classification for task {}.", task.getTaskId());
|
||||
throw new SystemException("Could not find a Classification for task " + task.getTaskId());
|
||||
}
|
||||
|
||||
ClassificationSummary aClassification = getMatchingClassificationFromList(classifications,
|
||||
task.getClassificationSummary().getKey(),
|
||||
task.getDomain());
|
||||
// set the classification on the task object
|
||||
task.setClassificationSummary(aClassification);
|
||||
}
|
||||
}
|
||||
|
||||
private ClassificationSummary getMatchingClassificationFromList(List<ClassificationSummary> classifications,
|
||||
String taskClassKey, String taskDomain) {
|
||||
ClassificationSummary aClassification = classifications.stream()
|
||||
.filter(x -> taskClassKey != null && taskClassKey.equals(x.getKey()) && taskDomain != null
|
||||
&& taskDomain.equals(x.getDomain()))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
if (aClassification == null) {
|
||||
// search in "" domain
|
||||
aClassification = classifications.stream()
|
||||
.filter(x -> taskClassKey != null && taskClassKey.equals(x.getKey()) && "".equals(x.getDomain()))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
if (aClassification == null) {
|
||||
LOGGER.error("Could not find a Classification for task ");
|
||||
throw new SystemException("Could not find a Classification for task ");
|
||||
}
|
||||
}
|
||||
return aClassification;
|
||||
}
|
||||
|
||||
private List<ClassificationSummary> findClassificationsForTasksAndAttachments(
|
||||
List<TaskSummaryImpl> taskSummaries, List<AttachmentSummaryImpl> attachmentSummaries)
|
||||
throws NotAuthorizedException {
|
||||
LOGGER.debug("entry to getClassificationsForTasksAndAttachments()");
|
||||
if (taskSummaries == null || taskSummaries.isEmpty()) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
Set<String> classificationDomainSet = taskSummaries.stream().map(TaskSummaryImpl::getDomain).collect(
|
||||
Collectors.toSet());
|
||||
// add "" domain in case the classification exists only there (fallback for tasks)
|
||||
classificationDomainSet.add("");
|
||||
|
||||
Set<String> classificationKeySet = taskSummaries.stream()
|
||||
.map(t -> t.getClassificationSummary().getKey())
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
if (attachmentSummaries != null && !attachmentSummaries.isEmpty()) {
|
||||
Set<String> classificationKeysFromAttachments = attachmentSummaries.stream()
|
||||
.map(t -> t.getClassificationSummary().getKey())
|
||||
.collect(Collectors.toSet());
|
||||
classificationKeySet.addAll(classificationKeysFromAttachments);
|
||||
}
|
||||
|
||||
return queryClassificationsForTasksAndAttachments(classificationDomainSet, classificationKeySet);
|
||||
}
|
||||
|
||||
private List<ClassificationSummary> findClassificationForTaskImplAndAttachments(TaskImpl task,
|
||||
List<AttachmentImpl> attachmentImpls) throws NotAuthorizedException {
|
||||
|
||||
Set<String> classificationDomainSet = new HashSet<>(Arrays.asList(task.getDomain(), ""));
|
||||
Set<String> classificationKeySet = new HashSet<>(Arrays.asList(task.getClassificationKey()));
|
||||
|
||||
if (attachmentImpls != null && !attachmentImpls.isEmpty()) {
|
||||
Set<String> classificationKeysFromAttachments = attachmentImpls.stream()
|
||||
.map(t -> t.getClassificationSummary().getKey())
|
||||
.collect(Collectors.toSet());
|
||||
classificationKeySet.addAll(classificationKeysFromAttachments);
|
||||
}
|
||||
|
||||
return queryClassificationsForTasksAndAttachments(classificationDomainSet, classificationKeySet);
|
||||
|
||||
}
|
||||
|
||||
private List<ClassificationSummary> queryClassificationsForTasksAndAttachments(Set<String> classificationDomainSet,
|
||||
Set<String> classificationKeySet) throws NotAuthorizedException {
|
||||
|
||||
String[] classificationDomainArray = classificationDomainSet.toArray(new String[0]);
|
||||
String[] classificationKeyArray = classificationKeySet.toArray(new String[0]);
|
||||
|
||||
LOGGER.debug("getClassificationsForTasksAndAttachments() about to query classifications and exit");
|
||||
// perform classification query
|
||||
return this.classificationService.createClassificationQuery()
|
||||
.domain(classificationDomainArray)
|
||||
.key(classificationKeyArray)
|
||||
.list();
|
||||
}
|
||||
|
||||
private void addWorkbasketSummariesToTaskSummaries(List<TaskSummaryImpl> taskSummaries)
|
||||
throws NotAuthorizedException {
|
||||
LOGGER.debug("entry to addWorkbasketSummariesToTaskSummaries()");
|
||||
if (taskSummaries == null || taskSummaries.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
@ -500,6 +569,7 @@ public class TaskServiceImpl implements TaskService {
|
|||
Collectors.toSet());
|
||||
String[] workbasketKeyArray = workbasketKeySet.toArray(new String[0]);
|
||||
// perform workbasket query
|
||||
LOGGER.debug("addWorkbasketSummariesToTaskSummaries() about to query workbaskets");
|
||||
List<WorkbasketSummary> workbaskets = this.workbasketService.createWorkbasketQuery()
|
||||
.keyIn(workbasketKeyArray)
|
||||
.list();
|
||||
|
@ -519,24 +589,20 @@ public class TaskServiceImpl implements TaskService {
|
|||
// set the classification on the task object
|
||||
task.setWorkbasketSummary(aWorkbasket);
|
||||
}
|
||||
LOGGER.debug("exit from addWorkbasketSummariesToTaskSummaries()");
|
||||
}
|
||||
|
||||
private void addAttachmentSummariesToTaskSummaries(List<TaskSummaryImpl> taskSummaries)
|
||||
throws NotAuthorizedException {
|
||||
private void addAttachmentSummariesToTaskSummaries(List<TaskSummaryImpl> taskSummaries,
|
||||
List<AttachmentSummaryImpl> attachmentSummaries, List<ClassificationSummary> classifications) {
|
||||
if (taskSummaries == null || taskSummaries.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
Set<String> taskIdSet = taskSummaries.stream().map(TaskSummaryImpl::getTaskId).collect(Collectors.toSet());
|
||||
String[] taskIdArray = taskIdSet.toArray(new String[0]);
|
||||
|
||||
List<AttachmentSummaryImpl> attachmentSummaries = attachmentMapper
|
||||
.findAttachmentSummariesByTaskIds(taskIdArray);
|
||||
|
||||
// augment attachment summaries by classification summaries
|
||||
// Note:
|
||||
// the mapper sets for each Attachment summary the property classificationSummary.key from the
|
||||
// CLASSIFICATION_KEY property in the DB
|
||||
// augment attachment summaries by classification summaries
|
||||
addClassificationSummariesToAttachmentSummaries(attachmentSummaries, taskSummaries);
|
||||
addClassificationSummariesToAttachmentSummaries(attachmentSummaries, taskSummaries, classifications);
|
||||
// assign attachment summaries to task summaries
|
||||
for (TaskSummaryImpl task : taskSummaries) {
|
||||
for (AttachmentSummaryImpl attachment : attachmentSummaries) {
|
||||
|
@ -549,26 +615,12 @@ public class TaskServiceImpl implements TaskService {
|
|||
}
|
||||
|
||||
private void addClassificationSummariesToAttachmentSummaries(List<AttachmentSummaryImpl> attachmentSummaries,
|
||||
List<TaskSummaryImpl> taskSummaries) throws NotAuthorizedException {
|
||||
List<TaskSummaryImpl> taskSummaries, List<ClassificationSummary> classifications) {
|
||||
// prereq: in each attachmentSummary, the classificationSummary.key property is set.
|
||||
if (attachmentSummaries == null || attachmentSummaries.isEmpty() || taskSummaries == null
|
||||
|| taskSummaries.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
Set<String> classificationDomainSet = taskSummaries.stream().map(TaskSummaryImpl::getDomain).collect(
|
||||
Collectors.toSet());
|
||||
Set<String> classificationKeySet = attachmentSummaries.stream()
|
||||
.map(t -> t.getClassificationSummary().getKey())
|
||||
.collect(
|
||||
Collectors.toSet());
|
||||
String[] classificationDomainArray = classificationDomainSet.toArray(new String[0]);
|
||||
String[] classificationKeyArray = classificationKeySet.toArray(new String[0]);
|
||||
|
||||
// perform classification query
|
||||
List<ClassificationSummary> classifications = this.classificationService.createClassificationQuery()
|
||||
.domain(classificationDomainArray)
|
||||
.key(classificationKeyArray)
|
||||
.list();
|
||||
// iterate over all attachment summaries an add the appropriate classification summary to each
|
||||
for (AttachmentSummaryImpl att : attachmentSummaries) {
|
||||
// find the associated task to use the correct domain
|
||||
|
@ -596,29 +648,12 @@ public class TaskServiceImpl implements TaskService {
|
|||
}
|
||||
|
||||
private List<Attachment> addClassificationSummariesToAttachments(TaskImpl task,
|
||||
List<AttachmentImpl> attachmentImpls) {
|
||||
List<AttachmentImpl> attachmentImpls, List<ClassificationSummary> classifications) {
|
||||
if (attachmentImpls == null || attachmentImpls.isEmpty()) {
|
||||
return null;
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
List<Attachment> result = new ArrayList<>();
|
||||
Set<String> classificationKeySet = attachmentImpls.stream()
|
||||
.map(t -> t.getClassificationSummary().getKey())
|
||||
.collect(
|
||||
Collectors.toSet());
|
||||
String[] classificationKeyArray = classificationKeySet.toArray(new String[0]);
|
||||
// perform classification query
|
||||
List<ClassificationSummary> classifications;
|
||||
try {
|
||||
classifications = this.classificationService.createClassificationQuery()
|
||||
.domain(task.getDomain())
|
||||
.key(classificationKeyArray)
|
||||
.list();
|
||||
} catch (NotAuthorizedException e) {
|
||||
LOGGER.error("ClassificationQuery unexpectedly returned NotauthorizedException. Throwing SystemException ");
|
||||
throw new SystemException("ClassificationQuery unexpectedly returned NotauthorizedException.");
|
||||
}
|
||||
// iterate over all attachment summaries an add the appropriate classification summary to each
|
||||
for (AttachmentImpl att : attachmentImpls) {
|
||||
// find the associated task to use the correct domain
|
||||
String domain = task.getDomain();
|
||||
|
@ -716,6 +751,13 @@ public class TaskServiceImpl implements TaskService {
|
|||
newTaskImpl.setBusinessProcessId(oldTaskImpl.getBusinessProcessId());
|
||||
}
|
||||
|
||||
updateClassificationRelatedProperties(oldTaskImpl, newTaskImpl);
|
||||
|
||||
newTaskImpl.setModified(Instant.now());
|
||||
}
|
||||
|
||||
private void updateClassificationRelatedProperties(TaskImpl oldTaskImpl, TaskImpl newTaskImpl)
|
||||
throws WorkbasketNotFoundException, NotAuthorizedException, ClassificationNotFoundException {
|
||||
// insert Classification specifications if Classification is given.
|
||||
ClassificationSummary oldClassificationSummary = oldTaskImpl.getClassificationSummary();
|
||||
ClassificationSummary newClassificationSummary = oldClassificationSummary;
|
||||
|
@ -751,7 +793,6 @@ public class TaskServiceImpl implements TaskService {
|
|||
newTaskImpl.setPriority(newClassification.getPriority());
|
||||
}
|
||||
}
|
||||
newTaskImpl.setModified(Instant.now());
|
||||
}
|
||||
|
||||
private void handleAttachmentsOnTaskUpdate(TaskImpl oldTaskImpl, TaskImpl newTaskImpl)
|
||||
|
|
|
@ -63,7 +63,7 @@ public class TaskanaEngineImpl implements TaskanaEngine {
|
|||
public TaskService getTaskService() {
|
||||
SqlSession session = this.sessionManager;
|
||||
return new TaskServiceImpl(this, session.getMapper(TaskMapper.class),
|
||||
session.getMapper(ObjectReferenceMapper.class), session.getMapper(AttachmentMapper.class));
|
||||
session.getMapper(AttachmentMapper.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,138 +0,0 @@
|
|||
package pro.taskana.model;
|
||||
|
||||
/**
|
||||
* This entity contains the most important information about a workbasket.
|
||||
*
|
||||
* @author bbr
|
||||
*/
|
||||
public class WorkbasketSummary {
|
||||
|
||||
private String id;
|
||||
private String key;
|
||||
private String name;
|
||||
private String description;
|
||||
private String owner;
|
||||
private String domain;
|
||||
private WorkbasketType type;
|
||||
private String orgLevel1;
|
||||
private String orgLevel2;
|
||||
private String orgLevel3;
|
||||
private String orgLevel4;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getKey() {
|
||||
return key;
|
||||
}
|
||||
|
||||
public void setKey(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public String getOwner() {
|
||||
return owner;
|
||||
}
|
||||
|
||||
public void setOwner(String owner) {
|
||||
this.owner = owner;
|
||||
}
|
||||
|
||||
public String getDomain() {
|
||||
return domain;
|
||||
}
|
||||
|
||||
public void setDomain(String domain) {
|
||||
this.domain = domain;
|
||||
}
|
||||
|
||||
public WorkbasketType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(WorkbasketType type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getOrgLevel1() {
|
||||
return orgLevel1;
|
||||
}
|
||||
|
||||
public void setOrgLevel1(String orgLevel1) {
|
||||
this.orgLevel1 = orgLevel1;
|
||||
}
|
||||
|
||||
public String getOrgLevel2() {
|
||||
return orgLevel2;
|
||||
}
|
||||
|
||||
public void setOrgLevel2(String orgLevel2) {
|
||||
this.orgLevel2 = orgLevel2;
|
||||
}
|
||||
|
||||
public String getOrgLevel3() {
|
||||
return orgLevel3;
|
||||
}
|
||||
|
||||
public void setOrgLevel3(String orgLevel3) {
|
||||
this.orgLevel3 = orgLevel3;
|
||||
}
|
||||
|
||||
public String getOrgLevel4() {
|
||||
return orgLevel4;
|
||||
}
|
||||
|
||||
public void setOrgLevel4(String orgLevel4) {
|
||||
this.orgLevel4 = orgLevel4;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("WorkbasketSummary [id=");
|
||||
builder.append(id);
|
||||
builder.append(", key=");
|
||||
builder.append(key);
|
||||
builder.append(", name=");
|
||||
builder.append(name);
|
||||
builder.append(", description=");
|
||||
builder.append(description);
|
||||
builder.append(", owner=");
|
||||
builder.append(owner);
|
||||
builder.append(", domain=");
|
||||
builder.append(domain);
|
||||
builder.append(", type=");
|
||||
builder.append(type);
|
||||
builder.append(", orgLevel1=");
|
||||
builder.append(orgLevel1);
|
||||
builder.append(", orgLevel2=");
|
||||
builder.append(orgLevel2);
|
||||
builder.append(", orgLevel3=");
|
||||
builder.append(orgLevel3);
|
||||
builder.append(", orgLevel4=");
|
||||
builder.append(orgLevel4);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
}
|
|
@ -50,6 +50,7 @@ public interface TaskMapper {
|
|||
@Result(property = "workbasketSummary", column = "WORKBASKET_KEY", javaType = WorkbasketSummaryImpl.class,
|
||||
one = @One(select = WORKBASKET_FINDSUMMARYBYKEY)),
|
||||
@Result(property = "classificationKey", column = "CLASSIFICATION_KEY"),
|
||||
@Result(property = "classificationSummaryImpl.key", column = "CLASSIFICATION_KEY"),
|
||||
@Result(property = "domain", column = "DOMAIN"),
|
||||
@Result(property = "businessProcessId", column = "BUSINESS_PROCESS_ID"),
|
||||
@Result(property = "parentBusinessProcessId", column = "PARENT_BUSINESS_PROCESS_ID"),
|
||||
|
@ -105,7 +106,7 @@ public interface TaskMapper {
|
|||
@Result(property = "priority", column = "PRIORITY"),
|
||||
@Result(property = "state", column = "STATE"),
|
||||
@Result(property = "workbasketKey", column = "WORKBASKET_KEY"),
|
||||
@Result(property = "classificationSummaryImpl.Key", column = "CLASSIFICATION_KEY"),
|
||||
@Result(property = "classificationSummaryImpl.key", column = "CLASSIFICATION_KEY"),
|
||||
@Result(property = "workbasketSummaryImpl.key", column = "WORKBASKET_KEY"),
|
||||
@Result(property = "domain", column = "DOMAIN"),
|
||||
@Result(property = "businessProcessId", column = "BUSINESS_PROCESS_ID"),
|
||||
|
@ -127,7 +128,7 @@ public interface TaskMapper {
|
|||
@Result(property = "custom7", column = "CUSTOM_7"),
|
||||
@Result(property = "custom8", column = "CUSTOM_8"),
|
||||
@Result(property = "custom9", column = "CUSTOM_9"),
|
||||
@Result(property = "custom10", column = "CUSTOM_10") })
|
||||
@Result(property = "custom10", column = "CUSTOM_10")})
|
||||
List<TaskSummaryImpl> findTasksByWorkbasketIdAndState(@Param("workbasketKey") String workbasketKey,
|
||||
@Param("taskState") TaskState taskState);
|
||||
|
||||
|
@ -168,6 +169,6 @@ public interface TaskMapper {
|
|||
@Result(property = "custom7", column = "CUSTOM_7"),
|
||||
@Result(property = "custom8", column = "CUSTOM_8"),
|
||||
@Result(property = "custom9", column = "CUSTOM_9"),
|
||||
@Result(property = "custom10", column = "CUSTOM_10") })
|
||||
@Result(property = "custom10", column = "CUSTOM_10")})
|
||||
List<TaskSummaryImpl> findTaskSummariesByWorkbasketKey(@Param("workbasketKey") String workbasketKey);
|
||||
}
|
||||
|
|
|
@ -22,7 +22,6 @@ import java.util.List;
|
|||
import org.apache.ibatis.exceptions.PersistenceException;
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
|
@ -106,6 +105,9 @@ public class TaskServiceImplTest {
|
|||
@Mock
|
||||
private ClassificationQueryImpl classificationQueryImplMock;
|
||||
|
||||
@Mock
|
||||
private WorkbasketQueryImpl workbasketQueryImplMock;
|
||||
|
||||
@Mock
|
||||
private SqlSession sqlSessionMock;
|
||||
|
||||
|
@ -417,16 +419,21 @@ public class TaskServiceImplTest {
|
|||
classificationServiceImplMock)
|
||||
.getClassification(dummyClassification.getKey(), dummyClassification.getDomain());
|
||||
|
||||
List<ClassificationSummaryImpl> classificationList = Arrays
|
||||
.asList((ClassificationSummaryImpl) dummyClassification.asSummary());
|
||||
doReturn(classificationList).when(
|
||||
classificationQueryImplMock)
|
||||
.list();
|
||||
|
||||
// Mockito.doReturn(expectedOwner).when(currentUserContext).getUserid();
|
||||
Task acturalTask = cut.claim(expectedTask.getId(), true);
|
||||
|
||||
verify(taskanaEngineImpl, times(2)).openConnection();
|
||||
verify(taskMapperMock, times(1)).findById(expectedTask.getId());
|
||||
verify(attachmentMapperMock, times(1)).findAttachmentsByTaskId(expectedTask.getId());
|
||||
verify(classificationServiceImplMock, times(1)).getClassification(any(), any());
|
||||
verify(classificationQueryImplMock, times(0)).domain(any());
|
||||
verify(classificationQueryImplMock, times(0)).key(any());
|
||||
verify(classificationQueryImplMock, times(0)).list();
|
||||
verify(classificationQueryImplMock, times(1)).domain(any());
|
||||
verify(classificationQueryImplMock, times(1)).key(any());
|
||||
verify(classificationQueryImplMock, times(1)).list();
|
||||
verify(taskMapperMock, times(1)).update(any());
|
||||
verify(taskanaEngineImpl, times(2)).returnConnection();
|
||||
verifyNoMoreInteractions(attachmentMapperMock, taskanaEngineConfigurationMock, taskanaEngineMock,
|
||||
|
@ -478,19 +485,21 @@ public class TaskServiceImplTest {
|
|||
doReturn(classificationQueryImplMock).when(classificationQueryImplMock).domain(any());
|
||||
doReturn(classificationQueryImplMock).when(classificationQueryImplMock).key(any());
|
||||
doReturn(new ArrayList<>()).when(classificationQueryImplMock).list();
|
||||
doReturn(dummyClassification).when(
|
||||
classificationServiceImplMock)
|
||||
.getClassification(dummyClassification.getKey(), dummyClassification.getDomain());
|
||||
List<ClassificationSummaryImpl> classificationList = Arrays
|
||||
.asList((ClassificationSummaryImpl) dummyClassification.asSummary());
|
||||
doReturn(classificationList).when(
|
||||
classificationQueryImplMock)
|
||||
.list();
|
||||
|
||||
Task actualTask = cut.completeTask(task.getId());
|
||||
|
||||
verify(taskanaEngineImpl, times(2)).openConnection();
|
||||
verify(taskMapperMock, times(1)).findById(task.getId());
|
||||
verify(attachmentMapperMock, times(1)).findAttachmentsByTaskId(task.getId());
|
||||
verify(classificationServiceImplMock, times(0)).createClassificationQuery();
|
||||
verify(classificationQueryImplMock, times(0)).domain(any());
|
||||
verify(classificationQueryImplMock, times(0)).key(any());
|
||||
verify(classificationQueryImplMock, times(0)).list();
|
||||
verify(classificationServiceImplMock, times(1)).createClassificationQuery();
|
||||
verify(classificationQueryImplMock, times(1)).domain(any());
|
||||
verify(classificationQueryImplMock, times(1)).key(any());
|
||||
verify(classificationQueryImplMock, times(1)).list();
|
||||
verify(taskMapperMock, times(1)).update(any());
|
||||
verify(taskanaEngineImpl, times(2)).returnConnection();
|
||||
verifyNoMoreInteractions(attachmentMapperMock, taskanaEngineConfigurationMock, taskanaEngineMock,
|
||||
|
@ -906,18 +915,20 @@ public class TaskServiceImplTest {
|
|||
doReturn(classificationQueryImplMock).when(classificationQueryImplMock).key(any());
|
||||
doReturn(new ArrayList<>()).when(classificationQueryImplMock).list();
|
||||
|
||||
doReturn(dummyClassification).when(
|
||||
classificationServiceImplMock)
|
||||
.getClassification(dummyClassification.getKey(), dummyClassification.getDomain());
|
||||
List<ClassificationSummaryImpl> classificationList = Arrays
|
||||
.asList((ClassificationSummaryImpl) dummyClassification.asSummary());
|
||||
doReturn(classificationList).when(
|
||||
classificationQueryImplMock)
|
||||
.list();
|
||||
Task actualTask = cut.getTask(expectedTask.getId());
|
||||
|
||||
verify(taskanaEngineImpl, times(1)).openConnection();
|
||||
verify(taskMapperMock, times(1)).findById(expectedTask.getId());
|
||||
verify(attachmentMapperMock, times(1)).findAttachmentsByTaskId(expectedTask.getId());
|
||||
verify(classificationServiceImplMock, times(0)).createClassificationQuery();
|
||||
verify(classificationQueryImplMock, times(0)).domain(any());
|
||||
verify(classificationQueryImplMock, times(0)).key(any());
|
||||
verify(classificationQueryImplMock, times(0)).list();
|
||||
verify(classificationServiceImplMock, times(1)).createClassificationQuery();
|
||||
verify(classificationQueryImplMock, times(1)).domain(any());
|
||||
verify(classificationQueryImplMock, times(1)).key(any());
|
||||
verify(classificationQueryImplMock, times(1)).list();
|
||||
verify(taskanaEngineImpl, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(attachmentMapperMock, taskanaEngineConfigurationMock, taskanaEngineMock,
|
||||
taskanaEngineImpl, taskMapperMock, objectReferenceMapperMock, workbasketServiceMock, sqlSessionMock,
|
||||
|
@ -970,25 +981,63 @@ public class TaskServiceImplTest {
|
|||
assertThat(actualResultList, equalTo(expectedResultList));
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test
|
||||
public void testGetTaskSummariesByWorkbasketIdGettingResults()
|
||||
throws WorkbasketNotFoundException, InvalidWorkbasketException, NotAuthorizedException {
|
||||
String workbasketKey = "1";
|
||||
List<TaskSummaryImpl> expectedResultList = Arrays.asList(new TaskSummaryImpl(), new TaskSummaryImpl());
|
||||
WorkbasketSummaryImpl wbs = new WorkbasketSummaryImpl();
|
||||
wbs.setDomain("domain");
|
||||
wbs.setKey("key");
|
||||
ClassificationSummaryImpl cl = new ClassificationSummaryImpl();
|
||||
cl.setDomain("domain");
|
||||
cl.setKey("clKey");
|
||||
TaskSummaryImpl t1 = new TaskSummaryImpl();
|
||||
t1.setWorkbasketSummary(wbs);
|
||||
t1.setDomain("domain");
|
||||
t1.setClassificationSummary(cl);
|
||||
t1.setTaskId("007");
|
||||
TaskSummaryImpl t2 = new TaskSummaryImpl();
|
||||
t2.setWorkbasketSummary(wbs);
|
||||
t2.setDomain("domain");
|
||||
t2.setClassificationSummary(cl);
|
||||
t2.setTaskId("008");
|
||||
List<TaskSummaryImpl> expectedResultList = Arrays.asList(t1, t2);
|
||||
List<ClassificationSummaryImpl> expectedClassifications = Arrays.asList(cl);
|
||||
List<WorkbasketSummaryImpl> expectedWorkbaskets = Arrays.asList(wbs);
|
||||
|
||||
doNothing().when(taskanaEngineImpl).openConnection();
|
||||
doNothing().when(taskanaEngineImpl).returnConnection();
|
||||
doReturn(new WorkbasketImpl()).when(workbasketServiceMock).getWorkbasketByKey(any());
|
||||
doReturn(expectedResultList).when(taskMapperMock).findTaskSummariesByWorkbasketKey(workbasketKey);
|
||||
doReturn(classificationQueryImplMock).when(classificationServiceImplMock).createClassificationQuery();
|
||||
doReturn(classificationQueryImplMock).when(classificationQueryImplMock).key(any());
|
||||
doReturn(classificationQueryImplMock).when(classificationQueryImplMock).domain(any());
|
||||
doReturn(workbasketQueryImplMock).when(workbasketServiceMock).createWorkbasketQuery();
|
||||
doReturn(workbasketQueryImplMock).when(workbasketQueryImplMock).keyIn(any());
|
||||
doReturn(expectedWorkbaskets).when(workbasketQueryImplMock).list();
|
||||
|
||||
doReturn(expectedClassifications).when(classificationQueryImplMock).list();
|
||||
|
||||
List<TaskSummary> actualResultList = cut.getTaskSummariesByWorkbasketKey(workbasketKey);
|
||||
|
||||
verify(taskanaEngineImpl, times(1)).openConnection();
|
||||
verify(taskMapperMock, times(1)).findTaskSummariesByWorkbasketKey(workbasketKey);
|
||||
verify(workbasketServiceMock, times(1)).getWorkbasketByKey(workbasketKey);
|
||||
verify(classificationServiceImplMock, times(1)).createClassificationQuery();
|
||||
verify(classificationQueryImplMock, times(1)).domain(any());
|
||||
verify(classificationQueryImplMock, times(1)).key(any());
|
||||
verify(classificationQueryImplMock, times(1)).list();
|
||||
verify(workbasketServiceMock, times(1)).createWorkbasketQuery();
|
||||
verify(workbasketQueryImplMock, times(1)).keyIn(any());
|
||||
verify(workbasketQueryImplMock, times(1)).list();
|
||||
|
||||
verify(taskanaEngineImpl, times(1)).returnConnection();
|
||||
verify(attachmentMapperMock, times(1)).findAttachmentSummariesByTaskIds(any());
|
||||
|
||||
verifyNoMoreInteractions(attachmentMapperMock, taskanaEngineConfigurationMock, taskanaEngineMock,
|
||||
taskanaEngineImpl, taskMapperMock, objectReferenceMapperMock, workbasketServiceMock, sqlSessionMock,
|
||||
classificationQueryImplMock);
|
||||
taskanaEngineImpl, taskMapperMock, objectReferenceMapperMock, workbasketServiceMock,
|
||||
workbasketQueryImplMock,
|
||||
sqlSessionMock, classificationQueryImplMock);
|
||||
assertThat(actualResultList, equalTo(expectedResultList));
|
||||
assertThat(actualResultList.size(), equalTo(expectedResultList.size()));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue