From 3f11a9d265e89de0a2440934852fa5325c1f1354 Mon Sep 17 00:00:00 2001 From: Passam KASSEM <passam.kassem@focati-solutions.com> Date: Wed, 12 Jan 2022 00:32:45 +0100 Subject: [PATCH] =?UTF-8?q?[VAS]=20Bug=209353=20:=20Filtre=20par=20date=20?= =?UTF-8?q?de=20la=20recherche=20avanc=C3=A9e=20du=20registre=20des=20fond?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/dsl/VitamQueryHelper.java | 25 +++++++++---------- ...cessionRegisterSummaryInternalService.java | 19 +++++++------- .../accession-register-list.component.ts | 2 +- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/dsl/VitamQueryHelper.java b/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/dsl/VitamQueryHelper.java index 6c39c0f9c..42ac71b7a 100644 --- a/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/dsl/VitamQueryHelper.java +++ b/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/dsl/VitamQueryHelper.java @@ -50,8 +50,9 @@ import fr.gouv.vitamui.commons.api.domain.DirectionDto; import fr.gouv.vitamui.commons.api.logger.VitamUILogger; import fr.gouv.vitamui.commons.api.logger.VitamUILoggerFactory; -import java.text.ParseException; -import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -61,11 +62,9 @@ import java.util.Set; import static fr.gouv.vitam.common.database.builder.query.QueryHelper.and; import static fr.gouv.vitam.common.database.builder.query.QueryHelper.eq; -import static fr.gouv.vitam.common.database.builder.query.QueryHelper.exists; import static fr.gouv.vitam.common.database.builder.query.QueryHelper.gt; import static fr.gouv.vitam.common.database.builder.query.QueryHelper.in; import static fr.gouv.vitam.common.database.builder.query.QueryHelper.lt; -import static fr.gouv.vitam.common.database.builder.query.QueryHelper.lte; import static fr.gouv.vitam.common.database.builder.query.QueryHelper.matchPhrasePrefix; import static fr.gouv.vitam.common.database.builder.query.QueryHelper.ne; import static fr.gouv.vitam.common.database.builder.query.QueryHelper.nin; @@ -286,24 +285,24 @@ public class VitamQueryHelper { ObjectMapper mapper = new ObjectMapper(); AccessionRegisterDetailsSearchStatsDto.EndDateInterval dateInterval = mapper.convertValue(value, new TypeReference<>() {}); - SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT); + DateTimeFormatter dtf = DateTimeFormatter.ofPattern(DATE_FORMAT).withZone(ZoneOffset.UTC); String dateMinStr = dateInterval.getEndDateMin(); String dateMaxStr = dateInterval.getEndDateMax(); - if(dateMinStr != null && dateMaxStr == null) { - query.add(lte(END_DATE, formatter.parse(dateMinStr))); + if (dateMinStr != null && dateMaxStr == null) { + query.add(range(END_DATE, LocalDate.parse(dateMinStr, dtf).toString(), true, LocalDate.now().toString(), true)); } - if(dateMinStr == null && dateMaxStr != null) { - query.add(lte(END_DATE, formatter.parse(dateMaxStr))); + if (dateMinStr == null && dateMaxStr != null) { + query.add(range(END_DATE, LocalDate.now().toString(), true, LocalDate.parse(dateMaxStr, dtf).toString(), true)); } - if(dateMinStr != null && dateMaxStr != null) { - query.add(range(END_DATE, formatter.parse(dateMinStr), true, formatter.parse(dateMaxStr), false)); + if (dateMinStr != null && dateMaxStr != null) { + query.add(range(END_DATE, LocalDate.parse(dateMinStr, dtf).toString(), true, LocalDate.parse(dateMaxStr, dtf).toString(), true)); } - } catch (InvalidCreateOperationException | ParseException e) { - LOGGER.error("Can not find binding for StartDate key: \n {}", e); + } catch (InvalidCreateOperationException e) { + LOGGER.error("Can not find binding for EndDate key: \n {}", e); } } diff --git a/api/api-referential/referential-internal/src/main/java/fr/gouv/vitamui/referential/internal/server/accessionregister/summary/AccessionRegisterSummaryInternalService.java b/api/api-referential/referential-internal/src/main/java/fr/gouv/vitamui/referential/internal/server/accessionregister/summary/AccessionRegisterSummaryInternalService.java index a0b3b9509..fedef9151 100644 --- a/api/api-referential/referential-internal/src/main/java/fr/gouv/vitamui/referential/internal/server/accessionregister/summary/AccessionRegisterSummaryInternalService.java +++ b/api/api-referential/referential-internal/src/main/java/fr/gouv/vitamui/referential/internal/server/accessionregister/summary/AccessionRegisterSummaryInternalService.java @@ -68,7 +68,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.ParseException; -import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -80,7 +82,6 @@ import java.util.stream.Collectors; import static fr.gouv.vitam.common.database.builder.query.QueryHelper.and; import static fr.gouv.vitam.common.database.builder.query.QueryHelper.eq; import static fr.gouv.vitam.common.database.builder.query.QueryHelper.in; -import static fr.gouv.vitam.common.database.builder.query.QueryHelper.lte; import static fr.gouv.vitam.common.database.builder.query.QueryHelper.ne; import static fr.gouv.vitam.common.database.builder.query.QueryHelper.nin; import static fr.gouv.vitam.common.database.builder.query.QueryHelper.range; @@ -214,7 +215,7 @@ public class AccessionRegisterSummaryInternalService { query.add(in(STATUS, stringValues.toArray(new String[] {}))); } - addStartDateToQuery(query, detailsSearchDto.getDateInterval()); + addEndDateToQuery(query, detailsSearchDto.getDateInterval()); if(detailsSearchDto.getAdvancedSearch() != null) { AccessionRegisterDetailsSearchStatsDto.AdvancedSearchData advancedSearch = detailsSearchDto.getAdvancedSearch(); @@ -254,24 +255,24 @@ public class AccessionRegisterSummaryInternalService { } } - private static void addStartDateToQuery(BooleanQuery query, AccessionRegisterDetailsSearchStatsDto.EndDateInterval dateInterval) - throws ParseException, InvalidCreateOperationException { + private static void addEndDateToQuery(BooleanQuery query, AccessionRegisterDetailsSearchStatsDto.EndDateInterval dateInterval) + throws InvalidCreateOperationException { if(dateInterval != null) { - SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT); + DateTimeFormatter dtf = DateTimeFormatter.ofPattern(DATE_FORMAT).withZone(ZoneOffset.UTC); String dateMinStr = dateInterval.getEndDateMin(); String dateMaxStr = dateInterval.getEndDateMax(); if (dateMinStr != null && dateMaxStr == null) { - query.add(lte(END_DATE, formatter.parse(dateMinStr))); + query.add(range(END_DATE, LocalDate.parse(dateMinStr, dtf).toString(), true, LocalDate.now().toString(), true)); } if (dateMinStr == null && dateMaxStr != null) { - query.add(lte(END_DATE, formatter.parse(dateMaxStr))); + query.add(range(END_DATE, LocalDate.now().toString(), true, LocalDate.parse(dateMaxStr, dtf).toString(), true)); } if (dateMinStr != null && dateMaxStr != null) { - query.add(range(END_DATE, formatter.parse(dateMinStr), true, formatter.parse(dateMaxStr), false)); + query.add(range(END_DATE, LocalDate.parse(dateMinStr, dtf).toString(), true, LocalDate.parse(dateMaxStr, dtf).toString(), true)); } } } diff --git a/ui/ui-frontend/projects/referential/src/app/accession-register/accession-register-list/accession-register-list.component.ts b/ui/ui-frontend/projects/referential/src/app/accession-register/accession-register-list/accession-register-list.component.ts index b4b70e38a..87f03c08f 100644 --- a/ui/ui-frontend/projects/referential/src/app/accession-register/accession-register-list/accession-register-list.component.ts +++ b/ui/ui-frontend/projects/referential/src/app/accession-register/accession-register-list/accession-register-list.component.ts @@ -56,7 +56,7 @@ export class AccessionRegisterListComponent extends InfiniteScrollTable<Accessio filterDebounceTimeMs = 400; direction = Direction.DESCENDANT; - orderBy = 'StartDate'; + orderBy = 'EndDate'; private filterChange = new BehaviorSubject<{ [key: string]: any[] }>({}); private searchChange = new BehaviorSubject<string>(null); -- GitLab