refonte de la restauration

This commit is contained in:
2026-06-01 17:59:06 +01:00
parent 9193d81858
commit 25efc002b3
16 changed files with 240 additions and 64 deletions

View File

@@ -1,10 +1,16 @@
package io.gmss.fiscad.implementations.synchronisation;
import io.gmss.fiscad.entities.infocad.metier.Tpe;
import io.gmss.fiscad.entities.metadata.*;
import io.gmss.fiscad.entities.user.User;
import io.gmss.fiscad.paylaods.request.*;
import io.gmss.fiscad.paylaods.request.BatimentPaylaod;
//import io.gmss.fiscad.paylaods.response.restoration.BatimentPayload;
import io.gmss.fiscad.paylaods.response.restoration.TailleObjet;
import io.gmss.fiscad.repositories.metadata.*;
import io.gmss.fiscad.interfaces.synchronisation.RestaurationService;
import io.gmss.fiscad.interfaces.user.UserService;
import io.gmss.fiscad.paylaods.response.restoration.*;
//import io.gmss.fiscad.paylaods.response.restoration.*;
import io.gmss.fiscad.repositories.infocad.metier.*;
import io.gmss.fiscad.repositories.infocad.parametre.PersonneRepository;
import io.gmss.fiscad.repositories.rfu.metier.*;
@@ -18,6 +24,8 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
@@ -32,6 +40,7 @@ public class RestaurationServiceImpl implements RestaurationService {
private final FileStorageService fileStorageService;
private final TpeRepository tpeRepository;
private final UserService userService;
private final MobileDataEnqueteRepository mobileDataEnqueteRepository;
private Authentication authentication;
private final BatimentRepository batimentRepository;
private final EnqueteBatimentRepository enqueteBatimentRepository;
@@ -40,78 +49,136 @@ public class RestaurationServiceImpl implements RestaurationService {
private final CaracteristiqueParcelleRepository caracteristiqueParcelleRepository;
private final EnqueteUniteLogementRepository enqueteUniteLogementRepository;
private final UniteLogementRepository uniteLogementRepository;
private final MobileDataActeurConcerneRepository mobileDataActeurConcerneRepository;
private final MobileDataPersonneRepository mobileDataPersonneRepository;
private final MobileDataMembreGroupeRepository mobileDataMembreGroupeRepository;
private final MobileDataParcelleRepository mobileDataParcelleRepository;
private final MobileDataPieceRepository mobileDataPieceRepository;
private final MobileDataUploadRepository mobileDataUploadRepository;
private final MobileDataBatimentRepository mobileDataBatimentRepository;
private final MobileDataEnqueteBatimentRepository mobileDataEnqueteBatimentRepository;
// @Override
// public List<ActeurConcernePayLoad> getActeurConcernes(Long terminaleId) {
// return acteurConcerneRepository.getActeurConcerneByTerminalId(terminaleId);
// }
// @Override
// public List<EnquetePayLoad> getEnquete(Long terminaleId) {
// return enqueteRepository.getEnqueteByTerminalId(terminaleId);
// }
@Override
public List<ActeurConcernePayLoad> getActeurConcernes(Long terminaleId, Long limit, Long offset) {
return mobileDataActeurConcerneRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataActeurConcerne::getActeurConcernePayLoad)
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
@Override
public List<ActeurConcernePayLoad> getActeurConcernes(Long terminaleId) {
return acteurConcerneRepository.getActeurConcerneByTerminalId(terminaleId);
public List<EnquetePayLoad> getEnquete(Long terminaleId, Long limit, Long offset) {
return mobileDataEnqueteRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataEnquete::getEnquetePayLoad)
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
// @Override
// public List<PersonnePayLoad> getPersonne(Long terminaleId) {
// return personneRepository.getPersonnesByTerminalId(terminaleId);
// }
@Override
public List<PersonnePayLoad> getPersonne(Long terminaleId, Long limit, Long offset) {
return mobileDataPersonneRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataPersonne::getPersonnePayLoad)
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
@Override
public List<EnquetePayLoad> getEnquete(Long terminaleId) {
public List<MembreGroupePayLoad> getMembreGroupe(Long terminaleId, Long limit, Long offset) {
return enqueteRepository.getEnqueteByTerminalId(terminaleId);
return mobileDataMembreGroupeRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataMembreGroupe::getMembreGroupePayLoad)
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
// @Override
// public List<ParcellePayLoad> getParcelle(Long terminaleId) {
//
// return parcelleRepository.getParcellesByTerminalId(terminaleId);
// }
@Override
public List<ParcellePayLoad> getParcelle(Long terminaleId, Long limit, Long offset) {
return mobileDataParcelleRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataParcelle::getParcellePayLoad)
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
// @Override
// public List<PiecePayLoad> getPieces(Long terminaleId) {
// return pieceRepository.getPiecesByTerminalId(terminaleId);
// }
@Override
public List<PiecePayLoad> getPieces(Long terminaleId, Long limit, Long offset) {
return mobileDataPieceRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataPiece::getPiecePayLoad)
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
@Override
public List<PersonnePayLoad> getPersonne(Long terminaleId) {
return personneRepository.getPersonnesByTerminalId(terminaleId);
public List<UploadPayLoad> getUploads(Long terminaleId, Long limit, Long offset) {
List<MobileDataUpload> mobileDataUploads = mobileDataUploadRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset);
return getUploadPayLoads(mobileDataUploads);
}
@Override
public List<ParcellePayLoad> getParcelle(Long terminaleId) {
// @Override
// public List<BatimentPaylaod> getBatiment(Long terminalId) {
// return batimentRepository.getBatimentByTerminalId(terminalId);
// }
return parcelleRepository.getParcellesByTerminalId(terminaleId);
@Override
public List<io.gmss.fiscad.paylaods.request.BatimentPaylaod> getBatiment(Long terminaleId, Long limit, Long offset) {
return mobileDataBatimentRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataBatiment::getBatimentPaylaod)
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
@Override
public List<PiecePayLoad> getPieces(Long terminaleId) {
// @Override
// public List<EnqueteBatimentPayLoad> getEnqueteBatiment(Long terminalId) {
// return enqueteBatimentRepository.getEnqueteBatimentByTerminalId(terminalId);
// }
return pieceRepository.getPiecesByTerminalId(terminaleId);
}
@Override
public List<MembreGroupePayLoad> getMembreGroupe(Long terminaleId) {
public List<EnqueteBatimentPayload> getEnqueteBatiment(Long terminaleId, Long limit, Long offset) {
return membreGroupeRepository.getMembreGroupeByTerminalId(terminaleId);
}
@Override
public List<io.gmss.fiscad.paylaods.request.UploadPayLoad> getUpload(Long terminaleId) {
List<UploadPayLoad> uploadPayLoads = uploadRepository.getUploadByTerminalId(terminaleId);
List<io.gmss.fiscad.paylaods.request.UploadPayLoad> uploadPayLoadsOut = new ArrayList<>();
uploadPayLoads.forEach(uploadPayLoad -> {
io.gmss.fiscad.paylaods.request.UploadPayLoad uploadPayLoadLocal = new io.gmss.fiscad.paylaods.request.UploadPayLoad();
uploadPayLoadLocal.setTerminalId(uploadPayLoad.getTerminalId());
String inputStream = getUploadFile(uploadPayLoad);
uploadPayLoadLocal.setFileBase64(inputStream);
uploadPayLoadLocal.setIdBackend(uploadPayLoad.getIdBackend());
uploadPayLoadLocal.setPieceId(uploadPayLoad.getPieceId());
uploadPayLoadLocal.setSynchronise(uploadPayLoad.getSynchronise());
uploadPayLoadLocal.setMembreGroupeId(uploadPayLoad.getMembreGroupeId());
uploadPayLoadLocal.setExternalKey(uploadPayLoad.getExternalKey());
uploadPayLoadLocal.setBlocId(uploadPayLoad.getBlocId());
uploadPayLoadLocal.setFilePath(uploadPayLoad.getFilePath());
uploadPayLoadLocal.setEnqueteId(uploadPayLoad.getEnqueteId());
uploadPayLoadLocal.setMax_numero_acteur_concerne_id(uploadPayLoad.getMax_numero_acteur_concerne_id());
uploadPayLoadLocal.setMax_numero_piece_id(uploadPayLoad.getMax_numero_piece_id());
uploadPayLoadLocal.setMax_numero_upload_id(uploadPayLoad.getMax_numero_upload_id());
uploadPayLoadLocal.setName(uploadPayLoad.getName());
uploadPayLoadLocal.setObservation(uploadPayLoad.getObservation());
uploadPayLoadsOut.add(uploadPayLoadLocal);
});
return uploadPayLoadsOut;
}
@Override
public List<BatimentPayload> getBatiment(Long terminalId) {
return batimentRepository.getBatimentByTerminalId(terminalId);
}
@Override
public List<EnqueteBatimentPayLoad> getEnqueteBatiment(Long terminalId) {
return enqueteBatimentRepository.getEnqueteBatimentByTerminalId(terminalId);
return mobileDataEnqueteBatimentRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataEnqueteBatiment::getEnqueteBatimentPayload)
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
@Override
@@ -164,4 +231,23 @@ public class RestaurationServiceImpl implements RestaurationService {
}
}
@Override
public TailleObjet getTailleObjetByTerminalId(Long terminalId) {
return mobileDataEnqueteRepository.calculateTailleEnqueteData(terminalId);
}
private List<UploadPayLoad> getUploadPayLoads(List<MobileDataUpload> mobileDataUploads) {
return mobileDataUploads
.stream()
.map(mobileDataUpload -> {
UploadPayLoad uploadPayLoad = mobileDataUpload.getUploadPayLoad();
String fileData = getUploadFile(uploadPayLoad);
uploadPayLoad.setFileBase64(fileData);
return uploadPayLoad;
})
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
}

View File

@@ -1,29 +1,47 @@
package io.gmss.fiscad.interfaces.synchronisation;
import io.gmss.fiscad.entities.infocad.metier.Tpe;
import io.gmss.fiscad.paylaods.response.restoration.*;
import io.gmss.fiscad.entities.metadata.MobileDataEnquete;
import io.gmss.fiscad.paylaods.request.*;
import io.gmss.fiscad.paylaods.response.restoration.TailleObjet;
//import io.gmss.fiscad.paylaods.response.restoration.*;
import java.util.List;
public interface RestaurationService {
List<ActeurConcernePayLoad> getActeurConcernes(Long terminaleId);
//List<ActeurConcernePayLoad> getActeurConcernes(Long terminaleId);
List<EnquetePayLoad> getEnquete(Long terminaleId, Long limit, Long offset) ;
List<EnquetePayLoad> getEnquete(Long terminaleId);
List<ActeurConcernePayLoad> getActeurConcernes(Long terminaleId, Long limit, Long offset) ;
List<PersonnePayLoad> getPersonne(Long terminaleId);
//List<EnquetePayLoad> getEnquete(Long terminaleId);
List<PersonnePayLoad> getPersonne(Long terminaleId, Long limit, Long offset) ;
List<ParcellePayLoad> getParcelle(Long terminaleId);
List<MembreGroupePayLoad> getMembreGroupe(Long terminaleId, Long limit, Long offset) ;
List<PiecePayLoad> getPieces(Long terminaleId);
List<MembreGroupePayLoad> getMembreGroupe(Long terminaleId);
//List<PersonnePayLoad> getPersonne(Long terminaleId);
List<io.gmss.fiscad.paylaods.request.UploadPayLoad> getUpload(Long terminaleId);
//List<ParcellePayLoad> getParcelle(Long terminaleId);
List<ParcellePayLoad> getParcelle(Long terminaleId, Long limit, Long offset) ;
List<BatimentPayload> getBatiment(Long terminalId);
List<EnqueteBatimentPayLoad> getEnqueteBatiment(Long terminalId);
//List<PiecePayLoad> getPieces(Long terminaleId);
List<PiecePayLoad> getPieces(Long terminaleId, Long limit, Long offset) ;
//List<MembreGroupePayLoad> getMembreGroupe(Long terminaleId);
// List<io.gmss.fiscad.paylaods.request.UploadPayLoad> getUpload(Long terminaleId);
List<UploadPayLoad> getUploads(Long terminaleId, Long limit, Long offset) ;
//List<BatimentPayload> getBatiment(Long terminalId);
public List<BatimentPaylaod> getBatiment(Long terminaleId, Long limit, Long offset)
//List<EnqueteBatimentPayLoad> getEnqueteBatiment(Long terminalId);
public List<EnqueteBatimentPayload> getEnqueteBatiment(Long terminaleId, Long limit, Long offset)
List<CaracateristiqueParcellePayLoads> getCaracateristiqueParcelle(Long terminalId);
@@ -37,4 +55,6 @@ public interface RestaurationService {
public List<Tpe> getTpeListByCurrentUser();
TailleObjet getTailleObjetByTerminalId(Long terminalId);
}

View File

@@ -0,0 +1,12 @@
package io.gmss.fiscad.paylaods.response.restoration;
public interface TailleObjet {
public int getParcelle();
public int getEnquete();
public int getPiece();
public int getPersonne();
public int getMembregroupe();
public int getActeurconcerne();
public int getUpload();
}

View File

@@ -4,6 +4,8 @@ import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne;
import io.gmss.fiscad.entities.metadata.MobileDataPersonne;
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;
@@ -12,4 +14,7 @@ public interface MobileDataActeurConcerneRepository extends JpaRepository<Mobile
//Optional<MobileDataActeurConcerne> findByActeurConcernePayLoad_TerminalIdAndActeurConcernePayLoad_ExternalKey(Long terminalId,Long ExternalKey);
Optional<MobileDataActeurConcerne> findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataActeurConcerne> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
@Query(value = "SELECT * FROM mobile_data_acteur_concerne WHERE CAST(acteur_concerne_pay_load->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataActeurConcerne> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -2,7 +2,10 @@ package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne;
import io.gmss.fiscad.entities.metadata.MobileDataBatiment;
import io.gmss.fiscad.entities.metadata.MobileDataPiece;
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;
@@ -11,4 +14,8 @@ public interface MobileDataBatimentRepository extends JpaRepository<MobileDataBa
//Optional<MobileDataBatiment> findMobileDataBatimentByBatimentPaylaod_TerminalIdAndBatimentPaylaod_ExternalKey(Long terminalId, Long externalKey);
Optional<MobileDataBatiment> findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataBatiment> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
@Query(value = "SELECT * FROM mobile_data_batiment WHERE CAST(batiment_paylaod ->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataBatiment> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -1,9 +1,12 @@
package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne;
import io.gmss.fiscad.entities.metadata.MobileDataBatiment;
import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueUniteLogement;
import io.gmss.fiscad.entities.metadata.MobileDataEnqueteBatiment;
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 MobileDataEnqueteBatimentRepository extends JpaRepository<Mobil
Optional<MobileDataEnqueteBatiment> findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataEnqueteBatiment> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
@Query(value = "SELECT * FROM mobile_data_enquete_batiment WHERE CAST(enquete_batiment_payload ->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataEnqueteBatiment> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -1,9 +1,14 @@
package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne;
import io.gmss.fiscad.entities.metadata.MobileDataEnquete;
import io.gmss.fiscad.entities.metadata.MobileDataEnqueteBatiment;
import io.gmss.fiscad.entities.metadata.MobileDataUpload;
import io.gmss.fiscad.paylaods.response.restoration.EnquetePayLoad;
import io.gmss.fiscad.paylaods.response.restoration.TailleObjet;
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 +18,17 @@ public interface MobileDataEnqueteRepository extends JpaRepository<MobileDataEnq
Optional<MobileDataEnquete> findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataEnquete> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
@Query(value = "SELECT * FROM mobile_data_enquete WHERE CAST(enquete_pay_load->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataEnquete> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
@Query(value = "SELECT" +
" (SELECT count(*) FROM mobile_data_enquete WHERE CAST(enquete_pay_load->>'terminalId' AS BIGINT) = :terminalId) as enquete," +
" (SELECT count(*) FROM mobile_data_parcelle WHERE CAST(parcelle_pay_load->>'terminalId' AS BIGINT) = :terminalId) as parcelle," +
" (SELECT count(*) FROM mobile_data_personne WHERE CAST(personne_pay_load->>'terminalId' AS BIGINT) = :terminalId) as personne," +
" (SELECT count(*) FROM mobile_data_acteur_concerne WHERE CAST(acteur_concerne_pay_load->>'terminalId' AS BIGINT) = :terminalId) as acteurconcerne," +
" (SELECT count(*) FROM mobile_data_membre_groupe WHERE CAST(membre_groupe_pay_load->>'terminalId' AS BIGINT) = :terminalId) as membregroupe," +
" (SELECT count(*) FROM mobile_data_piece WHERE CAST(piece_pay_load->>'terminalId' AS BIGINT) = :terminalId) as piece," +
" (SELECT count(*) FROM mobile_data_upload WHERE CAST(upload_pay_load->>'terminalId' AS BIGINT) = :terminalId) as upload", nativeQuery = true)
TailleObjet calculateTailleEnqueteData(@Param("terminalId") Long terminalId);
}

View File

@@ -4,6 +4,8 @@ import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne;
import io.gmss.fiscad.entities.metadata.MobileDataEnqueteUniteLogement;
import io.gmss.fiscad.entities.metadata.MobileDataMembreGroupe;
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 +15,6 @@ public interface MobileDataMembreGroupeRepository extends JpaRepository<MobileDa
Optional<MobileDataMembreGroupe> findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataMembreGroupe> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
@Query(value = "SELECT * FROM mobile_data_membre_groupe WHERE CAST(membre_groupe_pay_load->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataMembreGroupe> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -5,6 +5,8 @@ import io.gmss.fiscad.entities.metadata.MobileDataParcelle;
import io.gmss.fiscad.entities.metadata.MobileDataUpload;
import org.modelmapper.internal.bytebuddy.dynamic.DynamicType;
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;
@@ -14,4 +16,7 @@ public interface MobileDataParcelleRepository extends JpaRepository<MobileDataPa
Optional<MobileDataParcelle> findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataParcelle> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
@Query(value = "SELECT * FROM mobile_data_parcelle WHERE CAST(parcelle_pay_load->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataParcelle> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -5,6 +5,8 @@ import io.gmss.fiscad.entities.metadata.MobileDataParcelle;
import io.gmss.fiscad.entities.metadata.MobileDataPersonne;
import org.modelmapper.internal.bytebuddy.dynamic.DynamicType;
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;
@@ -14,4 +16,6 @@ public interface MobileDataPersonneRepository extends JpaRepository<MobileDataPe
List<MobileDataPersonne> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
Optional<MobileDataPersonne> findFirstByTerminalIdAndExternalKey(Long terminalId, Long ExternalKey);
@Query(value = "SELECT * FROM mobile_data_personne WHERE CAST(personne_pay_load->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataPersonne> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -5,6 +5,8 @@ import io.gmss.fiscad.entities.metadata.MobileDataParcelle;
import io.gmss.fiscad.entities.metadata.MobileDataPersonne;
import io.gmss.fiscad.entities.metadata.MobileDataPiece;
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;
@@ -14,4 +16,6 @@ public interface MobileDataPieceRepository extends JpaRepository<MobileDataPiece
List<MobileDataPiece> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
Optional<MobileDataPiece> findFirstByTerminalIdAndExternalKey(Long terminalId, Long ExternalKey);
@Query(value = "SELECT * FROM mobile_data_piece WHERE CAST(piece_pay_load->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataPiece> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -3,6 +3,8 @@ package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataUniteLogement;
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;
@@ -12,4 +14,6 @@ public interface MobileDataUploadRepository extends JpaRepository<MobileDataUplo
List<MobileDataUpload> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
Optional<MobileDataUpload> findFirstByTerminalIdAndExternalKey(Long terminalId, Long ExternalKey);
@Query(value = "SELECT * FROM mobile_data_upload WHERE CAST(upload_pay_load->>'terminalId' AS BIGINT) = :terminalId order by id limit :limit offset :offset", nativeQuery = true)
List<MobileDataUpload> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}