Merge pull request 'develop' (#106) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 48s

Reviewed-on: #106
This commit was merged in pull request #106.
This commit is contained in:
2026-02-16 20:58:29 +00:00
20 changed files with 404 additions and 37 deletions

3
.gitignore vendored
View File

@@ -4,4 +4,5 @@ fiscad.log*
target/* target/*
ansible ansible
secrets/ secrets/
.env .env
/uploads/

View File

@@ -116,10 +116,9 @@ public class PersonneController {
@PostMapping("/recherche") @PostMapping("/recherche")
public ResponseEntity<?> rechercherPersonne(@RequestBody RecherchePersonneResquestBody recherchePersonneResquestBody ) { public ResponseEntity<?> rechercherPersonne(@RequestBody RecherchePersonneResquestBody recherchePersonneResquestBody ) {
try{ try{
personneService.recherchePersonne(recherchePersonneResquestBody); // personneService.recherchePersonne(recherchePersonneResquestBody);
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, null, "Personne retrouvée avec succès."), new ApiResponse<>(true, personneService.recherchePersonne(recherchePersonneResquestBody), "Personne retrouvée avec succès."),
HttpStatus.OK HttpStatus.OK
); );
}catch (Exception e){ }catch (Exception e){

View File

@@ -1,6 +1,7 @@
package io.gmss.fiscad.controllers.infocad.metier; package io.gmss.fiscad.controllers.infocad.metier;
import io.gmss.fiscad.entities.infocad.metier.Upload; import io.gmss.fiscad.entities.infocad.metier.Upload;
import io.gmss.fiscad.interfaces.infocad.metier.UploadService;
import io.gmss.fiscad.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.JobModels; import io.gmss.fiscad.paylaods.JobModels;
import io.gmss.fiscad.proprietes.ZipStorageProperties; import io.gmss.fiscad.proprietes.ZipStorageProperties;
@@ -8,6 +9,9 @@ import io.gmss.fiscad.persistence.repositories.infocad.metier.UploadRepository;
import io.gmss.fiscad.service.FileStorageService; import io.gmss.fiscad.service.FileStorageService;
import io.gmss.fiscad.service.StringManager; import io.gmss.fiscad.service.StringManager;
import io.gmss.fiscad.service.ZipAsyncService; import io.gmss.fiscad.service.ZipAsyncService;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
@@ -45,12 +49,13 @@ import java.util.UUID;
@SecurityRequirement(name = "bearer") @SecurityRequirement(name = "bearer")
@Tag(name = "Upload") @Tag(name = "Upload")
@CrossOrigin(origins = "*") @CrossOrigin(origins = "*")
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") //@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
public class UploadController { public class UploadController {
boolean headIsValid = false; boolean headIsValid = false;
private final ZipAsyncService service; private final ZipAsyncService service;
private final ZipStorageProperties props; private final ZipStorageProperties props;
private final UploadService uploadService;
private static final Logger logger = LoggerFactory.getLogger(UploadController.class); private static final Logger logger = LoggerFactory.getLogger(UploadController.class);
@Autowired @Autowired
@@ -94,7 +99,7 @@ public class UploadController {
try { try {
if (uploadRepository.findById(id).isPresent()) { if (uploadRepository.findById(id).isPresent()) {
return new ResponseEntity<>(new ApiResponse(true, uploadRepository.getOne(id), "File with id {" + id + "} is found."), HttpStatus.OK); return new ResponseEntity<>(new ApiResponse(true, uploadRepository.findById(id), "File with id {" + id + "} is found."), HttpStatus.OK);
} else { } else {
return new ResponseEntity<>(new ApiResponse(true, null, "The upload with id {" + id + "} you request for is not found."), HttpStatus.OK); return new ResponseEntity<>(new ApiResponse(true, null, "The upload with id {" + id + "} you request for is not found."), HttpStatus.OK);
} }
@@ -139,30 +144,39 @@ public class UploadController {
.body(resource); .body(resource);
} }
@PostMapping("/save") @PostMapping(
public ResponseEntity<?> save(@RequestPart(required = true) MultipartFile file, @RequestParam String reference, @RequestParam String description /*, @RequestParam Long idTypeUpload*/) { value = "/save",
consumes = MediaType.MULTIPART_FORM_DATA_VALUE
)
public ResponseEntity<?> saveFilePieceId(
@Parameter(
description = "Fichier à uploader",
required = true,
content = @Content(
mediaType = MediaType.APPLICATION_OCTET_STREAM_VALUE,
schema = @Schema(type = "string", format = "binary")
)
)
@RequestPart("file") MultipartFile file,
@Parameter(description = "ID de la pièce", required = true)
@RequestParam("pieceId") Long pieceId
) {
try { try {
Upload upload = new Upload(); return ResponseEntity.ok(
String fileName = fileStorageService.storeFile(file); new ApiResponse(true,
upload.setFileName(fileName); uploadService.createUpload(file, pieceId),
upload.setMimeType(file.getContentType()); "File has been created successfully.")
upload.setSize(file.getSize()); );
upload.setOriginalFileName(file.getOriginalFilename());
return new ResponseEntity<>(new ApiResponse(true, uploadRepository.save(upload), "File has been created successfully."), HttpStatus.OK);
} catch (HttpClientErrorException.MethodNotAllowed e) {
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
} catch (NullPointerException e) {
e.printStackTrace();
logger.error(e.getLocalizedMessage());
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getLocalizedMessage()); logger.error(e.getMessage(), e);
return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ApiResponse(false, null, e.getMessage()));
} }
} }
@DeleteMapping("/delete/id/{id}") @DeleteMapping("/delete/id/{id}")
public ResponseEntity<?> delete(@PathVariable Long id) { public ResponseEntity<?> delete(@PathVariable Long id) {
try { try {

View File

@@ -96,7 +96,7 @@ public class Upload extends BaseEntity implements Serializable {
String url = this.serverContext() + fileName; String url = this.serverContext() + fileName;
System.out.println("url = " + url); System.out.println("url = " + url);
// return url != null ? url.toLowerCase().startsWith("https") ? url : url.toLowerCase().replaceFirst("http", "https") : null; // return url != null ? url.toLowerCase().startsWith("https") ? url : url.toLowerCase().replaceFirst("http", "https") : null;
return url != null ? url.toLowerCase().startsWith("https") ? url : url.toLowerCase().replaceFirst("http", "https") : null; return url ;//!= null ? url.toLowerCase().startsWith("https") ? url : url.toLowerCase().replaceFirst("http", "https") : null;
} }
@@ -104,10 +104,11 @@ public class Upload extends BaseEntity implements Serializable {
String url= ServletUriComponentsBuilder.fromCurrentContextPath() String url= ServletUriComponentsBuilder.fromCurrentContextPath()
.path("/api/upload/downloadFile/") .path("/api/upload/downloadFile/")
.toUriString(); .toUriString();
if(!url.contains("8282/api")){ //System.out.println(url);
url.replace("/api",":8282/api"); // if(!url.contains("8282/api")){
} // url.replace("/api",":8282/api");
// }
//System.out.println(url);
return url; return url;
} }

View File

@@ -10,6 +10,7 @@ import io.gmss.fiscad.entities.infocad.metier.Tpe;
import io.gmss.fiscad.entities.infocad.metier.Upload; import io.gmss.fiscad.entities.infocad.metier.Upload;
import io.gmss.fiscad.entities.metadata.MobileDataPersonne; import io.gmss.fiscad.entities.metadata.MobileDataPersonne;
import io.gmss.fiscad.enums.Categorie; import io.gmss.fiscad.enums.Categorie;
import io.gmss.fiscad.enums.EtatIdentificationPersonne;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
@@ -79,7 +80,12 @@ public class Personne extends BaseEntity implements Serializable {
private int mustHaveRepresentant; private int mustHaveRepresentant;
private String filePath; private String filePath;
@Enumerated(EnumType.STRING)
private EtatIdentificationPersonne etatIdentificationPersonne;
private String observation; private String observation;
private String numeroRccm ;
private LocalDate dateRccm ;
private String email ;
@ColumnDefault("false") @ColumnDefault("false")
private boolean synchronise; private boolean synchronise;

View File

@@ -0,0 +1,8 @@
package io.gmss.fiscad.enums;
public enum EtatIdentificationPersonne {
IFU,
NPI,
IFU_NPI,
NEANT;
}

View File

@@ -2,5 +2,8 @@ package io.gmss.fiscad.enums;
public enum Origine { public enum Origine {
WEB, WEB,
MOBILE MOBILE,
SIGIBE,
RFU_LOGIL,
ANIP
} }

View File

@@ -26,6 +26,8 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@@ -194,9 +196,60 @@ public class PersonneServiceImpl implements PersonneService {
} }
@Override @Override
public List<Personne> recherchePersonne(RecherchePersonneResquestBody recherchePersonneResquestBody) { public List<PersonnePayLoadWeb> recherchePersonne(RecherchePersonneResquestBody recherchePersonneResquestBody) {
callAPIService.callGetIfuEnLigneToken(); // callAPIService.callGetIfuEnLigneToken();
List<PersonnePayLoadWeb> personnePayLoadWebsRfuLoggil = new ArrayList<>();
personnePayLoadWebsRfuLoggil = recherchePersonneLocal(recherchePersonneResquestBody);
return personnePayLoadWebsRfuLoggil;
}
private List<PersonnePayLoadWeb> recherchePersonneLocal(RecherchePersonneResquestBody recherchePersonneResquestBody) {
List<PersonnePayLoadWeb> personnePayLoadWebs=
personneRepository.findByFiltersInBaseIfuNpiCorrecte(
recherchePersonneResquestBody.getIfu()==null?null:recherchePersonneResquestBody.getIfu().trim().toLowerCase(),
recherchePersonneResquestBody.getNpi()==null?null:recherchePersonneResquestBody.getNpi().trim().toLowerCase(),
recherchePersonneResquestBody.getNom()==null?null:recherchePersonneResquestBody.getNom().trim().toLowerCase(),
recherchePersonneResquestBody.getPrenom()==null?null:recherchePersonneResquestBody.getPrenom().trim().toLowerCase(),
recherchePersonneResquestBody.getRaisonSociale()==null?null:recherchePersonneResquestBody.getRaisonSociale().trim().toLowerCase(),
recherchePersonneResquestBody.getNomMere()==null?null:recherchePersonneResquestBody.getNomMere().trim().toLowerCase(),
recherchePersonneResquestBody.getDateNaissance()
);
return personnePayLoadWebs ;
}
private List<PersonnePayLoadWeb> recherchePersonneSigibe(RecherchePersonneResquestBody recherchePersonneResquestBody) {
// callAPIService.callGetIfuEnLigneToken();
return null; return null;
} }
private List<PersonnePayLoadWeb> recherchePersonneAnip(RecherchePersonneResquestBody recherchePersonneResquestBody) {
// callAPIService.callGetIfuEnLigneToken();
return null;
}
private String like(String value) {
if (value == null) {
return null;
}
value = value.trim();
if (value.isEmpty()) {
return null;
}
return "%" + value + "%";
}
} }

