TSK-261: Extend classification report by attachment classifications
- Add ClassificationReport - Add DetailedClassificationReport - Add DetailedReportLine - Add DetailedMonitorItem - Implement getDetailedClassificationReport - Move createReport method to the Report class - Add tests and update sample data
This commit is contained in:
parent
5f460f0403
commit
b78b3ccb2f
|
@ -2,7 +2,9 @@ package pro.taskana;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import pro.taskana.impl.ClassificationReport;
|
||||
import pro.taskana.impl.CustomField;
|
||||
import pro.taskana.impl.DetailedClassificationReport;
|
||||
import pro.taskana.impl.Report;
|
||||
import pro.taskana.impl.ReportLineItemDefinition;
|
||||
import pro.taskana.impl.TaskState;
|
||||
|
@ -135,26 +137,26 @@ public interface TaskMonitorService {
|
|||
List<ReportLineItemDefinition> reportLineItemDefinitions, boolean inWorkingDays);
|
||||
|
||||
/**
|
||||
* Returns a {@link Report} grouped by classifications for a given list of {@link Workbasket}s and for a given list
|
||||
* of {@link TaskState}s. The report only contains the number of all tasks of the respective classification as well
|
||||
* as the total sum of all tasks. Only tasks with a state in the list of TaskStates are provided. Task with
|
||||
* Timestamp DUE = null are not considered.
|
||||
* Returns a {@link ClassificationReport} grouped by classifications for a given list of {@link Workbasket}s and for
|
||||
* a given list of {@link TaskState}s. The report only contains the number of all tasks of the respective
|
||||
* classification as well as the total sum of all tasks. Only tasks with a state in the list of TaskStates are
|
||||
* provided. Task with Timestamp DUE = null are not considered.
|
||||
*
|
||||
* @param workbaskets
|
||||
* a list of {@link Workbasket} objects whose task should be considered in the report
|
||||
* @param states
|
||||
* a list of {@link TaskState} objects that specify the states of the tasks that are provided
|
||||
* @return a {@link Report} object that only contains the number of all tasks of the respective classification as
|
||||
* well as the total number of all tasks
|
||||
* @return a {@link ClassificationReport} object that only contains the number of all tasks of the respective
|
||||
* classification as well as the total number of all tasks
|
||||
*/
|
||||
Report getClassificationReport(List<Workbasket> workbaskets, List<TaskState> states);
|
||||
ClassificationReport getClassificationReport(List<Workbasket> workbaskets, List<TaskState> states);
|
||||
|
||||
/**
|
||||
* Returns a {@link Report} grouped by classifications for a given list of {@link Workbasket}s, a given list of
|
||||
* {@link TaskState}s and a given list of {@link ReportLineItemDefinition}s. For each classification the report
|
||||
* contains a list of ReportLineItems that subdivides the report in to different cluster grouped by the due date. By
|
||||
* default the age of the tasks is counted in working days. Only tasks with a state in the list of TaskStates are
|
||||
* provided. Tasks with Timestamp DUE = null are not considered.
|
||||
* Returns a {@link ClassificationReport} grouped by classifications for a given list of {@link Workbasket}s, a
|
||||
* given list of {@link TaskState}s and a given list of {@link ReportLineItemDefinition}s. For each classification
|
||||
* the report contains a list of ReportLineItems that subdivides the report in to different cluster grouped by the
|
||||
* due date. By default the age of the tasks is counted in working days. Only tasks with a state in the list of
|
||||
* TaskStates are provided. Tasks with Timestamp DUE = null are not considered.
|
||||
*
|
||||
* @param workbaskets
|
||||
* a list of {@link Workbasket} objects whose task should be considered in the report
|
||||
|
@ -166,16 +168,81 @@ public interface TaskMonitorService {
|
|||
* as positive values. To avoid tasks are counted multiple times or not be listed in the report, these
|
||||
* reportLineItemDefinitions should not overlap and should not have gaps. If the ReportLineDefinition
|
||||
* should represent a single day, lowerLimit and upperLimit have to be equal.
|
||||
* @return a {@link Report} object that represents an overview of all tasks of the respective classification
|
||||
* @return a {@link ClassificationReport} object that represents an overview of all tasks of the respective
|
||||
* classification
|
||||
*/
|
||||
Report getClassificationReport(List<Workbasket> workbaskets, List<TaskState> states,
|
||||
ClassificationReport getClassificationReport(List<Workbasket> workbaskets, List<TaskState> states,
|
||||
List<ReportLineItemDefinition> reportLineItemDefinitions);
|
||||
|
||||
/**
|
||||
* Returns a {@link Report} grouped by classifications for a given list of {@link Workbasket}s, a given list of
|
||||
* {@link TaskState}s and a given list of {@link ReportLineItemDefinition}s. For each classification the report
|
||||
* contains a list of ReportLineItems that subdivides the report in to different cluster grouped by the due date.
|
||||
* Only tasks with a state in the list of TaskStates are provided. Tasks with Timestamp DUE = null are not
|
||||
* Returns a {@link DetailedClassificationReport} grouped by classifications for a given list of
|
||||
* {@link Workbasket}s, a given list of {@link TaskState}s and a given list of {@link ReportLineItemDefinition}s.
|
||||
* For each classification the report contains a list of ReportLineItems that subdivides the report in to different
|
||||
* cluster grouped by the due date. Only tasks with a state in the list of TaskStates are provided. Tasks with
|
||||
* Timestamp DUE = null are not considered.
|
||||
*
|
||||
* @param workbaskets
|
||||
* a list of {@link Workbasket} objects whose task should be considered in the report
|
||||
* @param states
|
||||
* a list of {@link TaskState} objects that specify the states of the tasks that are provided
|
||||
* @param reportLineItemDefinitions
|
||||
* a list of {@link ReportLineItemDefinition} objects that specify the subdivision into different cluster
|
||||
* of due dates. Days in past are represented as negative values and days in the future are represented
|
||||
* as positive values. To avoid tasks are counted multiple times or not be listed in the report, these
|
||||
* reportLineItemDefinitions should not overlap and should not have gaps. If the ReportLineDefinition
|
||||
* should represent a single day, lowerLimit and upperLimit have to be equal.
|
||||
* @param inWorkingDays
|
||||
* a boolean parameter that specifies whether the age of the tasks should be counted in days or in
|
||||
* working days.
|
||||
* @return a {@link DetailedClassificationReport} object that represents an overview of all tasks of the respective
|
||||
* classification
|
||||
*/
|
||||
DetailedClassificationReport getDetailedClassificationReport(List<Workbasket> workbaskets, List<TaskState> states,
|
||||
List<ReportLineItemDefinition> reportLineItemDefinitions, boolean inWorkingDays);
|
||||
|
||||
/**
|
||||
* Returns a {@link DetailedClassificationReport} grouped by classifications for a given list of {@link Workbasket}s
|
||||
* and for a given list of {@link TaskState}s. The report only contains the number of all tasks of the respective
|
||||
* classification as well as the total sum of all tasks. Only tasks with a state in the list of TaskStates are
|
||||
* provided. Task with Timestamp DUE = null are not considered.
|
||||
*
|
||||
* @param workbaskets
|
||||
* a list of {@link Workbasket} objects whose task should be considered in the report
|
||||
* @param states
|
||||
* a list of {@link TaskState} objects that specify the states of the tasks that are provided
|
||||
* @return a {@link DetailedClassificationReport} object that only contains the number of all tasks of the
|
||||
* respective classification as well as the total number of all tasks
|
||||
*/
|
||||
DetailedClassificationReport getDetailedClassificationReport(List<Workbasket> workbaskets, List<TaskState> states);
|
||||
|
||||
/**
|
||||
* Returns a {@link DetailedClassificationReport} grouped by classifications for a given list of
|
||||
* {@link Workbasket}s, a given list of {@link TaskState}s and a given list of {@link ReportLineItemDefinition}s.
|
||||
* For each classification the report contains a list of ReportLineItems that subdivides the report in to different
|
||||
* cluster grouped by the due date. By default the age of the tasks is counted in working days. Only tasks with a
|
||||
* state in the list of TaskStates are provided. Tasks with Timestamp DUE = null are not considered.
|
||||
*
|
||||
* @param workbaskets
|
||||
* a list of {@link Workbasket} objects whose task should be considered in the report
|
||||
* @param states
|
||||
* a list of {@link TaskState} objects that specify the states of the tasks that are provided
|
||||
* @param reportLineItemDefinitions
|
||||
* a list of {@link ReportLineItemDefinition} objects that specify the subdivision into different cluster
|
||||
* of due dates. Days in past are represented as negative values and days in the future are represented
|
||||
* as positive values. To avoid tasks are counted multiple times or not be listed in the report, these
|
||||
* reportLineItemDefinitions should not overlap and should not have gaps. If the ReportLineDefinition
|
||||
* should represent a single day, lowerLimit and upperLimit have to be equal.
|
||||
* @return a {@link DetailedClassificationReport} object that represents an overview of all tasks of the respective
|
||||
* classification
|
||||
*/
|
||||
DetailedClassificationReport getDetailedClassificationReport(List<Workbasket> workbaskets, List<TaskState> states,
|
||||
List<ReportLineItemDefinition> reportLineItemDefinitions);
|
||||
|
||||
/**
|
||||
* Returns a {@link ClassificationReport} grouped by classifications for a given list of {@link Workbasket}s, a
|
||||
* given list of {@link TaskState}s and a given list of {@link ReportLineItemDefinition}s. For each classification
|
||||
* the report contains a list of ReportLineItems that subdivides the report in to different cluster grouped by the
|
||||
* due date. Only tasks with a state in the list of TaskStates are provided. Tasks with Timestamp DUE = null are not
|
||||
* considered.
|
||||
*
|
||||
* @param workbaskets
|
||||
|
@ -191,9 +258,10 @@ public interface TaskMonitorService {
|
|||
* @param inWorkingDays
|
||||
* a boolean parameter that specifies whether the age of the tasks should be counted in days or in
|
||||
* working days.
|
||||
* @return a {@link Report} object that represents an overview of all tasks of the respective classification
|
||||
* @return a {@link ClassificationReport} object that represents an overview of all tasks of the respective
|
||||
* classification
|
||||
*/
|
||||
Report getClassificationReport(List<Workbasket> workbaskets, List<TaskState> states,
|
||||
ClassificationReport getClassificationReport(List<Workbasket> workbaskets, List<TaskState> states,
|
||||
List<ReportLineItemDefinition> reportLineItemDefinitions, boolean inWorkingDays);
|
||||
|
||||
/**
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
package pro.taskana.impl;
|
||||
|
||||
/**
|
||||
* The ClassificationReport extends the Report.
|
||||
*/
|
||||
public class ClassificationReport extends Report {
|
||||
|
||||
public ClassificationReport() {
|
||||
super();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
package pro.taskana.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* The DetailedClassificationReport extends the ClassificationReport. The additional addDetailedMonitoringQueryItems
|
||||
* method allows to add {@link DetailedMonitorQueryItem}s to the DetailedClassificationReport.
|
||||
*/
|
||||
public class DetailedClassificationReport extends ClassificationReport {
|
||||
|
||||
public DetailedClassificationReport() {
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the information of the {@link DetailedMonitorQueryItem}s to the DetailedClassificationReport.
|
||||
*
|
||||
* @param detailedMonitorQueryItems
|
||||
* a list of {@link DetailedMonitorQueryItem} with the information of the database
|
||||
* @param reportLineItemDefinitions
|
||||
* a list of {@link ReportLineItemDefinition}s that is needed to create the {@link ReportLine}s.
|
||||
* @param inWorkingDays
|
||||
* a boolean parameter that specifies whether the age of the tasks should be counted in days or in
|
||||
* working days.
|
||||
*/
|
||||
public void addDetailedMonitoringQueryItems(List<DetailedMonitorQueryItem> detailedMonitorQueryItems,
|
||||
List<ReportLineItemDefinition> reportLineItemDefinitions, boolean inWorkingDays) {
|
||||
|
||||
DaysToWorkingDaysConverter instance = null;
|
||||
if (reportLineItemDefinitions != null && inWorkingDays) {
|
||||
instance = DaysToWorkingDaysConverter.initialize(reportLineItemDefinitions);
|
||||
}
|
||||
|
||||
for (DetailedMonitorQueryItem item : detailedMonitorQueryItems) {
|
||||
if (instance != null) {
|
||||
item.setAgeInDays(instance.convertDaysToWorkingDays(item.getAgeInDays()));
|
||||
}
|
||||
if (!this.reportLines.containsKey(item.getKey())) {
|
||||
DetailedReportLine detailedReportLine = new DetailedReportLine();
|
||||
detailedReportLine.create(reportLineItemDefinitions);
|
||||
this.reportLines.put(item.getKey(), detailedReportLine);
|
||||
}
|
||||
DetailedReportLine detailedReportLine = (DetailedReportLine) this.reportLines.get(item.getKey());
|
||||
detailedReportLine.addNumberOfTasks(item, reportLineItemDefinitions);
|
||||
}
|
||||
this.sumLine = createSumLine(reportLineItemDefinitions);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package pro.taskana.impl;
|
||||
|
||||
/**
|
||||
* The DetailedMonitorQueryItem extends the MonitorQueryItem. The additional attachment key is used for the detailed
|
||||
* classification report.
|
||||
*/
|
||||
public class DetailedMonitorQueryItem extends MonitorQueryItem {
|
||||
|
||||
private String attachmentKey;
|
||||
|
||||
public DetailedMonitorQueryItem() {
|
||||
super();
|
||||
}
|
||||
|
||||
public String getAttachmentKey() {
|
||||
return attachmentKey;
|
||||
}
|
||||
|
||||
public void setAttachmentKey(String attachmentKey) {
|
||||
this.attachmentKey = attachmentKey;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
package pro.taskana.impl;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* The DetailedReportLine extends the ReportLine.
|
||||
*/
|
||||
public class DetailedReportLine extends ReportLine {
|
||||
|
||||
private Map<String, ReportLine> detailLines;
|
||||
|
||||
public DetailedReportLine() {
|
||||
super();
|
||||
this.detailLines = new LinkedHashMap<>();
|
||||
}
|
||||
|
||||
public Map<String, ReportLine> getDetailLines() {
|
||||
return detailLines;
|
||||
}
|
||||
|
||||
public void setDetailLines(Map<String, ReportLine> reportLines) {
|
||||
this.detailLines = reportLines;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the number of tasks of the {@link DetailedMonitorQueryItem} to the respective {@link ReportLineItem} of this
|
||||
* {@link DetailedReportLine} and and of the suitable sub line.
|
||||
*
|
||||
* @param item
|
||||
* a {@link DetailedMonitorQueryItem} that contains the number of tasks, the age in days of these tasks
|
||||
* and the Classification key of the corresponding attachment.
|
||||
* @param reportLineItemDefinitions
|
||||
* a list of {@link ReportLineItemDefinition}s that is needed to create a sub line if necessary.
|
||||
*/
|
||||
public void addNumberOfTasks(DetailedMonitorQueryItem item,
|
||||
List<ReportLineItemDefinition> reportLineItemDefinitions) {
|
||||
super.addNumberOfTasks(item);
|
||||
|
||||
if (item.getAttachmentKey() != null) {
|
||||
if (!this.detailLines.containsKey(item.getAttachmentKey())) {
|
||||
ReportLine reportLine = new ReportLine();
|
||||
reportLine.create(reportLineItemDefinitions);
|
||||
this.detailLines.put(item.getAttachmentKey(), reportLine);
|
||||
}
|
||||
this.detailLines.get(item.getAttachmentKey()).addNumberOfTasks(item);
|
||||
} else {
|
||||
if (!this.detailLines.containsKey("N/A")) {
|
||||
ReportLine reportLine = new ReportLine();
|
||||
reportLine.create(reportLineItemDefinitions);
|
||||
this.detailLines.put("N/A", reportLine);
|
||||
}
|
||||
this.detailLines.get("N/A").addNumberOfTasks(item);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -2,6 +2,7 @@ package pro.taskana.impl;
|
|||
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
|
@ -12,20 +13,19 @@ import java.util.Map;
|
|||
*/
|
||||
public class Report {
|
||||
|
||||
private Map<String, ReportLine> detailLines;
|
||||
private ReportLine sumLine;
|
||||
protected Map<String, ReportLine> reportLines;
|
||||
protected ReportLine sumLine;
|
||||
|
||||
public Report() {
|
||||
this.detailLines = new LinkedHashMap<>();
|
||||
this.sumLine = new ReportLine();
|
||||
this.reportLines = new LinkedHashMap<String, ReportLine>();
|
||||
}
|
||||
|
||||
public Map<String, ReportLine> getDetailLines() {
|
||||
return detailLines;
|
||||
public Map<String, ReportLine> getReportLines() {
|
||||
return reportLines;
|
||||
}
|
||||
|
||||
public void setDetailLines(Map<String, ReportLine> detailLines) {
|
||||
this.detailLines = detailLines;
|
||||
public void setReportLines(Map<String, ReportLine> reportLines) {
|
||||
this.reportLines = reportLines;
|
||||
}
|
||||
|
||||
public ReportLine getSumLine() {
|
||||
|
@ -36,19 +36,62 @@ public class Report {
|
|||
this.sumLine = sumLine;
|
||||
}
|
||||
|
||||
public void generateSumLine(ReportLine sumLine) {
|
||||
this.sumLine = sumLine;
|
||||
/**
|
||||
* Adds the information of the {@link MonitorQueryItem}s to the Report.
|
||||
*
|
||||
* @param monitorQueryItems
|
||||
* a list of {@link MonitorQueryItem} with the information of the database
|
||||
* @param reportLineItemDefinitions
|
||||
* a list of {@link ReportLineItemDefinition}s that is needed to create the {@link ReportLine}s.
|
||||
* @param inWorkingDays
|
||||
* a boolean parameter that specifies whether the age of the tasks should be counted in days or in
|
||||
* working days.
|
||||
*/
|
||||
public void addMonitoringQueryItems(List<MonitorQueryItem> monitorQueryItems,
|
||||
List<ReportLineItemDefinition> reportLineItemDefinitions, boolean inWorkingDays) {
|
||||
DaysToWorkingDaysConverter instance = null;
|
||||
if (reportLineItemDefinitions != null && inWorkingDays) {
|
||||
instance = DaysToWorkingDaysConverter.initialize(reportLineItemDefinitions);
|
||||
}
|
||||
|
||||
for (MonitorQueryItem item : monitorQueryItems) {
|
||||
if (instance != null) {
|
||||
item.setAgeInDays(instance.convertDaysToWorkingDays(item.getAgeInDays()));
|
||||
}
|
||||
if (!this.reportLines.containsKey(item.getKey())) {
|
||||
ReportLine reportLine = new ReportLine();
|
||||
reportLine.create(reportLineItemDefinitions);
|
||||
this.reportLines.put(item.getKey(), reportLine);
|
||||
}
|
||||
this.reportLines.get(item.getKey()).addNumberOfTasks(item);
|
||||
}
|
||||
|
||||
this.sumLine = createSumLine(reportLineItemDefinitions);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the sum line of this {@link Report}.
|
||||
*
|
||||
* @param reportLineItemDefinitions
|
||||
* a list of {@link ReportLineItemDefinition}s that specify the subdivision into different cluster of
|
||||
* ages.
|
||||
* @return a {@link ReportLine} that contains the sums of the different cluster of this {@link Report}.
|
||||
*/
|
||||
protected ReportLine createSumLine(List<ReportLineItemDefinition> reportLineItemDefinitions) {
|
||||
ReportLine sumLine = new ReportLine();
|
||||
sumLine.create(reportLineItemDefinitions);
|
||||
int totalNumberOfTasks = 0;
|
||||
for (ReportLine reportLine : this.getDetailLines().values()) {
|
||||
for (ReportLine reportLine : this.reportLines.values()) {
|
||||
Iterator<ReportLineItem> reportLineItemIterator = reportLine.getLineItems().iterator();
|
||||
Iterator<ReportLineItem> sumLineItemIterator = this.sumLine.getLineItems().iterator();
|
||||
Iterator<ReportLineItem> sumLineItemIterator = sumLine.getLineItems().iterator();
|
||||
while (reportLineItemIterator.hasNext() && sumLineItemIterator.hasNext()) {
|
||||
int numberOfTasks = reportLineItemIterator.next().getNumberOfTasks();
|
||||
sumLineItemIterator.next().addNumberOfTasks(numberOfTasks);
|
||||
}
|
||||
totalNumberOfTasks += reportLine.getTotalNumberOfTasks();
|
||||
}
|
||||
this.sumLine.setTotalNumberOfTasks(totalNumberOfTasks);
|
||||
sumLine.setTotalNumberOfTasks(totalNumberOfTasks);
|
||||
return sumLine;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,8 +8,8 @@ import java.util.List;
|
|||
*/
|
||||
public class ReportLine {
|
||||
|
||||
private List<ReportLineItem> lineItems;
|
||||
private int totalNumberOfTasks;
|
||||
protected List<ReportLineItem> lineItems;
|
||||
protected int totalNumberOfTasks;
|
||||
|
||||
public ReportLine() {
|
||||
this.lineItems = new ArrayList<>();
|
||||
|
@ -32,6 +32,30 @@ public class ReportLine {
|
|||
this.totalNumberOfTasks = totalNumberOfTasks;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a list of {@link ReportLineItem}s for this {@link ReportLine} by using the list of
|
||||
* {@link ReportLineItemDefinition}s.
|
||||
*
|
||||
* @param reportLineItemDefinitions
|
||||
* a list of {@link ReportLineItemDefinition}s that specify the subdivision into different cluster of
|
||||
* ages.
|
||||
*/
|
||||
public void create(List<ReportLineItemDefinition> reportLineItemDefinitions) {
|
||||
if (reportLineItemDefinitions != null) {
|
||||
for (ReportLineItemDefinition reportLineItemDefinition : reportLineItemDefinitions) {
|
||||
ReportLineItem reportLineItem = new ReportLineItem();
|
||||
reportLineItem.setReportLineItemDefinition(reportLineItemDefinition);
|
||||
this.getLineItems().add(reportLineItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the number of tasks of the {@link MonitorQueryItem} to the respective {@link ReportLineItem}.
|
||||
*
|
||||
* @param item
|
||||
* a {@link MonitorQueryItem} that contains the number of tasks and the age in days of these tasks.
|
||||
*/
|
||||
public void addNumberOfTasks(MonitorQueryItem item) {
|
||||
this.totalNumberOfTasks += item.getNumberOfTasks();
|
||||
for (ReportLineItem reportLineItem : lineItems) {
|
||||
|
@ -43,4 +67,5 @@ public class ReportLine {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ public class ReportLineItem {
|
|||
public void setNumberOfTasks(int numberOfTasks) {
|
||||
this.numberOfTasks = numberOfTasks;
|
||||
}
|
||||
|
||||
public void addNumberOfTasks(int numberOfTasks) {
|
||||
this.numberOfTasks += numberOfTasks;
|
||||
}
|
||||
|
|
|
@ -42,17 +42,19 @@ public class TaskMonitorServiceImpl implements TaskMonitorService {
|
|||
List<ReportLineItemDefinition> reportLineItemDefinitions, boolean inWorkingDays) {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug(
|
||||
"entry to getWorkbasketLevelReport(workbaskets = {}, states = {}, reportLineItemDefinitions = {})",
|
||||
"entry to getWorkbasketLevelReport(workbaskets = {}, states = {}, reportLineItemDefinitions = {},"
|
||||
+ " inWorkingDays = {})",
|
||||
LoggerUtils.listToString(workbaskets), LoggerUtils.listToString(states),
|
||||
LoggerUtils.listToString(reportLineItemDefinitions));
|
||||
LoggerUtils.listToString(reportLineItemDefinitions), inWorkingDays);
|
||||
}
|
||||
try {
|
||||
taskanaEngineImpl.openConnection();
|
||||
|
||||
Report report = new Report();
|
||||
List<MonitorQueryItem> monitorQueryItems = taskMonitorMapper
|
||||
.getTaskCountOfWorkbasketsByWorkbasketsAndStates(workbaskets, states);
|
||||
|
||||
return createReport(reportLineItemDefinitions, inWorkingDays, monitorQueryItems);
|
||||
report.addMonitoringQueryItems(monitorQueryItems, reportLineItemDefinitions, inWorkingDays);
|
||||
return report;
|
||||
|
||||
} finally {
|
||||
taskanaEngineImpl.returnConnection();
|
||||
|
@ -77,17 +79,19 @@ public class TaskMonitorServiceImpl implements TaskMonitorService {
|
|||
List<ReportLineItemDefinition> reportLineItemDefinitions, boolean inWorkingDays) {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug(
|
||||
"entry to getCategoryReport(workbaskets = {}, states = {}, reportLineItemDefinitions = {})",
|
||||
"entry to getCategoryReport(workbaskets = {}, states = {}, reportLineItemDefinitions = {},"
|
||||
+ " inWorkingDays = {})",
|
||||
LoggerUtils.listToString(workbaskets), LoggerUtils.listToString(states),
|
||||
LoggerUtils.listToString(reportLineItemDefinitions));
|
||||
LoggerUtils.listToString(reportLineItemDefinitions), inWorkingDays);
|
||||
}
|
||||
try {
|
||||
taskanaEngineImpl.openConnection();
|
||||
|
||||
Report report = new Report();
|
||||
List<MonitorQueryItem> monitorQueryItems = taskMonitorMapper
|
||||
.getTaskCountOfCategoriesByWorkbasketsAndStates(workbaskets, states);
|
||||
|
||||
return createReport(reportLineItemDefinitions, inWorkingDays, monitorQueryItems);
|
||||
report.addMonitoringQueryItems(monitorQueryItems, reportLineItemDefinitions, inWorkingDays);
|
||||
return report;
|
||||
|
||||
} finally {
|
||||
taskanaEngineImpl.returnConnection();
|
||||
|
@ -96,32 +100,34 @@ public class TaskMonitorServiceImpl implements TaskMonitorService {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Report getClassificationReport(List<Workbasket> workbaskets, List<TaskState> states) {
|
||||
public ClassificationReport getClassificationReport(List<Workbasket> workbaskets, List<TaskState> states) {
|
||||
return getClassificationReport(workbaskets, states, null, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Report getClassificationReport(List<Workbasket> workbaskets, List<TaskState> states,
|
||||
public ClassificationReport getClassificationReport(List<Workbasket> workbaskets, List<TaskState> states,
|
||||
List<ReportLineItemDefinition> reportLineItemDefinitions) {
|
||||
return getClassificationReport(workbaskets, states, reportLineItemDefinitions, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Report getClassificationReport(List<Workbasket> workbaskets, List<TaskState> states,
|
||||
public ClassificationReport getClassificationReport(List<Workbasket> workbaskets, List<TaskState> states,
|
||||
List<ReportLineItemDefinition> reportLineItemDefinitions, boolean inWorkingDays) {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug(
|
||||
"entry to getClassificationReport(workbaskets = {}, states = {}, reportLineItemDefinitions = {})",
|
||||
"entry to getClassificationReport(workbaskets = {}, states = {}, reportLineItemDefinitions = {},"
|
||||
+ " inWorkingDays = {})",
|
||||
LoggerUtils.listToString(workbaskets), LoggerUtils.listToString(states),
|
||||
LoggerUtils.listToString(reportLineItemDefinitions));
|
||||
LoggerUtils.listToString(reportLineItemDefinitions), inWorkingDays);
|
||||
}
|
||||
try {
|
||||
taskanaEngineImpl.openConnection();
|
||||
|
||||
ClassificationReport report = new ClassificationReport();
|
||||
List<MonitorQueryItem> monitorQueryItems = taskMonitorMapper
|
||||
.getTaskCountOfClassificationsByWorkbasketsAndStates(workbaskets, states);
|
||||
|
||||
return createReport(reportLineItemDefinitions, inWorkingDays, monitorQueryItems);
|
||||
report.addMonitoringQueryItems(monitorQueryItems, reportLineItemDefinitions, inWorkingDays);
|
||||
return report;
|
||||
|
||||
} finally {
|
||||
taskanaEngineImpl.returnConnection();
|
||||
|
@ -129,6 +135,45 @@ public class TaskMonitorServiceImpl implements TaskMonitorService {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public DetailedClassificationReport getDetailedClassificationReport(List<Workbasket> workbaskets,
|
||||
List<TaskState> states) {
|
||||
return getDetailedClassificationReport(workbaskets, states, null, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DetailedClassificationReport getDetailedClassificationReport(List<Workbasket> workbaskets,
|
||||
List<TaskState> states, List<ReportLineItemDefinition> reportLineItemDefinitions) {
|
||||
return getDetailedClassificationReport(workbaskets, states, reportLineItemDefinitions, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DetailedClassificationReport getDetailedClassificationReport(List<Workbasket> workbaskets,
|
||||
List<TaskState> states, List<ReportLineItemDefinition> reportLineItemDefinitions, boolean inWorkingDays) {
|
||||
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug(
|
||||
"entry to getDetailedClassificationReport(workbaskets = {}, states = {}, customField = {}, "
|
||||
+ "reportLineItemDefinitions = {}, inWorkingDays = {})",
|
||||
LoggerUtils.listToString(workbaskets), LoggerUtils.listToString(states),
|
||||
LoggerUtils.listToString(reportLineItemDefinitions), inWorkingDays);
|
||||
}
|
||||
try {
|
||||
taskanaEngineImpl.openConnection();
|
||||
|
||||
DetailedClassificationReport report = new DetailedClassificationReport();
|
||||
List<DetailedMonitorQueryItem> detailedMonitorQueryItems = taskMonitorMapper
|
||||
.getTaskCountOfDetailedClassificationsByWorkbasketsAndStates(workbaskets, states);
|
||||
report.addDetailedMonitoringQueryItems(detailedMonitorQueryItems, reportLineItemDefinitions,
|
||||
inWorkingDays);
|
||||
return report;
|
||||
|
||||
} finally {
|
||||
taskanaEngineImpl.returnConnection();
|
||||
LOGGER.debug("exit from getDetailedClassificationReport().");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Report getCustomFieldValueReport(List<Workbasket> workbaskets, List<TaskState> states,
|
||||
CustomField customField) {
|
||||
|
@ -146,17 +191,19 @@ public class TaskMonitorServiceImpl implements TaskMonitorService {
|
|||
CustomField customField, List<ReportLineItemDefinition> reportLineItemDefinitions, boolean inWorkingDays) {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug(
|
||||
"entry to getCustomFieldValueReport(workbaskets = {}, states = {}, customField = {}, reportLineItemDefinitions = {})",
|
||||
"entry to getCustomFieldValueReport(workbaskets = {}, states = {}, customField = {}, "
|
||||
+ "reportLineItemDefinitions = {}, inWorkingDays = {})",
|
||||
LoggerUtils.listToString(workbaskets), LoggerUtils.listToString(states), customField,
|
||||
LoggerUtils.listToString(reportLineItemDefinitions));
|
||||
LoggerUtils.listToString(reportLineItemDefinitions), inWorkingDays);
|
||||
}
|
||||
try {
|
||||
taskanaEngineImpl.openConnection();
|
||||
|
||||
Report report = new Report();
|
||||
List<MonitorQueryItem> monitorQueryItems = taskMonitorMapper
|
||||
.getTaskCountOfCustomFieldValuesByWorkbasketsAndStatesAndCustomField(workbaskets, states, customField);
|
||||
|
||||
return createReport(reportLineItemDefinitions, inWorkingDays, monitorQueryItems);
|
||||
report.addMonitoringQueryItems(monitorQueryItems, reportLineItemDefinitions, inWorkingDays);
|
||||
return report;
|
||||
|
||||
} finally {
|
||||
taskanaEngineImpl.returnConnection();
|
||||
|
@ -164,39 +211,4 @@ public class TaskMonitorServiceImpl implements TaskMonitorService {
|
|||
}
|
||||
}
|
||||
|
||||
private Report createReport(List<ReportLineItemDefinition> reportLineItemDefinitions, boolean inWorkingDays,
|
||||
List<MonitorQueryItem> monitorQueryItems) {
|
||||
Report report = new Report();
|
||||
|
||||
DaysToWorkingDaysConverter instance = null;
|
||||
if (reportLineItemDefinitions != null && inWorkingDays) {
|
||||
instance = DaysToWorkingDaysConverter.initialize(reportLineItemDefinitions);
|
||||
}
|
||||
|
||||
for (MonitorQueryItem item : monitorQueryItems) {
|
||||
if (instance != null) {
|
||||
item.setAgeInDays(instance.convertDaysToWorkingDays(item.getAgeInDays()));
|
||||
}
|
||||
if (!report.getDetailLines().containsKey(item.getKey())) {
|
||||
report.getDetailLines().put(item.getKey(), createEmptyReportLine(reportLineItemDefinitions));
|
||||
}
|
||||
report.getDetailLines().get(item.getKey()).addNumberOfTasks(item);
|
||||
}
|
||||
|
||||
report.generateSumLine(createEmptyReportLine(reportLineItemDefinitions));
|
||||
return report;
|
||||
}
|
||||
|
||||
private ReportLine createEmptyReportLine(List<ReportLineItemDefinition> reportLineItemDefinitions) {
|
||||
ReportLine reportLine = new ReportLine();
|
||||
if (reportLineItemDefinitions != null) {
|
||||
for (ReportLineItemDefinition reportLineItemDefinition : reportLineItemDefinitions) {
|
||||
ReportLineItem reportLineItem = new ReportLineItem();
|
||||
reportLineItem.setReportLineItemDefinition(reportLineItemDefinition);
|
||||
reportLine.getLineItems().add(reportLineItem);
|
||||
}
|
||||
}
|
||||
return reportLine;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import org.apache.ibatis.annotations.Select;
|
|||
|
||||
import pro.taskana.Workbasket;
|
||||
import pro.taskana.impl.CustomField;
|
||||
import pro.taskana.impl.DetailedMonitorQueryItem;
|
||||
import pro.taskana.impl.MonitorQueryItem;
|
||||
import pro.taskana.impl.TaskState;
|
||||
|
||||
|
@ -71,6 +72,25 @@ public interface TaskMonitorMapper {
|
|||
@Param("workbaskets") List<Workbasket> workbaskets,
|
||||
@Param("states") List<TaskState> states);
|
||||
|
||||
@Select("<script>"
|
||||
+ "<if test=\"_databaseId == 'db2'\">SELECT T.CLASSIFICATION_KEY as TASK_CLASSIFICATION_KEY, A.CLASSIFICATION_KEY as ATTACHMENT_CLASSIFICATION_KEY, (DAYS(DUE) - DAYS(CURRENT_TIMESTAMP)) as AGE_IN_DAYS, COUNT(*) as NUMBER_OF_TASKS</if> "
|
||||
+ "<if test=\"_databaseId == 'h2'\">SELECT T.CLASSIFICATION_KEY as TASK_CLASSIFICATION_KEY, A.CLASSIFICATION_KEY as ATTACHMENT_CLASSIFICATION_KEY, DATEDIFF('DAY', CURRENT_TIMESTAMP, DUE) as AGE_IN_DAYS, COUNT(*) as NUMBER_OF_TASKS</if> "
|
||||
+ "FROM TASK AS T LEFT JOIN ATTACHMENT AS A ON T.ID = A.TASK_ID "
|
||||
+ "WHERE WORKBASKET_KEY IN (<foreach collection='workbaskets' item='workbasket' separator=','>#{workbasket.key}</foreach>) "
|
||||
+ "AND STATE IN (<foreach collection='states' item='state' separator=','>#{state}</foreach>) "
|
||||
+ "AND DUE IS NOT NULL "
|
||||
+ "<if test=\"_databaseId == 'db2'\">GROUP BY T.CLASSIFICATION_KEY, A.CLASSIFICATION_KEY, (DAYS(DUE) - DAYS(CURRENT_TIMESTAMP))</if> "
|
||||
+ "<if test=\"_databaseId == 'h2'\">GROUP BY T.CLASSIFICATION_KEY, A.CLASSIFICATION_KEY, DATEDIFF('DAY', CURRENT_TIMESTAMP, DUE)</if> "
|
||||
+ "</script>")
|
||||
@Results({
|
||||
@Result(column = "TASK_CLASSIFICATION_KEY", property = "key"),
|
||||
@Result(column = "ATTACHMENT_CLASSIFICATION_KEY", property = "attachmentKey"),
|
||||
@Result(column = "AGE_IN_DAYS", property = "ageInDays"),
|
||||
@Result(column = "NUMBER_OF_TASKS", property = "numberOfTasks") })
|
||||
List<DetailedMonitorQueryItem> getTaskCountOfDetailedClassificationsByWorkbasketsAndStates(
|
||||
@Param("workbaskets") List<Workbasket> workbaskets,
|
||||
@Param("states") List<TaskState> states);
|
||||
|
||||
@Select("<script>"
|
||||
+ "<if test=\"_databaseId == 'db2'\">SELECT ${customField} as CUSTOM_FIELD, (DAYS(DUE) - DAYS(CURRENT_TIMESTAMP)) as AGE_IN_DAYS, COUNT(*) as NUMBER_OF_TASKS</if> "
|
||||
+ "<if test=\"_databaseId == 'h2'\">SELECT ${customField} as CUSTOM_FIELD, DATEDIFF('DAY', CURRENT_TIMESTAMP, DUE) as AGE_IN_DAYS, COUNT(*) as NUMBER_OF_TASKS</if> "
|
||||
|
|
|
@ -76,12 +76,12 @@ public class ProvideCategoryReportAccTest {
|
|||
Report report = taskMonitorService.getCategoryReport(workbaskets, states);
|
||||
|
||||
assertNotNull(report);
|
||||
assertEquals(33, report.getDetailLines().get(categories.get(0)).getTotalNumberOfTasks());
|
||||
assertEquals(7, report.getDetailLines().get(categories.get(1)).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getDetailLines().get(categories.get(2)).getTotalNumberOfTasks());
|
||||
assertEquals(0, report.getDetailLines().get(categories.get(0)).getLineItems().size());
|
||||
assertEquals(0, report.getDetailLines().get(categories.get(1)).getLineItems().size());
|
||||
assertEquals(0, report.getDetailLines().get(categories.get(2)).getLineItems().size());
|
||||
assertEquals(33, report.getReportLines().get(categories.get(0)).getTotalNumberOfTasks());
|
||||
assertEquals(7, report.getReportLines().get(categories.get(1)).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getReportLines().get(categories.get(2)).getTotalNumberOfTasks());
|
||||
assertEquals(0, report.getReportLines().get(categories.get(0)).getLineItems().size());
|
||||
assertEquals(0, report.getReportLines().get(categories.get(1)).getLineItems().size());
|
||||
assertEquals(0, report.getReportLines().get(categories.get(2)).getLineItems().size());
|
||||
assertEquals(50, report.getSumLine().getTotalNumberOfTasks());
|
||||
|
||||
}
|
||||
|
@ -112,9 +112,9 @@ public class ProvideCategoryReportAccTest {
|
|||
|
||||
assertNotNull(report);
|
||||
|
||||
assertEquals(33, report.getDetailLines().get(categories.get(0)).getTotalNumberOfTasks());
|
||||
assertEquals(7, report.getDetailLines().get(categories.get(1)).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getDetailLines().get(categories.get(2)).getTotalNumberOfTasks());
|
||||
assertEquals(33, report.getReportLines().get(categories.get(0)).getTotalNumberOfTasks());
|
||||
assertEquals(7, report.getReportLines().get(categories.get(1)).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getReportLines().get(categories.get(2)).getTotalNumberOfTasks());
|
||||
|
||||
assertEquals(10, report.getSumLine().getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(9, report.getSumLine().getLineItems().get(1).getNumberOfTasks());
|
||||
|
|
|
@ -82,16 +82,16 @@ public class ProvideClassificationReportAccTest {
|
|||
Report report = taskMonitorService.getClassificationReport(workbaskets, states);
|
||||
|
||||
assertNotNull(report);
|
||||
assertEquals(10, report.getDetailLines().get(classifications.get(0).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getDetailLines().get(classifications.get(1).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(7, report.getDetailLines().get(classifications.get(2).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getDetailLines().get(classifications.get(3).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(13, report.getDetailLines().get(classifications.get(4).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(0, report.getDetailLines().get(classifications.get(0).getKey()).getLineItems().size());
|
||||
assertEquals(0, report.getDetailLines().get(classifications.get(1).getKey()).getLineItems().size());
|
||||
assertEquals(0, report.getDetailLines().get(classifications.get(2).getKey()).getLineItems().size());
|
||||
assertEquals(0, report.getDetailLines().get(classifications.get(3).getKey()).getLineItems().size());
|
||||
assertEquals(0, report.getDetailLines().get(classifications.get(4).getKey()).getLineItems().size());
|
||||
assertEquals(10, report.getReportLines().get(classifications.get(0).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getReportLines().get(classifications.get(1).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(7, report.getReportLines().get(classifications.get(2).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getReportLines().get(classifications.get(3).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(13, report.getReportLines().get(classifications.get(4).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(0, report.getReportLines().get(classifications.get(0).getKey()).getLineItems().size());
|
||||
assertEquals(0, report.getReportLines().get(classifications.get(1).getKey()).getLineItems().size());
|
||||
assertEquals(0, report.getReportLines().get(classifications.get(2).getKey()).getLineItems().size());
|
||||
assertEquals(0, report.getReportLines().get(classifications.get(3).getKey()).getLineItems().size());
|
||||
assertEquals(0, report.getReportLines().get(classifications.get(4).getKey()).getLineItems().size());
|
||||
assertEquals(50, report.getSumLine().getTotalNumberOfTasks());
|
||||
}
|
||||
|
||||
|
@ -121,11 +121,11 @@ public class ProvideClassificationReportAccTest {
|
|||
|
||||
assertNotNull(report);
|
||||
|
||||
assertEquals(10, report.getDetailLines().get(classifications.get(0).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getDetailLines().get(classifications.get(1).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(7, report.getDetailLines().get(classifications.get(2).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getDetailLines().get(classifications.get(3).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(13, report.getDetailLines().get(classifications.get(4).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getReportLines().get(classifications.get(0).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getReportLines().get(classifications.get(1).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(7, report.getReportLines().get(classifications.get(2).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getReportLines().get(classifications.get(3).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(13, report.getReportLines().get(classifications.get(4).getKey()).getTotalNumberOfTasks());
|
||||
|
||||
assertEquals(10, report.getSumLine().getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(9, report.getSumLine().getLineItems().get(1).getNumberOfTasks());
|
||||
|
@ -154,35 +154,35 @@ public class ProvideClassificationReportAccTest {
|
|||
|
||||
Report report = taskMonitorService.getClassificationReport(workbaskets, states, reportLineItemDefinitions);
|
||||
|
||||
List<ReportLineItem> line1 = report.getDetailLines().get(classifications.get(0).getKey()).getLineItems();
|
||||
List<ReportLineItem> line1 = report.getReportLines().get(classifications.get(0).getKey()).getLineItems();
|
||||
assertEquals(7, line1.get(0).getNumberOfTasks());
|
||||
assertEquals(2, line1.get(1).getNumberOfTasks());
|
||||
assertEquals(1, line1.get(2).getNumberOfTasks());
|
||||
assertEquals(0, line1.get(3).getNumberOfTasks());
|
||||
assertEquals(0, line1.get(4).getNumberOfTasks());
|
||||
|
||||
List<ReportLineItem> line2 = report.getDetailLines().get(classifications.get(1).getKey()).getLineItems();
|
||||
List<ReportLineItem> line2 = report.getReportLines().get(classifications.get(1).getKey()).getLineItems();
|
||||
assertEquals(5, line2.get(0).getNumberOfTasks());
|
||||
assertEquals(3, line2.get(1).getNumberOfTasks());
|
||||
assertEquals(1, line2.get(2).getNumberOfTasks());
|
||||
assertEquals(1, line2.get(3).getNumberOfTasks());
|
||||
assertEquals(0, line2.get(4).getNumberOfTasks());
|
||||
|
||||
List<ReportLineItem> line3 = report.getDetailLines().get(classifications.get(2).getKey()).getLineItems();
|
||||
List<ReportLineItem> line3 = report.getReportLines().get(classifications.get(2).getKey()).getLineItems();
|
||||
assertEquals(2, line3.get(0).getNumberOfTasks());
|
||||
assertEquals(1, line3.get(1).getNumberOfTasks());
|
||||
assertEquals(0, line3.get(2).getNumberOfTasks());
|
||||
assertEquals(1, line3.get(3).getNumberOfTasks());
|
||||
assertEquals(3, line3.get(4).getNumberOfTasks());
|
||||
|
||||
List<ReportLineItem> line4 = report.getDetailLines().get(classifications.get(3).getKey()).getLineItems();
|
||||
List<ReportLineItem> line4 = report.getReportLines().get(classifications.get(3).getKey()).getLineItems();
|
||||
assertEquals(2, line4.get(0).getNumberOfTasks());
|
||||
assertEquals(2, line4.get(1).getNumberOfTasks());
|
||||
assertEquals(2, line4.get(2).getNumberOfTasks());
|
||||
assertEquals(0, line4.get(3).getNumberOfTasks());
|
||||
assertEquals(4, line4.get(4).getNumberOfTasks());
|
||||
|
||||
List<ReportLineItem> line5 = report.getDetailLines().get(classifications.get(4).getKey()).getLineItems();
|
||||
List<ReportLineItem> line5 = report.getReportLines().get(classifications.get(4).getKey()).getLineItems();
|
||||
assertEquals(3, line5.get(0).getNumberOfTasks());
|
||||
assertEquals(3, line5.get(1).getNumberOfTasks());
|
||||
assertEquals(0, line5.get(2).getNumberOfTasks());
|
||||
|
|
|
@ -84,13 +84,13 @@ public class ProvideCustomFieldValueReportAccTest {
|
|||
Report report = taskMonitorService.getCustomFieldValueReport(workbaskets, states, customField);
|
||||
|
||||
assertNotNull(report);
|
||||
assertEquals(25, report.getDetailLines().get(customFieldValue1).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getDetailLines().get(customFieldValue2).getTotalNumberOfTasks());
|
||||
assertEquals(15, report.getDetailLines().get(customFieldValue3).getTotalNumberOfTasks());
|
||||
assertEquals(0, report.getDetailLines().get(customFieldValue1).getLineItems().size());
|
||||
assertEquals(0, report.getDetailLines().get(customFieldValue2).getLineItems().size());
|
||||
assertEquals(0, report.getDetailLines().get(customFieldValue3).getLineItems().size());
|
||||
assertEquals(3, report.getDetailLines().size());
|
||||
assertEquals(25, report.getReportLines().get(customFieldValue1).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getReportLines().get(customFieldValue2).getTotalNumberOfTasks());
|
||||
assertEquals(15, report.getReportLines().get(customFieldValue3).getTotalNumberOfTasks());
|
||||
assertEquals(0, report.getReportLines().get(customFieldValue1).getLineItems().size());
|
||||
assertEquals(0, report.getReportLines().get(customFieldValue2).getLineItems().size());
|
||||
assertEquals(0, report.getReportLines().get(customFieldValue3).getLineItems().size());
|
||||
assertEquals(3, report.getReportLines().size());
|
||||
assertEquals(50, report.getSumLine().getTotalNumberOfTasks());
|
||||
}
|
||||
|
||||
|
@ -110,13 +110,13 @@ public class ProvideCustomFieldValueReportAccTest {
|
|||
|
||||
Report report = taskMonitorService.getCustomFieldValueReport(workbaskets, states, customField);
|
||||
assertNotNull(report);
|
||||
assertEquals(21, report.getDetailLines().get(customFieldValue1).getTotalNumberOfTasks());
|
||||
assertEquals(29, report.getDetailLines().get(customFieldValue2).getTotalNumberOfTasks());
|
||||
assertEquals(21, report.getReportLines().get(customFieldValue1).getTotalNumberOfTasks());
|
||||
assertEquals(29, report.getReportLines().get(customFieldValue2).getTotalNumberOfTasks());
|
||||
|
||||
assertEquals(0, report.getDetailLines().get(customFieldValue1).getLineItems().size());
|
||||
assertEquals(0, report.getDetailLines().get(customFieldValue2).getLineItems().size());
|
||||
assertEquals(0, report.getReportLines().get(customFieldValue1).getLineItems().size());
|
||||
assertEquals(0, report.getReportLines().get(customFieldValue2).getLineItems().size());
|
||||
|
||||
assertEquals(2, report.getDetailLines().size());
|
||||
assertEquals(2, report.getReportLines().size());
|
||||
assertEquals(50, report.getSumLine().getTotalNumberOfTasks());
|
||||
}
|
||||
|
||||
|
@ -142,9 +142,9 @@ public class ProvideCustomFieldValueReportAccTest {
|
|||
|
||||
assertNotNull(report);
|
||||
|
||||
assertEquals(25, report.getDetailLines().get(customFieldValue1).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getDetailLines().get(customFieldValue2).getTotalNumberOfTasks());
|
||||
assertEquals(15, report.getDetailLines().get(customFieldValue3).getTotalNumberOfTasks());
|
||||
assertEquals(25, report.getReportLines().get(customFieldValue1).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getReportLines().get(customFieldValue2).getTotalNumberOfTasks());
|
||||
assertEquals(15, report.getReportLines().get(customFieldValue3).getTotalNumberOfTasks());
|
||||
|
||||
assertEquals(10, report.getSumLine().getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(9, report.getSumLine().getLineItems().get(1).getNumberOfTasks());
|
||||
|
@ -156,7 +156,7 @@ public class ProvideCustomFieldValueReportAccTest {
|
|||
assertEquals(4, report.getSumLine().getLineItems().get(7).getNumberOfTasks());
|
||||
assertEquals(5, report.getSumLine().getLineItems().get(8).getNumberOfTasks());
|
||||
|
||||
assertEquals(3, report.getDetailLines().size());
|
||||
assertEquals(3, report.getReportLines().size());
|
||||
assertEquals(50, report.getSumLine().getTotalNumberOfTasks());
|
||||
}
|
||||
|
||||
|
@ -182,9 +182,9 @@ public class ProvideCustomFieldValueReportAccTest {
|
|||
|
||||
assertNotNull(report);
|
||||
|
||||
assertEquals(25, report.getDetailLines().get(customFieldValue1).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getDetailLines().get(customFieldValue2).getTotalNumberOfTasks());
|
||||
assertEquals(15, report.getDetailLines().get(customFieldValue3).getTotalNumberOfTasks());
|
||||
assertEquals(25, report.getReportLines().get(customFieldValue1).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getReportLines().get(customFieldValue2).getTotalNumberOfTasks());
|
||||
assertEquals(15, report.getReportLines().get(customFieldValue3).getTotalNumberOfTasks());
|
||||
|
||||
assertEquals(19, report.getSumLine().getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(11, report.getSumLine().getLineItems().get(1).getNumberOfTasks());
|
||||
|
@ -196,7 +196,7 @@ public class ProvideCustomFieldValueReportAccTest {
|
|||
assertEquals(7, report.getSumLine().getLineItems().get(7).getNumberOfTasks());
|
||||
assertEquals(9, report.getSumLine().getLineItems().get(8).getNumberOfTasks());
|
||||
|
||||
assertEquals(3, report.getDetailLines().size());
|
||||
assertEquals(3, report.getReportLines().size());
|
||||
assertEquals(50, report.getSumLine().getTotalNumberOfTasks());
|
||||
}
|
||||
|
||||
|
@ -219,21 +219,21 @@ public class ProvideCustomFieldValueReportAccTest {
|
|||
Report report = taskMonitorService.getCustomFieldValueReport(workbaskets, states, customField,
|
||||
reportLineItemDefinitions);
|
||||
|
||||
List<ReportLineItem> line1 = report.getDetailLines().get(customFieldValue1).getLineItems();
|
||||
List<ReportLineItem> line1 = report.getReportLines().get(customFieldValue1).getLineItems();
|
||||
assertEquals(11, line1.get(0).getNumberOfTasks());
|
||||
assertEquals(4, line1.get(1).getNumberOfTasks());
|
||||
assertEquals(3, line1.get(2).getNumberOfTasks());
|
||||
assertEquals(4, line1.get(3).getNumberOfTasks());
|
||||
assertEquals(3, line1.get(4).getNumberOfTasks());
|
||||
|
||||
List<ReportLineItem> line2 = report.getDetailLines().get(customFieldValue2).getLineItems();
|
||||
List<ReportLineItem> line2 = report.getReportLines().get(customFieldValue2).getLineItems();
|
||||
assertEquals(5, line2.get(0).getNumberOfTasks());
|
||||
assertEquals(3, line2.get(1).getNumberOfTasks());
|
||||
assertEquals(0, line2.get(2).getNumberOfTasks());
|
||||
assertEquals(2, line2.get(3).getNumberOfTasks());
|
||||
assertEquals(0, line2.get(4).getNumberOfTasks());
|
||||
|
||||
List<ReportLineItem> line3 = report.getDetailLines().get(customFieldValue3).getLineItems();
|
||||
List<ReportLineItem> line3 = report.getReportLines().get(customFieldValue3).getLineItems();
|
||||
assertEquals(3, line3.get(0).getNumberOfTasks());
|
||||
assertEquals(4, line3.get(1).getNumberOfTasks());
|
||||
assertEquals(1, line3.get(2).getNumberOfTasks());
|
||||
|
|
|
@ -0,0 +1,311 @@
|
|||
package acceptance.monitoring;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.h2.store.fs.FileUtils;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import pro.taskana.TaskMonitorService;
|
||||
import pro.taskana.TaskanaEngine;
|
||||
import pro.taskana.TaskanaEngine.ConnectionManagementMode;
|
||||
import pro.taskana.Workbasket;
|
||||
import pro.taskana.WorkbasketService;
|
||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||
import pro.taskana.database.TestDataGenerator;
|
||||
import pro.taskana.exceptions.ClassificationNotFoundException;
|
||||
import pro.taskana.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||
import pro.taskana.impl.DetailedClassificationReport;
|
||||
import pro.taskana.impl.DetailedReportLine;
|
||||
import pro.taskana.impl.ReportLine;
|
||||
import pro.taskana.impl.ReportLineItemDefinition;
|
||||
import pro.taskana.impl.TaskState;
|
||||
import pro.taskana.impl.TaskanaEngineImpl;
|
||||
import pro.taskana.impl.WorkbasketImpl;
|
||||
import pro.taskana.impl.configuration.DBCleaner;
|
||||
import pro.taskana.impl.configuration.TaskanaEngineConfigurationTest;
|
||||
import pro.taskana.security.JAASRunner;
|
||||
import pro.taskana.security.WithAccessId;
|
||||
|
||||
/**
|
||||
* Acceptance test for all "classification report" scenarios.
|
||||
*/
|
||||
@RunWith(JAASRunner.class)
|
||||
public class ProvideDetailedClassificationReportAccTest {
|
||||
|
||||
protected static TaskanaEngineConfiguration taskanaEngineConfiguration;
|
||||
protected static TaskanaEngine taskanaEngine;
|
||||
|
||||
@BeforeClass
|
||||
public static void setupTest() throws Exception {
|
||||
resetDb();
|
||||
}
|
||||
|
||||
public static void resetDb() throws SQLException, IOException {
|
||||
DataSource dataSource = TaskanaEngineConfigurationTest.getDataSource();
|
||||
DBCleaner cleaner = new DBCleaner();
|
||||
cleaner.clearDb(dataSource, true);
|
||||
dataSource = TaskanaEngineConfigurationTest.getDataSource();
|
||||
taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false);
|
||||
taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine();
|
||||
((TaskanaEngineImpl) taskanaEngine).setConnectionManagementMode(ConnectionManagementMode.AUTOCOMMIT);
|
||||
cleaner.clearDb(dataSource, false);
|
||||
TestDataGenerator testDataGenerator = new TestDataGenerator();
|
||||
testDataGenerator.generateMonitoringTestData(dataSource);
|
||||
}
|
||||
|
||||
@WithAccessId(userName = "monitor_user_1")
|
||||
@Test
|
||||
public void testGetTotalNumbersOfTasksOfClassificationReport()
|
||||
throws WorkbasketNotFoundException, NotAuthorizedException, ClassificationNotFoundException {
|
||||
|
||||
TaskMonitorService taskMonitorService = taskanaEngine.getTaskMonitorService();
|
||||
|
||||
List<Workbasket> workbaskets = getListOfWorkbaskets();
|
||||
List<TaskState> states = Arrays.asList(TaskState.READY, TaskState.CLAIMED);
|
||||
|
||||
DetailedClassificationReport report = taskMonitorService.getDetailedClassificationReport(workbaskets, states);
|
||||
|
||||
assertNotNull(report);
|
||||
|
||||
DetailedReportLine line1 = (DetailedReportLine) report.getReportLines().get("L10000");
|
||||
assertEquals(10, line1.getTotalNumberOfTasks());
|
||||
assertEquals(3, line1.getDetailLines().get("L11000").getTotalNumberOfTasks());
|
||||
assertEquals(7, line1.getDetailLines().get("N/A").getTotalNumberOfTasks());
|
||||
assertEquals(0, line1.getLineItems().size());
|
||||
assertEquals(2, line1.getDetailLines().size());
|
||||
|
||||
DetailedReportLine line2 = (DetailedReportLine) report.getReportLines().get("L20000");
|
||||
assertEquals(10, line2.getTotalNumberOfTasks());
|
||||
assertEquals(4, line2.getDetailLines().get("L22000").getTotalNumberOfTasks());
|
||||
assertEquals(6, line2.getDetailLines().get("N/A").getTotalNumberOfTasks());
|
||||
assertEquals(0, line2.getLineItems().size());
|
||||
assertEquals(2, line2.getDetailLines().size());
|
||||
|
||||
DetailedReportLine line3 = (DetailedReportLine) report.getReportLines().get("L30000");
|
||||
assertEquals(7, line3.getTotalNumberOfTasks());
|
||||
assertEquals(3, line3.getDetailLines().get("L33000").getTotalNumberOfTasks());
|
||||
assertEquals(1, line3.getDetailLines().get("L99000").getTotalNumberOfTasks());
|
||||
assertEquals(3, line3.getDetailLines().get("N/A").getTotalNumberOfTasks());
|
||||
assertEquals(0, line3.getLineItems().size());
|
||||
assertEquals(3, line3.getDetailLines().size());
|
||||
|
||||
DetailedReportLine line4 = (DetailedReportLine) report.getReportLines().get("L40000");
|
||||
assertEquals(10, line4.getTotalNumberOfTasks());
|
||||
assertEquals(10, line4.getDetailLines().get("N/A").getTotalNumberOfTasks());
|
||||
assertEquals(0, line4.getLineItems().size());
|
||||
assertEquals(1, line4.getDetailLines().size());
|
||||
|
||||
DetailedReportLine line5 = (DetailedReportLine) report.getReportLines().get("L50000");
|
||||
assertEquals(13, line5.getTotalNumberOfTasks());
|
||||
assertEquals(13, line5.getDetailLines().get("N/A").getTotalNumberOfTasks());
|
||||
assertEquals(0, line5.getLineItems().size());
|
||||
assertEquals(1, line5.getDetailLines().size());
|
||||
|
||||
assertEquals(50, report.getSumLine().getTotalNumberOfTasks());
|
||||
}
|
||||
|
||||
@WithAccessId(userName = "monitor_user_1")
|
||||
@Test
|
||||
public void testGetClassificationReportWithReportLineItemDefinitions()
|
||||
throws WorkbasketNotFoundException, NotAuthorizedException, ClassificationNotFoundException {
|
||||
|
||||
TaskMonitorService taskMonitorService = taskanaEngine.getTaskMonitorService();
|
||||
|
||||
List<Workbasket> workbaskets = getListOfWorkbaskets();
|
||||
List<TaskState> states = Arrays.asList(TaskState.READY, TaskState.CLAIMED);
|
||||
List<ReportLineItemDefinition> reportLineItemDefinitions = getListOfReportLineItemDefinitions();
|
||||
|
||||
DetailedClassificationReport report = taskMonitorService.getDetailedClassificationReport(workbaskets, states,
|
||||
reportLineItemDefinitions);
|
||||
|
||||
assertNotNull(report);
|
||||
|
||||
assertEquals(10, report.getReportLines().get("L10000").getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getReportLines().get("L20000").getTotalNumberOfTasks());
|
||||
assertEquals(7, report.getReportLines().get("L30000").getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getReportLines().get("L40000").getTotalNumberOfTasks());
|
||||
assertEquals(13, report.getReportLines().get("L50000").getTotalNumberOfTasks());
|
||||
|
||||
assertEquals(10, report.getSumLine().getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(9, report.getSumLine().getLineItems().get(1).getNumberOfTasks());
|
||||
assertEquals(11, report.getSumLine().getLineItems().get(2).getNumberOfTasks());
|
||||
assertEquals(0, report.getSumLine().getLineItems().get(3).getNumberOfTasks());
|
||||
assertEquals(4, report.getSumLine().getLineItems().get(4).getNumberOfTasks());
|
||||
assertEquals(0, report.getSumLine().getLineItems().get(5).getNumberOfTasks());
|
||||
assertEquals(7, report.getSumLine().getLineItems().get(6).getNumberOfTasks());
|
||||
assertEquals(4, report.getSumLine().getLineItems().get(7).getNumberOfTasks());
|
||||
assertEquals(5, report.getSumLine().getLineItems().get(8).getNumberOfTasks());
|
||||
assertEquals(50, report.getSumLine().getTotalNumberOfTasks());
|
||||
}
|
||||
|
||||
@WithAccessId(userName = "monitor_user_1")
|
||||
@Test
|
||||
public void testEachItemOfClassificationReport()
|
||||
throws WorkbasketNotFoundException, NotAuthorizedException, ClassificationNotFoundException {
|
||||
|
||||
TaskMonitorService taskMonitorService = taskanaEngine.getTaskMonitorService();
|
||||
|
||||
List<Workbasket> workbaskets = getListOfWorkbaskets();
|
||||
List<TaskState> states = Arrays.asList(TaskState.READY, TaskState.CLAIMED);
|
||||
|
||||
List<ReportLineItemDefinition> reportLineItemDefinitions = getShortListOfReportLineItemDefinitions();
|
||||
|
||||
DetailedClassificationReport report = taskMonitorService.getDetailedClassificationReport(workbaskets, states,
|
||||
reportLineItemDefinitions);
|
||||
|
||||
DetailedReportLine line1 = (DetailedReportLine) report.getReportLines().get("L10000");
|
||||
assertEquals(7, line1.getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(2, line1.getLineItems().get(1).getNumberOfTasks());
|
||||
assertEquals(1, line1.getLineItems().get(2).getNumberOfTasks());
|
||||
assertEquals(0, line1.getLineItems().get(3).getNumberOfTasks());
|
||||
assertEquals(0, line1.getLineItems().get(4).getNumberOfTasks());
|
||||
|
||||
ReportLine detailedLine1 = line1.getDetailLines().get("L11000");
|
||||
assertEquals(2, detailedLine1.getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(0, detailedLine1.getLineItems().get(1).getNumberOfTasks());
|
||||
assertEquals(1, detailedLine1.getLineItems().get(2).getNumberOfTasks());
|
||||
assertEquals(0, detailedLine1.getLineItems().get(3).getNumberOfTasks());
|
||||
assertEquals(0, detailedLine1.getLineItems().get(4).getNumberOfTasks());
|
||||
|
||||
ReportLine detailedLineNoAttachment1 = line1.getDetailLines().get("N/A");
|
||||
assertEquals(5, detailedLineNoAttachment1.getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(2, detailedLineNoAttachment1.getLineItems().get(1).getNumberOfTasks());
|
||||
assertEquals(0, detailedLineNoAttachment1.getLineItems().get(2).getNumberOfTasks());
|
||||
assertEquals(0, detailedLineNoAttachment1.getLineItems().get(3).getNumberOfTasks());
|
||||
assertEquals(0, detailedLineNoAttachment1.getLineItems().get(4).getNumberOfTasks());
|
||||
|
||||
DetailedReportLine line2 = (DetailedReportLine) report.getReportLines().get("L20000");
|
||||
assertEquals(5, line2.getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(3, line2.getLineItems().get(1).getNumberOfTasks());
|
||||
assertEquals(1, line2.getLineItems().get(2).getNumberOfTasks());
|
||||
assertEquals(1, line2.getLineItems().get(3).getNumberOfTasks());
|
||||
assertEquals(0, line2.getLineItems().get(4).getNumberOfTasks());
|
||||
|
||||
ReportLine detailedLine2 = line2.getDetailLines().get("L22000");
|
||||
assertEquals(1, detailedLine2.getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(1, detailedLine2.getLineItems().get(1).getNumberOfTasks());
|
||||
assertEquals(1, detailedLine2.getLineItems().get(2).getNumberOfTasks());
|
||||
assertEquals(1, detailedLine2.getLineItems().get(3).getNumberOfTasks());
|
||||
assertEquals(0, detailedLine2.getLineItems().get(4).getNumberOfTasks());
|
||||
|
||||
ReportLine detailedLineNoAttachment2 = line2.getDetailLines().get("N/A");
|
||||
assertEquals(4, detailedLineNoAttachment2.getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(2, detailedLineNoAttachment2.getLineItems().get(1).getNumberOfTasks());
|
||||
assertEquals(0, detailedLineNoAttachment2.getLineItems().get(2).getNumberOfTasks());
|
||||
assertEquals(0, detailedLineNoAttachment2.getLineItems().get(3).getNumberOfTasks());
|
||||
assertEquals(0, detailedLineNoAttachment2.getLineItems().get(4).getNumberOfTasks());
|
||||
|
||||
DetailedReportLine line3 = (DetailedReportLine) report.getReportLines().get("L30000");
|
||||
assertEquals(2, line3.getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(1, line3.getLineItems().get(1).getNumberOfTasks());
|
||||
assertEquals(0, line3.getLineItems().get(2).getNumberOfTasks());
|
||||
assertEquals(1, line3.getLineItems().get(3).getNumberOfTasks());
|
||||
assertEquals(3, line3.getLineItems().get(4).getNumberOfTasks());
|
||||
|
||||
ReportLine detailedLine3a = line3.getDetailLines().get("L33000");
|
||||
assertEquals(0, detailedLine3a.getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(1, detailedLine3a.getLineItems().get(1).getNumberOfTasks());
|
||||
assertEquals(0, detailedLine3a.getLineItems().get(2).getNumberOfTasks());
|
||||
assertEquals(1, detailedLine3a.getLineItems().get(3).getNumberOfTasks());
|
||||
assertEquals(1, detailedLine3a.getLineItems().get(4).getNumberOfTasks());
|
||||
|
||||
ReportLine detailedLine3b = line3.getDetailLines().get("L99000");
|
||||
assertEquals(0, detailedLine3b.getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(0, detailedLine3b.getLineItems().get(1).getNumberOfTasks());
|
||||
assertEquals(0, detailedLine3b.getLineItems().get(2).getNumberOfTasks());
|
||||
assertEquals(0, detailedLine3b.getLineItems().get(3).getNumberOfTasks());
|
||||
assertEquals(1, detailedLine3b.getLineItems().get(4).getNumberOfTasks());
|
||||
|
||||
ReportLine detailedLineNoAttachment3 = line3.getDetailLines().get("N/A");
|
||||
assertEquals(2, detailedLineNoAttachment3.getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(0, detailedLineNoAttachment3.getLineItems().get(1).getNumberOfTasks());
|
||||
assertEquals(0, detailedLineNoAttachment3.getLineItems().get(2).getNumberOfTasks());
|
||||
assertEquals(0, detailedLineNoAttachment3.getLineItems().get(3).getNumberOfTasks());
|
||||
assertEquals(1, detailedLineNoAttachment3.getLineItems().get(4).getNumberOfTasks());
|
||||
|
||||
DetailedReportLine line4 = (DetailedReportLine) report.getReportLines().get("L40000");
|
||||
assertEquals(2, line4.getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(2, line4.getLineItems().get(1).getNumberOfTasks());
|
||||
assertEquals(2, line4.getLineItems().get(2).getNumberOfTasks());
|
||||
assertEquals(0, line4.getLineItems().get(3).getNumberOfTasks());
|
||||
assertEquals(4, line4.getLineItems().get(4).getNumberOfTasks());
|
||||
|
||||
ReportLine detailedLineNoAttachment4 = line4.getDetailLines().get("N/A");
|
||||
assertEquals(2, detailedLineNoAttachment4.getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(2, detailedLineNoAttachment4.getLineItems().get(1).getNumberOfTasks());
|
||||
assertEquals(2, detailedLineNoAttachment4.getLineItems().get(2).getNumberOfTasks());
|
||||
assertEquals(0, detailedLineNoAttachment4.getLineItems().get(3).getNumberOfTasks());
|
||||
assertEquals(4, detailedLineNoAttachment4.getLineItems().get(4).getNumberOfTasks());
|
||||
|
||||
DetailedReportLine line5 = (DetailedReportLine) report.getReportLines().get("L50000");
|
||||
assertEquals(3, line5.getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(3, line5.getLineItems().get(1).getNumberOfTasks());
|
||||
assertEquals(0, line5.getLineItems().get(2).getNumberOfTasks());
|
||||
assertEquals(5, line5.getLineItems().get(3).getNumberOfTasks());
|
||||
assertEquals(2, line5.getLineItems().get(4).getNumberOfTasks());
|
||||
|
||||
ReportLine detailedLineNoAttachment5 = line5.getDetailLines().get("N/A");
|
||||
assertEquals(3, detailedLineNoAttachment5.getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(3, detailedLineNoAttachment5.getLineItems().get(1).getNumberOfTasks());
|
||||
assertEquals(0, detailedLineNoAttachment5.getLineItems().get(2).getNumberOfTasks());
|
||||
assertEquals(5, detailedLineNoAttachment5.getLineItems().get(3).getNumberOfTasks());
|
||||
assertEquals(2, detailedLineNoAttachment5.getLineItems().get(4).getNumberOfTasks());
|
||||
}
|
||||
|
||||
private List<Workbasket> getListOfWorkbaskets() throws WorkbasketNotFoundException, NotAuthorizedException {
|
||||
WorkbasketService workbasketService = taskanaEngine.getWorkbasketService();
|
||||
|
||||
WorkbasketImpl workbasket1 = (WorkbasketImpl) workbasketService
|
||||
.getWorkbasket("WBI:000000000000000000000000000000000001");
|
||||
WorkbasketImpl workbasket2 = (WorkbasketImpl) workbasketService
|
||||
.getWorkbasket("WBI:000000000000000000000000000000000002");
|
||||
WorkbasketImpl workbasket3 = (WorkbasketImpl) workbasketService
|
||||
.getWorkbasket("WBI:000000000000000000000000000000000003");
|
||||
WorkbasketImpl workbasket4 = (WorkbasketImpl) workbasketService
|
||||
.getWorkbasket("WBI:000000000000000000000000000000000004");
|
||||
|
||||
return Arrays.asList(workbasket1, workbasket2, workbasket3, workbasket4);
|
||||
}
|
||||
|
||||
private List<ReportLineItemDefinition> getListOfReportLineItemDefinitions() {
|
||||
List<ReportLineItemDefinition> reportLineItemDefinitions = new ArrayList<>();
|
||||
reportLineItemDefinitions.add(new ReportLineItemDefinition(Integer.MIN_VALUE, -11));
|
||||
reportLineItemDefinitions.add(new ReportLineItemDefinition(-10, -6));
|
||||
reportLineItemDefinitions.add(new ReportLineItemDefinition(-5, -2));
|
||||
reportLineItemDefinitions.add(new ReportLineItemDefinition(-1));
|
||||
reportLineItemDefinitions.add(new ReportLineItemDefinition(0));
|
||||
reportLineItemDefinitions.add(new ReportLineItemDefinition(1));
|
||||
reportLineItemDefinitions.add(new ReportLineItemDefinition(2, 5));
|
||||
reportLineItemDefinitions.add(new ReportLineItemDefinition(6, 10));
|
||||
reportLineItemDefinitions.add(new ReportLineItemDefinition(11, Integer.MAX_VALUE));
|
||||
return reportLineItemDefinitions;
|
||||
}
|
||||
|
||||
private List<ReportLineItemDefinition> getShortListOfReportLineItemDefinitions() {
|
||||
List<ReportLineItemDefinition> reportLineItemDefinitions = new ArrayList<>();
|
||||
reportLineItemDefinitions.add(new ReportLineItemDefinition(Integer.MIN_VALUE, -6));
|
||||
reportLineItemDefinitions.add(new ReportLineItemDefinition(-5, -1));
|
||||
reportLineItemDefinitions.add(new ReportLineItemDefinition(0));
|
||||
reportLineItemDefinitions.add(new ReportLineItemDefinition(1, 5));
|
||||
reportLineItemDefinitions.add(new ReportLineItemDefinition(6, Integer.MAX_VALUE));
|
||||
return reportLineItemDefinitions;
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public static void cleanUpClass() {
|
||||
FileUtils.deleteRecursive("~/data", true);
|
||||
}
|
||||
}
|
|
@ -75,9 +75,9 @@ public class ProvideWorkbasketLevelReportAccTest {
|
|||
Report report = taskMonitorService.getWorkbasketLevelReport(workbaskets, states);
|
||||
|
||||
assertNotNull(report);
|
||||
assertEquals(20, report.getDetailLines().get(workbaskets.get(0).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(20, report.getDetailLines().get(workbaskets.get(1).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getDetailLines().get(workbaskets.get(2).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(20, report.getReportLines().get(workbaskets.get(0).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(20, report.getReportLines().get(workbaskets.get(1).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getReportLines().get(workbaskets.get(2).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(50, report.getSumLine().getTotalNumberOfTasks());
|
||||
|
||||
}
|
||||
|
@ -107,9 +107,9 @@ public class ProvideWorkbasketLevelReportAccTest {
|
|||
|
||||
assertNotNull(report);
|
||||
|
||||
assertEquals(20, report.getDetailLines().get(workbaskets.get(0).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(20, report.getDetailLines().get(workbaskets.get(1).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getDetailLines().get(workbaskets.get(2).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(20, report.getReportLines().get(workbaskets.get(0).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(20, report.getReportLines().get(workbaskets.get(1).getKey()).getTotalNumberOfTasks());
|
||||
assertEquals(10, report.getReportLines().get(workbaskets.get(2).getKey()).getTotalNumberOfTasks());
|
||||
|
||||
assertEquals(10, report.getSumLine().getLineItems().get(0).getNumberOfTasks());
|
||||
assertEquals(9, report.getSumLine().getLineItems().get(1).getNumberOfTasks());
|
||||
|
|
|
@ -86,7 +86,7 @@ public class TaskMonitorServiceImplTest {
|
|||
taskMonitorMapperMock, objectReferenceMapperMock, workbasketServiceMock);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(actualResult.getDetailLines().get(workbasket.getKey()).getTotalNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getReportLines().get(workbasket.getKey()).getTotalNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getSumLine().getTotalNumberOfTasks(), 1);
|
||||
}
|
||||
|
||||
|
@ -118,8 +118,8 @@ public class TaskMonitorServiceImplTest {
|
|||
taskMonitorMapperMock, objectReferenceMapperMock, workbasketServiceMock);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(actualResult.getDetailLines().get(workbasket.getKey()).getTotalNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getDetailLines().get(workbasket.getKey()).getLineItems().get(0).getNumberOfTasks(),
|
||||
assertEquals(actualResult.getReportLines().get(workbasket.getKey()).getTotalNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getReportLines().get(workbasket.getKey()).getLineItems().get(0).getNumberOfTasks(),
|
||||
1);
|
||||
assertEquals(actualResult.getSumLine().getTotalNumberOfTasks(), 1);
|
||||
}
|
||||
|
@ -149,7 +149,7 @@ public class TaskMonitorServiceImplTest {
|
|||
taskMonitorMapperMock, objectReferenceMapperMock, workbasketServiceMock);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(actualResult.getDetailLines().get("EXTERN").getTotalNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getReportLines().get("EXTERN").getTotalNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getSumLine().getTotalNumberOfTasks(), 1);
|
||||
}
|
||||
|
||||
|
@ -181,8 +181,8 @@ public class TaskMonitorServiceImplTest {
|
|||
taskMonitorMapperMock, objectReferenceMapperMock, workbasketServiceMock);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(actualResult.getDetailLines().get("EXTERN").getTotalNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getDetailLines().get("EXTERN").getLineItems().get(0).getNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getReportLines().get("EXTERN").getTotalNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getReportLines().get("EXTERN").getLineItems().get(0).getNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getSumLine().getTotalNumberOfTasks(), 1);
|
||||
}
|
||||
|
||||
|
@ -202,7 +202,7 @@ public class TaskMonitorServiceImplTest {
|
|||
doReturn(expectedResult).when(taskMonitorMapperMock).getTaskCountOfClassificationsByWorkbasketsAndStates(
|
||||
workbaskets, states);
|
||||
|
||||
Report actualResult = cut.getClassificationReport(workbaskets, states);
|
||||
ClassificationReport actualResult = cut.getClassificationReport(workbaskets, states);
|
||||
|
||||
verify(taskanaEngineImpl, times(1)).openConnection();
|
||||
verify(taskMonitorMapperMock, times(1)).getTaskCountOfClassificationsByWorkbasketsAndStates(any(), any());
|
||||
|
@ -211,7 +211,7 @@ public class TaskMonitorServiceImplTest {
|
|||
taskMonitorMapperMock, objectReferenceMapperMock, workbasketServiceMock);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(actualResult.getDetailLines().get("L10000").getTotalNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getReportLines().get("L10000").getTotalNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getSumLine().getTotalNumberOfTasks(), 1);
|
||||
}
|
||||
|
||||
|
@ -234,7 +234,7 @@ public class TaskMonitorServiceImplTest {
|
|||
doReturn(expectedResult).when(taskMonitorMapperMock).getTaskCountOfClassificationsByWorkbasketsAndStates(
|
||||
workbaskets, states);
|
||||
|
||||
Report actualResult = cut.getClassificationReport(workbaskets, states, reportLineItemDefinitions);
|
||||
ClassificationReport actualResult = cut.getClassificationReport(workbaskets, states, reportLineItemDefinitions);
|
||||
|
||||
verify(taskanaEngineImpl, times(1)).openConnection();
|
||||
verify(taskMonitorMapperMock, times(1)).getTaskCountOfClassificationsByWorkbasketsAndStates(any(), any());
|
||||
|
@ -243,11 +243,84 @@ public class TaskMonitorServiceImplTest {
|
|||
taskMonitorMapperMock, objectReferenceMapperMock, workbasketServiceMock);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(actualResult.getDetailLines().get("L10000").getTotalNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getDetailLines().get("L10000").getLineItems().get(0).getNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getReportLines().get("L10000").getTotalNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getReportLines().get("L10000").getLineItems().get(0).getNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getSumLine().getTotalNumberOfTasks(), 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetTotalNumbersOfDetailedClassificationReport() {
|
||||
WorkbasketImpl workbasket = new WorkbasketImpl();
|
||||
workbasket.setName("workbasket");
|
||||
workbasket.setKey("wb1");
|
||||
List<Workbasket> workbaskets = Arrays.asList(workbasket);
|
||||
List<TaskState> states = Arrays.asList(TaskState.CLAIMED, TaskState.READY);
|
||||
|
||||
List<DetailedMonitorQueryItem> expectedResult = new ArrayList<>();
|
||||
DetailedMonitorQueryItem detailedMonitorQueryItem = new DetailedMonitorQueryItem();
|
||||
detailedMonitorQueryItem.setKey("L10000");
|
||||
detailedMonitorQueryItem.setAttachmentKey("L11000");
|
||||
detailedMonitorQueryItem.setNumberOfTasks(1);
|
||||
expectedResult.add(detailedMonitorQueryItem);
|
||||
doReturn(expectedResult).when(taskMonitorMapperMock)
|
||||
.getTaskCountOfDetailedClassificationsByWorkbasketsAndStates(workbaskets, states);
|
||||
|
||||
DetailedClassificationReport actualResult = cut.getDetailedClassificationReport(workbaskets, states);
|
||||
|
||||
verify(taskanaEngineImpl, times(1)).openConnection();
|
||||
verify(taskMonitorMapperMock, times(1)).getTaskCountOfDetailedClassificationsByWorkbasketsAndStates(any(),
|
||||
any());
|
||||
verify(taskanaEngineImpl, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineConfigurationMock, taskanaEngineMock, taskanaEngineImpl,
|
||||
taskMonitorMapperMock, objectReferenceMapperMock, workbasketServiceMock);
|
||||
|
||||
DetailedReportLine line = (DetailedReportLine) actualResult.getReportLines().get("L10000");
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(line.getTotalNumberOfTasks(), 1);
|
||||
assertEquals(line.getDetailLines().get("L11000").getTotalNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getSumLine().getTotalNumberOfTasks(), 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetDetailedClassificationReportWithReportLineItemDefinitions() {
|
||||
WorkbasketImpl workbasket = new WorkbasketImpl();
|
||||
workbasket.setName("workbasket");
|
||||
workbasket.setKey("wb1");
|
||||
List<Workbasket> workbaskets = Arrays.asList(workbasket);
|
||||
List<TaskState> states = Arrays.asList(TaskState.CLAIMED, TaskState.READY);
|
||||
List<ReportLineItemDefinition> reportLineItemDefinitions = Arrays.asList(new ReportLineItemDefinition(),
|
||||
new ReportLineItemDefinition());
|
||||
|
||||
List<DetailedMonitorQueryItem> expectedResult = new ArrayList<>();
|
||||
DetailedMonitorQueryItem detailedMonitorQueryItem = new DetailedMonitorQueryItem();
|
||||
detailedMonitorQueryItem.setKey("L10000");
|
||||
detailedMonitorQueryItem.setAttachmentKey("L11000");
|
||||
detailedMonitorQueryItem.setAgeInDays(0);
|
||||
detailedMonitorQueryItem.setNumberOfTasks(1);
|
||||
expectedResult.add(detailedMonitorQueryItem);
|
||||
doReturn(expectedResult).when(taskMonitorMapperMock)
|
||||
.getTaskCountOfDetailedClassificationsByWorkbasketsAndStates(workbaskets, states);
|
||||
|
||||
DetailedClassificationReport actualResult = cut.getDetailedClassificationReport(workbaskets, states,
|
||||
reportLineItemDefinitions);
|
||||
|
||||
verify(taskanaEngineImpl, times(1)).openConnection();
|
||||
verify(taskMonitorMapperMock, times(1)).getTaskCountOfDetailedClassificationsByWorkbasketsAndStates(any(),
|
||||
any());
|
||||
verify(taskanaEngineImpl, times(1)).returnConnection();
|
||||
verifyNoMoreInteractions(taskanaEngineConfigurationMock, taskanaEngineMock, taskanaEngineImpl,
|
||||
taskMonitorMapperMock, objectReferenceMapperMock, workbasketServiceMock);
|
||||
|
||||
DetailedReportLine line = (DetailedReportLine) actualResult.getReportLines().get("L10000");
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(line.getTotalNumberOfTasks(), 1);
|
||||
assertEquals(line.getDetailLines().get("L11000").getTotalNumberOfTasks(), 1);
|
||||
assertEquals(line.getLineItems().get(0).getNumberOfTasks(), 1);
|
||||
assertEquals(line.getDetailLines().get("L11000").getLineItems().get(0).getNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getSumLine().getTotalNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getSumLine().getLineItems().get(0).getNumberOfTasks(), 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetTotalNumbersOfCustomFieldValueReport() {
|
||||
WorkbasketImpl workbasket = new WorkbasketImpl();
|
||||
|
@ -275,7 +348,7 @@ public class TaskMonitorServiceImplTest {
|
|||
taskMonitorMapperMock, objectReferenceMapperMock, workbasketServiceMock);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(actualResult.getDetailLines().get("Geschaeftsstelle A").getTotalNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getReportLines().get("Geschaeftsstelle A").getTotalNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getSumLine().getTotalNumberOfTasks(), 1);
|
||||
}
|
||||
|
||||
|
@ -310,8 +383,8 @@ public class TaskMonitorServiceImplTest {
|
|||
taskMonitorMapperMock, objectReferenceMapperMock, workbasketServiceMock);
|
||||
|
||||
assertNotNull(actualResult);
|
||||
assertEquals(actualResult.getDetailLines().get("Geschaeftsstelle A").getTotalNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getDetailLines().get("Geschaeftsstelle A").getLineItems().get(0).getNumberOfTasks(),
|
||||
assertEquals(actualResult.getReportLines().get("Geschaeftsstelle A").getTotalNumberOfTasks(), 1);
|
||||
assertEquals(actualResult.getReportLines().get("Geschaeftsstelle A").getLineItems().get(0).getNumberOfTasks(),
|
||||
1);
|
||||
assertEquals(actualResult.getSumLine().getTotalNumberOfTasks(), 1);
|
||||
}
|
||||
|
|
|
@ -68,3 +68,20 @@ INSERT INTO CLASSIFICATION VALUES('CLI:000000000000000000000000000000000002', 'L
|
|||
INSERT INTO CLASSIFICATION VALUES('CLI:000000000000000000000000000000000003', 'L30000', 'CLI:000000000000000000000000000000000001' , 'AUTOMATIC', 'TASK', 'DOMAIN_A', TRUE , CURRENT_TIMESTAMP, 'Widerruf' , 'Widerruf' , 1 , 'P1D' , '' , 'VNR,RVNR,KOLVNR' , '' , '' , '' , '' , '' , '' , '' );
|
||||
INSERT INTO CLASSIFICATION VALUES('CLI:000000000000000000000000000000000004', 'L40000', 'CLI:000000000000000000000000000000000001' , 'MANUAL' , 'TASK', 'DOMAIN_A', TRUE , CURRENT_TIMESTAMP, 'Dynamikaenderung' , 'Dynamikaenderung' , 1 , 'P1D' , '' , 'VNR,RVNR,KOLVNR' , '' , '' , '' , '' , '' , '' , '' );
|
||||
INSERT INTO CLASSIFICATION VALUES('CLI:000000000000000000000000000000000005', 'L50000', 'CLI:000000000000000000000000000000000001' , 'EXTERN' , 'TASK', 'DOMAIN_A', TRUE , CURRENT_TIMESTAMP, 'Dynamik-Ablehnung' , 'Dynamik-Ablehnung' , 5 , 'P5D' , '' , 'VNR,RVNR,KOLVNR' , '' , '' , '' , '' , '' , '' , '' );
|
||||
INSERT INTO CLASSIFICATION VALUES('CLI:000000000000000000000000000000000006', 'L11000', '' , 'Anhang' , 'TASK', 'DOMAIN_A', TRUE , CURRENT_TIMESTAMP, 'Anhang 1' , 'Anhang 1' , 3 , 'P1D' , '' , 'VNR,RVNR,KOLVNR' , '' , '' , '' , '' , '' , '' , '' );
|
||||
INSERT INTO CLASSIFICATION VALUES('CLI:000000000000000000000000000000000007', 'L22000', '' , 'Anhang' , 'TASK', 'DOMAIN_A', TRUE , CURRENT_TIMESTAMP, 'Anhang 2' , 'Anhang 2' , 1 , 'P1D' , '' , 'VNR,RVNR,KOLVNR, ANR', '' , '' , '' , '' , '' , '' , '' );
|
||||
INSERT INTO CLASSIFICATION VALUES('CLI:000000000000000000000000000000000008', 'L33000', '' , 'Anhang' , 'TASK', 'DOMAIN_A', TRUE , CURRENT_TIMESTAMP, 'Anhang 3' , 'Anhang 3' , 1 , 'P1D' , '' , 'VNR,RVNR,KOLVNR, ANR', '' , '' , '' , '' , '' , '' , '' );
|
||||
INSERT INTO CLASSIFICATION VALUES('CLI:000000000000000000000000000000000009', 'L99000', '' , 'Anhang' , 'TASK', 'DOMAIN_A', TRUE , CURRENT_TIMESTAMP, 'Anhang 9' , 'Anhang 9' , 1 , 'P1D' , '' , 'VNR,RVNR,KOLVNR, ANR', '' , '' , '' , '' , '' , '' , '' );
|
||||
|
||||
-- ATTACHMENT TABLE (ID , TASK_ID , CREATED , MODIFIED , CLASSIFICATION_KEY, REF_COMPANY, REF_SYSTEM, REF_INSTANCE, REF_TYPE, REF_VALUE, CHANNEL, RECEIVED , CUSTOM_ATTRIBUTES );
|
||||
INSERT INTO ATTACHMENT VALUES('ATT:000000000000000000000000000000000001', 'TKI:000000000000000000000000000000000001', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'L11000' , '' , '' , '' , '' , '' , '' , CURRENT_TIMESTAMP, null );
|
||||
INSERT INTO ATTACHMENT VALUES('ATT:000000000000000000000000000000000002', 'TKI:000000000000000000000000000000000013', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'L11000' , '' , '' , '' , '' , '' , '' , CURRENT_TIMESTAMP, null );
|
||||
INSERT INTO ATTACHMENT VALUES('ATT:000000000000000000000000000000000003', 'TKI:000000000000000000000000000000000014', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'L22000' , '' , '' , '' , '' , '' , '' , CURRENT_TIMESTAMP, null );
|
||||
INSERT INTO ATTACHMENT VALUES('ATT:000000000000000000000000000000000004', 'TKI:000000000000000000000000000000000024', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'L22000' , '' , '' , '' , '' , '' , '' , CURRENT_TIMESTAMP, null );
|
||||
INSERT INTO ATTACHMENT VALUES('ATT:000000000000000000000000000000000005', 'TKI:000000000000000000000000000000000025', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'L33000' , '' , '' , '' , '' , '' , '' , CURRENT_TIMESTAMP, null );
|
||||
INSERT INTO ATTACHMENT VALUES('ATT:000000000000000000000000000000000006', 'TKI:000000000000000000000000000000000033', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'L11000' , '' , '' , '' , '' , '' , '' , CURRENT_TIMESTAMP, null );
|
||||
INSERT INTO ATTACHMENT VALUES('ATT:000000000000000000000000000000000007', 'TKI:000000000000000000000000000000000034', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'L22000' , '' , '' , '' , '' , '' , '' , CURRENT_TIMESTAMP, null );
|
||||
INSERT INTO ATTACHMENT VALUES('ATT:000000000000000000000000000000000008', 'TKI:000000000000000000000000000000000035', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'L22000' , '' , '' , '' , '' , '' , '' , CURRENT_TIMESTAMP, null );
|
||||
INSERT INTO ATTACHMENT VALUES('ATT:000000000000000000000000000000000009', 'TKI:000000000000000000000000000000000036', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'L33000' , '' , '' , '' , '' , '' , '' , CURRENT_TIMESTAMP, null );
|
||||
INSERT INTO ATTACHMENT VALUES('ATT:000000000000000000000000000000000010', 'TKI:000000000000000000000000000000000044', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'L33000' , '' , '' , '' , '' , '' , '' , CURRENT_TIMESTAMP, null );
|
||||
INSERT INTO ATTACHMENT VALUES('ATT:000000000000000000000000000000000011', 'TKI:000000000000000000000000000000000045', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'L99000' , '' , '' , '' , '' , '' , '' , CURRENT_TIMESTAMP, null );
|
||||
|
|
Loading…
Reference in New Issue