From ca1804ff8fd3a2c2a2789c3f5ad2210f1bce10f5 Mon Sep 17 00:00:00 2001 From: Aurince AKAKPO Date: Fri, 5 Jun 2026 12:18:11 +0100 Subject: [PATCH] gestion restauration --- .../RestaurationServiceImpl.java | 88 +++++++++++++++---- .../synchronisation/RestaurationService.java | 21 +++-- ...DataCaracteristiqueBatimentRepository.java | 7 ++ ...DataCaracteristiqueParcelleRepository.java | 6 ++ ...aracteristiqueUniteLogementRepository.java | 6 ++ ...ileDataEnqueteUniteLogementRepository.java | 6 ++ .../MobileDataUniteLogementRepository.java | 5 ++ 7 files changed, 118 insertions(+), 21 deletions(-) diff --git a/src/main/java/io/gmss/fiscad/implementations/synchronisation/RestaurationServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/synchronisation/RestaurationServiceImpl.java index 5779aa6..a61ec94 100644 --- a/src/main/java/io/gmss/fiscad/implementations/synchronisation/RestaurationServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/synchronisation/RestaurationServiceImpl.java @@ -57,6 +57,12 @@ public class RestaurationServiceImpl implements RestaurationService { private final MobileDataUploadRepository mobileDataUploadRepository; private final MobileDataBatimentRepository mobileDataBatimentRepository; private final MobileDataEnqueteBatimentRepository mobileDataEnqueteBatimentRepository; + private final MobileDataCaracteristiqueParcelleRepository mobileDataCaracteristiqueParcelleRepository; + private final MobileDataCaracteristiqueBatimentRepository mobileDataCaracteristiqueBatimentRepository; + private final MobileDataEnqueteUniteLogementRepository mobileDataEnqueteUniteLogementRepository; + private final MobileDataCaracteristiqueUniteLogementRepository mobileDataCaracteristiqueUniteLogementRepository; + private final MobileDataUniteLogementRepository mobileDataUniteLogementRepository; + // @Override @@ -181,35 +187,85 @@ public List getParcelle(Long terminaleId, Long limit, Long offs .collect(Collectors.toList()); } - @Override - public List getCaracateristiqueParcelle(Long terminalId) { - return caracteristiqueParcelleRepository.getCaracteristiqueParcelleByTerminalId(terminalId); - } +// @Override +// public List getCaracateristiqueParcelle(Long terminalId) { +// return caracteristiqueParcelleRepository.getCaracteristiqueParcelleByTerminalId(terminalId); +// } @Override - public List getCaracateristiqueBatiment(Long terminalId) { - return caracteristiqueBatimentRepository.getCaracteristiqueBatimentByTerminalId(terminalId); + public List getCaracateristiqueParcelle(Long terminaleId, Long limit, Long offset) { + + return mobileDataCaracteristiqueParcelleRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset) + .stream() + .map(MobileDataCaracteristiqueParcelle::getCaracteristiqueParcellePaylod) + .filter(Objects::nonNull) + .collect(Collectors.toList()); } - @Override - public List getCaracateristiqueUniteLogement(Long terminalId) { - return caracteristiqueUniteLogementRepository.getCaracteristiqueUniteLogementByTerminalId(terminalId); - } + +// @Override +// public List getCaracateristiqueBatiment(Long terminalId) { +// return caracteristiqueBatimentRepository.getCaracteristiqueBatimentByTerminalId(terminalId); +// } @Override - public List getEnqueteUniteLogement(Long terminalId) { - return enqueteUniteLogementRepository.getEnqueteUniteLogementByTerminalId(terminalId); + public List getCaracateristiqueBatiment(Long terminaleId, Long limit, Long offset) { + + return mobileDataCaracteristiqueBatimentRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset) + .stream() + .map(MobileDataCaracteristiqueBatiment::getCaracteristiqueBatimentPaylod) + .filter(Objects::nonNull) + .collect(Collectors.toList()); } +// @Override +// public List getCaracateristiqueUniteLogement(Long terminalId) { +// return caracteristiqueUniteLogementRepository.getCaracteristiqueUniteLogementByTerminalId(terminalId); +// } + @Override - public List getUniteLogement(Long terminalId) { - return uniteLogementRepository.getUniteLogementByTerminalId(terminalId); + public List getCaracateristiqueUniteLogement(Long terminaleId, Long limit, Long offset) { + + return mobileDataCaracteristiqueUniteLogementRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset) + .stream() + .map(MobileDataCaracteristiqueUniteLogement::getCaracteristiqueUniteLogementPaylod) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + } + +// @Override +// public List getEnqueteUniteLogement(Long terminalId) { +// return enqueteUniteLogementRepository.getEnqueteUniteLogementByTerminalId(terminalId); +// } + + @Override + public List getEnqueteUniteLogement(Long terminaleId, Long limit, Long offset) { + + return mobileDataEnqueteUniteLogementRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset) + .stream() + .map(MobileDataEnqueteUniteLogement::getEnqueteUniteLogementPayload) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + } + +// @Override +// public List getUniteLogement(Long terminalId) { +// return uniteLogementRepository.getUniteLogementByTerminalId(terminalId); +// } + + @Override + public List getUniteLogement(Long terminaleId, Long limit, Long offset) { + + return mobileDataUniteLogementRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset) + .stream() + .map(MobileDataUniteLogement::getUniteLogementPaylaod) + .filter(Objects::nonNull) + .collect(Collectors.toList()); } private String getUploadFile(UploadPayLoad uploadPayLoad) { - try { - Resource resource = fileStorageService.loadFileAsResource(uploadPayLoad.getFileBackendName()); + Resource resource = fileStorageService.loadFileAsResource(uploadPayLoad.getName()); final var bytes = resource.getInputStream().readAllBytes(); return Base64.getEncoder().encodeToString(bytes); } catch (Exception e) { diff --git a/src/main/java/io/gmss/fiscad/interfaces/synchronisation/RestaurationService.java b/src/main/java/io/gmss/fiscad/interfaces/synchronisation/RestaurationService.java index 0ee1318..41055f8 100644 --- a/src/main/java/io/gmss/fiscad/interfaces/synchronisation/RestaurationService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/synchronisation/RestaurationService.java @@ -43,15 +43,26 @@ public interface RestaurationService { //List getEnqueteBatiment(Long terminalId); public List getEnqueteBatiment(Long terminaleId, Long limit, Long offset) - List getCaracateristiqueParcelle(Long terminalId); + //List getCaracateristiqueParcelle(Long terminalId); + public List getCaracateristiqueParcelle(Long terminaleId, Long limit, Long offset) - List getCaracateristiqueBatiment(Long terminalId); - List getCaracateristiqueUniteLogement(Long terminalId); + //List getCaracateristiqueBatiment(Long terminalId); + public List getCaracateristiqueBatiment(Long terminaleId, Long limit, Long offset) - List getEnqueteUniteLogement(Long terminalId); - List getUniteLogement(Long terminalId); + //List getCaracateristiqueUniteLogement(Long terminalId); + + public List getCaracateristiqueUniteLogement(Long terminaleId, Long limit, Long offset); + + //List getEnqueteUniteLogement(Long terminalId); + public List getEnqueteUniteLogement(Long terminaleId, Long limit, Long offset); + + + //List getUniteLogement(Long terminalId); + + public List getUniteLogement(Long terminaleId, Long limit, Long offset) + public List getTpeListByCurrentUser(); diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueBatimentRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueBatimentRepository.java index 149b412..e6075c8 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueBatimentRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueBatimentRepository.java @@ -2,8 +2,11 @@ package io.gmss.fiscad.repositories.metadata; import io.gmss.fiscad.entities.metadata.MobileDataBatiment; import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueBatiment; +import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueParcelle; import io.gmss.fiscad.entities.metadata.MobileDataUpload; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import java.util.List; import java.util.Optional; @@ -13,4 +16,8 @@ public interface MobileDataCaracteristiqueBatimentRepository extends JpaReposito Optional findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey); List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); + + @Query(value = "SELECT * FROM mobile_data_caracteristique_batiment WHERE CAST(caracteristique_batiment_paylod ->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true) + List findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset); + } diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueParcelleRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueParcelleRepository.java index 909235c..a38b9e7 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueParcelleRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueParcelleRepository.java @@ -2,8 +2,11 @@ package io.gmss.fiscad.repositories.metadata; import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueBatiment; import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueParcelle; +import io.gmss.fiscad.entities.metadata.MobileDataEnqueteBatiment; import io.gmss.fiscad.entities.metadata.MobileDataUpload; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import java.util.List; import java.util.Optional; @@ -13,4 +16,7 @@ public interface MobileDataCaracteristiqueParcelleRepository extends JpaReposito Optional findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey); List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); + @Query(value = "SELECT * FROM mobile_data_caracteristique_parcelle WHERE CAST(caracteristique_parcelle_payload ->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true) + List findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset); + } diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueUniteLogementRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueUniteLogementRepository.java index d0e2c75..8eae893 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueUniteLogementRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueUniteLogementRepository.java @@ -1,9 +1,12 @@ package io.gmss.fiscad.repositories.metadata; +import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueBatiment; import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueParcelle; import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueUniteLogement; import io.gmss.fiscad.entities.metadata.MobileDataUpload; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import java.util.List; import java.util.Optional; @@ -13,4 +16,7 @@ public interface MobileDataCaracteristiqueUniteLogementRepository extends JpaRep Optional findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey); List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); + @Query(value = "SELECT * FROM mobile_data_caracteristique_unite_logement WHERE CAST(caracteristique_unite_logement_paylod ->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true) + List findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset); + } diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataEnqueteUniteLogementRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataEnqueteUniteLogementRepository.java index 256a541..6cf8921 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataEnqueteUniteLogementRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataEnqueteUniteLogementRepository.java @@ -1,9 +1,12 @@ package io.gmss.fiscad.repositories.metadata; import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; +import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueUniteLogement; import io.gmss.fiscad.entities.metadata.MobileDataEnquete; import io.gmss.fiscad.entities.metadata.MobileDataEnqueteUniteLogement; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import java.util.List; import java.util.Optional; @@ -13,4 +16,7 @@ public interface MobileDataEnqueteUniteLogementRepository extends JpaRepository< Optional findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey); List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); + @Query(value = "SELECT * FROM public.mobile_data_enquete_unite_logement WHERE CAST(enquete_unite_logement_payload ->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true) + List findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset); + } diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataUniteLogementRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataUniteLogementRepository.java index fbc9c2f..6ebdb6d 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataUniteLogementRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataUniteLogementRepository.java @@ -1,9 +1,12 @@ package io.gmss.fiscad.repositories.metadata; import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; +import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueUniteLogement; import io.gmss.fiscad.entities.metadata.MobileDataPiece; import io.gmss.fiscad.entities.metadata.MobileDataUniteLogement; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import java.util.List; import java.util.Optional; @@ -12,5 +15,7 @@ public interface MobileDataUniteLogementRepository extends JpaRepository findByUniteLogementPaylaod_TerminalIdAndUniteLogementPaylaod_ExternalKey(Long terminalId,Long externalKey); List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); Optional findFirstByTerminalIdAndExternalKey(Long terminalId, Long ExternalKey); + @Query(value = "SELECT * FROM mobile_data_unite_logement WHERE CAST(unite_logement_paylaod ->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true) + List findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset); }