View File

@@ -0,0 +1,98 @@
package io.gmss.fiscad.implementations.infocad.metier;
import io.gmss.fiscad.entities.infocad.metier.Piece;
import io.gmss.fiscad.entities.infocad.metier.Upload;
import io.gmss.fiscad.entities.rfu.metier.Batiment;
import io.gmss.fiscad.exceptions.BadRequestException;
import io.gmss.fiscad.exceptions.NotFoundException;
import io.gmss.fiscad.interfaces.infocad.metier.UploadService;
import io.gmss.fiscad.paylaods.request.crudweb.UploadPayLoadWeb;
import io.gmss.fiscad.persistence.repositories.infocad.metier.PieceRepository;
import io.gmss.fiscad.persistence.repositories.infocad.metier.UploadRepository;
import io.gmss.fiscad.service.EntityFromPayLoadService;
import io.gmss.fiscad.service.FileStorageService;
import lombok.AllArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Optional;
@AllArgsConstructor
@Service
public class UploadServiceImpl implements UploadService {
private final EntityFromPayLoadService entityFromPayLoadService;
private final UploadRepository uploadRepository;
private final PieceRepository pieceRepository;
private final FileStorageService fileStorageService;
@Override
public UploadPayLoadWeb createUpload(UploadPayLoadWeb uploadPayLoadWeb) throws BadRequestException {
if (uploadPayLoadWeb.getId() != null) {
throw new BadRequestException("Impossible de créer un nouveau upload ayant un id non null.");
}
Upload upload= entityFromPayLoadService.getUploadFromPayLoadWeb(uploadPayLoadWeb);
upload= uploadRepository.save(upload);
return uploadRepository.findByIdToDto(upload.getId()).orElse(null);
}
@Override
public Upload createUpload(MultipartFile file, @RequestParam Long pieceId) throws BadRequestException {
Upload upload = new Upload();
if(pieceId!=null && !pieceRepository.existsById(pieceId)) {
throw new NotFoundException("La piece n'existe pas");
}
Optional<Piece> optionalPiece = pieceRepository.findById(pieceId);
String fileName = fileStorageService.storeFile(file);
upload.setPiece(optionalPiece.orElse(null));
upload.setFileName(fileName);
upload.setRename(fileName);
upload.setMimeType(file.getContentType());
upload.setSize(file.getSize());
upload.setOriginalFileName(file.getOriginalFilename());
upload = uploadRepository.save(upload) ;
return upload;
}
@Override
public UploadPayLoadWeb updateUpload(Long id, UploadPayLoadWeb uploadPayLoadWeb) throws NotFoundException {
return null;
}
@Override
public void deleteUpload(Long id) throws NotFoundException {
Optional<Upload> optionalUpload = uploadRepository.findById(id);
if (optionalUpload.isPresent()) {
uploadRepository.deleteById(optionalUpload.get().getId());
} else {
throw new NotFoundException("Impossible de trouver le fichier spécifié dans notre base de données.");
}
}
@Override
public Page<UploadPayLoadWeb> getUploadListToDtoPageable(Pageable pageable) {
return null;
}
@Override
public List<UploadPayLoadWeb> getUploadListToDto() {
return null;
}
@Override
public Optional<UploadPayLoadWeb> getUploadByToDto(Long id) {
return Optional.empty();
}
@Override
public List<UploadPayLoadWeb> getAllUploadByPieceToDto(Long id) {
return uploadRepository.findByPieceId(id);
}
@Override
public Page<UploadPayLoadWeb> getAllUploadByPieceDtoPageable(Long id, Pageable pageable) {
return null;
}
}

