use of pro.taskana.impl.report.impl.TimeIntervalColumnHeader in project taskana by Taskana.
the class ProvideClassificationReportAccTest method reportToString.
private String reportToString(ClassificationReport report, List<TimeIntervalColumnHeader> columnHeaders) {
String formatColumWidth = "| %-7s ";
String formatFirstColumn = "| %-36s %-4s ";
String formatFirstColumnFirstLine = "| %-29s %12s ";
String formatFirstColumnSumLine = "| %-36s %-5s";
int reportWidth = columnHeaders == null ? 46 : columnHeaders.size() * 10 + 46;
StringBuilder builder = new StringBuilder();
builder.append("\n");
for (int i = 0; i < reportWidth; i++) {
builder.append("-");
}
builder.append("\n");
builder.append(String.format(formatFirstColumnFirstLine, "Classifications", "Total"));
if (columnHeaders != null) {
for (TimeIntervalColumnHeader def : columnHeaders) {
if (def.getLowerAgeLimit() == Integer.MIN_VALUE) {
builder.append(String.format(formatColumWidth, "< " + def.getUpperAgeLimit()));
} else if (def.getUpperAgeLimit() == Integer.MAX_VALUE) {
builder.append(String.format(formatColumWidth, "> " + def.getLowerAgeLimit()));
} else if (def.getLowerAgeLimit() == def.getUpperAgeLimit()) {
if (def.getLowerAgeLimit() == 0) {
builder.append(String.format(formatColumWidth, "today"));
} else {
builder.append(String.format(formatColumWidth, def.getLowerAgeLimit()));
}
} else {
builder.append(String.format(formatColumWidth, def.getLowerAgeLimit() + ".." + def.getUpperAgeLimit()));
}
}
}
builder.append("|\n");
for (int i = 0; i < reportWidth; i++) {
builder.append("-");
}
builder.append("\n");
for (String rl : report.rowTitles()) {
builder.append(String.format(formatFirstColumn, rl, report.getRow(rl).getTotalValue()));
if (columnHeaders != null) {
for (int cell : report.getRow(rl).getCells()) {
builder.append(String.format(formatColumWidth, cell));
}
}
builder.append("|\n");
for (int i = 0; i < reportWidth; i++) {
builder.append("-");
}
builder.append("\n");
}
builder.append(String.format(formatFirstColumnSumLine, "Total", report.getSumRow().getTotalValue()));
for (int cell : report.getSumRow().getCells()) {
builder.append(String.format(formatColumWidth, cell));
}
builder.append("|\n");
for (int i = 0; i < reportWidth; i++) {
builder.append("-");
}
builder.append("\n");
return builder.toString();
}
use of pro.taskana.impl.report.impl.TimeIntervalColumnHeader in project taskana by Taskana.
the class ProvideClassificationReportAccTest method testEachItemOfClassificationReportWithCustomFieldValueFilter.
@Test
public void testEachItemOfClassificationReportWithCustomFieldValueFilter() throws InvalidArgumentException {
TaskMonitorService taskMonitorService = taskanaEngine.getTaskMonitorService();
CustomField customField = CustomField.CUSTOM_1;
List<String> customFieldValues = Collections.singletonList("Geschaeftsstelle A");
List<TimeIntervalColumnHeader> columnHeaders = getShortListOfColumnHeaders();
ClassificationReport report = taskMonitorService.getClassificationReport(null, null, null, null, customField, customFieldValues, columnHeaders);
if (LOGGER.isDebugEnabled()) {
LOGGER.debug(reportToString(report, columnHeaders));
}
assertNotNull(report);
assertEquals(5, report.rowSize());
int[] row1 = report.getRow("L10000").getCells();
assertArrayEquals(new int[] { 4, 0, 0, 0, 0 }, row1);
int[] row2 = report.getRow("L20000").getCells();
assertArrayEquals(new int[] { 4, 1, 1, 1, 0 }, row2);
int[] row3 = report.getRow("L30000").getCells();
assertArrayEquals(new int[] { 1, 0, 0, 1, 1 }, row3);
int[] row4 = report.getRow("L40000").getCells();
assertArrayEquals(new int[] { 1, 1, 2, 0, 2 }, row4);
int[] row5 = report.getRow("L50000").getCells();
assertArrayEquals(new int[] { 1, 2, 0, 2, 0 }, row5);
}
use of pro.taskana.impl.report.impl.TimeIntervalColumnHeader in project taskana by Taskana.
the class ProvideClassificationReportAccTest method testEachItemOfClassificationReport.
@Test
public void testEachItemOfClassificationReport() throws InvalidArgumentException {
TaskMonitorService taskMonitorService = taskanaEngine.getTaskMonitorService();
List<TimeIntervalColumnHeader> columnHeaders = getShortListOfColumnHeaders();
ClassificationReport report = taskMonitorService.getClassificationReport(null, null, null, null, null, null, columnHeaders);
if (LOGGER.isDebugEnabled()) {
LOGGER.debug(reportToString(report, columnHeaders));
}
assertNotNull(report);
assertEquals(5, report.rowSize());
int[] row1 = report.getRow("L10000").getCells();
assertArrayEquals(new int[] { 7, 2, 1, 0, 0 }, row1);
int[] row2 = report.getRow("L20000").getCells();
assertArrayEquals(new int[] { 5, 3, 1, 1, 0 }, row2);
int[] row3 = report.getRow("L30000").getCells();
assertArrayEquals(new int[] { 2, 1, 0, 1, 3 }, row3);
int[] row4 = report.getRow("L40000").getCells();
assertArrayEquals(new int[] { 2, 2, 2, 0, 4 }, row4);
int[] row5 = report.getRow("L50000").getCells();
assertArrayEquals(new int[] { 3, 3, 0, 5, 2 }, row5);
}
use of pro.taskana.impl.report.impl.TimeIntervalColumnHeader in project taskana by Taskana.
the class ProvideDetailedClassificationReportAccTest method testEachItemOfDetailedClassificationReportWithWorkbasketFilter.
@Test
public void testEachItemOfDetailedClassificationReportWithWorkbasketFilter() throws InvalidArgumentException {
TaskMonitorService taskMonitorService = taskanaEngine.getTaskMonitorService();
List<String> workbasketIds = Collections.singletonList("WBI:000000000000000000000000000000000001");
List<TimeIntervalColumnHeader> reportLineItemDefinitions = getShortListOfColumnHeaders();
DetailedClassificationReport report = taskMonitorService.getDetailedClassificationReport(workbasketIds, null, null, null, null, null, reportLineItemDefinitions);
if (LOGGER.isDebugEnabled()) {
LOGGER.debug(reportToString(report, reportLineItemDefinitions));
}
assertNotNull(report);
assertEquals(5, report.rowSize());
DetailedReportRow line1 = report.getRow("L10000");
assertArrayEquals(new int[] { 6, 0, 0, 0, 0 }, line1.getCells());
ReportRow<DetailedMonitorQueryItem> detailedLine1 = line1.getDetailRows().get("L11000");
assertArrayEquals(new int[] { 2, 0, 0, 0, 0 }, detailedLine1.getCells());
ReportRow<DetailedMonitorQueryItem> detailedLineNoAttachment1 = line1.getDetailRows().get("N/A");
assertArrayEquals(new int[] { 4, 0, 0, 0, 0 }, detailedLineNoAttachment1.getCells());
DetailedReportRow line2 = report.getRow("L20000");
assertArrayEquals(new int[] { 2, 0, 0, 0, 0 }, line2.getCells());
ReportRow<DetailedMonitorQueryItem> detailedLine2 = line2.getDetailRows().get("L22000");
assertArrayEquals(new int[] { 1, 0, 0, 0, 0 }, detailedLine2.getCells());
ReportRow<DetailedMonitorQueryItem> detailedLineNoAttachment2 = line2.getDetailRows().get("N/A");
assertArrayEquals(new int[] { 1, 0, 0, 0, 0 }, detailedLineNoAttachment2.getCells());
DetailedReportRow line3 = report.getRow("L30000");
assertArrayEquals(new int[] { 2, 1, 0, 1, 1 }, line3.getCells());
ReportRow<DetailedMonitorQueryItem> detailedLine3a = line3.getDetailRows().get("L33000");
assertArrayEquals(new int[] { 0, 1, 0, 1, 1 }, detailedLine3a.getCells());
ReportRow<DetailedMonitorQueryItem> detailedLineNoAttachment3 = line3.getDetailRows().get("N/A");
assertArrayEquals(new int[] { 2, 0, 0, 0, 0 }, detailedLineNoAttachment3.getCells());
DetailedReportRow line4 = report.getRow("L40000");
assertArrayEquals(new int[] { 1, 0, 1, 0, 1 }, line4.getCells());
ReportRow<DetailedMonitorQueryItem> detailedLineNoAttachment4 = line4.getDetailRows().get("N/A");
assertArrayEquals(new int[] { 1, 0, 1, 0, 1 }, detailedLineNoAttachment4.getCells());
DetailedReportRow line5 = report.getRow("L50000");
assertArrayEquals(new int[] { 2, 2, 0, 0, 0 }, line5.getCells());
ReportRow<DetailedMonitorQueryItem> detailedLineNoAttachment5 = line5.getDetailRows().get("N/A");
assertArrayEquals(new int[] { 2, 2, 0, 0, 0 }, detailedLineNoAttachment5.getCells());
}
use of pro.taskana.impl.report.impl.TimeIntervalColumnHeader in project taskana by Taskana.
the class ProvideDetailedClassificationReportAccTest method getShortListOfColumnHeaders.
private List<TimeIntervalColumnHeader> getShortListOfColumnHeaders() {
List<TimeIntervalColumnHeader> columnHeaders = new ArrayList<>();
columnHeaders.add(new TimeIntervalColumnHeader(Integer.MIN_VALUE, -6));
columnHeaders.add(new TimeIntervalColumnHeader(-5, -1));
columnHeaders.add(new TimeIntervalColumnHeader(0));
columnHeaders.add(new TimeIntervalColumnHeader(1, 5));
columnHeaders.add(new TimeIntervalColumnHeader(6, Integer.MAX_VALUE));
return columnHeaders;
}
Aggregations