diff --git a/.gitignore b/.gitignore index d15810e..f257cc5 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,5 @@ fiscad.log* target/* ansible secrets/ -.env \ No newline at end of file +.env +/uploads/ diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PersonneController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PersonneController.java index 9fdd9bd..2451d05 100644 --- a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PersonneController.java +++ b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PersonneController.java @@ -116,10 +116,9 @@ public class PersonneController { @PostMapping("/recherche") public ResponseEntity rechercherPersonne(@RequestBody RecherchePersonneResquestBody recherchePersonneResquestBody ) { try{ - personneService.recherchePersonne(recherchePersonneResquestBody); - + // personneService.recherchePersonne(recherchePersonneResquestBody); 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 ); }catch (Exception e){ diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/UploadController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/UploadController.java index 24c0267..c0c1bc2 100644 --- a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/UploadController.java +++ b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/UploadController.java @@ -1,6 +1,7 @@ package io.gmss.fiscad.controllers.infocad.metier; 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.JobModels; 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.StringManager; 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.tags.Tag; import jakarta.servlet.http.HttpServletRequest; @@ -45,12 +49,13 @@ import java.util.UUID; @SecurityRequirement(name = "bearer") @Tag(name = "Upload") @CrossOrigin(origins = "*") -@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") +//@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public class UploadController { boolean headIsValid = false; private final ZipAsyncService service; private final ZipStorageProperties props; + private final UploadService uploadService; private static final Logger logger = LoggerFactory.getLogger(UploadController.class); @Autowired @@ -94,7 +99,7 @@ public class UploadController { try { 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 { 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); } - @PostMapping("/save") - public ResponseEntity save(@RequestPart(required = true) MultipartFile file, @RequestParam String reference, @RequestParam String description /*, @RequestParam Long idTypeUpload*/) { + @PostMapping( + 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 { - Upload upload = new Upload(); - String fileName = fileStorageService.storeFile(file); - upload.setFileName(fileName); - upload.setMimeType(file.getContentType()); - 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); + return ResponseEntity.ok( + new ApiResponse(true, + uploadService.createUpload(file, pieceId), + "File has been created successfully.") + ); } catch (Exception e) { - logger.error(e.getLocalizedMessage()); - return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + logger.error(e.getMessage(), e); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) + .body(new ApiResponse(false, null, e.getMessage())); } } + @DeleteMapping("/delete/id/{id}") public ResponseEntity delete(@PathVariable Long id) { try { diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Upload.java b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Upload.java index b6033d6..fcc4b59 100644 --- a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Upload.java +++ b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Upload.java @@ -96,7 +96,7 @@ public class Upload extends BaseEntity implements Serializable { String url = this.serverContext() + fileName; 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; } @@ -104,10 +104,11 @@ public class Upload extends BaseEntity implements Serializable { String url= ServletUriComponentsBuilder.fromCurrentContextPath() .path("/api/upload/downloadFile/") .toUriString(); - if(!url.contains("8282/api")){ - url.replace("/api",":8282/api"); - } - + //System.out.println(url); +// if(!url.contains("8282/api")){ +// url.replace("/api",":8282/api"); +// } + //System.out.println(url); return url; } diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Personne.java b/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Personne.java index 7dd90fd..fb062e0 100644 --- a/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Personne.java +++ b/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Personne.java @@ -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.metadata.MobileDataPersonne; import io.gmss.fiscad.enums.Categorie; +import io.gmss.fiscad.enums.EtatIdentificationPersonne; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; @@ -79,7 +80,12 @@ public class Personne extends BaseEntity implements Serializable { private int mustHaveRepresentant; private String filePath; + @Enumerated(EnumType.STRING) + private EtatIdentificationPersonne etatIdentificationPersonne; private String observation; + private String numeroRccm ; + private LocalDate dateRccm ; + private String email ; @ColumnDefault("false") private boolean synchronise; diff --git a/src/main/java/io/gmss/fiscad/enums/EtatIdentificationPersonne.java b/src/main/java/io/gmss/fiscad/enums/EtatIdentificationPersonne.java new file mode 100755 index 0000000..d98ad71 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/enums/EtatIdentificationPersonne.java @@ -0,0 +1,8 @@ +package io.gmss.fiscad.enums; + +public enum EtatIdentificationPersonne { + IFU, + NPI, + IFU_NPI, + NEANT; +} diff --git a/src/main/java/io/gmss/fiscad/enums/Origine.java b/src/main/java/io/gmss/fiscad/enums/Origine.java index 7ea4edf..c20a1eb 100644 --- a/src/main/java/io/gmss/fiscad/enums/Origine.java +++ b/src/main/java/io/gmss/fiscad/enums/Origine.java @@ -2,5 +2,8 @@ package io.gmss.fiscad.enums; public enum Origine { WEB, - MOBILE + MOBILE, + SIGIBE, + RFU_LOGIL, + ANIP } diff --git a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java index 0ce9cc8..fb5609d 100644 --- a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java @@ -26,6 +26,8 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; +import java.time.LocalDate; +import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -194,9 +196,60 @@ public class PersonneServiceImpl implements PersonneService { } @Override - public List recherchePersonne(RecherchePersonneResquestBody recherchePersonneResquestBody) { - callAPIService.callGetIfuEnLigneToken(); + public List recherchePersonne(RecherchePersonneResquestBody recherchePersonneResquestBody) { + // callAPIService.callGetIfuEnLigneToken(); + List personnePayLoadWebsRfuLoggil = new ArrayList<>(); + personnePayLoadWebsRfuLoggil = recherchePersonneLocal(recherchePersonneResquestBody); + + + + return personnePayLoadWebsRfuLoggil; + } + + + private List recherchePersonneLocal(RecherchePersonneResquestBody recherchePersonneResquestBody) { + + List 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 recherchePersonneSigibe(RecherchePersonneResquestBody recherchePersonneResquestBody) { + // callAPIService.callGetIfuEnLigneToken(); + + return null; } + + private List 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 + "%"; + } + } diff --git a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/UploadServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/UploadServiceImpl.java new file mode 100644 index 0000000..4916b6b --- /dev/null +++ b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/UploadServiceImpl.java @@ -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 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 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 getUploadListToDtoPageable(Pageable pageable) { + return null; + } + + @Override + public List getUploadListToDto() { + return null; + } + + @Override + public Optional getUploadByToDto(Long id) { + return Optional.empty(); + } + + @Override + public List getAllUploadByPieceToDto(Long id) { + return uploadRepository.findByPieceId(id); + } + + @Override + public Page getAllUploadByPieceDtoPageable(Long id, Pageable pageable) { + return null; + } +} diff --git a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PersonneService.java b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PersonneService.java index b1e22be..e0a2f0d 100755 --- a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PersonneService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PersonneService.java @@ -26,5 +26,5 @@ public interface PersonneService { Optional getPersonneById(Long id); PersonneCompletDTO getPersonneComplete(Long id); - List recherchePersonne(RecherchePersonneResquestBody recherchePersonneResquestBody); + List recherchePersonne(RecherchePersonneResquestBody recherchePersonneResquestBody); } diff --git a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/UploadService.java b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/UploadService.java new file mode 100755 index 0000000..fe0fd86 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/UploadService.java @@ -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 getUploadListToDtoPageable(Pageable pageable); + + List getUploadListToDto(); + + Optional getUploadByToDto(Long id); + List getAllUploadByPieceToDto(Long id); + Page getAllUploadByPieceDtoPageable(Long id,Pageable pageable); +} diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/RecherchePersonneResquestBody.java b/src/main/java/io/gmss/fiscad/paylaods/request/RecherchePersonneResquestBody.java index ad968fd..9a5b8d7 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/RecherchePersonneResquestBody.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/RecherchePersonneResquestBody.java @@ -2,11 +2,15 @@ package io.gmss.fiscad.paylaods.request; import lombok.Data; +import java.time.LocalDate; + @Data public class RecherchePersonneResquestBody { private String ifu; + private String npi; private String nom; private String nomMere; private String prenom; - private String dateNaissance; + private String raisonSociale; + private LocalDate dateNaissance; } diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/PersonnePayLoadWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/PersonnePayLoadWeb.java index dd34f0e..f6b03aa 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/PersonnePayLoadWeb.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/PersonnePayLoadWeb.java @@ -1,6 +1,7 @@ package io.gmss.fiscad.paylaods.request.crudweb; import io.gmss.fiscad.enums.Categorie; +import io.gmss.fiscad.enums.Origine; import jakarta.persistence.EnumType; import jakarta.persistence.Enumerated; import lombok.Data; @@ -44,5 +45,22 @@ public class PersonnePayLoadWeb { private String indicatifTel1; private String indicatifTel2; 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; + } } diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/UploadPayLoadWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/UploadPayLoadWeb.java index ae0cbad..5dad308 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/UploadPayLoadWeb.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/UploadPayLoadWeb.java @@ -1,18 +1,20 @@ package io.gmss.fiscad.paylaods.request.crudweb; +import jakarta.persistence.Transient; import lombok.Data; +import lombok.NoArgsConstructor; @Data public class UploadPayLoadWeb { private Long id; private Long pieceId; - private String Observation; + // private String Observation; //private boolean synchronise; //private String fileBase64; ///////////////////////////////// private String name; private String filePath; - private Long enqueteId; + // private Long enqueteId; private Long enqueteBatimentId; private Long personneId; private Long enqueteUniteLogementId; @@ -20,5 +22,34 @@ public class UploadPayLoadWeb { private String reference; private String description; 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; + } } diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/UploadRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/UploadRepository.java index 1007964..2be93ac 100644 --- a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/UploadRepository.java +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/UploadRepository.java @@ -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.rfu.metier.EnqueteBatiment; 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 jakarta.transaction.Transactional; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import java.util.List; import java.util.Optional; @@ -80,4 +82,49 @@ public interface UploadRepository extends JpaRepository { List 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 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 findByPieceId(@Param("pieceId") Long pieceId); + + } diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/parametre/PersonneRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/parametre/PersonneRepository.java index b56f224..cce74f9 100755 --- a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/parametre/PersonneRepository.java +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/parametre/PersonneRepository.java @@ -2,11 +2,14 @@ package io.gmss.fiscad.persistence.repositories.infocad.parametre; import io.gmss.fiscad.entities.infocad.parametre.Personne; 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.restoration.PersonnePayLoad; import org.springframework.data.jpa.repository.JpaRepository; 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.Optional; @@ -63,5 +66,43 @@ public interface PersonneRepository extends JpaRepository { List 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 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 + ); + } diff --git a/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java b/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java index 51b32b4..d0bbfc6 100644 --- a/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java +++ b/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java @@ -206,7 +206,7 @@ public class EntityFromPayLoadService { public Upload getUploadFromPayLoadWeb(UploadPayLoadWeb uploadPayLoadWeb){ Upload upload=new Upload(); - //Optional optionalEnquete=Optional.empty() ; + Optional optionalPiece=Optional.empty() ; Optional optionalDeclarationNc=Optional.empty(); Optional optionalPersonne=Optional.empty(); Optional optionalEnqueteBatiment=Optional.empty(); @@ -224,8 +224,14 @@ public class EntityFromPayLoadService { optionalEnqueteBatiment=enqueteBatimentRepository.findById(uploadPayLoadWeb.getEnqueteBatimentId()); if(uploadPayLoadWeb.getEnqueteUniteLogementId()!=null) optionalEnqueteUniteLogement=enqueteUniteLogementRepository.findById(uploadPayLoadWeb.getEnqueteUniteLogementId()); + + if(uploadPayLoadWeb.getPieceId()!=null) + optionalPiece=pieceRepository.findById(uploadPayLoadWeb.getPieceId()); + + upload.setId(uploadPayLoadWeb.getId()); - upload.setEnqueteId(uploadPayLoadWeb.getEnqueteId()); + upload.setPiece(optionalPiece.orElse(null)); + //upload.setEnqueteId(uploadPayLoadWeb.getEnqueteId()); upload.setEnqueteBatiment(optionalEnqueteBatiment.orElse(null)); upload.setPersonne(optionalPersonne.orElse(null)); upload.setEnqueteUniteLogement(optionalEnqueteUniteLogement.orElse(null)); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 85dff60..7a2dd25 100755 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -72,4 +72,10 @@ logging.level.org.apache.catalina.connector.ClientAbortException=ERROR # Affiche les valeurs des paramètres bindés (Hibernate 5.4+) #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 \ No newline at end of file diff --git a/uploads/0255a8bec8644523852e73eaeee7ef55.pdf b/uploads/0255a8bec8644523852e73eaeee7ef55.pdf new file mode 100644 index 0000000..ed1fd49 Binary files /dev/null and b/uploads/0255a8bec8644523852e73eaeee7ef55.pdf differ diff --git a/uploads/d4c3b2245e004bec8ffece027271380b.pdf b/uploads/d4c3b2245e004bec8ffece027271380b.pdf new file mode 100644 index 0000000..88ca862 Binary files /dev/null and b/uploads/d4c3b2245e004bec8ffece027271380b.pdf differ