View File

@@ -26,5 +26,5 @@ public interface PersonneService {
Optional<Personne> getPersonneById(Long id); Optional<Personne> getPersonneById(Long id);
PersonneCompletDTO getPersonneComplete(Long id); PersonneCompletDTO getPersonneComplete(Long id);
List<Personne> recherchePersonne(RecherchePersonneResquestBody recherchePersonneResquestBody); List<PersonnePayLoadWeb> recherchePersonne(RecherchePersonneResquestBody recherchePersonneResquestBody);
} }

View File

@@ -0,0 +1,31 @@
package io.gmss.fiscad.interfaces.infocad.metier;
import io.gmss.fiscad.entities.infocad.metier.Upload;
import io.gmss.fiscad.exceptions.BadRequestException;
import io.gmss.fiscad.exceptions.NotFoundException;
import io.gmss.fiscad.paylaods.request.crudweb.UploadPayLoadWeb;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Optional;
public interface UploadService {
UploadPayLoadWeb createUpload(UploadPayLoadWeb piecePayLoadWeb) throws BadRequestException;
Upload createUpload(MultipartFile file, @RequestParam Long pieceId) throws BadRequestException;
UploadPayLoadWeb updateUpload(Long id, UploadPayLoadWeb piecePayLoadWeb) throws NotFoundException;
void deleteUpload(Long id) throws NotFoundException;
Page<UploadPayLoadWeb> getUploadListToDtoPageable(Pageable pageable);
List<UploadPayLoadWeb> getUploadListToDto();
Optional<UploadPayLoadWeb> getUploadByToDto(Long id);
List<UploadPayLoadWeb> getAllUploadByPieceToDto(Long id);
Page<UploadPayLoadWeb> getAllUploadByPieceDtoPageable(Long id,Pageable pageable);
}

