RED-3011 - DossierTemplate Stat

- add in the final list of stats the dossier templates with dossier and type asociated to the dossier but not valid to be in the initial search
This commit is contained in:
devplant 2022-01-18 15:26:35 +02:00
parent 47053fbaba
commit 4dedbf2bfd
2 changed files with 32 additions and 10 deletions

View File

@ -34,7 +34,13 @@ public class DossierTemplateStatsService {
new DossierTemplateStats(e.getKey(), 0, new ArrayList<>()):
new DossierTemplateStats(e.getKey(), e.getValue().size(), e.getValue()))
.collect(Collectors.toList());
// add the dossier templates with no dictionaries but with dossiers
Set<String> dossierTemplatesIdsFounded = dossierTemplateStatsList.stream().map(DossierTemplateStats::getDossierTemplateId).collect(Collectors.toSet());
dossierTemplateIds.removeAll(dossierTemplatesIdsFounded);
List<DossierTemplateStats> dossierTemplateStatsListForDossierNotFound = dossierTemplateIds.stream()
.map(e -> new DossierTemplateStats(e, 0, new ArrayList<>())).collect(Collectors.toList());
dossierTemplateStatsList.addAll(dossierTemplateStatsListForDossierNotFound);
return dossierTemplateStatsList;
}

View File

@ -47,6 +47,21 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe
var dossier = dossierTesterAndProvider.provideTestDossier();
var addedType1 = dictionaryClient.addType(Type.builder()
.type("type dossier")
.label("Dossier Redactions")
.hexColor("#fcba03")
.rank(100)
.description("Something")
.addToDictionaryAction(false)
.dossierTemplateId(dossier.getDossierTemplateId())
.dossierId(dossier.getId())
.build());
assertThat(addedType1).isNotNull();
var dossierTemplate2 = provideTestTemplate("dossierTemp2");
var addedType = dictionaryClient.addType(Type.builder()
.type(TYPE_ID_1)
.label("Dossier Redactions")
@ -54,7 +69,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe
.rank(100)
.description("Something")
.addToDictionaryAction(false)
.dossierTemplateId(dossier.getDossierTemplateId())
.dossierTemplateId(dossierTemplate2.getId())
.dossierId(null)
.build());
@ -74,7 +89,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe
.rank(102)
.description("Something")
.addToDictionaryAction(false)
.dossierTemplateId(dossier.getDossierTemplateId())
.dossierTemplateId(dossierTemplate2.getId())
.dossierId(null)
.build());
var entries2 = new ArrayList<String>();
@ -86,7 +101,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe
entryList = dictionaryClient.getEntriesForType(addedType2.getTypeId());
assertThat(entryList.size()).isEqualTo(entries2.size());
var dossierTemplate2 = provideTestTemplate("dossierTemp2");
var dossierTemplate3 = provideTestTemplate("dossierTemp3");
var addedType3 = dictionaryClient.addType(Type.builder()
.type(TYPE_ID_3)
.label("Dossier Redactions 3")
@ -94,7 +109,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe
.rank(100)
.description("Something")
.addToDictionaryAction(false)
.dossierTemplateId(dossierTemplate2.getId())
.dossierTemplateId(dossierTemplate3.getId())
.dossierId(null)
.build());
@ -107,26 +122,27 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe
entryList = dictionaryClient.getEntriesForType(addedType3.getTypeId());
assertThat(entryList.size()).isEqualTo(entries3.size());
var dossierTemplate3 = provideTestTemplate("dossierTemp3");
var dossierTemplate4 = provideTestTemplate("dossierTemp4");
Set<String> dossierTemplateIds = new HashSet<>();
dossierTemplateIds.add(dossier.getDossierTemplateId());
dossierTemplateIds.add(dossierTemplate2.getId());
dossierTemplateIds.add(dossierTemplate3.getId());
dossierTemplateIds.add(dossierTemplate4.getId());
List<DossierTemplateStats> dossierTemplateStatsList = dossierTemplateStatsClient.getDossierTemplateStats(dossierTemplateIds);
assertThat(dossierTemplateStatsList.size()).isEqualTo(dossierTemplateIds.size());
DossierTemplateStats dossierTemplateStats1 = dossierTemplateStatsList.stream().filter(d -> d.getDossierTemplateId().equals(dossier.getDossierTemplateId())).findAny().get();
DossierTemplateStats dossierTemplateStats1 = dossierTemplateStatsList.stream().filter(d -> d.getDossierTemplateId().equals(dossierTemplate2.getId())).findAny().get();
assertThat(dossierTemplateStats1.getDossierTemplateId()).isEqualTo(dossier.getDossierTemplateId());
assertThat(dossierTemplateStats1.getDossierTemplateId()).isEqualTo(dossierTemplate2.getId());
assertThat(dossierTemplateStats1.getNumberOfDictionaries()).isEqualTo(2);
List<DictionarySummary> dictionarySummaryList = dossierTemplateStats1.getDictionarySummaryList();
assertThat(dictionarySummaryList.stream().filter(d -> d.getType().equals(TYPE_ID_1)).findAny().get().getEntriesCount()).isEqualTo(entries1.size());
assertThat(dictionarySummaryList.stream().filter(d -> d.getType().equals(TYPE_ID_2)).findAny().get().getEntriesCount()).isEqualTo(entries2.size());
// dossier template with no type
DossierTemplateStats dossierTemplateStats3 = dossierTemplateStatsList.stream().filter(d -> d.getDossierTemplateId().equals(dossierTemplate3.getId())).findAny().get();
assertThat(dossierTemplateStats3.getDossierTemplateId()).isEqualTo(dossierTemplate3.getId());
DossierTemplateStats dossierTemplateStats3 = dossierTemplateStatsList.stream().filter(d -> d.getDossierTemplateId().equals(dossierTemplate4.getId())).findAny().get();
assertThat(dossierTemplateStats3.getDossierTemplateId()).isEqualTo(dossierTemplate4.getId());
assertThat(dossierTemplateStats3.getNumberOfDictionaries()).isZero();
// delete some entries, stats should be updated
@ -137,7 +153,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe
dossierTemplateStatsList = dossierTemplateStatsClient.getDossierTemplateStats(dossierTemplateIds);
assertThat(dossierTemplateStatsList.size()).isEqualTo(dossierTemplateIds.size());
DossierTemplateStats dossierTemplateStats2 = dossierTemplateStatsList.stream().filter(d -> d.getDossierTemplateId().equals(dossier.getDossierTemplateId())).findAny().get();
DossierTemplateStats dossierTemplateStats2 = dossierTemplateStatsList.stream().filter(d -> d.getDossierTemplateId().equals(dossierTemplate2.getId())).findAny().get();
dictionarySummaryList = dossierTemplateStats2.getDictionarySummaryList();
assertThat(dictionarySummaryList.stream().filter(d -> d.getType().equals(TYPE_ID_2)).findAny().get().getEntriesCount()).isEqualTo(entries2.size() - entries22.size());