fusion maj parcelle,batiment,ulo et leur enquete
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package io.gmss.fiscad.controllers.decoupage;
|
package io.gmss.fiscad.controllers.decoupage;
|
||||||
|
|
||||||
import io.gmss.fiscad.entities.decoupage.SecteurDecoupage;
|
import io.gmss.fiscad.entities.decoupage.SecteurDecoupage;
|
||||||
|
import io.gmss.fiscad.enums.StatutEnquete;
|
||||||
import io.gmss.fiscad.exceptions.*;
|
import io.gmss.fiscad.exceptions.*;
|
||||||
import io.gmss.fiscad.interfaces.decoupage.SecteurDecoupageService;
|
import io.gmss.fiscad.interfaces.decoupage.SecteurDecoupageService;
|
||||||
import io.gmss.fiscad.interfaces.decoupage.SecteurService;
|
import io.gmss.fiscad.interfaces.decoupage.SecteurService;
|
||||||
@@ -248,4 +249,221 @@ public class SecteurDecoupageController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/arbre/enquete-en-cours/user-id/{userId}")
|
||||||
|
public ResponseEntity<?> getArborescenceEnqueteEncoursByUserId(@PathVariable Long userId) {
|
||||||
|
try {
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true, secteurDecoupageService.getStatEnqueteDecoupageByUserId(userId, StatutEnquete.EN_COURS.toString()), "SecteurDecoupage trouvée avec succès."),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
} catch (HttpClientErrorException.MethodNotAllowed e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
|
||||||
|
} catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
|
||||||
|
FileStorageException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
|
} 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/arbre/enquete-valide/user-id/{userId}")
|
||||||
|
public ResponseEntity<?> getArborescenceEnqueteValideByUserId(@PathVariable Long userId) {
|
||||||
|
try {
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true, secteurDecoupageService.getStatEnqueteDecoupageByUserId(userId, StatutEnquete.VALIDE.toString()), "SecteurDecoupage trouvée avec succès."),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
} catch (HttpClientErrorException.MethodNotAllowed e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
|
||||||
|
} catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
|
||||||
|
FileStorageException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
|
} 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/arbre/enquete-cloture/user-id/{userId}")
|
||||||
|
public ResponseEntity<?> getArborescenceEnqueteClotureByUserId(@PathVariable Long userId) {
|
||||||
|
try {
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true, secteurDecoupageService.getStatEnqueteDecoupageByUserId(userId, StatutEnquete.CLOTURE.toString()), "SecteurDecoupage trouvée avec succès."),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
} catch (HttpClientErrorException.MethodNotAllowed e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
|
||||||
|
} catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
|
||||||
|
FileStorageException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
|
} 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/arbre/enquete-batiment-en-cours/user-id/{userId}")
|
||||||
|
public ResponseEntity<?> getArborescenceEnqueteBatimentEncoursByUserId(@PathVariable Long userId) {
|
||||||
|
try {
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true, secteurDecoupageService.getStatEnqueteBatimentDecoupageByUserId(userId, StatutEnquete.EN_COURS.toString()), "SecteurDecoupage trouvée avec succès."),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
} catch (HttpClientErrorException.MethodNotAllowed e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
|
||||||
|
} catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
|
||||||
|
FileStorageException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
|
} 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/arbre/enquete-batiment-valide/user-id/{userId}")
|
||||||
|
public ResponseEntity<?> getArborescenceEnqueteBatimentValideByUserId(@PathVariable Long userId) {
|
||||||
|
try {
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true, secteurDecoupageService.getStatEnqueteBatimentDecoupageByUserId(userId, StatutEnquete.VALIDE.toString()), "SecteurDecoupage trouvée avec succès."),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
} catch (HttpClientErrorException.MethodNotAllowed e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
|
||||||
|
} catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
|
||||||
|
FileStorageException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
|
} 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/arbre/enquete-batiment-cloture/user-id/{userId}")
|
||||||
|
public ResponseEntity<?> getArborescenceEnqueteBatimentClotureByUserId(@PathVariable Long userId) {
|
||||||
|
try {
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true, secteurDecoupageService.getStatEnqueteBatimentDecoupageByUserId(userId, StatutEnquete.CLOTURE.toString()), "SecteurDecoupage trouvée avec succès."),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
} catch (HttpClientErrorException.MethodNotAllowed e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
|
||||||
|
} catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
|
||||||
|
FileStorageException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
|
} 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/arbre/enquete-unitlog-en-cours/user-id/{userId}")
|
||||||
|
public ResponseEntity<?> getArborescenceEnqueteUniteLogEncoursByUserId(@PathVariable Long userId) {
|
||||||
|
try {
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true, secteurDecoupageService.getStatEnqueteUniteLogementDecoupageByUserId(userId, StatutEnquete.EN_COURS.toString()), "SecteurDecoupage trouvée avec succès."),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
} catch (HttpClientErrorException.MethodNotAllowed e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
|
||||||
|
} catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
|
||||||
|
FileStorageException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
|
} 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/arbre/enquete-unitlog-valide/user-id/{userId}")
|
||||||
|
public ResponseEntity<?> getArborescenceEnqueteUniteLogValideByUserId(@PathVariable Long userId) {
|
||||||
|
try {
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true, secteurDecoupageService.getStatEnqueteUniteLogementDecoupageByUserId(userId, StatutEnquete.VALIDE.toString()), "SecteurDecoupage trouvée avec succès."),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
} catch (HttpClientErrorException.MethodNotAllowed e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
|
||||||
|
} catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
|
||||||
|
FileStorageException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
|
} 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/arbre/enquete-unitlog-cloture/user-id/{userId}")
|
||||||
|
public ResponseEntity<?> getArborescenceEnqueteUniteLigClotureByUserId(@PathVariable Long userId) {
|
||||||
|
try {
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true, secteurDecoupageService.getStatEnqueteUniteLogementDecoupageByUserId(userId, StatutEnquete.CLOTURE.toString()), "SecteurDecoupage trouvée avec succès."),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
} catch (HttpClientErrorException.MethodNotAllowed e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
|
||||||
|
} catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
|
||||||
|
FileStorageException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
|
} 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -3,6 +3,7 @@ package io.gmss.fiscad.controllers.infocad.metier;
|
|||||||
import io.gmss.fiscad.entities.infocad.metier.Enquete;
|
import io.gmss.fiscad.entities.infocad.metier.Enquete;
|
||||||
import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
|
import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
|
||||||
import io.gmss.fiscad.entities.user.User;
|
import io.gmss.fiscad.entities.user.User;
|
||||||
|
import io.gmss.fiscad.enums.StatutEnquete;
|
||||||
import io.gmss.fiscad.exceptions.*;
|
import io.gmss.fiscad.exceptions.*;
|
||||||
import io.gmss.fiscad.interfaces.infocad.metier.EnqueteService;
|
import io.gmss.fiscad.interfaces.infocad.metier.EnqueteService;
|
||||||
import io.gmss.fiscad.paylaods.ApiResponse;
|
import io.gmss.fiscad.paylaods.ApiResponse;
|
||||||
@@ -67,7 +68,8 @@ public class EnqueteController {
|
|||||||
logger.error(e.getLocalizedMessage());
|
logger.error(e.getLocalizedMessage());
|
||||||
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
|
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());
|
e.printStackTrace();
|
||||||
|
// logger.error(e.getLocalizedMessage());
|
||||||
return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK);
|
return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -483,8 +485,65 @@ public class EnqueteController {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/all-paged/en-cours/by-quartier-id/{quartierId}")
|
||||||
|
public ResponseEntity<?> getAllEnqueteEncoursByQuartierPaged(@CurrentUser UserPrincipal currentUser,@PathVariable Long quartierId, @RequestParam int pageNo, @RequestParam int pageSize) {
|
||||||
|
try {
|
||||||
|
Pageable pageable = PageRequest.of(pageNo, pageSize);
|
||||||
|
if(currentUser==null)
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true,null, "Vous ne pouvez pas accéder à cette ressource"),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
Long userId = currentUser.getUser().getId();
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true, enqueteService.getEnqueteListByQuartierByStatutPageableToDto(userId,quartierId, StatutEnquete.EN_COURS, pageable), "Liste des enquetes en cours chargée avec succès."),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
} catch (HttpClientErrorException.MethodNotAllowed e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
|
||||||
|
} catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
|
||||||
|
FileStorageException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
|
} 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/all-paged/cloture/by-quartier-id/{quartierId}")
|
||||||
|
public ResponseEntity<?> getAllEnqueteClotureByQuartierPaged(@CurrentUser UserPrincipal currentUser,@PathVariable Long quartierId, @RequestParam int pageNo, @RequestParam int pageSize) {
|
||||||
|
try {
|
||||||
|
Pageable pageable = PageRequest.of(pageNo, pageSize);
|
||||||
|
if(currentUser==null)
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true,null, "Vous ne pouvez pas accéder à cette ressource"),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
Long userId = currentUser.getUser().getId();
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true, enqueteService.getEnqueteListByQuartierByStatutPageableToDto(userId,quartierId, StatutEnquete.CLOTURE, pageable), "Liste des enquetes en cours chargée avec succès."),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
} catch (HttpClientErrorException.MethodNotAllowed e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
|
||||||
|
} catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
|
||||||
|
FileStorageException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
|
} 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,13 @@ package io.gmss.fiscad.controllers.rfu.metier;
|
|||||||
|
|
||||||
|
|
||||||
import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
|
import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
|
||||||
|
import io.gmss.fiscad.enums.StatutEnquete;
|
||||||
import io.gmss.fiscad.exceptions.*;
|
import io.gmss.fiscad.exceptions.*;
|
||||||
import io.gmss.fiscad.interfaces.rfu.metier.EnqueteBatimentService;
|
import io.gmss.fiscad.interfaces.rfu.metier.EnqueteBatimentService;
|
||||||
import io.gmss.fiscad.paylaods.ApiResponse;
|
import io.gmss.fiscad.paylaods.ApiResponse;
|
||||||
import io.gmss.fiscad.paylaods.request.crudweb.EnqueteBatimentPayloadWeb;
|
import io.gmss.fiscad.paylaods.request.crudweb.EnqueteBatimentPayloadWeb;
|
||||||
|
import io.gmss.fiscad.security.CurrentUser;
|
||||||
|
import io.gmss.fiscad.security.UserPrincipal;
|
||||||
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.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
@@ -223,4 +226,65 @@ public class EnqueteBatimentController {
|
|||||||
return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK);
|
return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/all-paged/en-cours/by-quartier-id/{quartierId}")
|
||||||
|
public ResponseEntity<?> getAllEnqueteBatimentEnCoursByQuartierPaged(@CurrentUser UserPrincipal currentUser, @PathVariable Long quartierId, @RequestParam int pageNo, @RequestParam int pageSize) {
|
||||||
|
try {
|
||||||
|
Pageable pageable = PageRequest.of(pageNo, pageSize);
|
||||||
|
if(currentUser==null)
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true,null, "Vous ne pouvez pas accéder à cette ressource"),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
Long userId = currentUser.getUser().getId();
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true, enqueteBatimentService.getEnqueteBatimentListByQuartierByStatutPageableToDto(userId,quartierId, StatutEnquete.EN_COURS, pageable), "Liste des enquetes en cours chargée avec succès."),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
} catch (HttpClientErrorException.MethodNotAllowed e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
|
||||||
|
} catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
|
||||||
|
FileStorageException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
|
} 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/all-paged/cloture/by-quartier-id/{quartierId}")
|
||||||
|
public ResponseEntity<?> getAllEnqueteBatimentClotureByQuartierPaged(@CurrentUser UserPrincipal currentUser, @PathVariable Long quartierId, @RequestParam int pageNo, @RequestParam int pageSize) {
|
||||||
|
try {
|
||||||
|
Pageable pageable = PageRequest.of(pageNo, pageSize);
|
||||||
|
if(currentUser==null)
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true,null, "Vous ne pouvez pas accéder à cette ressource"),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
Long userId = currentUser.getUser().getId();
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true, enqueteBatimentService.getEnqueteBatimentListByQuartierByStatutPageableToDto(userId,quartierId, StatutEnquete.CLOTURE, pageable), "Liste des enquetes en cours chargée avec succès."),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
} catch (HttpClientErrorException.MethodNotAllowed e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
|
||||||
|
} catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
|
||||||
|
FileStorageException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
|
} 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,10 +2,13 @@ package io.gmss.fiscad.controllers.rfu.metier;
|
|||||||
|
|
||||||
|
|
||||||
import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement;
|
import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement;
|
||||||
|
import io.gmss.fiscad.enums.StatutEnquete;
|
||||||
import io.gmss.fiscad.exceptions.*;
|
import io.gmss.fiscad.exceptions.*;
|
||||||
import io.gmss.fiscad.interfaces.rfu.metier.EnqueteUniteLogementService;
|
import io.gmss.fiscad.interfaces.rfu.metier.EnqueteUniteLogementService;
|
||||||
import io.gmss.fiscad.paylaods.ApiResponse;
|
import io.gmss.fiscad.paylaods.ApiResponse;
|
||||||
import io.gmss.fiscad.paylaods.request.crudweb.EnqueteUniteLogementPayloadWeb;
|
import io.gmss.fiscad.paylaods.request.crudweb.EnqueteUniteLogementPayloadWeb;
|
||||||
|
import io.gmss.fiscad.security.CurrentUser;
|
||||||
|
import io.gmss.fiscad.security.UserPrincipal;
|
||||||
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.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
@@ -223,4 +226,66 @@ public class EnqueteUniteLogementController {
|
|||||||
return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK);
|
return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/all-paged/en-cours/by-quartier-id/{quartierId}")
|
||||||
|
public ResponseEntity<?> getAllEnqueteUniteLogementEncoursByQuartierPaged(@CurrentUser UserPrincipal currentUser, @PathVariable Long quartierId, @RequestParam int pageNo, @RequestParam int pageSize) {
|
||||||
|
try {
|
||||||
|
Pageable pageable = PageRequest.of(pageNo, pageSize);
|
||||||
|
if(currentUser==null)
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true,null, "Vous ne pouvez pas accéder à cette ressource"),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
Long userId = currentUser.getUser().getId();
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true, enqueteUniteLogementService.getEnqueteUniteLogementListByQuartierByStatutPageableToDto(userId,quartierId, StatutEnquete.EN_COURS, pageable), "Liste des enquetes en cours chargée avec succès."),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
} catch (HttpClientErrorException.MethodNotAllowed e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
|
||||||
|
} catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
|
||||||
|
FileStorageException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
|
} 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/all-paged/cloture/by-quartier-id/{quartierId}")
|
||||||
|
public ResponseEntity<?> getAllEnqueteUniteLogementClotureByQuartierPaged(@CurrentUser UserPrincipal currentUser, @PathVariable Long quartierId, @RequestParam int pageNo, @RequestParam int pageSize) {
|
||||||
|
try {
|
||||||
|
Pageable pageable = PageRequest.of(pageNo, pageSize);
|
||||||
|
if(currentUser==null)
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true,null, "Vous ne pouvez pas accéder à cette ressource"),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
Long userId = currentUser.getUser().getId();
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true, enqueteUniteLogementService.getEnqueteUniteLogementListByQuartierByStatutPageableToDto(userId,quartierId, StatutEnquete.CLOTURE, pageable), "Liste des enquetes en cours chargée avec succès."),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
} catch (HttpClientErrorException.MethodNotAllowed e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
|
||||||
|
} catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
|
||||||
|
FileStorageException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
|
} 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
package io.gmss.fiscad.controllers.statistique;
|
package io.gmss.fiscad.controllers.statistique;
|
||||||
|
|
||||||
import io.gmss.fiscad.enums.NiveauDecoupage;
|
import io.gmss.fiscad.enums.NiveauDecoupage;
|
||||||
|
import io.gmss.fiscad.enums.StatutEnquete;
|
||||||
import io.gmss.fiscad.exceptions.*;
|
import io.gmss.fiscad.exceptions.*;
|
||||||
import io.gmss.fiscad.interfaces.statistique.StatistiquesService;
|
import io.gmss.fiscad.interfaces.statistique.StatistiquesService;
|
||||||
import io.gmss.fiscad.paylaods.ApiResponse;
|
import io.gmss.fiscad.paylaods.ApiResponse;
|
||||||
|
import io.gmss.fiscad.security.CurrentUser;
|
||||||
|
import io.gmss.fiscad.security.UserPrincipal;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
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;
|
||||||
@@ -174,4 +177,77 @@ public class StatistiqueController {
|
|||||||
return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK);
|
return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Operation(
|
||||||
|
summary = "Statistique des enquetes en cours par object ",
|
||||||
|
description = "Donnes le nombre d'enquetes en coures par objet"
|
||||||
|
)
|
||||||
|
@GetMapping(path = "/nombre-enquete/par-objet/en-cours")
|
||||||
|
public ResponseEntity<?> getStatistiquesEnqueteEnCoursParObjet(@CurrentUser UserPrincipal currentUser) {
|
||||||
|
try {
|
||||||
|
if(currentUser==null)
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true,null, "Vous ne pouvez pas accéder à cette ressource"),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
Long userId = currentUser.getUser().getId();
|
||||||
|
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true, statistiquesService.getStatNombreEnqueteParObjetUserConnect(userId,StatutEnquete.EN_COURS.toString()), "Statistique des personne par type."),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
} catch (HttpClientErrorException.MethodNotAllowed e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
|
||||||
|
} catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
|
||||||
|
FileStorageException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
|
} 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Operation(
|
||||||
|
summary = "Statistique des enquetes en cours par object ",
|
||||||
|
description = "Donnes le nombre d'enquetes en coures par objet"
|
||||||
|
)
|
||||||
|
@GetMapping(path = "/nombre-enquete/par-objet/cloture")
|
||||||
|
public ResponseEntity<?> getStatistiquesEnqueteClotureParObjet(@CurrentUser UserPrincipal currentUser) {
|
||||||
|
try {
|
||||||
|
if(currentUser==null)
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true,null, "Vous ne pouvez pas accéder à cette ressource"),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
Long userId = currentUser.getUser().getId();
|
||||||
|
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true, statistiquesService.getStatNombreEnqueteParObjetUserConnect(userId, StatutEnquete.CLOTURE.toString()), "Statistique des personne par type."),
|
||||||
|
HttpStatus.OK
|
||||||
|
);
|
||||||
|
} catch (HttpClientErrorException.MethodNotAllowed e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
|
||||||
|
} catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
|
||||||
|
FileStorageException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK);
|
||||||
|
} 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -24,6 +24,7 @@ import org.hibernate.annotations.Where;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@@ -88,7 +89,7 @@ public class Piece extends BaseEntity implements Serializable {
|
|||||||
|
|
||||||
|
|
||||||
@OneToMany(mappedBy = "piece")
|
@OneToMany(mappedBy = "piece")
|
||||||
private List<Upload> uploads;
|
private List<Upload> uploads=new ArrayList<>();
|
||||||
|
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@@ -103,4 +104,9 @@ public class Piece extends BaseEntity implements Serializable {
|
|||||||
private boolean synchronise;
|
private boolean synchronise;
|
||||||
private String observation;
|
private String observation;
|
||||||
|
|
||||||
|
private Long nombreFichier;
|
||||||
|
|
||||||
|
public Long getNombreFichier() {
|
||||||
|
return uploads==null? 0l:uploads.size() ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,21 +74,20 @@ public class DonneesImpositionTfu extends BaseEntity implements Serializable {
|
|||||||
private int superficieParc;
|
private int superficieParc;
|
||||||
private Long superficieAuSolBat;
|
private Long superficieAuSolBat;
|
||||||
private Long superficieAuSolUlog;
|
private Long superficieAuSolUlog;
|
||||||
//private String batieOuiNon;
|
|
||||||
//private String exhonereOuiNon;
|
|
||||||
//private String batimentExhonereOuiNon;
|
|
||||||
//private String uniteLogementExhonereOuiNon;
|
|
||||||
private Boolean batie;
|
private Boolean batie;
|
||||||
private Boolean exonere;
|
private Boolean exonere;
|
||||||
private Boolean batimentExonere;
|
private Boolean batimentExonere;
|
||||||
private Boolean uniteLogementExonere;
|
private Boolean uniteLogementExonere;
|
||||||
private Long valeurLocativeAdm;
|
private Long valeurLocativeAdm;
|
||||||
private Long valeurLocativeAdm70Pour100;
|
private Long valeurLocativeAdmTauxPropParc;
|
||||||
|
private Long valeurLocativeAdmSupReel;
|
||||||
|
private Long superficieAuSolTauxPropParc;
|
||||||
private Long valeurLocativeAdmMetreCarre;
|
private Long valeurLocativeAdmMetreCarre;
|
||||||
private Long montantLoyerAnnuel;
|
private Long montantLoyerAnnuel;
|
||||||
private Long tfuMetreCarre;
|
private Long tfuMetreCarre;
|
||||||
private Long tfuMinimum;
|
private Long tfuMinimum;
|
||||||
private String standingBat;
|
private String standingBat;
|
||||||
|
private String categorieUsage;
|
||||||
private String categorieBat;
|
private String categorieBat;
|
||||||
private Long nombrePiscine;
|
private Long nombrePiscine;
|
||||||
private Long nombreUlog;
|
private Long nombreUlog;
|
||||||
@@ -97,15 +96,11 @@ public class DonneesImpositionTfu extends BaseEntity implements Serializable {
|
|||||||
@JsonDeserialize(using = LocalDateDeserializer.class)
|
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||||
private LocalDate dateEnquete;
|
private LocalDate dateEnquete;
|
||||||
private Long enqueteId;
|
private Long enqueteId;
|
||||||
//private Long structureId;
|
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
@ManyToOne(fetch = FetchType.LAZY)
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
@JoinColumn(name = "structure_id")
|
@JoinColumn(name = "structure_id")
|
||||||
private Structure structure ;
|
private Structure structure ;
|
||||||
|
|
||||||
private Long secteurId;
|
private Long secteurId;
|
||||||
|
|
||||||
//private Long zoneRfuId;
|
|
||||||
@ManyToOne(fetch = FetchType.LAZY)
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
@JoinColumn(name = "zone_rfu_id")
|
@JoinColumn(name = "zone_rfu_id")
|
||||||
private ZoneRfu zoneRfu ;
|
private ZoneRfu zoneRfu ;
|
||||||
@@ -113,7 +108,10 @@ public class DonneesImpositionTfu extends BaseEntity implements Serializable {
|
|||||||
@ColumnDefault("0")
|
@ColumnDefault("0")
|
||||||
private Long valeurAdminParcelleNb;
|
private Long valeurAdminParcelleNb;
|
||||||
private Float tauxTfu;
|
private Float tauxTfu;
|
||||||
|
private Long tfuPiscine;
|
||||||
private Float montantTaxe;
|
private Float montantTaxe;
|
||||||
|
private Float tfuCalculeTauxPropParc;
|
||||||
|
private Float tfuSuperficieAuSolReel;
|
||||||
private Long valeurAdminParcelleNbMetreCarre;
|
private Long valeurAdminParcelleNbMetreCarre;
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
@ManyToOne(fetch = FetchType.LAZY)
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
@@ -123,4 +121,19 @@ public class DonneesImpositionTfu extends BaseEntity implements Serializable {
|
|||||||
private NatureImpot natureImpot;
|
private NatureImpot natureImpot;
|
||||||
private Long valeurBatiment;
|
private Long valeurBatiment;
|
||||||
private Long valeurParcelle;
|
private Long valeurParcelle;
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
@JoinColumn(name = "parcelle_id")
|
||||||
|
private Parcelle parcelleImposee ;
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
@JoinColumn(name = "batiment_id")
|
||||||
|
private Batiment batimentImpose ;
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
@JoinColumn(name = "unite_logement_id")
|
||||||
|
private UniteLogement uniteLogementImposee ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ public enum ParametersType {
|
|||||||
OBJET_CREATE_ACCOUNT,
|
OBJET_CREATE_ACCOUNT,
|
||||||
CORPS_CREATE_ACCOUNT,
|
CORPS_CREATE_ACCOUNT,
|
||||||
TOKEN_IFU_EN_LIGNE,
|
TOKEN_IFU_EN_LIGNE,
|
||||||
TAUX_TFU_HABITATION,
|
TAUX_TFU,
|
||||||
TAUX_TFU_PROFESSIONNELLE,
|
TAUX_VALEUR_LOCATIVE_PROFESSIONNELLE,
|
||||||
TAUX_DEFAUT_SUPERFICIE_AU_SOL;
|
TAUX_DEFAUT_SUPERFICIE_AU_SOL,
|
||||||
|
TFU_PAR_PISCINE;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package io.gmss.fiscad.enums;
|
|||||||
|
|
||||||
public enum StatutEnquete {
|
public enum StatutEnquete {
|
||||||
EN_COURS,
|
EN_COURS,
|
||||||
// DECLARATION,
|
|
||||||
FINALISE,
|
FINALISE,
|
||||||
REJETE,
|
REJETE,
|
||||||
VALIDE,
|
VALIDE,
|
||||||
|
|||||||
@@ -2,15 +2,18 @@ package io.gmss.fiscad.implementations.decoupage;
|
|||||||
|
|
||||||
import io.gmss.fiscad.entities.decoupage.Secteur;
|
import io.gmss.fiscad.entities.decoupage.Secteur;
|
||||||
import io.gmss.fiscad.entities.decoupage.SecteurDecoupage;
|
import io.gmss.fiscad.entities.decoupage.SecteurDecoupage;
|
||||||
|
import io.gmss.fiscad.enums.StatutEnquete;
|
||||||
import io.gmss.fiscad.exceptions.BadRequestException;
|
import io.gmss.fiscad.exceptions.BadRequestException;
|
||||||
import io.gmss.fiscad.exceptions.NotFoundException;
|
import io.gmss.fiscad.exceptions.NotFoundException;
|
||||||
import io.gmss.fiscad.interfaces.decoupage.SecteurDecoupageService;
|
import io.gmss.fiscad.interfaces.decoupage.SecteurDecoupageService;
|
||||||
import io.gmss.fiscad.interfaces.decoupage.SecteurService;
|
import io.gmss.fiscad.interfaces.decoupage.SecteurService;
|
||||||
import io.gmss.fiscad.paylaods.request.crudweb.SecteurDecoupagePaylaodWeb;
|
import io.gmss.fiscad.paylaods.request.crudweb.SecteurDecoupagePaylaodWeb;
|
||||||
import io.gmss.fiscad.paylaods.request.crudweb.SecteurPaylaodWeb;
|
import io.gmss.fiscad.paylaods.response.statistique.ParcelleStatsProjectionUnSecteur;
|
||||||
import io.gmss.fiscad.paylaods.response.restoration.ParcelleStatsProjectionUnSecteur;
|
|
||||||
import io.gmss.fiscad.persistence.repositories.decoupage.SecteurDecoupageRepository;
|
import io.gmss.fiscad.persistence.repositories.decoupage.SecteurDecoupageRepository;
|
||||||
|
import io.gmss.fiscad.persistence.repositories.infocad.metier.EnqueteRepository;
|
||||||
import io.gmss.fiscad.persistence.repositories.infocad.metier.ParcelleRepository;
|
import io.gmss.fiscad.persistence.repositories.infocad.metier.ParcelleRepository;
|
||||||
|
import io.gmss.fiscad.persistence.repositories.rfu.metier.EnqueteBatimentRepository;
|
||||||
|
import io.gmss.fiscad.persistence.repositories.rfu.metier.EnqueteUniteLogementRepository;
|
||||||
import io.gmss.fiscad.service.EntityFromPayLoadService;
|
import io.gmss.fiscad.service.EntityFromPayLoadService;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
@@ -26,6 +29,9 @@ public class SecteurDecoupageServiceImpl implements SecteurDecoupageService {
|
|||||||
private final SecteurDecoupageRepository secteurDecoupageRepository;
|
private final SecteurDecoupageRepository secteurDecoupageRepository;
|
||||||
private final SecteurService secteurService;
|
private final SecteurService secteurService;
|
||||||
private final ParcelleRepository parcelleRepository;
|
private final ParcelleRepository parcelleRepository;
|
||||||
|
private final EnqueteRepository enqueteRepository;
|
||||||
|
private final EnqueteBatimentRepository enqueteBatimentRepository;
|
||||||
|
private final EnqueteUniteLogementRepository enqueteUniteLogementRepository;
|
||||||
private final EntityFromPayLoadService entityFromPayLoadService;
|
private final EntityFromPayLoadService entityFromPayLoadService;
|
||||||
|
|
||||||
|
|
||||||
@@ -112,4 +118,35 @@ public class SecteurDecoupageServiceImpl implements SecteurDecoupageService {
|
|||||||
|
|
||||||
return parcelleStatsProjectionUnSecteurs ;
|
return parcelleStatsProjectionUnSecteurs ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ParcelleStatsProjectionUnSecteur> getStatEnqueteDecoupageByUserId(Long userId, String statutEnquete) {
|
||||||
|
List<Secteur> secteurs= secteurService.getListSecteurUserId(userId);
|
||||||
|
List<Long> secteurIds = secteurs.stream()
|
||||||
|
.map(Secteur::getId)
|
||||||
|
.toList();
|
||||||
|
System.out.println(statutEnquete);
|
||||||
|
return enqueteRepository.findStatsEnqueteBySecteurs(secteurIds,statutEnquete);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ParcelleStatsProjectionUnSecteur> getStatEnqueteBatimentDecoupageByUserId(Long userId, String statutEnquete) {
|
||||||
|
List<Secteur> secteurs= secteurService.getListSecteurUserId(userId);
|
||||||
|
List<Long> secteurIds = secteurs.stream()
|
||||||
|
.map(Secteur::getId)
|
||||||
|
.toList();
|
||||||
|
System.out.println(statutEnquete);
|
||||||
|
return enqueteBatimentRepository.findStatsEnqueteBatimentBySecteurs(secteurIds,statutEnquete);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ParcelleStatsProjectionUnSecteur> getStatEnqueteUniteLogementDecoupageByUserId(Long userId, String statutEnquete) {
|
||||||
|
List<Secteur> secteurs= secteurService.getListSecteurUserId(userId);
|
||||||
|
List<Long> secteurIds = secteurs.stream()
|
||||||
|
.map(Secteur::getId)
|
||||||
|
.toList();
|
||||||
|
return enqueteUniteLogementRepository.findStatsEnqueteBatimentBySecteurs(secteurIds,statutEnquete);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package io.gmss.fiscad.implementations.infocad.metier;
|
package io.gmss.fiscad.implementations.infocad.metier;
|
||||||
|
|
||||||
|
import io.gmss.fiscad.entities.decoupage.Secteur;
|
||||||
import io.gmss.fiscad.entities.infocad.metier.*;
|
import io.gmss.fiscad.entities.infocad.metier.*;
|
||||||
import io.gmss.fiscad.entities.infocad.parametre.Personne;
|
import io.gmss.fiscad.entities.infocad.parametre.Personne;
|
||||||
import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueParcelle;
|
import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueParcelle;
|
||||||
@@ -13,6 +14,7 @@ import io.gmss.fiscad.enums.StatutEnquete;
|
|||||||
import io.gmss.fiscad.exceptions.ApplicationException;
|
import io.gmss.fiscad.exceptions.ApplicationException;
|
||||||
import io.gmss.fiscad.exceptions.BadRequestException;
|
import io.gmss.fiscad.exceptions.BadRequestException;
|
||||||
import io.gmss.fiscad.exceptions.NotFoundException;
|
import io.gmss.fiscad.exceptions.NotFoundException;
|
||||||
|
import io.gmss.fiscad.interfaces.decoupage.SecteurService;
|
||||||
import io.gmss.fiscad.interfaces.infocad.metier.EnqueteService;
|
import io.gmss.fiscad.interfaces.infocad.metier.EnqueteService;
|
||||||
import io.gmss.fiscad.interfaces.infocad.metier.ParcelleService;
|
import io.gmss.fiscad.interfaces.infocad.metier.ParcelleService;
|
||||||
import io.gmss.fiscad.interfaces.infocad.metier.PieceService;
|
import io.gmss.fiscad.interfaces.infocad.metier.PieceService;
|
||||||
@@ -81,6 +83,7 @@ public class EnqueteServiceImpl implements EnqueteService {
|
|||||||
private final PersonneRepository personneRepository;
|
private final PersonneRepository personneRepository;
|
||||||
private final ZoneRfuRepository zoneRfuRepository ;
|
private final ZoneRfuRepository zoneRfuRepository ;
|
||||||
private final EntityFromPayLoadService entityFromPayLoadService ;
|
private final EntityFromPayLoadService entityFromPayLoadService ;
|
||||||
|
private final SecteurService secteurService ;
|
||||||
;
|
;
|
||||||
|
|
||||||
@PersistenceContext
|
@PersistenceContext
|
||||||
@@ -100,19 +103,21 @@ public class EnqueteServiceImpl implements EnqueteService {
|
|||||||
throw new BadRequestException("Echec de l'enregistrement : Propriétaire inexistant");
|
throw new BadRequestException("Echec de l'enregistrement : Propriétaire inexistant");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(enquetePayLoadWeb.getParcelleId()!=null) {
|
||||||
Optional<Parcelle> optionalParcelle = parcelleRepository.findById(enquetePayLoadWeb.getParcelleId());
|
Optional<Parcelle> optionalParcelle = parcelleRepository.findById(enquetePayLoadWeb.getParcelleId());
|
||||||
if (!optionalParcelle.isPresent()) {
|
if (!optionalParcelle.isPresent()) {
|
||||||
throw new BadRequestException("Echec de l'enregistrement : Parcelle inexistante");
|
throw new BadRequestException("Echec de l'enregistrement : Parcelle inexistante");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Optional<ZoneRfu> optionalZoneRfu = zoneRfuRepository.findById(enquetePayLoadWeb.getZoneRfuId());
|
Optional<ZoneRfu> optionalZoneRfu = zoneRfuRepository.findById(enquetePayLoadWeb.getZoneRfuId());
|
||||||
if (!optionalZoneRfu.isPresent()) {
|
if (!optionalZoneRfu.isPresent()) {
|
||||||
throw new BadRequestException("Echec de l'enregistrement : zone inexistante");
|
throw new BadRequestException("Echec de l'enregistrement : zone inexistante");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enquetePayLoadWeb.getParcelleId() == null) {
|
// if (enquetePayLoadWeb.getParcelleId() == null) {
|
||||||
throw new ApplicationException("Echec de l'enregistrement : La parcelle non renseignée.");
|
// throw new ApplicationException("Echec de l'enregistrement : La parcelle non renseignée.");
|
||||||
}
|
// }
|
||||||
|
|
||||||
ParcellePayLoadWeb parcellePayLoadWeb= getParcellePayloadFromEnquetePl(enquetePayLoadWeb);
|
ParcellePayLoadWeb parcellePayLoadWeb= getParcellePayloadFromEnquetePl(enquetePayLoadWeb);
|
||||||
|
|
||||||
@@ -566,6 +571,16 @@ public class EnqueteServiceImpl implements EnqueteService {
|
|||||||
return nbreEnquete;
|
return nbreEnquete;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<EnquetePayLoadWeb> getEnqueteListByQuartierByStatutPageableToDto(Long userId, Long quartierId, StatutEnquete statutEnquete, Pageable pageable) {
|
||||||
|
List<Secteur> secteurs= secteurService.getListSecteurUserId(userId);
|
||||||
|
List<Long> secteurIds = secteurs.stream()
|
||||||
|
.map(Secteur::getId)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
return enqueteRepository.findAllEnqueteByQuartierByStatutToDtoPageable(quartierId,secteurIds,statutEnquete,pageable);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public int cloturerEnqueteParcelleBatimentUniteLogementByStructureIdAndExerciceId(Long structureId,Long exerciceId) {
|
public int cloturerEnqueteParcelleBatimentUniteLogementByStructureIdAndExerciceId(Long structureId,Long exerciceId) {
|
||||||
|
|||||||
@@ -2,10 +2,12 @@ package io.gmss.fiscad.implementations.infocad.metier;
|
|||||||
|
|
||||||
import io.gmss.fiscad.entities.decoupage.Quartier;
|
import io.gmss.fiscad.entities.decoupage.Quartier;
|
||||||
import io.gmss.fiscad.entities.decoupage.Secteur;
|
import io.gmss.fiscad.entities.decoupage.Secteur;
|
||||||
|
import io.gmss.fiscad.entities.infocad.metier.Enquete;
|
||||||
import io.gmss.fiscad.entities.infocad.metier.EnqueteFiltreResponse;
|
import io.gmss.fiscad.entities.infocad.metier.EnqueteFiltreResponse;
|
||||||
import io.gmss.fiscad.entities.infocad.metier.Parcelle;
|
import io.gmss.fiscad.entities.infocad.metier.Parcelle;
|
||||||
import io.gmss.fiscad.entities.infocad.metier.Rue;
|
import io.gmss.fiscad.entities.infocad.metier.Rue;
|
||||||
import io.gmss.fiscad.entities.infocad.parametre.NatureDomaine;
|
import io.gmss.fiscad.entities.infocad.parametre.NatureDomaine;
|
||||||
|
import io.gmss.fiscad.entities.infocad.parametre.TypeDomaine;
|
||||||
import io.gmss.fiscad.exceptions.BadRequestException;
|
import io.gmss.fiscad.exceptions.BadRequestException;
|
||||||
import io.gmss.fiscad.exceptions.NotFoundException;
|
import io.gmss.fiscad.exceptions.NotFoundException;
|
||||||
import io.gmss.fiscad.interfaces.decoupage.SecteurService;
|
import io.gmss.fiscad.interfaces.decoupage.SecteurService;
|
||||||
@@ -19,7 +21,9 @@ import io.gmss.fiscad.persistence.repositories.infocad.metier.ParcelleRepository
|
|||||||
import io.gmss.fiscad.persistence.repositories.infocad.metier.RueRepository;
|
import io.gmss.fiscad.persistence.repositories.infocad.metier.RueRepository;
|
||||||
import io.gmss.fiscad.persistence.repositories.infocad.parametre.NatureDomaineRepository;
|
import io.gmss.fiscad.persistence.repositories.infocad.parametre.NatureDomaineRepository;
|
||||||
import io.gmss.fiscad.persistence.repositories.infocad.parametre.SituationGeographiqueRepository;
|
import io.gmss.fiscad.persistence.repositories.infocad.parametre.SituationGeographiqueRepository;
|
||||||
|
import io.gmss.fiscad.persistence.repositories.infocad.parametre.TypeDomaineRepository;
|
||||||
import io.gmss.fiscad.persistence.specification.ParcelleSpecification;
|
import io.gmss.fiscad.persistence.specification.ParcelleSpecification;
|
||||||
|
import io.gmss.fiscad.service.EntityFromPayLoadService;
|
||||||
import io.gmss.fiscad.service.GeometryService;
|
import io.gmss.fiscad.service.GeometryService;
|
||||||
import jakarta.persistence.Query;
|
import jakarta.persistence.Query;
|
||||||
import jakarta.transaction.Transactional;
|
import jakarta.transaction.Transactional;
|
||||||
@@ -39,6 +43,8 @@ public class ParcelleServiceImpl implements ParcelleService {
|
|||||||
private final RueRepository rueRepository;
|
private final RueRepository rueRepository;
|
||||||
private final GeometryService geometryService;
|
private final GeometryService geometryService;
|
||||||
private final SecteurService secteurService;
|
private final SecteurService secteurService;
|
||||||
|
private final TypeDomaineRepository typeDomaineRepository;
|
||||||
|
private final EntityFromPayLoadService entityFromPayLoadService;
|
||||||
|
|
||||||
// @Value("${infocad.geom.srid}")
|
// @Value("${infocad.geom.srid}")
|
||||||
// private String defaultSrid32631;
|
// private String defaultSrid32631;
|
||||||
@@ -58,10 +64,14 @@ public class ParcelleServiceImpl implements ParcelleService {
|
|||||||
if (!optionalQuartier.isPresent()) {
|
if (!optionalQuartier.isPresent()) {
|
||||||
throw new BadRequestException("Impossible d'enregistrer une parcelle avec un quartier/village inexistant");
|
throw new BadRequestException("Impossible d'enregistrer une parcelle avec un quartier/village inexistant");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Optional<TypeDomaine> optionalTypeDomaine = typeDomaineRepository.findById(parcellePayLoadWeb.getTypeDomaineId());
|
||||||
|
if (!optionalTypeDomaine.isPresent()) {
|
||||||
|
throw new BadRequestException("Veuillez préciser le type de domaine");
|
||||||
|
}
|
||||||
|
|
||||||
Parcelle parcelle = new Parcelle();
|
Parcelle parcelle = new Parcelle();
|
||||||
parcelle.setNatureDomaine(optionalNatureDomaine.orElse(null));
|
parcelle = entityFromPayLoadService.getParcelleFromPayload(parcellePayLoadWeb);
|
||||||
parcelle.setQuartier(optionalQuartier.orElse(null));
|
|
||||||
parcelle = getParcelleFromPayload(parcelle, parcellePayLoadWeb);
|
|
||||||
parcelle= parcelleRepository.save(parcelle);
|
parcelle= parcelleRepository.save(parcelle);
|
||||||
return parcelleRepository.findParcelleToDtoById(parcelle.getId()).orElse(null);
|
return parcelleRepository.findParcelleToDtoById(parcelle.getId()).orElse(null);
|
||||||
}
|
}
|
||||||
@@ -72,22 +82,8 @@ public class ParcelleServiceImpl implements ParcelleService {
|
|||||||
if (!optionalParcelle.isPresent()) {
|
if (!optionalParcelle.isPresent()) {
|
||||||
throw new NotFoundException("Impossible de trouver la parcelle que vous désirer modifier");
|
throw new NotFoundException("Impossible de trouver la parcelle que vous désirer modifier");
|
||||||
}
|
}
|
||||||
Optional<NatureDomaine> optionalNatureDomaine = natureDomaineRepository.findById(parcellePayLoadWeb.getNatureDomaineId());
|
Parcelle parcelle = new Parcelle();
|
||||||
if (!optionalNatureDomaine.isPresent()) {
|
parcelle = entityFromPayLoadService.getParcelleFromPayload(parcellePayLoadWeb);
|
||||||
throw new BadRequestException("Impossible d'enregistrer une parcelle avec une nature de domaine inexistante");
|
|
||||||
}
|
|
||||||
Optional<Quartier> optionalQuartier = quartierRepository.findById(parcellePayLoadWeb.getQuartierId());
|
|
||||||
if (!optionalQuartier.isPresent()) {
|
|
||||||
throw new BadRequestException("Impossible d'enregistrer une parcelle avec un quartier/village inexistant");
|
|
||||||
}
|
|
||||||
// Optional<SituationGeographique> optionalSituationGeographique = situationGeographiqueRepository.findById(parcellePayLoadWeb.getSituationGeographiqueId());
|
|
||||||
// if (!optionalSituationGeographique.isPresent()) {
|
|
||||||
// throw new BadRequestException("Impossible d'enregistrer une parcelle avec une situation géographique inexistant");
|
|
||||||
// }
|
|
||||||
Parcelle parcelle=optionalParcelle.get();
|
|
||||||
parcelle.setNatureDomaine(optionalNatureDomaine.orElse(null));
|
|
||||||
parcelle.setQuartier(optionalQuartier.orElse(null));
|
|
||||||
parcelle = getParcelleFromPayload(optionalParcelle.get(), parcellePayLoadWeb);
|
|
||||||
parcelle= parcelleRepository.save(parcelle);
|
parcelle= parcelleRepository.save(parcelle);
|
||||||
return parcelleRepository.findParcelleToDtoById(parcelle.getId()).orElse(null);
|
return parcelleRepository.findParcelleToDtoById(parcelle.getId()).orElse(null);
|
||||||
}
|
}
|
||||||
@@ -210,28 +206,6 @@ public class ParcelleServiceImpl implements ParcelleService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private Parcelle getParcelleFromPayload(Parcelle parcelle, ParcellePayLoadWeb parcellePayLoadWeb) {
|
|
||||||
if(parcellePayLoadWeb.getRueId()!=null) {
|
|
||||||
Optional<Rue> optionalRue = rueRepository.findById(parcellePayLoadWeb.getRueId());
|
|
||||||
parcelle.setRue(optionalRue.orElse(null));
|
|
||||||
}
|
|
||||||
parcelle.setP(parcellePayLoadWeb.getP());
|
|
||||||
parcelle.setI(parcellePayLoadWeb.getI());
|
|
||||||
parcelle.setQ(parcellePayLoadWeb.getQ());
|
|
||||||
parcelle.setNup(parcellePayLoadWeb.getNup());
|
|
||||||
parcelle.setLatitude(parcellePayLoadWeb.getLatitude());
|
|
||||||
parcelle.setLongitude(parcellePayLoadWeb.getLongitude());
|
|
||||||
parcelle.setAltitude(parcellePayLoadWeb.getAltitude());
|
|
||||||
parcelle.setSituationGeographique(parcellePayLoadWeb.getSituationGeographique());
|
|
||||||
parcelle.setNupProvisoire(parcellePayLoadWeb.getNupProvisoire());
|
|
||||||
parcelle.setAutreNumeroTitreFoncier(parcellePayLoadWeb.getNumTitreFoncier());
|
|
||||||
parcelle.setObservation(parcellePayLoadWeb.getObservation());
|
|
||||||
parcelle.setSuperficie(parcellePayLoadWeb.getSuperficie());
|
|
||||||
|
|
||||||
return parcelle;
|
|
||||||
}
|
|
||||||
|
|
||||||
// private Parcelle getParcelle(Parcelle parcelle, ParcellePayLoadWeb parcellePayLoadWeb, Optional<SituationGeographique> optionalSituationGeographique, Optional<NatureDomaine> optionalNatureDomaine) {
|
// private Parcelle getParcelle(Parcelle parcelle, ParcellePayLoadWeb parcellePayLoadWeb, Optional<SituationGeographique> optionalSituationGeographique, Optional<NatureDomaine> optionalNatureDomaine) {
|
||||||
// StringBuilder coordonnees = new StringBuilder();
|
// StringBuilder coordonnees = new StringBuilder();
|
||||||
// parcelle.setP(parcellePayLoadWeb.getP());
|
// parcelle.setP(parcellePayLoadWeb.getP());
|
||||||
|
|||||||
@@ -1,13 +1,16 @@
|
|||||||
package io.gmss.fiscad.implementations.rfu.metier;
|
package io.gmss.fiscad.implementations.rfu.metier;
|
||||||
|
|
||||||
|
import io.gmss.fiscad.entities.decoupage.Secteur;
|
||||||
import io.gmss.fiscad.entities.infocad.metier.Enquete;
|
import io.gmss.fiscad.entities.infocad.metier.Enquete;
|
||||||
import io.gmss.fiscad.entities.infocad.metier.Upload;
|
import io.gmss.fiscad.entities.infocad.metier.Upload;
|
||||||
import io.gmss.fiscad.entities.infocad.parametre.Personne;
|
import io.gmss.fiscad.entities.infocad.parametre.Personne;
|
||||||
import io.gmss.fiscad.entities.rfu.metier.Batiment;
|
import io.gmss.fiscad.entities.rfu.metier.Batiment;
|
||||||
import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueBatiment;
|
import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueBatiment;
|
||||||
import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
|
import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
|
||||||
|
import io.gmss.fiscad.enums.StatutEnquete;
|
||||||
import io.gmss.fiscad.exceptions.BadRequestException;
|
import io.gmss.fiscad.exceptions.BadRequestException;
|
||||||
import io.gmss.fiscad.exceptions.NotFoundException;
|
import io.gmss.fiscad.exceptions.NotFoundException;
|
||||||
|
import io.gmss.fiscad.interfaces.decoupage.SecteurService;
|
||||||
import io.gmss.fiscad.interfaces.rfu.metier.BatimentService;
|
import io.gmss.fiscad.interfaces.rfu.metier.BatimentService;
|
||||||
import io.gmss.fiscad.interfaces.rfu.metier.CaracteristiqueBatimentService;
|
import io.gmss.fiscad.interfaces.rfu.metier.CaracteristiqueBatimentService;
|
||||||
import io.gmss.fiscad.interfaces.rfu.metier.EnqueteBatimentService;
|
import io.gmss.fiscad.interfaces.rfu.metier.EnqueteBatimentService;
|
||||||
@@ -36,6 +39,7 @@ public class EnqueteBatimentServiceImpl implements EnqueteBatimentService {
|
|||||||
private final EntityFromPayLoadService entityFromPayLoadService;
|
private final EntityFromPayLoadService entityFromPayLoadService;
|
||||||
private final BatimentRepository batimentRepository;
|
private final BatimentRepository batimentRepository;
|
||||||
private final BatimentService batimentService;
|
private final BatimentService batimentService;
|
||||||
|
private final SecteurService secteurService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -155,4 +159,14 @@ public class EnqueteBatimentServiceImpl implements EnqueteBatimentService {
|
|||||||
public List<EnqueteBatimentPayloadWeb> getEnqueteBatimentByBatimentList(Long batimentId) {
|
public List<EnqueteBatimentPayloadWeb> getEnqueteBatimentByBatimentList(Long batimentId) {
|
||||||
return enqueteBatimentRepository.findAllByBatimentToDto(batimentId);
|
return enqueteBatimentRepository.findAllByBatimentToDto(batimentId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<EnqueteBatimentPayloadWeb> getEnqueteBatimentListByQuartierByStatutPageableToDto(Long userId, Long quartierId, StatutEnquete statutEnquete, Pageable pageable) {
|
||||||
|
List<Secteur> secteurs= secteurService.getListSecteurUserId(userId);
|
||||||
|
List<Long> secteurIds = secteurs.stream()
|
||||||
|
.map(Secteur::getId)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
return enqueteBatimentRepository.findAllEnqueteBatimentByQuartierByStatutToDtoPageable(quartierId,secteurIds,statutEnquete,pageable);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
package io.gmss.fiscad.implementations.rfu.metier;
|
package io.gmss.fiscad.implementations.rfu.metier;
|
||||||
|
|
||||||
|
import io.gmss.fiscad.entities.decoupage.Secteur;
|
||||||
import io.gmss.fiscad.entities.infocad.metier.Enquete;
|
import io.gmss.fiscad.entities.infocad.metier.Enquete;
|
||||||
import io.gmss.fiscad.entities.infocad.metier.Upload;
|
import io.gmss.fiscad.entities.infocad.metier.Upload;
|
||||||
import io.gmss.fiscad.entities.infocad.parametre.Personne;
|
import io.gmss.fiscad.entities.infocad.parametre.Personne;
|
||||||
import io.gmss.fiscad.entities.rfu.metier.*;
|
import io.gmss.fiscad.entities.rfu.metier.*;
|
||||||
|
import io.gmss.fiscad.enums.StatutEnquete;
|
||||||
import io.gmss.fiscad.exceptions.BadRequestException;
|
import io.gmss.fiscad.exceptions.BadRequestException;
|
||||||
import io.gmss.fiscad.exceptions.NotFoundException;
|
import io.gmss.fiscad.exceptions.NotFoundException;
|
||||||
|
import io.gmss.fiscad.interfaces.decoupage.SecteurService;
|
||||||
import io.gmss.fiscad.interfaces.rfu.metier.CaracteristiqueUniteLogementService;
|
import io.gmss.fiscad.interfaces.rfu.metier.CaracteristiqueUniteLogementService;
|
||||||
import io.gmss.fiscad.interfaces.rfu.metier.EnqueteUniteLogementService;
|
import io.gmss.fiscad.interfaces.rfu.metier.EnqueteUniteLogementService;
|
||||||
import io.gmss.fiscad.interfaces.rfu.metier.UniteLogementService;
|
import io.gmss.fiscad.interfaces.rfu.metier.UniteLogementService;
|
||||||
@@ -34,6 +37,7 @@ public class EnqueteUniteLogementServiceImpl implements EnqueteUniteLogementServ
|
|||||||
private final EntityFromPayLoadService entityFromPayLoadService ;
|
private final EntityFromPayLoadService entityFromPayLoadService ;
|
||||||
private final UniteLogementRepository uniteLogementRepository ;
|
private final UniteLogementRepository uniteLogementRepository ;
|
||||||
private final UniteLogementService uniteLogementService ;
|
private final UniteLogementService uniteLogementService ;
|
||||||
|
private final SecteurService secteurService ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -157,4 +161,14 @@ public class EnqueteUniteLogementServiceImpl implements EnqueteUniteLogementServ
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<EnqueteUniteLogementPayloadWeb> getEnqueteUniteLogementListByQuartierByStatutPageableToDto(Long userId, Long quartierId, StatutEnquete statutEnquete, Pageable pageable) {
|
||||||
|
List<Secteur> secteurs= secteurService.getListSecteurUserId(userId);
|
||||||
|
List<Long> secteurIds = secteurs.stream()
|
||||||
|
.map(Secteur::getId)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
return enqueteUniteLogementRepository.findAllEnqueteUniteLogementByQuartierByStatutToDtoPageable(quartierId,secteurIds,statutEnquete,pageable);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,23 @@
|
|||||||
package io.gmss.fiscad.implementations.statistiques;
|
package io.gmss.fiscad.implementations.statistiques;
|
||||||
|
|
||||||
|
import io.gmss.fiscad.entities.decoupage.Secteur;
|
||||||
import io.gmss.fiscad.entities.user.User;
|
import io.gmss.fiscad.entities.user.User;
|
||||||
|
import io.gmss.fiscad.enums.StatutEnquete;
|
||||||
|
import io.gmss.fiscad.interfaces.decoupage.SecteurService;
|
||||||
import io.gmss.fiscad.interfaces.statistique.StatistiquesService;
|
import io.gmss.fiscad.interfaces.statistique.StatistiquesService;
|
||||||
import io.gmss.fiscad.interfaces.user.UserService;
|
import io.gmss.fiscad.interfaces.user.UserService;
|
||||||
|
import io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb;
|
||||||
import io.gmss.fiscad.paylaods.response.statistique.*;
|
import io.gmss.fiscad.paylaods.response.statistique.*;
|
||||||
import io.gmss.fiscad.persistence.repositories.infocad.metier.EnqueteRepository;
|
import io.gmss.fiscad.persistence.repositories.infocad.metier.EnqueteRepository;
|
||||||
import io.gmss.fiscad.persistence.repositories.infocad.metier.ParcelleRepository;
|
import io.gmss.fiscad.persistence.repositories.infocad.metier.ParcelleRepository;
|
||||||
import io.gmss.fiscad.persistence.repositories.infocad.parametre.PersonneRepository;
|
import io.gmss.fiscad.persistence.repositories.infocad.parametre.PersonneRepository;
|
||||||
import io.gmss.fiscad.persistence.repositories.rfu.metier.BatimentRepository;
|
import io.gmss.fiscad.persistence.repositories.rfu.metier.BatimentRepository;
|
||||||
|
import io.gmss.fiscad.persistence.repositories.rfu.metier.EnqueteBatimentRepository;
|
||||||
|
import io.gmss.fiscad.persistence.repositories.rfu.metier.EnqueteUniteLogementRepository;
|
||||||
import io.gmss.fiscad.persistence.repositories.rfu.metier.UniteLogementRepository;
|
import io.gmss.fiscad.persistence.repositories.rfu.metier.UniteLogementRepository;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.data.domain.Page;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.security.core.Authentication;
|
import org.springframework.security.core.Authentication;
|
||||||
import org.springframework.security.core.context.SecurityContextHolder;
|
import org.springframework.security.core.context.SecurityContextHolder;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -25,14 +34,20 @@ public class StatistiquesServiceImpl implements StatistiquesService {
|
|||||||
private final BatimentRepository batimentRepository;
|
private final BatimentRepository batimentRepository;
|
||||||
private final UniteLogementRepository uniteLogementRepository;
|
private final UniteLogementRepository uniteLogementRepository;
|
||||||
private final PersonneRepository personneRepository;
|
private final PersonneRepository personneRepository;
|
||||||
|
private final SecteurService secteurService;
|
||||||
|
private final EnqueteBatimentRepository enqueteBatimentRepository;
|
||||||
|
private final EnqueteUniteLogementRepository enqueteUniteLogementRepository;
|
||||||
|
|
||||||
public StatistiquesServiceImpl(UserService userService, EnqueteRepository enqueteRepository, ParcelleRepository parcelleRepository, BatimentRepository batimentRepository, UniteLogementRepository uniteLogementRepository, PersonneRepository personneRepository) {
|
public StatistiquesServiceImpl(UserService userService, EnqueteRepository enqueteRepository, ParcelleRepository parcelleRepository, BatimentRepository batimentRepository, UniteLogementRepository uniteLogementRepository, PersonneRepository personneRepository, SecteurService secteurService, EnqueteBatimentRepository enqueteBatimentRepository, EnqueteUniteLogementRepository enqueteUniteLogementRepository) {
|
||||||
this.userService = userService;
|
this.userService = userService;
|
||||||
this.enqueteRepository = enqueteRepository;
|
this.enqueteRepository = enqueteRepository;
|
||||||
this.parcelleRepository = parcelleRepository;
|
this.parcelleRepository = parcelleRepository;
|
||||||
this.batimentRepository = batimentRepository;
|
this.batimentRepository = batimentRepository;
|
||||||
this.uniteLogementRepository = uniteLogementRepository;
|
this.uniteLogementRepository = uniteLogementRepository;
|
||||||
this.personneRepository = personneRepository;
|
this.personneRepository = personneRepository;
|
||||||
|
this.secteurService = secteurService;
|
||||||
|
this.enqueteBatimentRepository = enqueteBatimentRepository;
|
||||||
|
this.enqueteUniteLogementRepository = enqueteUniteLogementRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -98,4 +113,20 @@ public class StatistiquesServiceImpl implements StatistiquesService {
|
|||||||
public List<StatistiqueTypeNombreResponse> getStatNombrePersonneParCategorie() {
|
public List<StatistiqueTypeNombreResponse> getStatNombrePersonneParCategorie() {
|
||||||
return personneRepository.getNombrePersonnesResponse();
|
return personneRepository.getNombrePersonnesResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NombreEnquetesParObjet getStatNombreEnqueteParObjetUserConnect(Long userId, String statutEnquete) {
|
||||||
|
NombreEnquetesParObjet nombreEnquetesParObjet= new NombreEnquetesParObjet();
|
||||||
|
List<Secteur> secteurs= secteurService.getListSecteurUserId(userId);
|
||||||
|
List<Long> secteurIds = secteurs.stream()
|
||||||
|
.map(Secteur::getId)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
nombreEnquetesParObjet.setNombreEnqueteUniteLogement(enqueteUniteLogementRepository.getNombreEnqueteUniteLogementByUserConnecte(secteurIds,statutEnquete));
|
||||||
|
nombreEnquetesParObjet.setNombreEnqueteParcelle(enqueteRepository.getNombreEnqueteByUserConnecte(secteurIds,statutEnquete));
|
||||||
|
nombreEnquetesParObjet.setNombreEnqueteBatiment(enqueteBatimentRepository.getNombreEnqueteBatimentByUserConnecte(secteurIds,statutEnquete));
|
||||||
|
|
||||||
|
return nombreEnquetesParObjet;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package io.gmss.fiscad.interfaces.decoupage;
|
package io.gmss.fiscad.interfaces.decoupage;
|
||||||
|
|
||||||
import io.gmss.fiscad.entities.decoupage.SecteurDecoupage;
|
import io.gmss.fiscad.entities.decoupage.SecteurDecoupage;
|
||||||
|
import io.gmss.fiscad.enums.StatutEnquete;
|
||||||
import io.gmss.fiscad.exceptions.BadRequestException;
|
import io.gmss.fiscad.exceptions.BadRequestException;
|
||||||
import io.gmss.fiscad.exceptions.NotFoundException;
|
import io.gmss.fiscad.exceptions.NotFoundException;
|
||||||
import io.gmss.fiscad.paylaods.request.crudweb.SecteurDecoupagePaylaodWeb;
|
import io.gmss.fiscad.paylaods.request.crudweb.SecteurDecoupagePaylaodWeb;
|
||||||
import io.gmss.fiscad.paylaods.request.crudweb.SecteurPaylaodWeb;
|
import io.gmss.fiscad.paylaods.response.statistique.ParcelleStatsProjectionUnSecteur;
|
||||||
import io.gmss.fiscad.paylaods.response.restoration.ParcelleStatsProjectionUnSecteur;
|
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
|
|
||||||
@@ -33,4 +33,7 @@ public interface SecteurDecoupageService {
|
|||||||
|
|
||||||
List<ParcelleStatsProjectionUnSecteur> getStatParcelleDecoupageUnSecteur(Long secteurId) ;
|
List<ParcelleStatsProjectionUnSecteur> getStatParcelleDecoupageUnSecteur(Long secteurId) ;
|
||||||
List<ParcelleStatsProjectionUnSecteur> getStatParcelleDecoupageByUserId(Long userId) ;
|
List<ParcelleStatsProjectionUnSecteur> getStatParcelleDecoupageByUserId(Long userId) ;
|
||||||
|
List<ParcelleStatsProjectionUnSecteur> getStatEnqueteDecoupageByUserId(Long userId, String statutEnquete) ;
|
||||||
|
List<ParcelleStatsProjectionUnSecteur> getStatEnqueteBatimentDecoupageByUserId(Long userId, String statutEnquete) ;
|
||||||
|
List<ParcelleStatsProjectionUnSecteur> getStatEnqueteUniteLogementDecoupageByUserId(Long userId, String statutEnquete) ;
|
||||||
}
|
}
|
||||||
@@ -4,8 +4,6 @@ import io.gmss.fiscad.entities.decoupage.Secteur;
|
|||||||
import io.gmss.fiscad.exceptions.BadRequestException;
|
import io.gmss.fiscad.exceptions.BadRequestException;
|
||||||
import io.gmss.fiscad.exceptions.NotFoundException;
|
import io.gmss.fiscad.exceptions.NotFoundException;
|
||||||
import io.gmss.fiscad.paylaods.request.crudweb.SecteurPaylaodWeb;
|
import io.gmss.fiscad.paylaods.request.crudweb.SecteurPaylaodWeb;
|
||||||
import io.gmss.fiscad.paylaods.request.synchronisation.SecteurPayload;
|
|
||||||
import io.gmss.fiscad.paylaods.response.restoration.ParcelleStatsProjectionUnSecteur;
|
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
|
|
||||||
|
|||||||
@@ -2,11 +2,13 @@ package io.gmss.fiscad.interfaces.infocad.metier;
|
|||||||
|
|
||||||
import io.gmss.fiscad.entities.infocad.metier.Enquete;
|
import io.gmss.fiscad.entities.infocad.metier.Enquete;
|
||||||
import io.gmss.fiscad.entities.infocad.metier.EnqueteFiltreResponse;
|
import io.gmss.fiscad.entities.infocad.metier.EnqueteFiltreResponse;
|
||||||
|
import io.gmss.fiscad.enums.StatutEnquete;
|
||||||
import io.gmss.fiscad.exceptions.BadRequestException;
|
import io.gmss.fiscad.exceptions.BadRequestException;
|
||||||
import io.gmss.fiscad.exceptions.NotFoundException;
|
import io.gmss.fiscad.exceptions.NotFoundException;
|
||||||
import io.gmss.fiscad.paylaods.request.EnqueteTraitementPayLoad;
|
import io.gmss.fiscad.paylaods.request.EnqueteTraitementPayLoad;
|
||||||
import io.gmss.fiscad.paylaods.request.FiltreEnquetePayLoad;
|
import io.gmss.fiscad.paylaods.request.FiltreEnquetePayLoad;
|
||||||
import io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb;
|
import io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb;
|
||||||
|
import io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb;
|
||||||
import io.gmss.fiscad.paylaods.response.synchronisation.EnqueteNonSyncResponse;
|
import io.gmss.fiscad.paylaods.response.synchronisation.EnqueteNonSyncResponse;
|
||||||
import io.gmss.fiscad.paylaods.response.EnqueteResponse;
|
import io.gmss.fiscad.paylaods.response.EnqueteResponse;
|
||||||
import io.gmss.fiscad.paylaods.response.FicheResponse.FicheEnqueteResponse;
|
import io.gmss.fiscad.paylaods.response.FicheResponse.FicheEnqueteResponse;
|
||||||
@@ -60,4 +62,8 @@ public interface EnqueteService {
|
|||||||
|
|
||||||
int cloturerEnqueteParcelleBatimentUniteLogementByStructureIdAndExerciceId(Long strucutreId,Long exerciceId);
|
int cloturerEnqueteParcelleBatimentUniteLogementByStructureIdAndExerciceId(Long strucutreId,Long exerciceId);
|
||||||
int cloturerEnqueteParcelleBatimentUniteLogementByUserIdAndExerciceId(Long userId,Long exerciceId);
|
int cloturerEnqueteParcelleBatimentUniteLogementByUserIdAndExerciceId(Long userId,Long exerciceId);
|
||||||
|
|
||||||
|
|
||||||
|
Page<EnquetePayLoadWeb> getEnqueteListByQuartierByStatutPageableToDto(Long userId, Long quartierId, StatutEnquete statutEnquete, Pageable pageable);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,10 +4,7 @@ import io.gmss.fiscad.entities.infocad.metier.Parcelle;
|
|||||||
import io.gmss.fiscad.exceptions.BadRequestException;
|
import io.gmss.fiscad.exceptions.BadRequestException;
|
||||||
import io.gmss.fiscad.exceptions.NotFoundException;
|
import io.gmss.fiscad.exceptions.NotFoundException;
|
||||||
import io.gmss.fiscad.paylaods.FiltreParcelle;
|
import io.gmss.fiscad.paylaods.FiltreParcelle;
|
||||||
import io.gmss.fiscad.paylaods.request.FiltreParcellePayLoad;
|
|
||||||
import io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb;
|
import io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb;
|
||||||
import io.gmss.fiscad.paylaods.response.dataTableResponse.ParcelleDataTableResponse;
|
|
||||||
import io.gmss.fiscad.paylaods.response.restoration.ParcelleStatsProjectionUnSecteur;
|
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
package io.gmss.fiscad.interfaces.rfu.metier;
|
package io.gmss.fiscad.interfaces.rfu.metier;
|
||||||
|
|
||||||
import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
|
import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
|
||||||
|
import io.gmss.fiscad.enums.StatutEnquete;
|
||||||
import io.gmss.fiscad.exceptions.BadRequestException;
|
import io.gmss.fiscad.exceptions.BadRequestException;
|
||||||
import io.gmss.fiscad.exceptions.NotFoundException;
|
import io.gmss.fiscad.exceptions.NotFoundException;
|
||||||
import io.gmss.fiscad.paylaods.request.crudweb.EnqueteBatimentPayloadWeb;
|
import io.gmss.fiscad.paylaods.request.crudweb.EnqueteBatimentPayloadWeb;
|
||||||
|
import io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
|
|
||||||
@@ -26,4 +28,7 @@ public interface EnqueteBatimentService {
|
|||||||
Page<EnqueteBatimentPayloadWeb> getEnqueteBatimentByBatimentListPageable(Long batimentId, Pageable pageable);
|
Page<EnqueteBatimentPayloadWeb> getEnqueteBatimentByBatimentListPageable(Long batimentId, Pageable pageable);
|
||||||
|
|
||||||
List<EnqueteBatimentPayloadWeb> getEnqueteBatimentByBatimentList(Long batimentId);
|
List<EnqueteBatimentPayloadWeb> getEnqueteBatimentByBatimentList(Long batimentId);
|
||||||
|
|
||||||
|
Page<EnqueteBatimentPayloadWeb> getEnqueteBatimentListByQuartierByStatutPageableToDto(Long userId, Long quartierId, StatutEnquete statutEnquete, Pageable pageable);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
package io.gmss.fiscad.interfaces.rfu.metier;
|
package io.gmss.fiscad.interfaces.rfu.metier;
|
||||||
|
|
||||||
import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement;
|
import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement;
|
||||||
|
import io.gmss.fiscad.enums.StatutEnquete;
|
||||||
import io.gmss.fiscad.exceptions.BadRequestException;
|
import io.gmss.fiscad.exceptions.BadRequestException;
|
||||||
import io.gmss.fiscad.exceptions.NotFoundException;
|
import io.gmss.fiscad.exceptions.NotFoundException;
|
||||||
|
import io.gmss.fiscad.paylaods.request.crudweb.EnqueteBatimentPayloadWeb;
|
||||||
import io.gmss.fiscad.paylaods.request.crudweb.EnqueteUniteLogementPayloadWeb;
|
import io.gmss.fiscad.paylaods.request.crudweb.EnqueteUniteLogementPayloadWeb;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
@@ -27,4 +29,7 @@ public interface EnqueteUniteLogementService {
|
|||||||
List<EnqueteUniteLogementPayloadWeb> getEnqueteUniteLogementUniteLogementList(Long uniteLogementId);
|
List<EnqueteUniteLogementPayloadWeb> getEnqueteUniteLogementUniteLogementList(Long uniteLogementId);
|
||||||
|
|
||||||
Optional<EnqueteUniteLogementPayloadWeb> getEnqueteUniteLogementById(Long enqueteUniteLogement);
|
Optional<EnqueteUniteLogementPayloadWeb> getEnqueteUniteLogementById(Long enqueteUniteLogement);
|
||||||
|
|
||||||
|
Page<EnqueteUniteLogementPayloadWeb> getEnqueteUniteLogementListByQuartierByStatutPageableToDto(Long userId, Long quartierId, StatutEnquete statutEnquete, Pageable pageable);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,4 +11,5 @@ public interface StatistiquesService {
|
|||||||
List<StatEnqueteParBlocResponse> getStatBloc();
|
List<StatEnqueteParBlocResponse> getStatBloc();
|
||||||
StatNombreTotalObjet getStatNombreTotalObjet(String codeDecoupageAdmin);
|
StatNombreTotalObjet getStatNombreTotalObjet(String codeDecoupageAdmin);
|
||||||
List<StatistiqueTypeNombreResponse> getStatNombrePersonneParCategorie();
|
List<StatistiqueTypeNombreResponse> getStatNombrePersonneParCategorie();
|
||||||
|
NombreEnquetesParObjet getStatNombreEnqueteParObjetUserConnect(Long userId, String statutEnquete);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,10 +27,11 @@ public class PiecePayLoadWeb {
|
|||||||
private Long enqueteId;
|
private Long enqueteId;
|
||||||
private Long enqueteBatimentId;
|
private Long enqueteBatimentId;
|
||||||
private Long enqueteUniteLogementId;
|
private Long enqueteUniteLogementId;
|
||||||
//private List<UploadPayLoadWeb> uploadPayLoadWebs;
|
private Long nombreFichier;
|
||||||
|
|
||||||
public PiecePayLoadWeb(Long id, LocalDate dateExpiration, LocalDate dateEtablissement, String numeroPiece, String url, Long typePieceId, String typePieceLibelle, Long personneId, String personneNom, String personnePrenom, String personneRaisonSociale, Long sourceDroitId, String sourceDroitLibelle, Long modeAcquisitionId, String modeAcquisitionLibelle, String observation, Long enqueteId,
|
public PiecePayLoadWeb(Long id, LocalDate dateExpiration, LocalDate dateEtablissement, String numeroPiece, String url, Long typePieceId, String typePieceLibelle, Long personneId, String personneNom, String personnePrenom, String personneRaisonSociale, Long sourceDroitId, String sourceDroitLibelle, Long modeAcquisitionId, String modeAcquisitionLibelle, String observation, Long enqueteId,
|
||||||
Long enqueteBatimentId,Long enqueteUniteLogementId) {
|
Long enqueteBatimentId,Long enqueteUniteLogementId,
|
||||||
|
Long nombreFichier) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.dateExpiration = dateExpiration;
|
this.dateExpiration = dateExpiration;
|
||||||
this.dateEtablissement = dateEtablissement;
|
this.dateEtablissement = dateEtablissement;
|
||||||
@@ -50,6 +51,7 @@ public class PiecePayLoadWeb {
|
|||||||
this.enqueteId = enqueteId;
|
this.enqueteId = enqueteId;
|
||||||
this.enqueteBatimentId = enqueteBatimentId;
|
this.enqueteBatimentId = enqueteBatimentId;
|
||||||
this.enqueteUniteLogementId = enqueteUniteLogementId;
|
this.enqueteUniteLogementId = enqueteUniteLogementId;
|
||||||
|
this.nombreFichier = nombreFichier;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package io.gmss.fiscad.paylaods.response.statistique;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class NombreEnquetesParObjet {
|
||||||
|
Integer nombreEnqueteParcelle;
|
||||||
|
Integer nombreEnqueteBatiment;
|
||||||
|
Integer nombreEnqueteUniteLogement;
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.gmss.fiscad.paylaods.response.restoration;
|
package io.gmss.fiscad.paylaods.response.statistique;
|
||||||
|
|
||||||
public interface ParcelleStatsProjectionUnSecteur {
|
public interface ParcelleStatsProjectionUnSecteur {
|
||||||
// ================== Département ==================
|
// ================== Département ==================
|
||||||
@@ -1,10 +1,13 @@
|
|||||||
package io.gmss.fiscad.persistence.repositories.infocad.metier;
|
package io.gmss.fiscad.persistence.repositories.infocad.metier;
|
||||||
|
|
||||||
import io.gmss.fiscad.entities.infocad.metier.Enquete;
|
import io.gmss.fiscad.entities.infocad.metier.Enquete;
|
||||||
|
import io.gmss.fiscad.enums.StatutEnquete;
|
||||||
import io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb;
|
import io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb;
|
||||||
|
import io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb;
|
||||||
import io.gmss.fiscad.paylaods.response.*;
|
import io.gmss.fiscad.paylaods.response.*;
|
||||||
import io.gmss.fiscad.paylaods.response.report.EnqueteParBlocResponse;
|
import io.gmss.fiscad.paylaods.response.report.EnqueteParBlocResponse;
|
||||||
import io.gmss.fiscad.paylaods.response.restoration.EnquetePayLoad;
|
import io.gmss.fiscad.paylaods.response.restoration.EnquetePayLoad;
|
||||||
|
import io.gmss.fiscad.paylaods.response.statistique.ParcelleStatsProjectionUnSecteur;
|
||||||
import io.gmss.fiscad.paylaods.response.statistique.StatEnqueteAdminDecoupageResponse;
|
import io.gmss.fiscad.paylaods.response.statistique.StatEnqueteAdminDecoupageResponse;
|
||||||
import io.gmss.fiscad.paylaods.response.statistique.StatEnqueteAdminStructureResponse;
|
import io.gmss.fiscad.paylaods.response.statistique.StatEnqueteAdminStructureResponse;
|
||||||
import io.gmss.fiscad.paylaods.response.statistique.StatEnqueteParBlocResponse;
|
import io.gmss.fiscad.paylaods.response.statistique.StatEnqueteParBlocResponse;
|
||||||
@@ -253,6 +256,53 @@ public interface EnqueteRepository extends JpaRepository<Enquete, Long> {
|
|||||||
List<Enquete> findAllByParcelle_Id(Long parcelleId);
|
List<Enquete> findAllByParcelle_Id(Long parcelleId);
|
||||||
|
|
||||||
|
|
||||||
|
@Query(
|
||||||
|
value = """
|
||||||
|
SELECT DISTINCT
|
||||||
|
d.id AS departement_id,
|
||||||
|
d.code AS departement_code,
|
||||||
|
d.nom AS departement_nom,
|
||||||
|
COUNT(e.id) OVER (PARTITION BY d.id) AS nb_enquetes_departement,
|
||||||
|
|
||||||
|
c.id AS commune_id,
|
||||||
|
c.code AS commune_code,
|
||||||
|
c.nom AS commune_nom,
|
||||||
|
COUNT(e.id) OVER (PARTITION BY c.id) AS nb_enquetes_commune,
|
||||||
|
|
||||||
|
a.id AS arrondissement_id,
|
||||||
|
a.code AS arrondissement_code,
|
||||||
|
a.nom AS arrondissement_nom,
|
||||||
|
COUNT(e.id) OVER (PARTITION BY a.id) AS nb_enquetes_arrondissement,
|
||||||
|
|
||||||
|
q.id AS quartier_id,
|
||||||
|
q.code AS quartier_code,
|
||||||
|
q.nom AS quartier_nom,
|
||||||
|
COUNT(e.id) OVER (PARTITION BY q.id) AS nb_enquetes_quartier
|
||||||
|
|
||||||
|
FROM enquete e
|
||||||
|
JOIN parcelle p ON p.id = e.parcelle_id
|
||||||
|
JOIN quartier q ON q.id = p.quartier_id
|
||||||
|
JOIN arrondissement a ON a.id = q.arrondissement_id
|
||||||
|
JOIN commune c ON c.id = a.commune_id
|
||||||
|
JOIN departement d ON d.id = c.departement_id
|
||||||
|
|
||||||
|
WHERE EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM secteur_decoupage sd
|
||||||
|
WHERE sd.quartier_id = q.id
|
||||||
|
AND sd.secteur_id IN (:secteurIds)
|
||||||
|
)
|
||||||
|
AND e.statut_enquete = :statutEnqueteParam
|
||||||
|
|
||||||
|
ORDER BY d.nom, c.nom, a.nom, q.nom;
|
||||||
|
""",
|
||||||
|
nativeQuery = true
|
||||||
|
)
|
||||||
|
List<ParcelleStatsProjectionUnSecteur> findStatsEnqueteBySecteurs(
|
||||||
|
@Param("secteurIds") List<Long> secteurIds,
|
||||||
|
@Param("statutEnqueteParam") String statutEnqueteParam
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
@Query("""
|
@Query("""
|
||||||
SELECT new io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb(
|
SELECT new io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb(
|
||||||
@@ -836,4 +886,124 @@ public interface EnqueteRepository extends JpaRepository<Enquete, Long> {
|
|||||||
@Param("parcelleId") Long parcelleId,
|
@Param("parcelleId") Long parcelleId,
|
||||||
Pageable pageable
|
Pageable pageable
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Query(
|
||||||
|
value = """
|
||||||
|
SELECT distinct new io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb(
|
||||||
|
e.id,
|
||||||
|
e.dateEnquete,
|
||||||
|
e.dateFinalisation,
|
||||||
|
e.litige,
|
||||||
|
e.statutEnquete,
|
||||||
|
e.descriptionMotifRejet,
|
||||||
|
e.observationParticuliere,
|
||||||
|
pa.numeroTitreFoncier,
|
||||||
|
pa.dateTitreFoncier,
|
||||||
|
e.numEntreeParcelle,
|
||||||
|
e.numRue,
|
||||||
|
e.nomRue,
|
||||||
|
e.precision,
|
||||||
|
e.nbreCoProprietaire,
|
||||||
|
e.nbreIndivisiaire,
|
||||||
|
e.autreAdresse,
|
||||||
|
e.superficie,
|
||||||
|
e.nbreBatiment,
|
||||||
|
e.nbrePiscine,
|
||||||
|
e.dateDebutExemption,
|
||||||
|
e.dateFinExemption,
|
||||||
|
pa.autreNumeroTitreFoncier,
|
||||||
|
e.montantMensuelleLocation,
|
||||||
|
e.montantAnnuelleLocation,
|
||||||
|
e.valeurParcelleEstime,
|
||||||
|
e.valeurParcelleReel,
|
||||||
|
zr.id,
|
||||||
|
zr.nom,
|
||||||
|
p.id,
|
||||||
|
p.nom,
|
||||||
|
p.prenom,
|
||||||
|
p.raisonSociale,
|
||||||
|
u.id,
|
||||||
|
u.nom,
|
||||||
|
u.prenom,
|
||||||
|
pa.id,
|
||||||
|
pa.nup,
|
||||||
|
pa.q,
|
||||||
|
pa.i,
|
||||||
|
pa.p,
|
||||||
|
ex.id,
|
||||||
|
ex.annee,
|
||||||
|
ma.id,
|
||||||
|
ma.libelle,
|
||||||
|
e.representantNom,
|
||||||
|
e.representantPrenom,
|
||||||
|
e.representantTel,
|
||||||
|
e.representantNpi,
|
||||||
|
pa.numeroProvisoire,
|
||||||
|
pa.longitude,
|
||||||
|
pa.latitude,
|
||||||
|
pa.altitude,
|
||||||
|
pa.situationGeographique,
|
||||||
|
q.id,
|
||||||
|
q.code,
|
||||||
|
q.nom,
|
||||||
|
nd.id,
|
||||||
|
nd.libelle,
|
||||||
|
td.id,
|
||||||
|
td.libelle,
|
||||||
|
r.id
|
||||||
|
)
|
||||||
|
FROM Enquete e
|
||||||
|
LEFT JOIN e.zoneRfu zr
|
||||||
|
LEFT JOIN e.personne p
|
||||||
|
LEFT JOIN e.user u
|
||||||
|
LEFT JOIN e.parcelle pa
|
||||||
|
LEFT JOIN e.exercice ex
|
||||||
|
LEFT JOIN e.modeAcquisition ma
|
||||||
|
LEFT JOIN pa.quartier q
|
||||||
|
LEFT JOIN pa.natureDomaine nd
|
||||||
|
LEFT JOIN pa.typeDomaine td
|
||||||
|
LEFT JOIN pa.rue r
|
||||||
|
INNER JOIN SecteurDecoupage sd on sd.quartier=q
|
||||||
|
WHERE sd.secteur.id IN (:secteurIds)
|
||||||
|
and q.id = :quartierId
|
||||||
|
and e.statutEnquete = :statutEnquete
|
||||||
|
""",
|
||||||
|
countQuery = """
|
||||||
|
SELECT COUNT(DISTINCT e.id)
|
||||||
|
FROM Enquete e
|
||||||
|
JOIN e.parcelle pa
|
||||||
|
INNER JOIN pa.quartier q
|
||||||
|
INNER JOIN SecteurDecoupage sd on sd.quartier= q
|
||||||
|
WHERE sd.secteur.id IN (:secteurIds)
|
||||||
|
and q.id = :quartierId
|
||||||
|
and e.statutEnquete = :statutEnquete
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
Page<EnquetePayLoadWeb> findAllEnqueteByQuartierByStatutToDtoPageable(
|
||||||
|
@Param("quartierId") Long quartierId,
|
||||||
|
@Param("secteurIds") List<Long> secteurIds,
|
||||||
|
@Param("statutEnquete") StatutEnquete statutEnquete,
|
||||||
|
Pageable pageable
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
@Query(
|
||||||
|
value = """
|
||||||
|
SELECT count(distinct e.*)
|
||||||
|
FROM enquete e
|
||||||
|
JOIN parcelle parc on parc.id=e.parcelle_id
|
||||||
|
JOIN quartier q on q.id=parc.quartier_id
|
||||||
|
JOIN secteur_decoupage sd on sd.quartier_id=q.id
|
||||||
|
WHERE sd.secteur_id IN (:secteurIds)
|
||||||
|
and e.statut_enquete = :statutEnquete
|
||||||
|
""",
|
||||||
|
nativeQuery = true
|
||||||
|
)
|
||||||
|
Integer getNombreEnqueteByUserConnecte(
|
||||||
|
@Param("secteurIds") List<Long> secteurIds,
|
||||||
|
@Param("statutEnquete") String statutEnquete
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb;
|
|||||||
import io.gmss.fiscad.paylaods.response.dataTableResponse.ParcelleDataTableResponse;
|
import io.gmss.fiscad.paylaods.response.dataTableResponse.ParcelleDataTableResponse;
|
||||||
import io.gmss.fiscad.paylaods.response.statistique.StatistiqueTypeNombreResponse;
|
import io.gmss.fiscad.paylaods.response.statistique.StatistiqueTypeNombreResponse;
|
||||||
import io.gmss.fiscad.paylaods.response.restoration.ParcellePayLoadRestor;
|
import io.gmss.fiscad.paylaods.response.restoration.ParcellePayLoadRestor;
|
||||||
import io.gmss.fiscad.paylaods.response.restoration.ParcelleStatsProjectionUnSecteur;
|
import io.gmss.fiscad.paylaods.response.statistique.ParcelleStatsProjectionUnSecteur;
|
||||||
import io.gmss.fiscad.persistence.customrepository.ParcelleRepositoryCustom;
|
import io.gmss.fiscad.persistence.customrepository.ParcelleRepositoryCustom;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
@@ -94,32 +94,39 @@ public interface ParcelleRepository extends JpaRepository<Parcelle, Long>, JpaSp
|
|||||||
|
|
||||||
@Query(
|
@Query(
|
||||||
value = """
|
value = """
|
||||||
SELECT DISTINCT
|
SELECT distinct
|
||||||
d.id AS departement_id,
|
d.id AS departement_id,
|
||||||
d.code AS departement_code,
|
d.code AS departement_code,
|
||||||
d.nom AS departement_nom,
|
d.nom AS departement_nom,
|
||||||
COUNT(p.id) OVER (PARTITION BY d.id) AS nb_parcelles_departement,
|
COUNT(p.id) OVER (PARTITION BY d.id) AS nb_parcelles_departement,
|
||||||
|
|
||||||
c.id AS commune_id,
|
c.id AS commune_id,
|
||||||
c.code AS commune_code,
|
c.code AS commune_code,
|
||||||
c.nom AS commune_nom,
|
c.nom AS commune_nom,
|
||||||
COUNT(p.id) OVER (PARTITION BY c.id) AS nb_parcelles_commune,
|
COUNT(p.id) OVER (PARTITION BY c.id) AS nb_parcelles_commune,
|
||||||
|
|
||||||
a.id AS arrondissement_id,
|
a.id AS arrondissement_id,
|
||||||
a.code AS arrondissement_code,
|
a.code AS arrondissement_code,
|
||||||
a.nom AS arrondissement_nom,
|
a.nom AS arrondissement_nom,
|
||||||
COUNT(p.id) OVER (PARTITION BY a.id) AS nb_parcelles_arrondissement,
|
COUNT(p.id) OVER (PARTITION BY a.id) AS nb_parcelles_arrondissement,
|
||||||
|
|
||||||
q.id AS quartier_id,
|
q.id AS quartier_id,
|
||||||
q.code AS quartier_code,
|
q.code AS quartier_code,
|
||||||
q.nom AS quartier_nom,
|
q.nom AS quartier_nom,
|
||||||
COUNT(p.id) OVER (PARTITION BY q.id) AS nb_parcelles_quartier
|
COUNT(p.id) OVER (PARTITION BY q.id) AS nb_parcelles_quartier
|
||||||
FROM secteur_decoupage sd
|
|
||||||
JOIN quartier q ON q.id = sd.quartier_id
|
FROM quartier q
|
||||||
JOIN arrondissement a ON a.id = q.arrondissement_id
|
JOIN arrondissement a ON a.id = q.arrondissement_id
|
||||||
JOIN commune c ON c.id = a.commune_id
|
JOIN commune c ON c.id = a.commune_id
|
||||||
JOIN departement d ON d.id = c.departement_id
|
JOIN departement d ON d.id = c.departement_id
|
||||||
LEFT JOIN parcelle p ON p.quartier_id = q.id
|
LEFT JOIN parcelle p ON p.quartier_id = q.id
|
||||||
WHERE sd.secteur_id IN (:secteurIds)\s
|
WHERE EXISTS (
|
||||||
ORDER BY
|
SELECT 1
|
||||||
d.nom, c.nom, a.nom, q.nom;
|
FROM secteur_decoupage sd
|
||||||
|
WHERE sd.quartier_id = q.id
|
||||||
|
AND sd.secteur_id IN (:secteurIds)
|
||||||
|
)
|
||||||
|
ORDER BY d.nom, c.nom, a.nom, q.nom;
|
||||||
""",
|
""",
|
||||||
nativeQuery = true
|
nativeQuery = true
|
||||||
)
|
)
|
||||||
@@ -348,7 +355,6 @@ public interface ParcelleRepository extends JpaRepository<Parcelle, Long>, JpaSp
|
|||||||
WHERE e2.parcelle = p
|
WHERE e2.parcelle = p
|
||||||
)
|
)
|
||||||
LEFT JOIN e.personne pers
|
LEFT JOIN e.personne pers
|
||||||
INNER JOIN SecteurDecoupage sd on sd.quartier=p.quartier
|
|
||||||
WHERE p.id = :parcelleId
|
WHERE p.id = :parcelleId
|
||||||
""")
|
""")
|
||||||
Optional<ParcellePayLoadWeb> findParcelleToDtoById(
|
Optional<ParcellePayLoadWeb> findParcelleToDtoById(
|
||||||
@@ -358,7 +364,7 @@ public interface ParcelleRepository extends JpaRepository<Parcelle, Long>, JpaSp
|
|||||||
|
|
||||||
@Query(
|
@Query(
|
||||||
value = """
|
value = """
|
||||||
SELECT new io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb(
|
SELECT distinct new io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb(
|
||||||
p.id,
|
p.id,
|
||||||
p.q,
|
p.q,
|
||||||
p.i,
|
p.i,
|
||||||
@@ -475,7 +481,7 @@ public interface ParcelleRepository extends JpaRepository<Parcelle, Long>, JpaSp
|
|||||||
|
|
||||||
@Query(
|
@Query(
|
||||||
value = """
|
value = """
|
||||||
SELECT new io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb(
|
SELECT distinct new io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb(
|
||||||
p.id,
|
p.id,
|
||||||
p.q,
|
p.q,
|
||||||
p.i,
|
p.i,
|
||||||
@@ -541,7 +547,7 @@ public interface ParcelleRepository extends JpaRepository<Parcelle, Long>, JpaSp
|
|||||||
|
|
||||||
@Query(
|
@Query(
|
||||||
"""
|
"""
|
||||||
SELECT new io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb(
|
SELECT distinct new io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb(
|
||||||
p.id,
|
p.id,
|
||||||
p.q,
|
p.q,
|
||||||
p.i,
|
p.i,
|
||||||
@@ -597,7 +603,7 @@ public interface ParcelleRepository extends JpaRepository<Parcelle, Long>, JpaSp
|
|||||||
|
|
||||||
@Query(
|
@Query(
|
||||||
value = """
|
value = """
|
||||||
SELECT new io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb(
|
SELECT distinct new io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb(
|
||||||
p.id,
|
p.id,
|
||||||
p.q,
|
p.q,
|
||||||
p.i,
|
p.i,
|
||||||
|
|||||||
@@ -76,7 +76,12 @@ public interface PieceRepository extends JpaRepository<Piece, Long> {
|
|||||||
p.observation,
|
p.observation,
|
||||||
e.id,
|
e.id,
|
||||||
p.enqueteBatiment.id,
|
p.enqueteBatiment.id,
|
||||||
p.enqueteUniteLogement.id
|
p.enqueteUniteLogement.id,
|
||||||
|
(
|
||||||
|
SELECT CAST(COUNT(u.id) as Long)
|
||||||
|
FROM Upload u
|
||||||
|
WHERE u.piece.id = p.id
|
||||||
|
)
|
||||||
)
|
)
|
||||||
FROM Piece p
|
FROM Piece p
|
||||||
LEFT JOIN p.typePiece tp
|
LEFT JOIN p.typePiece tp
|
||||||
@@ -109,7 +114,12 @@ public interface PieceRepository extends JpaRepository<Piece, Long> {
|
|||||||
p.observation,
|
p.observation,
|
||||||
e.id,
|
e.id,
|
||||||
p.enqueteBatiment.id,
|
p.enqueteBatiment.id,
|
||||||
p.enqueteUniteLogement.id
|
p.enqueteUniteLogement.id,
|
||||||
|
(
|
||||||
|
SELECT CAST(COUNT(u.id) as Long)
|
||||||
|
FROM Upload u
|
||||||
|
WHERE u.piece.id = p.id
|
||||||
|
)
|
||||||
)
|
)
|
||||||
FROM Piece p
|
FROM Piece p
|
||||||
LEFT JOIN p.typePiece tp
|
LEFT JOIN p.typePiece tp
|
||||||
@@ -141,7 +151,12 @@ public interface PieceRepository extends JpaRepository<Piece, Long> {
|
|||||||
p.observation,
|
p.observation,
|
||||||
e.id,
|
e.id,
|
||||||
p.enqueteBatiment.id,
|
p.enqueteBatiment.id,
|
||||||
p.enqueteUniteLogement.id
|
p.enqueteUniteLogement.id,
|
||||||
|
(
|
||||||
|
SELECT CAST(COUNT(u.id) as Long)
|
||||||
|
FROM Upload u
|
||||||
|
WHERE u.piece.id = p.id
|
||||||
|
)
|
||||||
)
|
)
|
||||||
FROM Piece p
|
FROM Piece p
|
||||||
LEFT JOIN p.typePiece tp
|
LEFT JOIN p.typePiece tp
|
||||||
@@ -180,7 +195,12 @@ public interface PieceRepository extends JpaRepository<Piece, Long> {
|
|||||||
p.observation,
|
p.observation,
|
||||||
e.id,
|
e.id,
|
||||||
p.enqueteBatiment.id,
|
p.enqueteBatiment.id,
|
||||||
p.enqueteUniteLogement.id
|
p.enqueteUniteLogement.id,
|
||||||
|
(
|
||||||
|
SELECT CAST(COUNT(u.id) as Long)
|
||||||
|
FROM Upload u
|
||||||
|
WHERE u.piece.id = p.id
|
||||||
|
)
|
||||||
)
|
)
|
||||||
FROM Piece p
|
FROM Piece p
|
||||||
LEFT JOIN p.typePiece tp
|
LEFT JOIN p.typePiece tp
|
||||||
@@ -249,7 +269,12 @@ public interface PieceRepository extends JpaRepository<Piece, Long> {
|
|||||||
p.observation,
|
p.observation,
|
||||||
e.id,
|
e.id,
|
||||||
p.enqueteBatiment.id,
|
p.enqueteBatiment.id,
|
||||||
p.enqueteUniteLogement.id
|
p.enqueteUniteLogement.id,
|
||||||
|
(
|
||||||
|
SELECT CAST(COUNT(u.id) as Long)
|
||||||
|
FROM Upload u
|
||||||
|
WHERE u.piece.id = p.id
|
||||||
|
)
|
||||||
)
|
)
|
||||||
FROM Piece p
|
FROM Piece p
|
||||||
LEFT JOIN p.typePiece tp
|
LEFT JOIN p.typePiece tp
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
package io.gmss.fiscad.persistence.repositories.rfu.metier;
|
package io.gmss.fiscad.persistence.repositories.rfu.metier;
|
||||||
|
|
||||||
import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
|
import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
|
||||||
|
import io.gmss.fiscad.enums.StatutEnquete;
|
||||||
import io.gmss.fiscad.paylaods.request.crudweb.EnqueteBatimentPayloadWeb;
|
import io.gmss.fiscad.paylaods.request.crudweb.EnqueteBatimentPayloadWeb;
|
||||||
|
import io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb;
|
||||||
import io.gmss.fiscad.paylaods.response.restoration.EnqueteBatimentPayLoadRestor;
|
import io.gmss.fiscad.paylaods.response.restoration.EnqueteBatimentPayLoadRestor;
|
||||||
|
import io.gmss.fiscad.paylaods.response.statistique.ParcelleStatsProjectionUnSecteur;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
@@ -477,5 +480,172 @@ public interface EnqueteBatimentRepository extends JpaRepository<EnqueteBatiment
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
@Query(
|
||||||
|
value = """
|
||||||
|
SELECT DISTINCT
|
||||||
|
d.id AS departement_id,
|
||||||
|
d.code AS departement_code,
|
||||||
|
d.nom AS departement_nom,
|
||||||
|
COUNT(e.id) OVER (PARTITION BY d.id) AS nb_enquetes_departement,
|
||||||
|
|
||||||
|
c.id AS commune_id,
|
||||||
|
c.code AS commune_code,
|
||||||
|
c.nom AS commune_nom,
|
||||||
|
COUNT(e.id) OVER (PARTITION BY c.id) AS nb_enquetes_commune,
|
||||||
|
|
||||||
|
a.id AS arrondissement_id,
|
||||||
|
a.code AS arrondissement_code,
|
||||||
|
a.nom AS arrondissement_nom,
|
||||||
|
COUNT(e.id) OVER (PARTITION BY a.id) AS nb_enquetes_arrondissement,
|
||||||
|
|
||||||
|
q.id AS quartier_id,
|
||||||
|
q.code AS quartier_code,
|
||||||
|
q.nom AS quartier_nom,
|
||||||
|
COUNT(e.id) OVER (PARTITION BY q.id) AS nb_enquetes_quartier
|
||||||
|
|
||||||
|
FROM enquete_batiment eb
|
||||||
|
JOIN batiment b ON b.id = eb.batiment_id
|
||||||
|
JOIN parcelle p ON p.id = b.parcelle_id
|
||||||
|
JOIN quartier q ON q.id = p.quartier_id
|
||||||
|
JOIN arrondissement a ON a.id = q.arrondissement_id
|
||||||
|
JOIN commune c ON c.id = a.commune_id
|
||||||
|
JOIN departement d ON d.id = c.departement_id
|
||||||
|
|
||||||
|
WHERE EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM secteur_decoupage sd
|
||||||
|
WHERE sd.quartier_id = q.id
|
||||||
|
AND sd.secteur_id IN (:secteurIds)
|
||||||
|
)
|
||||||
|
AND e.statut_enquete = :statutEnqueteParam
|
||||||
|
|
||||||
|
ORDER BY d.nom, c.nom, a.nom, q.nom;
|
||||||
|
""",
|
||||||
|
nativeQuery = true
|
||||||
|
)
|
||||||
|
List<ParcelleStatsProjectionUnSecteur> findStatsEnqueteBatimentBySecteurs(
|
||||||
|
@Param("secteurIds") List<Long> secteurIds,
|
||||||
|
@Param("statutEnqueteParam") String statutEnqueteParam
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
@Query(
|
||||||
|
value = """
|
||||||
|
SELECT new io.gmss.fiscad.paylaods.request.crudweb.EnqueteBatimentPayloadWeb(
|
||||||
|
eb.id,
|
||||||
|
eb.observation,
|
||||||
|
eb.autreMenuisierie,
|
||||||
|
eb.autreMur,
|
||||||
|
eb.sbee,
|
||||||
|
eb.numCompteurSbee,
|
||||||
|
eb.soneb,
|
||||||
|
eb.numCompteurSoneb,
|
||||||
|
eb.nbreLotUnite,
|
||||||
|
eb.nbreUniteLocation,
|
||||||
|
eb.superficieLouee,
|
||||||
|
eb.superficieAuSol,
|
||||||
|
eb.dateEnquete,
|
||||||
|
eb.nbreMenage,
|
||||||
|
eb.nbreHabitant,
|
||||||
|
eb.montantMensuelLocation,
|
||||||
|
eb.montantLocatifAnnuelDeclare,
|
||||||
|
eb.nbreEtage,
|
||||||
|
eb.valeurBatimentEstime,
|
||||||
|
eb.valeurBatimentReel,
|
||||||
|
eb.nbreMoisLocation,
|
||||||
|
eb.autreCaracteristiquePhysique,
|
||||||
|
eb.dateDebutExcemption,
|
||||||
|
eb.dateFinExcemption,
|
||||||
|
|
||||||
|
b.id,
|
||||||
|
b.nub,
|
||||||
|
|
||||||
|
p.id,
|
||||||
|
p.nom,
|
||||||
|
p.prenom,
|
||||||
|
p.raisonSociale,
|
||||||
|
|
||||||
|
u.id,
|
||||||
|
u.nom,
|
||||||
|
u.prenom,
|
||||||
|
eb.statutEnquete,
|
||||||
|
ex.id,
|
||||||
|
ex.annee,
|
||||||
|
eb.representantNom,
|
||||||
|
eb.representantPrenom,
|
||||||
|
eb.representantTel,
|
||||||
|
eb.representantNpi,
|
||||||
|
cb.id,
|
||||||
|
cb.code,
|
||||||
|
cb.standing,
|
||||||
|
eb.nombrePiscine,
|
||||||
|
eb.montantLocatifAnnuelCalcule,
|
||||||
|
us.id,
|
||||||
|
us.nom,
|
||||||
|
b.nub,
|
||||||
|
b.code,
|
||||||
|
b.dateConstruction,
|
||||||
|
parc.id,
|
||||||
|
parc.nup,
|
||||||
|
parc.q,
|
||||||
|
parc.i,
|
||||||
|
parc.p,
|
||||||
|
b.montantLocatifAnnuelEstime,
|
||||||
|
b.valeurBatimentCalcule,
|
||||||
|
b.nbreUniteLogement
|
||||||
|
)
|
||||||
|
FROM EnqueteBatiment eb
|
||||||
|
LEFT JOIN eb.batiment b
|
||||||
|
LEFT JOIN b.parcelle parc
|
||||||
|
LEFT JOIN parc.quartier q
|
||||||
|
LEFT JOIN eb.personne p
|
||||||
|
LEFT JOIN eb.user u
|
||||||
|
LEFT JOIN eb.exercice ex
|
||||||
|
LEFT JOIN eb.categorieBatiment cb
|
||||||
|
LEFT JOIN eb.usage us
|
||||||
|
INNER JOIN SecteurDecoupage sd on sd.quartier=q
|
||||||
|
WHERE sd.secteur.id IN (:secteurIds)
|
||||||
|
and q.id = :quartierId
|
||||||
|
and eb.statutEnquete = :statutEnquete
|
||||||
|
""",
|
||||||
|
countQuery = """
|
||||||
|
SELECT COUNT(DISTINCT eb.id)
|
||||||
|
FROM EnqueteBatiment eb
|
||||||
|
LEFT JOIN eb.batiment b
|
||||||
|
LEFT JOIN b.parcelle parc
|
||||||
|
LEFT JOIN parc.quartier q
|
||||||
|
INNER JOIN SecteurDecoupage sd on sd.quartier= q
|
||||||
|
WHERE sd.secteur.id IN (:secteurIds)
|
||||||
|
and q.id = :quartierId
|
||||||
|
and eb.statutEnquete = :statutEnquete
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
Page<EnqueteBatimentPayloadWeb> findAllEnqueteBatimentByQuartierByStatutToDtoPageable(
|
||||||
|
@Param("quartierId") Long quartierId,
|
||||||
|
@Param("secteurIds") List<Long> secteurIds,
|
||||||
|
@Param("statutEnquete") StatutEnquete statutEnquete,
|
||||||
|
Pageable pageable
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
@Query(
|
||||||
|
value = """
|
||||||
|
SELECT count(distinct eb.*)
|
||||||
|
FROM enquete_batiment eb
|
||||||
|
JOIN batiment b on b.id=eb.batiment_id
|
||||||
|
JOIN parcelle parc on parc.id=b.parcelle_id
|
||||||
|
JOIN quartier q on q.id=parc.quartier_id
|
||||||
|
JOIN secteur_decoupage sd on sd.quartier_id=q.id
|
||||||
|
WHERE sd.secteur_id IN (:secteurIds)
|
||||||
|
and eb.statut_enquete = :statutEnquete
|
||||||
|
""",
|
||||||
|
nativeQuery = true
|
||||||
|
)
|
||||||
|
Integer getNombreEnqueteBatimentByUserConnecte(
|
||||||
|
@Param("secteurIds") List<Long> secteurIds,
|
||||||
|
@Param("statutEnquete") String statutEnquete
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
package io.gmss.fiscad.persistence.repositories.rfu.metier;
|
package io.gmss.fiscad.persistence.repositories.rfu.metier;
|
||||||
|
|
||||||
import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement;
|
import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement;
|
||||||
|
import io.gmss.fiscad.enums.StatutEnquete;
|
||||||
|
import io.gmss.fiscad.paylaods.request.crudweb.EnqueteBatimentPayloadWeb;
|
||||||
import io.gmss.fiscad.paylaods.request.crudweb.EnqueteUniteLogementPayloadWeb;
|
import io.gmss.fiscad.paylaods.request.crudweb.EnqueteUniteLogementPayloadWeb;
|
||||||
import io.gmss.fiscad.paylaods.response.restoration.EnqueteUniteLogementPayLoadRestor;
|
import io.gmss.fiscad.paylaods.response.restoration.EnqueteUniteLogementPayLoadRestor;
|
||||||
|
import io.gmss.fiscad.paylaods.response.statistique.ParcelleStatsProjectionUnSecteur;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
@@ -598,4 +601,171 @@ public interface EnqueteUniteLogementRepository extends JpaRepository<EnqueteUni
|
|||||||
Pageable pageable
|
Pageable pageable
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
@Query(
|
||||||
|
value = """
|
||||||
|
SELECT DISTINCT
|
||||||
|
d.id AS departement_id,
|
||||||
|
d.code AS departement_code,
|
||||||
|
d.nom AS departement_nom,
|
||||||
|
COUNT(e.id) OVER (PARTITION BY d.id) AS nb_enquetes_departement,
|
||||||
|
|
||||||
|
c.id AS commune_id,
|
||||||
|
c.code AS commune_code,
|
||||||
|
c.nom AS commune_nom,
|
||||||
|
COUNT(e.id) OVER (PARTITION BY c.id) AS nb_enquetes_commune,
|
||||||
|
|
||||||
|
a.id AS arrondissement_id,
|
||||||
|
a.code AS arrondissement_code,
|
||||||
|
a.nom AS arrondissement_nom,
|
||||||
|
COUNT(e.id) OVER (PARTITION BY a.id) AS nb_enquetes_arrondissement,
|
||||||
|
|
||||||
|
q.id AS quartier_id,
|
||||||
|
q.code AS quartier_code,
|
||||||
|
q.nom AS quartier_nom,
|
||||||
|
COUNT(e.id) OVER (PARTITION BY q.id) AS nb_enquetes_quartier
|
||||||
|
|
||||||
|
FROM enquete_unite_logement eul
|
||||||
|
JOIN unite_logement ul on ul.id = eul.unite_logement_id
|
||||||
|
JOIN batiment b ON b.id = ul.batiment_id
|
||||||
|
JOIN parcelle p ON p.id = b.parcelle_id
|
||||||
|
JOIN quartier q ON q.id = p.quartier_id
|
||||||
|
JOIN arrondissement a ON a.id = q.arrondissement_id
|
||||||
|
JOIN commune c ON c.id = a.commune_id
|
||||||
|
JOIN departement d ON d.id = c.departement_id
|
||||||
|
|
||||||
|
WHERE EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM secteur_decoupage sd
|
||||||
|
WHERE sd.quartier_id = q.id
|
||||||
|
AND sd.secteur_id IN (:secteurIds)
|
||||||
|
)
|
||||||
|
AND e.statut_enquete = :statutEnqueteParam
|
||||||
|
|
||||||
|
ORDER BY d.nom, c.nom, a.nom, q.nom;
|
||||||
|
""",
|
||||||
|
nativeQuery = true
|
||||||
|
)
|
||||||
|
List<ParcelleStatsProjectionUnSecteur> findStatsEnqueteBatimentBySecteurs(
|
||||||
|
@Param("secteurIds") List<Long> secteurIds,
|
||||||
|
@Param("statutEnqueteParam") String statutEnqueteParam
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Query(
|
||||||
|
value = """
|
||||||
|
SELECT new io.gmss.fiscad.paylaods.request.crudweb.EnqueteUniteLogementPayloadWeb(
|
||||||
|
eul.id,
|
||||||
|
eul.observation,
|
||||||
|
eul.nbrePiece,
|
||||||
|
eul.nbreHabitant,
|
||||||
|
eul.nbreMenage,
|
||||||
|
eul.enLocation,
|
||||||
|
eul.nbreMoisLocation,
|
||||||
|
eul.montantMensuelLocation,
|
||||||
|
eul.montantLocatifAnnuelDeclare,
|
||||||
|
eul.valeurUniteLogementEstime,
|
||||||
|
eul.valeurUniteLogementReel,
|
||||||
|
eul.superficieLouee,
|
||||||
|
eul.superficieAuSol,
|
||||||
|
eul.dateEnquete,
|
||||||
|
eul.sbee,
|
||||||
|
eul.soneb,
|
||||||
|
eul.numCompteurSbee,
|
||||||
|
eul.numCompteurSoneb,
|
||||||
|
eul.dateDebutExemption,
|
||||||
|
eul.dateFinExemption,
|
||||||
|
|
||||||
|
ul.id,
|
||||||
|
ul.numeroEtage,
|
||||||
|
ul.nul,
|
||||||
|
|
||||||
|
p.id,
|
||||||
|
p.nom,
|
||||||
|
p.prenom,
|
||||||
|
p.raisonSociale,
|
||||||
|
|
||||||
|
u.id,
|
||||||
|
u.nom,
|
||||||
|
u.prenom,
|
||||||
|
|
||||||
|
ex.id,
|
||||||
|
ex.annee,
|
||||||
|
eul.statutEnquete,
|
||||||
|
eul.representantNom,
|
||||||
|
eul.representantPrenom,
|
||||||
|
eul.representantTel,
|
||||||
|
eul.representantNpi,
|
||||||
|
cb.id,
|
||||||
|
cb.code,
|
||||||
|
cb.standing,
|
||||||
|
eul.nombrePiscine,
|
||||||
|
eul.montantLocatifAnnuelCalcule ,
|
||||||
|
us.id,
|
||||||
|
us.nom,
|
||||||
|
ul.nul,
|
||||||
|
ul.numeroEtage,
|
||||||
|
ul.code,
|
||||||
|
b.id,
|
||||||
|
b.nub,
|
||||||
|
ul.dateConstruction,
|
||||||
|
ul.montantLocatifAnnuelEstime,
|
||||||
|
ul.valeurUniteLogementCalcule
|
||||||
|
)
|
||||||
|
FROM EnqueteUniteLogement eul
|
||||||
|
JOIN eul.uniteLogement ul
|
||||||
|
JOIN ul.batiment b
|
||||||
|
JOIN b.parcelle parc
|
||||||
|
JOIN parc.quartier q
|
||||||
|
LEFT JOIN eul.personne p
|
||||||
|
LEFT JOIN eul.user u
|
||||||
|
LEFT JOIN eul.exercice ex
|
||||||
|
LEFT JOIN eul.categorieBatiment cb
|
||||||
|
LEFT JOIN eul.usage us
|
||||||
|
INNER JOIN SecteurDecoupage sd on sd.quartier=q
|
||||||
|
WHERE sd.secteur.id IN (:secteurIds)
|
||||||
|
and q.id = :quartierId
|
||||||
|
and eul.statutEnquete = :statutEnquete
|
||||||
|
""",
|
||||||
|
countQuery = """
|
||||||
|
SELECT COUNT(DISTINCT eul.id)
|
||||||
|
FROM EnqueteUniteLogement eul
|
||||||
|
JOIN eul.uniteLogement ul
|
||||||
|
JOIN ul.batiment b
|
||||||
|
JOIN b.parcelle parc
|
||||||
|
JOIN parc.quartier q
|
||||||
|
INNER JOIN SecteurDecoupage sd on sd.quartier= q
|
||||||
|
WHERE sd.secteur.id IN (:secteurIds)
|
||||||
|
and q.id = :quartierId
|
||||||
|
and eul.statutEnquete = :statutEnquete
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
Page<EnqueteUniteLogementPayloadWeb> findAllEnqueteUniteLogementByQuartierByStatutToDtoPageable(
|
||||||
|
@Param("quartierId") Long quartierId,
|
||||||
|
@Param("secteurIds") List<Long> secteurIds,
|
||||||
|
@Param("statutEnquete") StatutEnquete statutEnquete,
|
||||||
|
Pageable pageable
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Query(
|
||||||
|
value = """
|
||||||
|
SELECT count(distinct eul.*)
|
||||||
|
FROM enquete_unite_logement eul
|
||||||
|
JOIN unite_logement ul on ul.id=eul.unite_logement_id
|
||||||
|
JOIN batiment b on b.id=ul.batiment_id
|
||||||
|
JOIN parcelle parc on parc.id=b.parcelle_id
|
||||||
|
JOIN quartier q on q.id=parc.quartier_id
|
||||||
|
JOIN secteur_decoupage sd on sd.quartier_id=q.id
|
||||||
|
WHERE sd.secteur_id IN (:secteurIds)
|
||||||
|
and eul.statut_enquete = :statutEnquete
|
||||||
|
""",
|
||||||
|
nativeQuery = true
|
||||||
|
)
|
||||||
|
Integer getNombreEnqueteUniteLogementByUserConnecte(
|
||||||
|
@Param("secteurIds") List<Long> secteurIds,
|
||||||
|
@Param("statutEnquete") String statutEnquete
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,10 +2,7 @@ package io.gmss.fiscad.service;
|
|||||||
|
|
||||||
import io.gmss.fiscad.controllers.rfu.metier.ImpositionsTfuController;
|
import io.gmss.fiscad.controllers.rfu.metier.ImpositionsTfuController;
|
||||||
import io.gmss.fiscad.entities.decoupage.*;
|
import io.gmss.fiscad.entities.decoupage.*;
|
||||||
import io.gmss.fiscad.entities.infocad.metier.Enquete;
|
import io.gmss.fiscad.entities.infocad.metier.*;
|
||||||
import io.gmss.fiscad.entities.infocad.metier.Parcelle;
|
|
||||||
import io.gmss.fiscad.entities.infocad.metier.Piece;
|
|
||||||
import io.gmss.fiscad.entities.infocad.metier.Upload;
|
|
||||||
import io.gmss.fiscad.entities.infocad.parametre.*;
|
import io.gmss.fiscad.entities.infocad.parametre.*;
|
||||||
import io.gmss.fiscad.entities.rfu.metier.*;
|
import io.gmss.fiscad.entities.rfu.metier.*;
|
||||||
import io.gmss.fiscad.entities.rfu.parametre.*;
|
import io.gmss.fiscad.entities.rfu.parametre.*;
|
||||||
@@ -18,10 +15,7 @@ import io.gmss.fiscad.exceptions.BadRequestException;
|
|||||||
import io.gmss.fiscad.exceptions.NotFoundException;
|
import io.gmss.fiscad.exceptions.NotFoundException;
|
||||||
import io.gmss.fiscad.paylaods.request.crudweb.*;
|
import io.gmss.fiscad.paylaods.request.crudweb.*;
|
||||||
import io.gmss.fiscad.persistence.repositories.decoupage.*;
|
import io.gmss.fiscad.persistence.repositories.decoupage.*;
|
||||||
import io.gmss.fiscad.persistence.repositories.infocad.metier.EnqueteRepository;
|
import io.gmss.fiscad.persistence.repositories.infocad.metier.*;
|
||||||
import io.gmss.fiscad.persistence.repositories.infocad.metier.ParcelleRepository;
|
|
||||||
import io.gmss.fiscad.persistence.repositories.infocad.metier.PieceRepository;
|
|
||||||
import io.gmss.fiscad.persistence.repositories.infocad.metier.UploadRepository;
|
|
||||||
import io.gmss.fiscad.persistence.repositories.infocad.parametre.*;
|
import io.gmss.fiscad.persistence.repositories.infocad.parametre.*;
|
||||||
import io.gmss.fiscad.persistence.repositories.rfu.metier.*;
|
import io.gmss.fiscad.persistence.repositories.rfu.metier.*;
|
||||||
import io.gmss.fiscad.persistence.repositories.rfu.parametre.BaremRfuNonBatiRepository;
|
import io.gmss.fiscad.persistence.repositories.rfu.parametre.BaremRfuNonBatiRepository;
|
||||||
@@ -77,6 +71,9 @@ public class EntityFromPayLoadService {
|
|||||||
private final BaremRfuRepository baremRfuRepository ;
|
private final BaremRfuRepository baremRfuRepository ;
|
||||||
private final BaremRfuNonBatiRepository baremRfuNonBatiRepository ;
|
private final BaremRfuNonBatiRepository baremRfuNonBatiRepository ;
|
||||||
private final ImpositionsTfuRepository impositionsTfuRepository ;
|
private final ImpositionsTfuRepository impositionsTfuRepository ;
|
||||||
|
private final RueRepository rueRepository ;
|
||||||
|
private final NatureDomaineRepository natureDomaineRepository ;
|
||||||
|
private final TypeDomaineRepository typeDomaineRepository ;
|
||||||
|
|
||||||
|
|
||||||
public CaracteristiqueParcelle getCaracteristiqueParcelleFromPayLoadWeb(CaracteristiqueParcellePayloadWeb caracteristiqueParcellePayloadWeb){
|
public CaracteristiqueParcelle getCaracteristiqueParcelleFromPayLoadWeb(CaracteristiqueParcellePayloadWeb caracteristiqueParcellePayloadWeb){
|
||||||
@@ -860,6 +857,7 @@ public class EntityFromPayLoadService {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public BaremRfuBati getBaremRfuBatiFromPayLoadWeb(BaremRfuBatiPayloadWeb baremRfuBatiPayloadWeb){
|
public BaremRfuBati getBaremRfuBatiFromPayLoadWeb(BaremRfuBatiPayloadWeb baremRfuBatiPayloadWeb){
|
||||||
BaremRfuBati baremRfuBati = new BaremRfuBati();
|
BaremRfuBati baremRfuBati = new BaremRfuBati();
|
||||||
if (baremRfuBatiPayloadWeb.getId()!=null)
|
if (baremRfuBatiPayloadWeb.getId()!=null)
|
||||||
@@ -960,4 +958,43 @@ public class EntityFromPayLoadService {
|
|||||||
|
|
||||||
return baremRfuNonBati;
|
return baremRfuNonBati;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public Parcelle getParcelleFromPayload(ParcellePayLoadWeb parcellePayLoadWeb) {
|
||||||
|
Parcelle parcelle = new Parcelle();
|
||||||
|
if (parcellePayLoadWeb.getId() != null)
|
||||||
|
parcelle = parcelleRepository.findById(parcellePayLoadWeb.getId()).orElse(new Parcelle());
|
||||||
|
|
||||||
|
if (parcellePayLoadWeb.getRueId() != null) {
|
||||||
|
Optional<Rue> optionalRue = rueRepository.findById(parcellePayLoadWeb.getRueId());
|
||||||
|
parcelle.setRue(optionalRue.orElse(null));
|
||||||
|
}
|
||||||
|
Optional<NatureDomaine> optionalNatureDomaine = natureDomaineRepository.findById(parcellePayLoadWeb.getNatureDomaineId());
|
||||||
|
if (optionalNatureDomaine.isPresent()) {
|
||||||
|
parcelle.setNatureDomaine(optionalNatureDomaine.orElse(null));
|
||||||
|
}
|
||||||
|
Optional<Quartier> optionalQuartier = quartierRepository.findById(parcellePayLoadWeb.getQuartierId());
|
||||||
|
if (!optionalQuartier.isPresent()) {
|
||||||
|
parcelle.setQuartier(optionalQuartier.orElse(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
Optional<TypeDomaine> optionalTypeDomaine = typeDomaineRepository.findById(parcellePayLoadWeb.getTypeDomaineId());
|
||||||
|
if (!optionalTypeDomaine.isPresent()) {
|
||||||
|
parcelle.setTypeDomaine(optionalTypeDomaine.orElse(null));
|
||||||
|
}
|
||||||
|
parcelle.setP(parcellePayLoadWeb.getP());
|
||||||
|
parcelle.setI(parcellePayLoadWeb.getI());
|
||||||
|
parcelle.setQ(parcellePayLoadWeb.getQ());
|
||||||
|
parcelle.setNup(parcellePayLoadWeb.getNup());
|
||||||
|
parcelle.setLatitude(parcellePayLoadWeb.getLatitude());
|
||||||
|
parcelle.setLongitude(parcellePayLoadWeb.getLongitude());
|
||||||
|
parcelle.setAltitude(parcellePayLoadWeb.getAltitude());
|
||||||
|
parcelle.setSituationGeographique(parcellePayLoadWeb.getSituationGeographique());
|
||||||
|
parcelle.setNupProvisoire(parcellePayLoadWeb.getNupProvisoire());
|
||||||
|
parcelle.setAutreNumeroTitreFoncier(parcellePayLoadWeb.getNumTitreFoncier());
|
||||||
|
parcelle.setObservation(parcellePayLoadWeb.getObservation());
|
||||||
|
parcelle.setSuperficie(parcellePayLoadWeb.getSuperficie());
|
||||||
|
return parcelle;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user