View File

@@ -2,11 +2,15 @@ package io.gmss.fiscad.paylaods.request;
import lombok.Data; import lombok.Data;
import java.time.LocalDate;
@Data @Data
public class RecherchePersonneResquestBody { public class RecherchePersonneResquestBody {
private String ifu; private String ifu;
private String npi;
private String nom; private String nom;
private String nomMere; private String nomMere;
private String prenom; private String prenom;
private String dateNaissance; private String raisonSociale;
private LocalDate dateNaissance;
} }

View File

@@ -1,6 +1,7 @@
package io.gmss.fiscad.paylaods.request.crudweb; package io.gmss.fiscad.paylaods.request.crudweb;
import io.gmss.fiscad.enums.Categorie; import io.gmss.fiscad.enums.Categorie;
import io.gmss.fiscad.enums.Origine;
import jakarta.persistence.EnumType; import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated; import jakarta.persistence.Enumerated;
import lombok.Data; import lombok.Data;
@@ -44,5 +45,22 @@ public class PersonnePayLoadWeb {
private String indicatifTel1; private String indicatifTel1;
private String indicatifTel2; private String indicatifTel2;
private String sexe; private String sexe;
@Enumerated(EnumType.STRING)
private Origine source;
public PersonnePayLoadWeb(Long id, String ifu, String nom, String prenom, String raisonSociale, String numRavip, String npi, LocalDate dateNaissanceOuConsti, String lieuNaissance, String tel1, String nomJeuneFille, String nomMere,Origine source) {
this.id = id;
this.ifu = ifu;
this.nom = nom;
this.prenom = prenom;
this.raisonSociale = raisonSociale;
this.numRavip = numRavip;
this.npi = npi;
this.dateNaissanceOuConsti = dateNaissanceOuConsti;
this.lieuNaissance = lieuNaissance;
this.tel1 = tel1;
this.nomJeuneFille = nomJeuneFille;
this.nomMere = nomMere;
this.source = source;
}
} }

