TSK-1344: fixed sql query for workbasketreport with classifications

This commit is contained in:
Mustapha Zorgati 2020-07-30 09:27:21 +02:00
parent d62184df2c
commit d3209304ff
2 changed files with 23 additions and 3 deletions

View File

@ -42,13 +42,13 @@ public interface MonitorMapper {
+ "AND T.DOMAIN IN (<foreach collection='domains' item='domain' separator=','>#{domain}</foreach>) "
+ "</if>"
+ "<if test='classificationIds != null'>"
+ "AND CLASSIFICATION_ID IN (<foreach collection='classificationIds' item='classificationId' separator=','>#{classificationId}</foreach>) "
+ "AND T.CLASSIFICATION_ID IN (<foreach collection='classificationIds' item='classificationId' separator=','>#{classificationId}</foreach>) "
+ "</if>"
+ "<if test='excludedClassificationIds != null'>"
+ "AND CLASSIFICATION_ID NOT IN (<foreach collection='excludedClassificationIds' item='excludedClassificationId' separator=','>#{excludedClassificationId}</foreach>) "
+ "AND T.CLASSIFICATION_ID NOT IN (<foreach collection='excludedClassificationIds' item='excludedClassificationId' separator=','>#{excludedClassificationId}</foreach>) "
+ "</if>"
+ "<if test='customAttributeFilter != null'>"
+ "AND (<foreach collection='customAttributeFilter.keys' item='key' separator=' AND '>(${key} = '${customAttributeFilter.get(key)}')</foreach>) "
+ "AND (<foreach collection='customAttributeFilter.keys' item='key' separator=' AND '>(T.${key} = '${customAttributeFilter.get(key)}')</foreach>) "
+ "</if>"
+ "<if test=\"combinedClassificationFilter != null\">"
+ "AND <foreach collection='combinedClassificationFilter' item='item' separator='OR'> "

View File

@ -67,6 +67,26 @@ class ProvideWorkbasketReportAccTest extends AbstractReportAccTest {
assertThat(report.getSumRow().getTotalValue()).isEqualTo(50);
}
@WithAccessId(user = "monitor")
@Test
void should_FilterTasksAccordingToClassificationId_When_ClassificationIdFilterIsAplied()
throws Exception {
List<TimeIntervalColumnHeader> columnHeaders = getListOfColumnHeaders();
WorkbasketReport report =
MONITOR_SERVICE
.createWorkbasketReportBuilder()
.withColumnHeaders(columnHeaders)
.classificationIdIn(
Collections.singletonList("CLI:000000000000000000000000000000000001"))
.buildReport();
assertThat(report).isNotNull();
assertThat(report.rowSize()).isEqualTo(2);
assertThat(report.getRow("USER-1-1").getCells())
.isEqualTo(new int[] {6, 0, 0, 0, 0, 0, 0, 0, 0});
assertThat(report.getRow("USER-1-2").getCells())
.isEqualTo(new int[] {1, 2, 0, 0, 1, 0, 0, 0, 0});
}
@WithAccessId(user = "monitor")
@Test
void testGetWorkbasketReportWithReportLineItemDefinitions() throws Exception {