View File

@@ -1,18 +1,20 @@
package io.gmss.fiscad.paylaods.request.crudweb; package io.gmss.fiscad.paylaods.request.crudweb;
import jakarta.persistence.Transient;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
@Data @Data
public class UploadPayLoadWeb { public class UploadPayLoadWeb {
private Long id; private Long id;
private Long pieceId; private Long pieceId;
private String Observation; // private String Observation;
//private boolean synchronise; //private boolean synchronise;
//private String fileBase64; //private String fileBase64;
///////////////////////////////// /////////////////////////////////
private String name; private String name;
private String filePath; private String filePath;
private Long enqueteId; // private Long enqueteId;
private Long enqueteBatimentId; private Long enqueteBatimentId;
private Long personneId; private Long personneId;
private Long enqueteUniteLogementId; private Long enqueteUniteLogementId;
@@ -20,5 +22,34 @@ public class UploadPayLoadWeb {
private String reference; private String reference;
private String description; private String description;
private String rename; private String rename;
private String fileName;
private String originalFileName;
@Transient
private String URIFile;
private String checkSum;
private long size;
private String mimeType;
public UploadPayLoadWeb() {
}
public UploadPayLoadWeb(Long id, Long pieceId, String name, String filePath, Long enqueteBatimentId, Long personneId, Long enqueteUniteLogementId, Long declarationNcId, String reference, String description, String rename,
String fileName,String originalFileName) {
this.id = id;
this.pieceId = pieceId;
//Observation = observation;
this.name = name;
this.filePath = filePath;
//this.enqueteId = enqueteId;
this.enqueteBatimentId = enqueteBatimentId;
this.personneId = personneId;
this.enqueteUniteLogementId = enqueteUniteLogementId;
this.declarationNcId = declarationNcId;
this.reference = reference;
this.description = description;
this.rename = rename;
this.fileName = fileName;
this.originalFileName = originalFileName;
}
} }

View File

@@ -3,11 +3,13 @@ package io.gmss.fiscad.persistence.repositories.infocad.metier;
import io.gmss.fiscad.entities.infocad.metier.Upload; import io.gmss.fiscad.entities.infocad.metier.Upload;
import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment; import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement; import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement;
import io.gmss.fiscad.paylaods.request.crudweb.UploadPayLoadWeb;
import io.gmss.fiscad.paylaods.response.restoration.UploadPayLoadRestor; import io.gmss.fiscad.paylaods.response.restoration.UploadPayLoadRestor;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@@ -80,4 +82,49 @@ public interface UploadRepository extends JpaRepository<Upload, Long> {
List<Upload> findByPersonne_IdAndPieceIsNullAndMembreGroupeIsNull(Long personneId); List<Upload> findByPersonne_IdAndPieceIsNullAndMembreGroupeIsNull(Long personneId);
@Query("""
SELECT new io.gmss.fiscad.paylaods.request.crudweb.UploadPayLoadWeb(
u.id,
u.piece.id,
u.name,
u.filePath,
u.enqueteBatiment.id,
u.personne.id,
u.enqueteUniteLogement.id,
u.declarationNc.id,
u.reference,
u.description,
u.rename,
u.fileName,
u.originalFileName
)
FROM Upload u
WHERE u.id = :uploadId
""")
Optional<UploadPayLoadWeb> findByIdToDto(@Param("uploadId") Long uploadId);
@Query("""
SELECT new io.gmss.fiscad.paylaods.request.crudweb.UploadPayLoadWeb(
u.id,
u.piece.id,
u.name,
u.filePath,
u.enqueteBatiment.id,
u.personne.id,
u.enqueteUniteLogement.id,
u.declarationNc.id,
u.reference,
u.description,
u.rename,
u.fileName,
u.originalFileName
)
FROM Upload u
WHERE u.piece.id = :pieceId
""")
List<UploadPayLoadWeb> findByPieceId(@Param("pieceId") Long pieceId);
} }

View File

@@ -2,11 +2,14 @@ package io.gmss.fiscad.persistence.repositories.infocad.parametre;
import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.entities.infocad.parametre.Personne;
import io.gmss.fiscad.paylaods.request.crudweb.DeclarationNcPayloadWeb; import io.gmss.fiscad.paylaods.request.crudweb.DeclarationNcPayloadWeb;
import io.gmss.fiscad.paylaods.request.crudweb.PersonnePayLoadWeb;
import io.gmss.fiscad.paylaods.response.statistique.StatistiqueTypeNombreResponse; import io.gmss.fiscad.paylaods.response.statistique.StatistiqueTypeNombreResponse;
import io.gmss.fiscad.paylaods.response.restoration.PersonnePayLoad; import io.gmss.fiscad.paylaods.response.restoration.PersonnePayLoad;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.time.LocalDate;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@@ -63,5 +66,43 @@ public interface PersonneRepository extends JpaRepository<Personne, Long> {
List<StatistiqueTypeNombreResponse> getNombrePersonnesResponse(); List<StatistiqueTypeNombreResponse> getNombrePersonnesResponse();
@Query( """
SELECT new io.gmss.fiscad.paylaods.request.crudweb.PersonnePayLoadWeb(
p.id,
p.ifu,
p.nom,
p.prenom,
p.raisonSociale,
p.numRavip,
p.npi,
p.dateNaissanceOuConsti,
p.lieuNaissance,
p.tel1,
p.nomJeuneFille,
p.nomMere,
io.gmss.fiscad.enums.Origine.RFU_LOGIL
)
FROM Personne p
WHERE
p.etatIdentificationPersonne <> io.gmss.fiscad.enums.EtatIdentificationPersonne.NEANT
AND (:ifu IS NULL OR LOWER(trim(p.ifu)) LIKE (CONCAT('%', :ifu, '%')))
AND (:npi IS NULL OR LOWER(trim(p.npi)) LIKE (CONCAT('%', :npi, '%')))
AND (:nom IS NULL OR LOWER(trim(p.nom)) LIKE (CONCAT('%', :nom, '%')))
AND (:prenom IS NULL OR LOWER(trim(p.prenom)) LIKE (CONCAT('%', :prenom, '%')))
AND (:raisonSociale IS NULL OR LOWER(trim(p.raisonSociale)) LIKE (CONCAT('%', :raisonSociale, '%')))
AND (:nomMere IS NULL OR LOWER(trim(p.nomMere)) LIKE (CONCAT('%', :nomMere, '%')))
AND (:dateNaissance IS NULL OR p.dateNaissanceOuConsti = :dateNaissance)
"""
)
List<PersonnePayLoadWeb> findByFiltersInBaseIfuNpiCorrecte(
@Param("ifu") String ifu,
@Param("npi") String npi,
@Param("nom") String nom,
@Param("prenom") String prenom,
@Param("raisonSociale") String raisonSociale,
@Param("nomMere") String nomMere,
@Param("dateNaissance") LocalDate dateNaissance
);
} }

View File

@@ -206,7 +206,7 @@ public class EntityFromPayLoadService {
public Upload getUploadFromPayLoadWeb(UploadPayLoadWeb uploadPayLoadWeb){ public Upload getUploadFromPayLoadWeb(UploadPayLoadWeb uploadPayLoadWeb){
Upload upload=new Upload(); Upload upload=new Upload();
//Optional<Enquete> optionalEnquete=Optional.empty() ; Optional<Piece> optionalPiece=Optional.empty() ;
Optional<DeclarationNc> optionalDeclarationNc=Optional.empty(); Optional<DeclarationNc> optionalDeclarationNc=Optional.empty();
Optional<Personne> optionalPersonne=Optional.empty(); Optional<Personne> optionalPersonne=Optional.empty();
Optional<EnqueteBatiment> optionalEnqueteBatiment=Optional.empty(); Optional<EnqueteBatiment> optionalEnqueteBatiment=Optional.empty();
@@ -224,8 +224,14 @@ public class EntityFromPayLoadService {
optionalEnqueteBatiment=enqueteBatimentRepository.findById(uploadPayLoadWeb.getEnqueteBatimentId()); optionalEnqueteBatiment=enqueteBatimentRepository.findById(uploadPayLoadWeb.getEnqueteBatimentId());
if(uploadPayLoadWeb.getEnqueteUniteLogementId()!=null) if(uploadPayLoadWeb.getEnqueteUniteLogementId()!=null)
optionalEnqueteUniteLogement=enqueteUniteLogementRepository.findById(uploadPayLoadWeb.getEnqueteUniteLogementId()); optionalEnqueteUniteLogement=enqueteUniteLogementRepository.findById(uploadPayLoadWeb.getEnqueteUniteLogementId());
if(uploadPayLoadWeb.getPieceId()!=null)
optionalPiece=pieceRepository.findById(uploadPayLoadWeb.getPieceId());
upload.setId(uploadPayLoadWeb.getId()); upload.setId(uploadPayLoadWeb.getId());
upload.setEnqueteId(uploadPayLoadWeb.getEnqueteId()); upload.setPiece(optionalPiece.orElse(null));
//upload.setEnqueteId(uploadPayLoadWeb.getEnqueteId());
upload.setEnqueteBatiment(optionalEnqueteBatiment.orElse(null)); upload.setEnqueteBatiment(optionalEnqueteBatiment.orElse(null));
upload.setPersonne(optionalPersonne.orElse(null)); upload.setPersonne(optionalPersonne.orElse(null));
upload.setEnqueteUniteLogement(optionalEnqueteUniteLogement.orElse(null)); upload.setEnqueteUniteLogement(optionalEnqueteUniteLogement.orElse(null));

View File

@@ -72,4 +72,10 @@ logging.level.org.apache.catalina.connector.ClientAbortException=ERROR
# Affiche les valeurs des param<61>tres bind<6E>s (Hibernate 5.4+) # Affiche les valeurs des param<61>tres bind<6E>s (Hibernate 5.4+)
#logging.level.org.hibernate.SQL=DEBUG #logging.level.org.hibernate.SQL=DEBUG
#logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
#spring.jpa.show-sql=true
#spring.jpa.properties.hibernate.format_sql=true
##logging.level.org.hibernate.SQL=DEBUG
#logging.level.org.hibernate.type.descriptor.sql=TRACE
#logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE #logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE

Binary file not shown.

Binary file not shown.