70 Commits

Author SHA1 Message Date
cd4fcb7aa0 Merge pull request 'develop' (#84) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 47s
Reviewed-on: #84
2026-02-04 01:34:27 +00:00
f50ed9aa5f Merge pull request 'gestion revu de code en utilisant uniquement les DTO' (#83) from features/crud_entites into develop
Reviewed-on: #83
2026-02-04 01:33:32 +00:00
95eb4ad0b9 gestion revu de code en utilisant uniquement les DTO
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 29s
2026-02-04 02:33:04 +01:00
1e0cfead5b Merge pull request 'develop' (#82) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 48s
Reviewed-on: #82
2026-02-03 19:34:06 +00:00
966fd2ca7a Merge pull request 'gestion revu de code en utilisant uniquement les DTO' (#81) from features/crud_entites into develop
Reviewed-on: #81
2026-02-03 19:32:06 +00:00
743bb46b47 gestion revu de code en utilisant uniquement les DTO
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 30s
2026-02-03 20:31:38 +01:00
0837d0ce08 Merge pull request 'develop' (#80) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 49s
Reviewed-on: #80
2026-02-03 15:09:35 +00:00
a10253b2e8 Merge pull request 'gestion revu de code en utilisant uniquement les DTO' (#79) from features/crud_entites into develop
Reviewed-on: #79
2026-02-03 15:08:48 +00:00
2c0aad4d51 gestion revu de code en utilisant uniquement les DTO
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 33s
2026-02-03 16:08:13 +01:00
b58316bb88 Merge pull request 'develop' (#78) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 49s
Reviewed-on: #78
2026-02-02 23:04:11 +00:00
08b68f9e08 Merge pull request 'gestion revu de code en utilisant uniquement les DTO' (#77) from features/crud_entites into develop
Reviewed-on: #77
2026-02-02 23:03:26 +00:00
fc6ff679f0 gestion revu de code en utilisant uniquement les DTO
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 33s
2026-02-03 00:01:45 +01:00
209d1cd777 Merge pull request 'develop' (#76) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 48s
Reviewed-on: #76
2026-02-01 22:50:41 +00:00
be487d6a03 Merge pull request 'gestion revu de code en utilisant uniquement les DTO' (#75) from features/crud_entites into develop
Reviewed-on: #75
2026-02-01 22:49:00 +00:00
772f870dbd gestion revu de code en utilisant uniquement les DTO
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 27s
2026-02-01 23:48:05 +01:00
1c63303f3c gestion revu de code en utilisant uniquement les DTO
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 33s
2026-02-01 23:45:27 +01:00
1eb3aeeda0 Merge pull request 'develop' (#74) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 48s
Reviewed-on: #74
2026-01-27 08:59:25 +00:00
3be64e7f44 Merge pull request 'gestion de profil, secteur, section et arbre decoupage' (#73) from features/crud_entites into develop
Reviewed-on: #73
2026-01-27 08:58:32 +00:00
9a118b41e5 gestion de profil, secteur, section et arbre decoupage
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 26s
2026-01-27 09:57:56 +01:00
03a661cdc0 Merge pull request 'gestion de profil, secteur, section et arbre decoupage' (#72) from features/crud_entites into develop
Reviewed-on: #72
2026-01-27 08:37:52 +00:00
c65fd8a450 gestion de profil, secteur, section et arbre decoupage
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 32s
2026-01-27 09:37:11 +01:00
b3c288628c Merge pull request 'develop' (#71) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 56s
Reviewed-on: #71
2026-01-13 20:34:13 +00:00
a68ec444cc Merge pull request 'features/crud_entites' (#70) from features/crud_entites into develop
Reviewed-on: #70
2026-01-13 20:33:17 +00:00
47b92f9341 gestion des enregistrement par web
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 30s
2026-01-13 21:28:53 +01:00
9947716ef3 ajout des end-point de maj web 2026-01-13 10:31:42 +01:00
d45e01ac85 Merge pull request 'develop' (#69) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 46s
Reviewed-on: #69
2025-12-20 19:04:38 +00:00
58f517bf31 Merge pull request 'correction creation user par defaut' (#68) from features/crud_entites into develop
Reviewed-on: #68
2025-12-20 19:03:51 +00:00
adc3796205 correction creation user par defaut
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 25s
2025-12-20 20:01:37 +01:00
9bb0cc5c75 Merge pull request 'develop' (#67) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 47s
Reviewed-on: #67
2025-12-20 18:56:24 +00:00
7f18f22efb Merge pull request 'correction creation user par defaut' (#66) from features/crud_entites into develop
Reviewed-on: #66
2025-12-20 18:55:42 +00:00
a87ece201f correction creation user par defaut
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 25s
2025-12-20 19:53:11 +01:00
3a68fd2ce4 Merge pull request 'develop' (#65) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 44s
Reviewed-on: #65
2025-12-20 17:07:04 +00:00
af3218412f Merge pull request 'correction creation user par defaut' (#64) from features/crud_entites into develop
Reviewed-on: #64
2025-12-20 17:06:19 +00:00
350b862ae7 correction creation user par defaut
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 24s
2025-12-20 18:05:02 +01:00
fa7421c35b Merge pull request 'develop' (#63) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 35s
Reviewed-on: #63
2025-12-20 15:04:55 +00:00
f35670c72e Merge pull request 'correction creation user par defaut' (#62) from features/crud_entites into develop
Reviewed-on: #62
2025-12-20 15:03:45 +00:00
b53f441bf4 correction creation user par defaut
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 24s
2025-12-20 16:03:12 +01:00
5cb9497163 Merge pull request 'develop' (#61) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 34s
Reviewed-on: #61
2025-12-20 14:50:28 +00:00
a77c0e854d Merge pull request 'correction creation user par defaut' (#60) from features/crud_entites into develop
Reviewed-on: #60
2025-12-20 14:48:47 +00:00
f4f1fa4890 correction creation user par defaut
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 25s
2025-12-20 15:48:07 +01:00
15cac660bc Merge pull request 'develop' (#59) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 34s
Reviewed-on: #59
2025-12-20 14:34:41 +00:00
e75eff4e20 Merge pull request 'correction lecture de secret chargement' (#58) from features/crud_entites into develop
Reviewed-on: #58
2025-12-20 14:33:59 +00:00
8e0bc3948a correction lecture de secret chargement
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 24s
2025-12-20 15:32:30 +01:00
0feec2982f Merge pull request 'develop' (#57) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 35s
Reviewed-on: #57
2025-12-20 14:14:47 +00:00
b5ab0772a0 Merge pull request 'develop' (#55) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 35s
Reviewed-on: #55
2025-12-20 13:11:40 +00:00
f293f65650 Merge pull request 'develop' (#53) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 35s
Reviewed-on: #53
2025-12-20 12:58:25 +00:00
cfd1104c28 Merge pull request 'develop' (#51) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 39s
Reviewed-on: #51
2025-12-20 12:42:50 +00:00
7d64390bae Merge pull request 'develop' (#49) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 34s
Reviewed-on: #49
2025-12-20 12:22:29 +00:00
4876d8ab14 Merge pull request 'develop' (#47) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 39s
Reviewed-on: #47
2025-12-20 12:11:18 +00:00
2bfb298054 Merge pull request 'develop' (#45) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 36s
Reviewed-on: #45
2025-12-20 12:01:44 +00:00
54ef33d1ab Merge pull request 'develop' (#43) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 33s
Reviewed-on: #43
2025-12-20 11:44:36 +00:00
3fd779854f Merge pull request 'develop' (#41) from develop into main
Some checks failed
CD - Deploy on main / deploy (push) Failing after 27s
Reviewed-on: #41
2025-12-20 11:40:18 +00:00
de2928414b Merge pull request 'develop' (#39) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 39s
Reviewed-on: #39
2025-12-20 10:49:00 +00:00
9d6d278d78 Merge pull request 'develop' (#37) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 34s
Reviewed-on: #37
2025-12-20 10:02:57 +00:00
c8b0457195 Merge pull request 'develop' (#35) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 35s
Reviewed-on: #35
2025-12-19 19:18:44 +00:00
9cc74a9a38 Merge pull request 'develop' (#31) from develop into main
Some checks failed
CD - Deploy on main / deploy (push) Failing after 33s
Reviewed-on: #31
2025-12-18 15:47:46 +00:00
8e6168d4ee Merge pull request 'develop' (#29) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Has been skipped
Reviewed-on: #29
2025-12-18 15:46:31 +00:00
c1a8ce86a6 Merge pull request 'develop' (#27) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Has been skipped
Reviewed-on: #27
2025-12-18 10:36:59 +00:00
14feb49dcd Merge pull request 'develop' (#25) from develop into main
Some checks failed
CD - Deploy on main / deploy (push) Failing after 33s
Reviewed-on: #25
2025-12-17 17:14:31 +00:00
39de1c48c0 Merge pull request 'develop' (#23) from develop into main
Some checks failed
CD - Deploy on main / deploy (push) Failing after 34s
Reviewed-on: #23
2025-12-17 16:59:31 +00:00
f9e2b32118 Merge pull request 'develop' (#21) from develop into main
Some checks failed
CD - Deploy on main / deploy (push) Failing after 33s
Reviewed-on: #21
2025-12-17 16:49:53 +00:00
3ebb1cf165 Merge pull request 'develop' (#19) from develop into main
Some checks failed
CD - Deploy on main / deploy (push) Failing after 33s
Reviewed-on: #19
2025-12-17 16:42:39 +00:00
c84176b8d3 Merge pull request 'develop' (#17) from develop into main
Some checks failed
CD - Deploy on main / deploy (push) Failing after 33s
Reviewed-on: #17
2025-12-17 16:27:26 +00:00
61f4dd513f Merge pull request 'develop' (#15) from develop into main
All checks were successful
CD - Deploy on main / deploy (push) Successful in 38s
Reviewed-on: #15
2025-12-17 14:16:12 +00:00
5e9f437497 Merge pull request 'develop' (#13) from develop into main
Reviewed-on: #13
2025-12-16 18:23:59 +00:00
69af57f876 Merge pull request 'develop' (#11) from develop into main
Reviewed-on: #11
2025-12-16 18:08:36 +00:00
56f78e77f3 Merge pull request 'develop' (#9) from develop into main
Reviewed-on: #9
2025-12-05 19:24:21 +00:00
0c7dc082fd Merge pull request 'develop' (#7) from develop into main
Reviewed-on: #7
2025-12-05 19:21:28 +00:00
3f5d7e980c Merge pull request 'develop' (#5) from develop into main
Reviewed-on: #5
2025-12-05 19:11:10 +00:00
87be4e4483 Merge pull request 'develop' (#3) from develop into main
Reviewed-on: #3
2025-12-05 19:07:16 +00:00
386 changed files with 8276 additions and 2163 deletions

View File

@@ -12,4 +12,4 @@ EXPOSE 8282
# Lancer l'application # Lancer l'application
#ENTRYPOINT ["java", "-jar", "fiscad.jar"] #ENTRYPOINT ["java", "-jar", "fiscad.jar"]
ENTRYPOINT ["sh", "-c", "export SPRING_DATASOURCE_PASSWORD=$(cat /run/secrets/postgresPassword) && exec java -jar fiscad.jar"] ENTRYPOINT ["sh", "-c", "export SPRING_DATASOURCE_PASSWORD=$(cat /run/secrets/postgresPassword) && export DEFAULT_USER_NAME=$(cat /run/secrets/defaultUserName) && export DEFAULT_USER_PASSWORD=$(cat /run/secrets/defaultUserPassword) && exec java -jar fiscad.jar"]

View File

@@ -0,0 +1,3 @@
CREATE EXTENSION IF NOT EXISTS postgis;
CREATE EXTENSION IF NOT EXISTS postgis_topology;
CREATE EXTENSION IF NOT EXISTS pg_cron;

View File

@@ -1,13 +1,13 @@
services: services:
db: db:
image: postgres:15 image: postgis/postgis:15-3.4
container_name: fiscad-db container_name: fiscad-db
restart: always restart: always
environment: environment:
POSTGRES_DB: fiscad_db #${POSTGRES_DB_FISCAD} POSTGRES_DB: ${POSTGRES_DB_FISCAD}
POSTGRES_USER: fiscad_user # ${POSTGRES_USER_FISCAD} POSTGRES_USER: ${POSTGRES_USER_FISCAD}
POSTGRES_PASSWORD_FILE: /run/secrets/postgresPassword POSTGRES_PASSWORD_FILE: /run/secrets/postgresPassword
secrets: secrets:
@@ -18,9 +18,10 @@ services:
volumes: volumes:
- db-data-fiscad:/var/lib/postgresql/data - db-data-fiscad:/var/lib/postgresql/data
- ./db-init:/docker-entrypoint-initdb.d
healthcheck: healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER_FISCAD} -d ${POSTGRES_DB_FISCAD} "] test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER_FISCAD} -d ${POSTGRES_DB_FISCAD}"]
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 5 retries: 5
@@ -32,8 +33,10 @@ services:
dockerfile: Dockerfile dockerfile: Dockerfile
container_name: fiscad-app container_name: fiscad-app
restart: on-failure restart: on-failure
depends_on: depends_on:
- db db:
condition: service_healthy
environment: environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/${POSTGRES_DB_FISCAD} SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/${POSTGRES_DB_FISCAD}

View File

@@ -3,8 +3,8 @@ package io.gmss.fiscad.component;
import io.gmss.fiscad.entities.user.Role; import io.gmss.fiscad.entities.user.Role;
import io.gmss.fiscad.entities.user.User; import io.gmss.fiscad.entities.user.User;
import io.gmss.fiscad.enums.UserRole; import io.gmss.fiscad.enums.UserRole;
import io.gmss.fiscad.repositories.user.RoleRepository; import io.gmss.fiscad.persistence.repositories.user.RoleRepository;
import io.gmss.fiscad.repositories.user.UserRepository; import io.gmss.fiscad.persistence.repositories.user.UserRepository;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;
@@ -20,10 +20,10 @@ public class DataLoadConfig {
private final UserRepository userRepository; private final UserRepository userRepository;
private final PasswordEncoder passwordEncoder; private final PasswordEncoder passwordEncoder;
@Value(value = "app.default-user.username") @Value("${app.default-user.username}")
private String usernameFile; private String usernameFile;
@Value(value = "app.default-user.password") @Value("${app.default-user.password}")
private String passwordFile; private String passwordFile;
@@ -42,17 +42,13 @@ public class DataLoadConfig {
public void loadRoles() { public void loadRoles() {
if (roleRepository.count() > 0) return; if (roleRepository.count() > 0) return;
Set<Role> roles = new HashSet<>(); Set<Role> roles = new HashSet<>();
roles.add(new Role(UserRole.ROLE_USER, "Role attribué aux utilisateurs simples.")); roles.add(new Role(UserRole.CREATE_USER, "Peut créer un utilisation."));
roles.add(new Role(UserRole.ROLE_ADMIN, "Role attribué aux administrateurs du système.")); roles.add(new Role(UserRole.READ_USER, "peut lire un utilisation"));
roles.add(new Role(UserRole.ROLE_DIRECTEUR, "Role attribué aux directeurs des structures.")); roles.add(new Role(UserRole.UPDATE_USER, "peut modifier un utilisation"));
roles.add(new Role(UserRole.ROLE_SUPERVISEUR, "Role attribué aux superviseurs des structures sur le terrain.")); roles.add(new Role(UserRole.DELETE_USER, "peut supprimer un utilisation"));
roles.add(new Role(UserRole.ROLE_ENQUETEUR, "Role attribué aux enquêteurs des structures sur le terrain."));
roles.add(new Role(UserRole.ROLE_ANONYMOUS, "Role attribué à toutes les personnes qui s'inscrivent en ligne pour le compte d'une structure."));
roleRepository.saveAll(roles); roleRepository.saveAll(roles);
} }
public void loadUsers() { public void loadUsers() {
@@ -65,9 +61,6 @@ public class DataLoadConfig {
admin.setPrenom("Principal"); admin.setPrenom("Principal");
admin.setPassword(passwordEncoder.encode(passwordFile)); admin.setPassword(passwordEncoder.encode(passwordFile));
admin.setActive(true); admin.setActive(true);
Set<Role> roles = new HashSet<>();
roles.add(roleRepository.findRoleByNom(UserRole.ROLE_ADMIN).get());
admin.setRoles(roles);
userRepository.save(admin); userRepository.save(admin);
} }
} }

View File

@@ -1,7 +1,7 @@
package io.gmss.fiscad.configuration; package io.gmss.fiscad.configuration;
import io.gmss.fiscad.repositories.user.UserRepository; import io.gmss.fiscad.persistence.repositories.user.UserRepository;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.data.domain.AuditorAware; import org.springframework.data.domain.AuditorAware;

View File

@@ -1,6 +1,6 @@
package io.gmss.fiscad.configuration; package io.gmss.fiscad.configuration;
import io.gmss.fiscad.repositories.user.UserRepository; import io.gmss.fiscad.persistence.repositories.user.UserRepository;
import io.gmss.fiscad.security.UserPrincipal; import io.gmss.fiscad.security.UserPrincipal;
import org.springframework.data.domain.AuditorAware; import org.springframework.data.domain.AuditorAware;
import org.springframework.security.authentication.AnonymousAuthenticationToken; import org.springframework.security.authentication.AnonymousAuthenticationToken;

View File

@@ -48,7 +48,7 @@ import io.swagger.v3.oas.annotations.servers.Server;
) )
@SecurityScheme( @SecurityScheme(
name = "bearer", name = "bearer",
description = "Authentification Json Web Token", description = "Authentification Json BatimentPaylaodWeb Token",
scheme = "Bearer", scheme = "Bearer",
type = SecuritySchemeType.HTTP, type = SecuritySchemeType.HTTP,
bearerFormat = "JWT", bearerFormat = "JWT",

View File

@@ -27,7 +27,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer") @SecurityRequirement(name = "bearer")
@Tag(name = "Arrondissement") @Tag(name = "Arrondissement")
@CrossOrigin(origins = "*") @CrossOrigin(origins = "*")
@PreAuthorize("hasRole('ADMIN') or hasRole('ROLE_SUPERVISEUR')") //@PreAuthorize("hasRole('ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class ArrondissementController { public class ArrondissementController {
private final ArrondissementService arrondissementService; private final ArrondissementService arrondissementService;
@@ -175,7 +175,7 @@ public class ArrondissementController {
public ResponseEntity<?> getArrondissementById(@PathVariable Long id) { public ResponseEntity<?> getArrondissementById(@PathVariable Long id) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, arrondissementService.getArrondissementById(id), "Arrondissement trouvé avec succès."), new ApiResponse<>(true, arrondissementService.getArrondissementById(id).orElse(null), "Arrondissement trouvé avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -199,7 +199,31 @@ public class ArrondissementController {
public ResponseEntity<?> getArrondissementByCommune(@PathVariable Long communeId) { public ResponseEntity<?> getArrondissementByCommune(@PathVariable Long communeId) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, arrondissementService.getArrondissementByComune(communeId), "Liste des arrondissements par commune chargée avec succès."), new ApiResponse<>(true, arrondissementService.getArrondissementListByCommuneId(communeId), "Liste des arrondissements par commune 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("/page/commune/{communeId}")
public ResponseEntity<?> getArrondissementByCommune(@PathVariable Long communeId,@RequestParam int pageNo, @RequestParam int pageSize) {
try {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, arrondissementService.getArrondissementListByCommuneId(communeId,pageable), "Liste des arrondissements par commune chargée avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {

View File

@@ -26,7 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer") @SecurityRequirement(name = "bearer")
@Tag(name = "Commune") @Tag(name = "Commune")
@CrossOrigin(origins = "*") @CrossOrigin(origins = "*")
@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')") //@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class CommuneController { public class CommuneController {
private final CommuneService communeService; private final CommuneService communeService;
@@ -185,7 +185,31 @@ public class CommuneController {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, communeService.getCommunesByDepartement(departementId), "Liste des communes par département chargée avec succès."), new ApiResponse<>(true, communeService.getCommunesByDepartementId(departementId), "Liste des communes par département 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("/page/by-departement-id/{departementId}")
public ResponseEntity<?> getCommuneByDepartementIdPaged(@PathVariable Long departementId,@RequestParam int pageNo, @RequestParam int pageSize) {
try {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, communeService.getCommunesByDepartementId(departementId,pageable), "Liste des communes par département chargée avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {

View File

@@ -26,7 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer") @SecurityRequirement(name = "bearer")
@Tag(name = "Département") @Tag(name = "Département")
@CrossOrigin(origins = "*") @CrossOrigin(origins = "*")
@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')") //@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class DepartementController { public class DepartementController {
private final DepartementService departementService; private final DepartementService departementService;

View File

@@ -26,7 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer") @SecurityRequirement(name = "bearer")
@Tag(name = "Nationalité") @Tag(name = "Nationalité")
@CrossOrigin(origins = "*") @CrossOrigin(origins = "*")
@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')") //@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class NationaliteController { public class NationaliteController {
private final NationaliteService nationaliteService; private final NationaliteService nationaliteService;

View File

@@ -26,7 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer") @SecurityRequirement(name = "bearer")
@Tag(name = "Quartier") @Tag(name = "Quartier")
@CrossOrigin(origins = "*") @CrossOrigin(origins = "*")
@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')") //@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class QuartierController { public class QuartierController {
private final QuartierService quartierService; private final QuartierService quartierService;
@@ -158,7 +158,7 @@ public class QuartierController {
public ResponseEntity<?> getQuartierById(@PathVariable Long id) { public ResponseEntity<?> getQuartierById(@PathVariable Long id) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, quartierService.getQuartierById(id), "Quartier trouvé avec succès."), new ApiResponse<>(true, quartierService.getQuartierById(id).orElse(null), "Quartier trouvé avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -182,7 +182,31 @@ public class QuartierController {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, quartierService.getQuartierByArrondissement(arrondissementId), "Liste des quartiers par commune chargée avec succès."), new ApiResponse<>(true, quartierService.getQuartierListByArrondissementId(arrondissementId), "Liste des quartiers par commune 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("/page/arrondissement/{arrondissementId}")
public ResponseEntity<?> getQuartierByArrondissementPaged(@PathVariable Long arrondissementId,@RequestParam int pageNo, @RequestParam int pageSize) {
try {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, quartierService.getQuartierListByArrondissementId(arrondissementId,pageable), "Liste des quartiers par commune chargée avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {

View File

@@ -4,7 +4,9 @@ import io.gmss.fiscad.entities.decoupage.Secteur;
import io.gmss.fiscad.exceptions.*; import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.decoupage.SecteurService; import io.gmss.fiscad.interfaces.decoupage.SecteurService;
import io.gmss.fiscad.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.request.SecteurPayload; import io.gmss.fiscad.paylaods.request.crudweb.SecteurPaylaodWeb;
import io.gmss.fiscad.paylaods.request.synchronisation.SecteurPayload;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import org.slf4j.Logger; import org.slf4j.Logger;
@@ -24,7 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@RequestMapping(value = "api/secteur", produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "api/secteur", produces = MediaType.APPLICATION_JSON_VALUE)
//@SecurityRequirement(name = "bearer") //@SecurityRequirement(name = "bearer")
@Tag(name = "Secteur") @Tag(name = "Secteur")
@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')") //@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class SecteurController { public class SecteurController {
private final SecteurService secteurService; private final SecteurService secteurService;
@@ -34,14 +36,16 @@ public class SecteurController {
this.secteurService = secteurService; this.secteurService = secteurService;
} }
@Operation(
summary = "Créer un secteur",
description = "Permet de Créer un secteur"
)
@PostMapping("/create") @PostMapping("/create")
public ResponseEntity<?> createSecteur(@RequestBody @Valid @Validated SecteurPayload secteurPayload) { public ResponseEntity<?> createSecteur(@RequestBody @Valid @Validated SecteurPaylaodWeb secteurPaylaodWeb) {
try { try {
// Secteur secteur=getSecteurFromPayload(secteurPayload); secteurPaylaodWeb = secteurService.createSecteur(secteurPaylaodWeb);
Secteur secteur = secteurService.createSecteur(secteurPayload);
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, secteur, "Secteur créé avec succès."), new ApiResponse<>(true, secteurPaylaodWeb, "Secteur créé avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -60,12 +64,15 @@ public class SecteurController {
} }
} }
@Operation(
summary = "mettre à jour un secteur",
description = "Permet de modifier un secteur"
)
@PutMapping("/update/{id}") @PutMapping("/update/{id}")
public ResponseEntity<?> updateSecteur(@PathVariable Long id, @RequestBody SecteurPayload secteurPayload) { public ResponseEntity<?> updateSecteur(@PathVariable Long id, @RequestBody SecteurPaylaodWeb secteurPayloadWeb) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, secteurService.updateSecteur(id, secteurPayload), "Secteur mis à jour avec succès."), new ApiResponse<>(true, secteurService.updateSecteur(id, secteurPayloadWeb), "Secteur mis à jour avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -83,7 +90,10 @@ public class SecteurController {
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 = "supprimer un secteur",
description = "Permet de supprimer un secteur"
)
@DeleteMapping("/delete/{id}") @DeleteMapping("/delete/{id}")
public ResponseEntity<?> deleteSecteurr(@PathVariable Long id) { public ResponseEntity<?> deleteSecteurr(@PathVariable Long id) {
try { try {
@@ -107,7 +117,10 @@ public class SecteurController {
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 = "recuperer tous les secteurs",
description = "Permet de récuperer l'ensemble des secteurs"
)
@GetMapping("/all") @GetMapping("/all")
public ResponseEntity<?> getAllSecteurList() { public ResponseEntity<?> getAllSecteurList() {
try { try {
@@ -131,6 +144,10 @@ public class SecteurController {
} }
} }
@Operation(
summary = "recuperer tous les secteurs avec pagination",
description = "Permet de récuperer l'ensemble des secteurs avec pagination"
)
@GetMapping("/all-paged") @GetMapping("/all-paged")
public ResponseEntity<?> getAllSecteurPaged(@RequestParam int pageNo, @RequestParam int pageSize) { public ResponseEntity<?> getAllSecteurPaged(@RequestParam int pageNo, @RequestParam int pageSize) {
try { try {
@@ -155,6 +172,10 @@ public class SecteurController {
} }
} }
@Operation(
summary = "recuperer un secteurs par son ID ",
description = "Permet de récuperer le secteur ayant l'ID fournie en path"
)
@GetMapping("/id/{id}") @GetMapping("/id/{id}")
public ResponseEntity<?> getSecteurById(@PathVariable Long id) { public ResponseEntity<?> getSecteurById(@PathVariable Long id) {
try { try {
@@ -178,12 +199,15 @@ public class SecteurController {
} }
} }
@Operation(
summary = "recuperer tous les secteurs d'une structure",
description = "Permet de récuperer l'ensemble des secteurs de la structure dont l'ID est fourni en path"
)
@GetMapping("/by-structure-id/{structureId}") @GetMapping("/by-structure-id/{structureId}")
public ResponseEntity<?> getSecteurByStructureId(@PathVariable Long structureId) { public ResponseEntity<?> getSecteurByStructureId(@PathVariable Long structureId) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, secteurService.getSecteurListUneStruture(structureId), "Secteur trouvée avec succès."), new ApiResponse<>(true, secteurService.getSecteurListByStructureId(structureId), "Secteur trouvée avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -203,4 +227,92 @@ public class SecteurController {
} }
@Operation(
summary = "recuperer tous les secteurs d'une structure",
description = "Permet de récuperer l'ensemble des secteurs de la structure dont l'ID est fourni en path avec pagination"
)
@GetMapping("/page/by-structure-id/{structureId}")
public ResponseEntity<?> getSecteurByStructureIdPage(@PathVariable Long structureId, @RequestParam int pageNo, @RequestParam int pageSize) {
try {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, secteurService.getSecteurListByStructureId(structureId,pageable), "Secteur 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) {
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 = "recuperer tous les secteurs d'une section",
description = "Permet de récuperer l'ensemble des secteurs de la section dont l'ID est fourni en path"
)
@GetMapping("/by-section-id/{sectionId}")
public ResponseEntity<?> getSecteurBySectionId(@PathVariable Long sectionId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, secteurService.getSecteurListBySectionId(sectionId), "Secteur 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) {
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 = "recuperer tous les secteurs d'une section avec pagination",
description = "Permet de récuperer l'ensemble des secteurs de la section dont l'ID est fourni en path avec pagination"
)
@GetMapping("/page/by-section-id/{sectionId}")
public ResponseEntity<?> getSecteurBySectionIdPage(@PathVariable Long sectionId, @RequestParam int pageNo, @RequestParam int pageSize) {
try {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, secteurService.getSecteurListBySectionId(sectionId,pageable), "Secteur 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) {
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);
}
}
} }

View File

@@ -3,10 +3,13 @@ package io.gmss.fiscad.controllers.decoupage;
import io.gmss.fiscad.entities.decoupage.SecteurDecoupage; import io.gmss.fiscad.entities.decoupage.SecteurDecoupage;
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.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.request.crudweb.SecteurDecoupagePaylaodWeb;
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;
import lombok.AllArgsConstructor;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
@@ -18,29 +21,26 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.HttpClientErrorException;
@AllArgsConstructor
@RestController @RestController
@RequestMapping(value = "api/secteur-decoupage", produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "api/secteur-decoupage", produces = MediaType.APPLICATION_JSON_VALUE)
@SecurityRequirement(name = "bearer") @SecurityRequirement(name = "bearer")
@Tag(name = "SecteurDecoupage") @Tag(name = "SecteurDecoupage")
@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')") //@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class SecteurDecoupageController { public class SecteurDecoupageController {
private final SecteurDecoupageService secteurDecoupageService; private final SecteurDecoupageService secteurDecoupageService;
private final SecteurService secteurService;
private static final Logger logger = LoggerFactory.getLogger(SecteurDecoupageController.class); private static final Logger logger = LoggerFactory.getLogger(SecteurDecoupageController.class);
public SecteurDecoupageController(SecteurDecoupageService secteurDecoupageService) {
this.secteurDecoupageService = secteurDecoupageService;
}
@PostMapping("/create") @PostMapping("/create")
public ResponseEntity<?> createSecteurDecoupage(@RequestBody @Valid @Validated SecteurDecoupage secteurDecoupage) { public ResponseEntity<?> createSecteurDecoupage(@RequestBody @Valid @Validated SecteurDecoupagePaylaodWeb secteurDecoupagePaylaodWeb) {
try { try {
secteurDecoupage = secteurDecoupageService.createSecteurDecoupage(secteurDecoupage); secteurDecoupagePaylaodWeb = secteurDecoupageService.createSecteurDecoupage(secteurDecoupagePaylaodWeb);
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, secteurDecoupage, "SecteurDecoupage créé avec succès."), new ApiResponse<>(true, secteurDecoupagePaylaodWeb, "SecteurDecoupage créé avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -60,10 +60,10 @@ public class SecteurDecoupageController {
} }
@PutMapping("/update/{id}") @PutMapping("/update/{id}")
public ResponseEntity<?> updateSecteurDecoupage(@PathVariable Long id, @RequestBody SecteurDecoupage secteurDecoupage) { public ResponseEntity<?> updateSecteurDecoupage(@PathVariable Long id, @RequestBody SecteurDecoupagePaylaodWeb secteurDecoupagePaylaodWeb) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, secteurDecoupageService.updateSecteurDecoupage(id, secteurDecoupage), "SecteurDecoupage mis à jour avec succès."), new ApiResponse<>(true, secteurDecoupageService.updateSecteurDecoupage(id, secteurDecoupagePaylaodWeb), "SecteurDecoupage mis à jour avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -153,11 +153,82 @@ public class SecteurDecoupageController {
} }
} }
@GetMapping("/by-secteur-id/{secteurId}")
public ResponseEntity<?> getAllSecteurDecoupageListBySecteurId(@PathVariable Long secteurId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, secteurDecoupageService.getSecteurDecoupageListBySecteurId(secteurId), "Liste des secteurDecoupages 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("/page/by-secteur-decoupage-id/{secteurId}")
public ResponseEntity<?> getAllSecteurDecoupageListBySecteurIdPaged(@PathVariable Long secteurId, @RequestParam int pageNo, @RequestParam int pageSize) {
try {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, secteurDecoupageService.getSecteurDecoupageListBySecteurId(secteurId,pageable), "Liste des secteurDecoupages 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("/id/{id}") @GetMapping("/id/{id}")
public ResponseEntity<?> getSecteurDecoupageById(@PathVariable Long id) { public ResponseEntity<?> getSecteurDecoupageById(@PathVariable Long id) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, secteurDecoupageService.getSecteurDecoupageById(id), "SecteurDecoupage trouvée avec succès."), new ApiResponse<>(true, secteurDecoupageService.getSecteurDecoupageByIdToDto(id), "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) {
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("/arbre/user-id/{userId}")
public ResponseEntity<?> getArborescenceByUserId(@PathVariable Long userId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, secteurDecoupageService.getStatParcelleDecoupageByUserId(userId), "SecteurDecoupage trouvée avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {

View File

@@ -0,0 +1,255 @@
package io.gmss.fiscad.controllers.decoupage;
import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.decoupage.SectionService;
import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.request.crudweb.SectionPaylaodWeb;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@RestController
@RequestMapping(value = "api/section", produces = MediaType.APPLICATION_JSON_VALUE)
//@SecurityRequirement(name = "bearer")
@Tag(name = "Section")
//@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class SectionController {
private final SectionService sectionService;
private static final Logger logger = LoggerFactory.getLogger(SectionController.class);
public SectionController(SectionService sectionService) {
this.sectionService = sectionService;
}
@Operation(
summary = "Créer un section",
description = "Permet de Créer un section"
)
@PostMapping("/create")
public ResponseEntity<?> createSection(@RequestBody @Valid @Validated SectionPaylaodWeb sectionPaylaodWeb) {
try {
sectionPaylaodWeb = sectionService.createSection(sectionPaylaodWeb);
return new ResponseEntity<>(
new ApiResponse<>(true, sectionPaylaodWeb, "Section créé 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);
}
}
@Operation(
summary = "mettre à jour un section",
description = "Permet de modifier un section"
)
@PutMapping("/update/{id}")
public ResponseEntity<?> updateSection(@PathVariable Long id, @RequestBody SectionPaylaodWeb sectionPayloadWeb) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, sectionService.updateSection(id, sectionPayloadWeb), "Section mis à jour 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);
}
}
@Operation(
summary = "supprimer un section",
description = "Permet de supprimer un section"
)
@DeleteMapping("/delete/{id}")
public ResponseEntity<?> deleteSection(@PathVariable Long id) {
try {
sectionService.deleteSection(id);
return new ResponseEntity<>(
new ApiResponse<>(true, "Section supprimé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);
}
}
@Operation(
summary = "recuperer tous les sections",
description = "Permet de récuperer l'ensemble des sections"
)
@GetMapping("/all")
public ResponseEntity<?> getAllSectionList() {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, sectionService.getSectionList(), "Liste des sections 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);
}
}
@Operation(
summary = "recuperer tous les sections avec pagination",
description = "Permet de récuperer l'ensemble des sections avec pagination"
)
@GetMapping("/all-paged")
public ResponseEntity<?> getAllSectionPaged(@RequestParam int pageNo, @RequestParam int pageSize) {
try {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, sectionService.getSectionList(pageable), "Liste des sections 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);
}
}
@Operation(
summary = "recuperer un sections par son ID ",
description = "Permet de récuperer le section ayant l'ID fournie en path"
)
@GetMapping("/id/{id}")
public ResponseEntity<?> getSectionById(@PathVariable Long id) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, sectionService.getSectionById(id).orElse(null), "Section 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) {
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 = "recuperer tous les sections d'une structure",
description = "Permet de récuperer l'ensemble des sections de la structure dont l'ID est fourni en path"
)
@GetMapping("/by-structure-id/{structureId}")
public ResponseEntity<?> getSectionByStructureId(@PathVariable Long structureId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, sectionService.getSectionListByStructureId(structureId), "Section 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) {
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 = "recuperer tous les sections d'une structure",
description = "Permet de récuperer l'ensemble des sections de la structure dont l'ID est fourni en path avec pagination"
)
@GetMapping("/page/by-structure-id/{structureId}")
public ResponseEntity<?> getSectionByStructureIdPage(@PathVariable Long structureId, @RequestParam int pageNo, @RequestParam int pageSize) {
try {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, sectionService.getSectionListByStructureId(structureId,pageable), "Section 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) {
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);
}
}
}

View File

@@ -5,7 +5,7 @@ import io.gmss.fiscad.entities.infocad.metier.Commentaire;
import io.gmss.fiscad.exceptions.*; import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.infocad.metier.CommentaireService; import io.gmss.fiscad.interfaces.infocad.metier.CommentaireService;
import io.gmss.fiscad.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.request.CommentaireRequest; import io.gmss.fiscad.paylaods.request.synchronisation.CommentaireRequest;
import io.gmss.fiscad.paylaods.request.SyncCommentaireRequest; import io.gmss.fiscad.paylaods.request.SyncCommentaireRequest;
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;
@@ -229,7 +229,7 @@ public class CommentaireController {
} }
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
@PostMapping("/all-by-params") @PostMapping("/all-by-params")
//@ApiOperation(value = "Cette ressource permet d'avoir 4 résultats différents. \n 1 - Liste des commentaires non lus provenant du Web. \n 2 - Liste des commentaires lus provenant du Web \n 3 - Liste des commentaires non lus provenant du mobile. \n 4 - Liste des commentaires lus provenant du mobile. \n A savoir : Les variables Origine et lu sont à varier pour avoir le résultat") //@ApiOperation(value = "Cette ressource permet d'avoir 4 résultats différents. \n 1 - Liste des commentaires non lus provenant du BatimentPaylaodWeb. \n 2 - Liste des commentaires lus provenant du BatimentPaylaodWeb \n 3 - Liste des commentaires non lus provenant du mobile. \n 4 - Liste des commentaires lus provenant du mobile. \n A savoir : Les variables Origine et lu sont à varier pour avoir le résultat")
public ResponseEntity<?> getcommentaireByParams(@RequestBody CommentaireRequest commentaireRequest) { public ResponseEntity<?> getcommentaireByParams(@RequestBody CommentaireRequest commentaireRequest) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
@@ -277,7 +277,7 @@ public class CommentaireController {
} }
@PostMapping("synchronise/from-web") @PostMapping("synchronise/from-web")
//@ApiOperation(value = "Cette ressource permet d'avoir 4 résultats différents. \n 1 - Liste des commentaires non synchronisés provenant du Web. \n 2 - Liste des commentaires synchronisés provenant du Web \n 3 - Liste des commentaires non synchronisés provenant du mobile. \n 4 - Liste des commentaires synchronisés provenant du mobile. \n A savoir : Les variables Origine et Synchronise sont à varier pour avoir le résultat") //@ApiOperation(value = "Cette ressource permet d'avoir 4 résultats différents. \n 1 - Liste des commentaires non synchronisés provenant du BatimentPaylaodWeb. \n 2 - Liste des commentaires synchronisés provenant du BatimentPaylaodWeb \n 3 - Liste des commentaires non synchronisés provenant du mobile. \n 4 - Liste des commentaires synchronisés provenant du mobile. \n A savoir : Les variables Origine et Synchronise sont à varier pour avoir le résultat")
public ResponseEntity<?> synchroniseCommentairesFromWeb(@RequestBody CommentaireRequest commentaireRequest) { public ResponseEntity<?> synchroniseCommentairesFromWeb(@RequestBody CommentaireRequest commentaireRequest) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(

View File

@@ -1,11 +1,16 @@
package io.gmss.fiscad.controllers.infocad.metier; package io.gmss.fiscad.controllers.infocad.metier;
import io.gmss.fiscad.entities.infocad.metier.Enquete;
import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
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;
import io.gmss.fiscad.paylaods.request.EnquetePayLoad; import io.gmss.fiscad.paylaods.request.crudweb.EnqueteBatimentPayloadWeb;
import io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb;
import io.gmss.fiscad.paylaods.request.synchronisation.EnquetePayLoad;
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.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;
import jakarta.validation.Valid; import jakarta.validation.Valid;
@@ -28,7 +33,7 @@ import java.util.List;
@SecurityRequirement(name = "bearer") @SecurityRequirement(name = "bearer")
@Tag(name = "Enquête") @Tag(name = "Enquête")
@CrossOrigin(origins = "*") @CrossOrigin(origins = "*")
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") //@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
public class EnqueteController { public class EnqueteController {
private final EnqueteService enqueteService; private final EnqueteService enqueteService;
@@ -41,20 +46,51 @@ public class EnqueteController {
@PostMapping("/create") @PostMapping("/create")
public ResponseEntity<?> createStructure(@RequestBody @Valid @Validated EnquetePayLoad enquetePayLoad) { public ResponseEntity<?> createEnquete(@RequestBody @Valid @Validated EnquetePayLoadWeb enquetePayLoadWeb) {
// try{ try {
// enquete = enqueteService.createEnquete(enquete); Enquete enquete = enqueteService.createEnquete(enquetePayLoadWeb);
// return new ResponseEntity<>( return new ResponseEntity<>(
// new ApiResponse<>(true, structure, "Structure créé avec succès."), new ApiResponse<>(true, enquete, "Enquete batiment créé avec succès."),
// HttpStatus.OK HttpStatus.OK
// ); );
// }catch (Exception e){ } catch (HttpClientErrorException.MethodNotAllowed e) {
// return new ResponseEntity<>( logger.error(e.getLocalizedMessage());
// new ApiResponse<>(false, e.getMessage()), return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
// HttpStatus.OK } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
// ); FileStorageException e) {
// } logger.error(e.getLocalizedMessage());
return null; 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);
}
}
@PutMapping("/update/{id}")
public ResponseEntity<?> updateEnquete(@PathVariable Long id, @RequestBody EnquetePayLoadWeb enquetePayLoadWeb) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, enqueteService.updateEnquete(id,enquetePayLoadWeb), "Enquete batiment mise à jour 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);
}
} }
@PutMapping("/validation") @PutMapping("/validation")
@@ -172,6 +208,35 @@ public class EnqueteController {
} }
} }
@Operation(
summary = "Récupérer les enquetes d'une parcelle",
description = "Permet de récuperer les enquêtes déjà réalisées sur une parcelles"
)
@GetMapping("/all/by-parcelle-id/{parcelleId}")
public ResponseEntity<?> getAllByEnqueteDecoupageAdmin(@PathVariable Long parcelleId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, enqueteService.getEnqueteListByParcelle(parcelleId), "Liste des enquetes 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/dgi/decoupage-admin-for-enquete") @GetMapping("/all/dgi/decoupage-admin-for-enquete")
public ResponseEntity<?> getAllByEnqueteDecoupageAdminForDgi() { public ResponseEntity<?> getAllByEnqueteDecoupageAdminForDgi() {

View File

@@ -0,0 +1,248 @@
package io.gmss.fiscad.controllers.infocad.metier;
import io.gmss.fiscad.entities.infocad.metier.Enquete;
import io.gmss.fiscad.entities.infocad.metier.Parcelle;
import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.infocad.metier.EnqueteService;
import io.gmss.fiscad.interfaces.infocad.metier.ParcelleService;
import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.request.EnqueteTraitementPayLoad;
import io.gmss.fiscad.paylaods.request.FiltreEnquetePayLoad;
import io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb;
import io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
import java.util.List;
@RestController
@RequestMapping(value = "api/parcelle", produces = MediaType.APPLICATION_JSON_VALUE)
@SecurityRequirement(name = "bearer")
@Tag(name = "Parcelle")
@CrossOrigin(origins = "*")
//@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
public class ParcelleController {
private final EnqueteService enqueteService;
private final ParcelleService parcelleService;
private static final Logger logger = LoggerFactory.getLogger(ParcelleController.class);
public ParcelleController(EnqueteService enqueteService, ParcelleService parcelleService) {
this.enqueteService = enqueteService;
this.parcelleService = parcelleService;
}
@PostMapping("/create")
public ResponseEntity<?> createParcelle(@RequestBody @Valid @Validated ParcellePayLoadWeb parcellePayLoadWeb) {
try {
Parcelle parcelle = parcelleService.createParcelle(parcellePayLoadWeb);
return new ResponseEntity<>(
new ApiResponse<>(true, parcelle, "parcelle créé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);
}
}
@PutMapping("/update/{id}")
public ResponseEntity<?> updateEnquete(@PathVariable Long id, @RequestBody ParcellePayLoadWeb parcellePayLoadWeb) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, parcelleService.updateParcelle(id,parcellePayLoadWeb), "parcelle mise à jour 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);
}
}
@DeleteMapping("/delete/{id}")
public ResponseEntity<?> deleteStructurer(@PathVariable Long id) {
try {
parcelleService.deleteParcelle(id);
return new ResponseEntity<>(
new ApiResponse<>(true, "parcelle supprimé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")
public ResponseEntity<?> getAllParcelle() {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, parcelleService.getParcelleList(), "Liste des enquetes 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/by-decoupage")
public ResponseEntity<?> getAllByDecoupage() {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, enqueteService.getEnqueteCommuneArrondBloc(), "Liste des enquetes 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")
public ResponseEntity<?> getAllEnquetePaged(@RequestParam int pageNo, @RequestParam int pageSize) {
try {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, parcelleService.getParcelleList(pageable), "Liste des enquetes 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("/id/{id}")
public ResponseEntity<?> getStructureById(@PathVariable Long id) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, parcelleService.getParcelleById(id), "enquete trouvé 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("/user-id/{userId}")
public ResponseEntity<?> getParcellesByUserId(@PathVariable Long userId,@RequestParam int pageNo, @RequestParam int pageSize) {
try {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, parcelleService.getParcelleDataTableListByUserId(userId,pageable), "enquete trouvé 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);
}
}
}

View File

@@ -1,28 +1,85 @@
package io.gmss.fiscad.controllers.infocad.metier; package io.gmss.fiscad.controllers.infocad.metier;
import io.gmss.fiscad.entities.infocad.metier.Enquete;
import io.gmss.fiscad.entities.infocad.parametre.Personne;
import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.infocad.metier.PersonneService; import io.gmss.fiscad.interfaces.infocad.metier.PersonneService;
import io.gmss.fiscad.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.dto.PersonneCompletDTO; import io.gmss.fiscad.paylaods.dto.PersonneCompletDTO;
import io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb;
import io.gmss.fiscad.paylaods.request.crudweb.PersonnePayLoadWeb;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.bind.annotation.RestController;
import java.util.Optional;
@RestController @RestController
@RequestMapping(value = "api/personne", produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "api/personne", produces = MediaType.APPLICATION_JSON_VALUE)
@RequiredArgsConstructor @RequiredArgsConstructor
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") //@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
public class PersonneController { public class PersonneController {
private static final Logger logger = LoggerFactory.getLogger(PersonneController.class);
private final PersonneService personneService; private final PersonneService personneService;
@PostMapping("/create")
public ResponseEntity<?> createPersonne(@RequestBody @Valid @Validated PersonnePayLoadWeb personnePayLoadWeb) {
try {
Personne personne = personneService.createPersonne(personnePayLoadWeb);
return new ResponseEntity<>(
new ApiResponse<>(true, personne, "Contribuable créé 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);
}
}
@PutMapping("/update/{id}")
public ResponseEntity<?> updatePersonne(@PathVariable Long id, @RequestBody PersonnePayLoadWeb personnePayLoadWeb) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, personneService.updatePersonne(id,personnePayLoadWeb), "Personne mise à jour 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("/get-details/{id}") @GetMapping("/get-details/{id}")
public ResponseEntity<?> getDetails(@PathVariable Long id) { public ResponseEntity<?> getDetails(@PathVariable Long id) {
try{ try{
@@ -38,4 +95,20 @@ public class PersonneController {
); );
} }
} }
@GetMapping("/id/{id}")
public ResponseEntity<?> getPersonneById(@PathVariable Long id) {
try{
Optional<Personne> optionalPersonne= personneService.getPersonneById(id);
return new ResponseEntity<>(
new ApiResponse<>(true, optionalPersonne.orElse(null), "Personne retrouvée avec succès."),
HttpStatus.OK
);
}catch (Exception e){
return new ResponseEntity<>(
new ApiResponse<>(false, e.getMessage()),
HttpStatus.OK
);
}
}
} }

View File

@@ -4,7 +4,7 @@ import io.gmss.fiscad.entities.infocad.metier.Upload;
import io.gmss.fiscad.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.JobModels; import io.gmss.fiscad.paylaods.JobModels;
import io.gmss.fiscad.proprietes.ZipStorageProperties; import io.gmss.fiscad.proprietes.ZipStorageProperties;
import io.gmss.fiscad.repositories.infocad.metier.UploadRepository; import io.gmss.fiscad.persistence.repositories.infocad.metier.UploadRepository;
import io.gmss.fiscad.service.FileStorageService; import io.gmss.fiscad.service.FileStorageService;
import io.gmss.fiscad.service.StringManager; import io.gmss.fiscad.service.StringManager;
import io.gmss.fiscad.service.ZipAsyncService; import io.gmss.fiscad.service.ZipAsyncService;

View File

@@ -6,6 +6,7 @@ import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.decoupage.ArrondissementService; import io.gmss.fiscad.interfaces.decoupage.ArrondissementService;
import io.gmss.fiscad.interfaces.infocad.parametre.StructureService; import io.gmss.fiscad.interfaces.infocad.parametre.StructureService;
import io.gmss.fiscad.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.request.crudweb.StructurePaylaodWeb;
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;
@@ -27,7 +28,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer") @SecurityRequirement(name = "bearer")
@Tag(name = "Structure") @Tag(name = "Structure")
@CrossOrigin(origins = "*") @CrossOrigin(origins = "*")
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") //@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
public class StructureController { public class StructureController {
private final StructureService structureService; private final StructureService structureService;
@@ -40,11 +41,11 @@ public class StructureController {
} }
@PostMapping("/create") @PostMapping("/create")
public ResponseEntity<?> createStructure(@RequestBody @Valid @Validated Structure structure) { public ResponseEntity<?> createStructure(@RequestBody StructurePaylaodWeb structurePaylaodWeb) {
try { try {
structure = structureService.createStructure(structure); structurePaylaodWeb = structureService.createStructure(structurePaylaodWeb);
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, structure, "Structure créé avec succès."), new ApiResponse<>(true, structurePaylaodWeb, "Structure créé avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -64,10 +65,10 @@ public class StructureController {
} }
@PutMapping("/update/{id}") @PutMapping("/update/{id}")
public ResponseEntity<?> updateStructure(@PathVariable Long id, @RequestBody Structure structure) { public ResponseEntity<?> updateStructure(@PathVariable Long id, @RequestBody StructurePaylaodWeb structurePaylaodWeb) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, structureService.updateStructure(id, structure), "Structure mise à jour avec succès."), new ApiResponse<>(true, structureService.updateStructure(id, structurePaylaodWeb), "Structure mise à jour avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -134,36 +135,6 @@ public class StructureController {
} }
@GetMapping("/all-by-arrondissement")
public ResponseEntity<?> getAllStructureListByArrondissement(@RequestParam Long arrondissementId) {
try {
if (arrondissementService.getArrondissementById(arrondissementId).isPresent()) {
return new ResponseEntity<>(
new ApiResponse<>(true, structureService.getStructuresByArrondissement(arrondissementId), "Liste des structures chargée avec succès."),
HttpStatus.OK
);
} else {
return new ResponseEntity<>(
new ApiResponse<>(false, "Impossible de trouver l'arrondissement spécifiée."),
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") @GetMapping("/all-paged")
public ResponseEntity<?> getAllStructurePaged(@RequestParam int pageNo, @RequestParam int pageSize) { public ResponseEntity<?> getAllStructurePaged(@RequestParam int pageNo, @RequestParam int pageSize) {
try { try {
@@ -189,6 +160,53 @@ public class StructureController {
} }
@GetMapping("/by-commune/{communeId}")
public ResponseEntity<?> getAllStructureListByCommune(@PathVariable Long communeId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, structureService.getStructureListByCommuneId(communeId), "Liste des structures 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("/page/by-commune/{communeId}")
public ResponseEntity<?> getAllStructureListByCommunePageable(@PathVariable Long communeId, @RequestParam int pageNo, @RequestParam int pageSize) {
try {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, structureService.getStructureListByCommuneId(communeId,pageable), "Liste des structures 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("/id/{id}") @GetMapping("/id/{id}")
public ResponseEntity<?> getStructureById(@PathVariable Long id) { public ResponseEntity<?> getStructureById(@PathVariable Long id) {
try { try {

View File

@@ -7,8 +7,8 @@ package io.gmss.fiscad.controllers.report;
import io.gmss.fiscad.enums.FormatRapport; import io.gmss.fiscad.enums.FormatRapport;
import io.gmss.fiscad.paylaods.request.FiltreEnquetePayLoad; import io.gmss.fiscad.paylaods.request.FiltreEnquetePayLoad;
import io.gmss.fiscad.repositories.infocad.parametre.BlocRepository; import io.gmss.fiscad.persistence.repositories.infocad.parametre.BlocRepository;
import io.gmss.fiscad.repositories.infocad.parametre.StructureRepository; import io.gmss.fiscad.persistence.repositories.infocad.parametre.StructureRepository;
import io.gmss.fiscad.service.ReportService; import io.gmss.fiscad.service.ReportService;
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;

View File

@@ -5,6 +5,7 @@ import io.gmss.fiscad.entities.rfu.metier.Batiment;
import io.gmss.fiscad.exceptions.*; import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.rfu.metier.BatimentService; import io.gmss.fiscad.interfaces.rfu.metier.BatimentService;
import io.gmss.fiscad.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.request.crudweb.BatimentPaylaodWeb;
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;
@@ -36,9 +37,9 @@ public class BatimentController {
} }
@PostMapping("/create") @PostMapping("/create")
public ResponseEntity<?> createBatiment(@RequestBody @Valid @Validated Batiment batiment) { public ResponseEntity<?> createBatiment(@RequestBody @Valid @Validated BatimentPaylaodWeb batimentPaylaodWeb) {
try { try {
batiment = batimentService.createBatiment(batiment); Batiment batiment = batimentService.createBatiment(batimentPaylaodWeb);
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, batiment, "Batiment créé avec succès."), new ApiResponse<>(true, batiment, "Batiment créé avec succès."),
HttpStatus.OK HttpStatus.OK
@@ -60,10 +61,10 @@ public class BatimentController {
} }
@PutMapping("/update/{id}") @PutMapping("/update/{id}")
public ResponseEntity<?> updateBatiment(@PathVariable Long id, @RequestBody Batiment batiment) { public ResponseEntity<?> updateBatiment(@PathVariable Long id, @RequestBody BatimentPaylaodWeb batimentPaylaodWeb) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, batimentService.updateBatiment(id, batiment), "Batiment mise à jour avec succès."), new ApiResponse<>(true, batimentService.updateBatiment(id,batimentPaylaodWeb), "Batiment mise à jour avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {

View File

@@ -7,7 +7,7 @@ import io.gmss.fiscad.enums.StatusAvis;
import io.gmss.fiscad.exceptions.*; import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.rfu.metier.DonneesImpositionTfuService; import io.gmss.fiscad.interfaces.rfu.metier.DonneesImpositionTfuService;
import io.gmss.fiscad.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.repositories.rfu.metier.ImpositionsTfuRepository; import io.gmss.fiscad.persistence.repositories.rfu.metier.ImpositionsTfuRepository;
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;

View File

@@ -0,0 +1,179 @@
package io.gmss.fiscad.controllers.rfu.metier;
import io.gmss.fiscad.entities.rfu.metier.EnqueteActivite;
import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.rfu.metier.EnqueteActiviteService;
import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.request.crudweb.EnqueteActivitePayLoadWeb ;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@RestController
@RequestMapping(value = "api/enquete-activite", produces = MediaType.APPLICATION_JSON_VALUE)
@SecurityRequirement(name = "bearer")
@Tag(name = "EnqueteActivite")
@CrossOrigin(origins = "*")
public class EnqueteActiviteController {
private final EnqueteActiviteService enqueteActiviteService;
private static final Logger logger = LoggerFactory.getLogger(EnqueteActiviteController.class);
public EnqueteActiviteController(EnqueteActiviteService enqueteActiviteService) {
this.enqueteActiviteService = enqueteActiviteService;
}
@PostMapping("/create")
public ResponseEntity<?> createEnqueteActivite(@RequestBody @Valid @Validated EnqueteActivitePayLoadWeb enqueteActivitePayLoadWeb) {
try {
EnqueteActivite enqueteActivite = enqueteActiviteService.createEnqueteActivite(enqueteActivitePayLoadWeb);
return new ResponseEntity<>(
new ApiResponse<>(true, enqueteActivite, "Enquete Activite créé 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);
}
}
@PutMapping("/update/{id}")
public ResponseEntity<?> updateEnqueteActivite(@PathVariable Long id, @RequestBody EnqueteActivitePayLoadWeb enqueteActivitePayLoadWeb) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, enqueteActiviteService.updateEnqueteActivite(id,enqueteActivitePayLoadWeb), "EnqueteActivite mise à jour 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);
}
}
@DeleteMapping("/delete/{id}")
public ResponseEntity<?> deleteEnqueteActivite(@PathVariable Long id) {
try {
enqueteActiviteService.deleteEnqueteActivite(id);
return new ResponseEntity<>(
new ApiResponse<>(true, "Enquete Activite supprimé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")
public ResponseEntity<?> getAllEnqueteActiviteList() {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, enqueteActiviteService.getEnqueteActiviteList(), "Liste des caractéristiques 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")
public ResponseEntity<?> getAllEnqueteActivitePaged(@RequestParam int pageNo, @RequestParam int pageSize) {
try {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, enqueteActiviteService.getEnqueteActiviteList(pageable), "Liste des caractéristiques 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("/id/{id}")
public ResponseEntity<?> getEnqueteActiviteById(@PathVariable Long id) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, enqueteActiviteService.getEnqueteActiviteById(id), "EnqueteActivite 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) {
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);
}
}
}

View File

@@ -5,6 +5,7 @@ import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
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.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;
@@ -35,9 +36,9 @@ public class EnqueteBatimentController {
} }
@PostMapping("/create") @PostMapping("/create")
public ResponseEntity<?> createEnqueteBatiment(@RequestBody @Valid @Validated EnqueteBatiment enqueteBatiment) { public ResponseEntity<?> createEnqueteBatiment(@RequestBody @Valid @Validated EnqueteBatimentPayloadWeb enqueteBatimentPayloadWeb) {
try { try {
enqueteBatiment = enqueteBatimentService.createEnqueteBatiment(enqueteBatiment); EnqueteBatiment enqueteBatiment = enqueteBatimentService.createEnqueteBatiment(enqueteBatimentPayloadWeb);
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, enqueteBatiment, "Enquete batiment créé avec succès."), new ApiResponse<>(true, enqueteBatiment, "Enquete batiment créé avec succès."),
HttpStatus.OK HttpStatus.OK
@@ -59,10 +60,10 @@ public class EnqueteBatimentController {
} }
@PutMapping("/update/{id}") @PutMapping("/update/{id}")
public ResponseEntity<?> updateEnqueteBatiment(@PathVariable Long id, @RequestBody EnqueteBatiment enqueteBatiment) { public ResponseEntity<?> updateEnqueteBatiment(@PathVariable Long id, @RequestBody EnqueteBatimentPayloadWeb enqueteBatimentPayloadWeb) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, enqueteBatimentService.updateEnqueteBatiment(id, enqueteBatiment), "Enquete batiment mise à jour avec succès."), new ApiResponse<>(true, enqueteBatimentService.updateEnqueteBatiment(id, enqueteBatimentPayloadWeb), "Enquete batiment mise à jour avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {

View File

@@ -5,6 +5,7 @@ import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement;
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.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;
@@ -35,9 +36,9 @@ public class EnqueteUniteLogementController {
} }
@PostMapping("/create") @PostMapping("/create")
public ResponseEntity<?> createEnqueteUniteLogement(@RequestBody @Valid @Validated EnqueteUniteLogement enqueteUniteLogement) { public ResponseEntity<?> createEnqueteUniteLogement(@RequestBody @Valid @Validated EnqueteUniteLogementPayloadWeb enqueteUniteLogementPayloadWeb) {
try { try {
enqueteUniteLogement = enqueteUniteLogementService.createEnqueteUniteLogement(enqueteUniteLogement); EnqueteUniteLogement enqueteUniteLogement = enqueteUniteLogementService.createEnqueteUniteLogement(enqueteUniteLogementPayloadWeb);
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, enqueteUniteLogement, "Enquete unite logement créé avec succès."), new ApiResponse<>(true, enqueteUniteLogement, "Enquete unite logement créé avec succès."),
HttpStatus.OK HttpStatus.OK
@@ -59,10 +60,10 @@ public class EnqueteUniteLogementController {
} }
@PutMapping("/update/{id}") @PutMapping("/update/{id}")
public ResponseEntity<?> updateEnqueteUniteLogement(@PathVariable Long id, @RequestBody EnqueteUniteLogement enqueteUniteLogement) { public ResponseEntity<?> updateEnqueteUniteLogement(@PathVariable Long id, @RequestBody EnqueteUniteLogementPayloadWeb enqueteUniteLogementPayloadWeb) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, enqueteUniteLogementService.updateEnqueteUniteLogement(id, enqueteUniteLogement), "Enquete unite logement mise à jour avec succès."), new ApiResponse<>(true, enqueteUniteLogementService.updateEnqueteUniteLogement(id, enqueteUniteLogementPayloadWeb), "Enquete unite logement mise à jour avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {

View File

@@ -4,7 +4,7 @@ import io.gmss.fiscad.entities.rfu.parametre.Equipe;
import io.gmss.fiscad.exceptions.*; import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.rfu.parametre.EquipeService; import io.gmss.fiscad.interfaces.rfu.parametre.EquipeService;
import io.gmss.fiscad.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.request.EquipePayload; import io.gmss.fiscad.paylaods.request.synchronisation.EquipePayload;
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;

View File

@@ -4,7 +4,8 @@ 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.interfaces.synchronisation.SynchronisationService; import io.gmss.fiscad.interfaces.synchronisation.SynchronisationService;
import io.gmss.fiscad.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.request.*; import io.gmss.fiscad.paylaods.request.EnqueteAllDataPayload;
import io.gmss.fiscad.paylaods.request.synchronisation.*;
import io.gmss.fiscad.service.ZipService; import io.gmss.fiscad.service.ZipService;
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;
@@ -468,11 +469,11 @@ public class SynchronisationController {
@PostMapping(path = "/caracteristique-batiment") @PostMapping(path = "/caracteristique-batiment")
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
public ResponseEntity<?> syncCaracteristiqueBatiment(@RequestBody List<CaracteristiqueBatimentPaylod> caracteristiqueBatimentPaylods) { public ResponseEntity<?> syncCaracteristiqueBatiment(@RequestBody List<CaracteristiqueBatimentPayload> CaracteristiqueBatimentPayloads) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
//new ApiResponse<>(true, null, "Liste des caractéristiques des bâtiments synchronisée avec succès."), //new ApiResponse<>(true, null, "Liste des caractéristiques des bâtiments synchronisée avec succès."),
new ApiResponse<>(true, synchronisationService.syncCaracteristiqueBatiment(caracteristiqueBatimentPaylods), "Liste des caractéristiques des bâtiments synchronisée avec succès."), new ApiResponse<>(true, synchronisationService.syncCaracteristiqueBatiment(CaracteristiqueBatimentPayloads), "Liste des caractéristiques des bâtiments synchronisée avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -493,11 +494,11 @@ public class SynchronisationController {
@PostMapping(path = "/caracteristique-parcelle") @PostMapping(path = "/caracteristique-parcelle")
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
public ResponseEntity<?> syncCaracteristiqueParcelle(@RequestBody List<CaracteristiqueParcellePaylod> caracteristiqueParcellePaylods) { public ResponseEntity<?> syncCaracteristiqueParcelle(@RequestBody List<CaracteristiqueParcellePayload> CaracteristiqueParcellePayloads) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
//new ApiResponse<>(true, null, "Liste des caractéristiques des parcelles synchronisée avec succès."), //new ApiResponse<>(true, null, "Liste des caractéristiques des parcelles synchronisée avec succès."),
new ApiResponse<>(true, synchronisationService.syncCaracteristiqueParcelle(caracteristiqueParcellePaylods), "Liste des caractéristiques des parcelles synchronisée avec succès."), new ApiResponse<>(true, synchronisationService.syncCaracteristiqueParcelle(CaracteristiqueParcellePayloads), "Liste des caractéristiques des parcelles synchronisée avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -518,11 +519,11 @@ public class SynchronisationController {
@PostMapping(path = "/caracteristique-unite-logement") @PostMapping(path = "/caracteristique-unite-logement")
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
public ResponseEntity<?> syncCaracteristiqueUniteLogement(@RequestBody List<CaracteristiqueUniteLogementPaylod> caracteristiqueUniteLogementPaylods) { public ResponseEntity<?> syncCaracteristiqueUniteLogement(@RequestBody List<CaracteristiqueUniteLogementPayload> CaracteristiqueUniteLogementPayloads) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
//new ApiResponse<>(true, null, "Liste des caractéristiques des unités de logement synchronisée avec succès."), //new ApiResponse<>(true, null, "Liste des caractéristiques des unités de logement synchronisée avec succès."),
new ApiResponse<>(true, synchronisationService.syncCaracteristiqueUniteLogement(caracteristiqueUniteLogementPaylods), "Liste des caractéristiques des unités de logement synchronisée avec succès."), new ApiResponse<>(true, synchronisationService.syncCaracteristiqueUniteLogement(CaracteristiqueUniteLogementPayloads), "Liste des caractéristiques des unités de logement synchronisée avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {

View File

@@ -11,6 +11,7 @@ import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.JwtAuthenticationResponse; import io.gmss.fiscad.paylaods.JwtAuthenticationResponse;
import io.gmss.fiscad.paylaods.Login; import io.gmss.fiscad.paylaods.Login;
import io.gmss.fiscad.paylaods.UserRequest; import io.gmss.fiscad.paylaods.UserRequest;
import io.gmss.fiscad.paylaods.request.crudweb.UserPaylaodWeb;
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;
@@ -90,13 +91,13 @@ public class AuthController {
} }
@PostMapping("/signup") @PostMapping("/signup")
public ResponseEntity<?> createUser(@RequestBody @Valid @Validated UserRequest userRequest) { public ResponseEntity<?> createUser(@RequestBody @Valid @Validated UserPaylaodWeb userPaylaodWeb) {
try { try {
User user = getUser(userRequest); //User user = getUser(userRequest);
user.setUsername(userRequest.getEmail()); //user.setUsername(userRequest.getEmail());
user = userService.createUser(user, true); userPaylaodWeb = userService.createUser(userPaylaodWeb);
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, user, "Inscription effectué avec succès."), new ApiResponse<>(true, userPaylaodWeb, "Inscription effectué avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -115,19 +116,5 @@ public class AuthController {
} }
} }
private User getUser(UserRequest userRequest) {
User user = new User();
user.setNom(userRequest.getNom());
user.setPrenom(userRequest.getPrenom());
user.setTel(userRequest.getTelephone());
user.setEmail(userRequest.getEmail());
user.setUsername(userRequest.getEmail());
user.setPassword(userRequest.getPassword());
user.setActive(false);
Set<Role> roleSet = new HashSet<>();
roleSet.add(roleService.getRoleByRoleName(UserRole.ROLE_ANONYMOUS).get());
user.setRoles(roleSet);
user.setStructure(structureService.getStructureById(userRequest.getStructureId()).get());
return user;
}
} }

View File

@@ -0,0 +1,234 @@
package io.gmss.fiscad.controllers.user;
import io.gmss.fiscad.entities.user.AvoirFonction;
import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.user.AvoirFonctionService;
import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.request.crudweb.AvoirFonctionPaylaodWeb;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@RestController
@RequestMapping(value = "api/fonction-utilisateur", produces = MediaType.APPLICATION_JSON_VALUE)
@SecurityRequirement(name = "bearer")
@Tag(name = "Fonction Utilisateur")
@CrossOrigin(origins = "*")
public class AvoirFonctionController {
private final AvoirFonctionService avoirFonctionService;
private static final Logger logger = LoggerFactory.getLogger(AvoirFonctionController.class);
public AvoirFonctionController(AvoirFonctionService avoirFonctionService) {
this.avoirFonctionService = avoirFonctionService;
}
@PostMapping("/create")
public ResponseEntity<?> createAvoirFonction(@RequestBody @Valid @Validated AvoirFonctionPaylaodWeb avoirFonctionPaylaodWeb ) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, avoirFonctionService.createAvoirFonction(avoirFonctionPaylaodWeb), "Fonction utilisateur créé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);
}
}
@PutMapping("/update/{id}")
public ResponseEntity<?> updateAvoirFonction(@PathVariable Long id, @RequestBody AvoirFonctionPaylaodWeb avoirFonctionPaylaodWeb) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, avoirFonctionService.updateAvoirFonction(id, avoirFonctionPaylaodWeb), "Fonction utilisateur mise à jour 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);
}
}
@DeleteMapping("/delete/{id}")
public ResponseEntity<?> deleteAvoirFonction(@PathVariable Long id) {
try {
avoirFonctionService.deleteAvoirFonction(id);
return new ResponseEntity<>(
new ApiResponse<>(true, "Fonction Utilisateur supprimé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")
public ResponseEntity<?> getAll() {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, avoirFonctionService.getAvoirFonctionList(), "Liste des fonctions utilisateur."),
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")
public ResponseEntity<?> getAllPaged(@RequestParam int pageNo, @RequestParam int pageSize) {
try {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, avoirFonctionService.getAvoirFonctionList(pageable), "Liste des fonction utilisateurs."),
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("/id/{id}")
public ResponseEntity<?> getById(@PathVariable Long id) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, avoirFonctionService.getAvoirFonctionById(id), "Fonction utilisateur trouvés 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("/by-utilisateur-id/{userId}")
public ResponseEntity<?> getByUserId(@PathVariable Long userId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, avoirFonctionService.getAvoirFonctionByUserId(userId), "Fonctions de utilisateur trouvées 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("/page/by-utilisateur-id/{userId}")
public ResponseEntity<?> getByUserIdPageable(@PathVariable Long userId,@RequestParam int pageNo, @RequestParam int pageSize) {
try {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, avoirFonctionService.getAvoirFonctionByUserId(userId,pageable), "Fonctions de utilisateur trouvées 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);
}
}
}

View File

@@ -113,31 +113,18 @@ public class DemandeReinitialisationMPController {
} }
} }
@GetMapping("/all") // @GetMapping("/all")
public ResponseEntity<?> getAllDemandeReinitialisationMPList(@CurrentUser UserPrincipal userPrincipal) { // public ResponseEntity<?> getAllDemandeReinitialisationMPList(@CurrentUser UserPrincipal userPrincipal) {
try { // try {
//
User user = userPrincipal.getUser(); // User user = userPrincipal.getUser();
//
if (user.getRoles().stream().anyMatch(r -> r.getNom().equals(UserRole.ROLE_ADMIN))) { // if (user.getRoles().stream().anyMatch(r -> r.getNom().equals(UserRole.ROLE_ADMIN))) {
return new ResponseEntity<>( // return new ResponseEntity<>(
new ApiResponse<>(true, demandeReinitialisationMPService.getDemandeReinitialisationMPList(), "Liste des demande de Reinitialisation chargée avec succès."), // new ApiResponse<>(true, demandeReinitialisationMPService.getDemandeReinitialisationMPList(), "Liste des demande de Reinitialisation chargée avec succès."),
HttpStatus.OK // HttpStatus.OK
); // );
} else { // } else {
if (user.getStructure() == null) {
return new ResponseEntity<>(
new ApiResponse<>(false, "Cet utilisateur n'est pas dans une structure; on ne peut donc pas afficher les demandes de réinitialisation de mot de passe."),
HttpStatus.OK
);
} else {
return new ResponseEntity<>(
new ApiResponse<>(true, demandeReinitialisationMPService.getDemandeReinitialisationMPNonTraiteList(user.getStructure()), "Liste des demande de Reinitialisation chargée avec succès."),
HttpStatus.OK
);
}
}
// }else {
// if (user.getStructure() == null) { // if (user.getStructure() == null) {
// return new ResponseEntity<>( // return new ResponseEntity<>(
// new ApiResponse<>(false, "Cet utilisateur n'est pas dans une structure; on ne peut donc pas afficher les demandes de réinitialisation de mot de passe."), // new ApiResponse<>(false, "Cet utilisateur n'est pas dans une structure; on ne peut donc pas afficher les demandes de réinitialisation de mot de passe."),
@@ -150,22 +137,35 @@ public class DemandeReinitialisationMPController {
// ); // );
// } // }
// } // }
} catch (HttpClientErrorException.MethodNotAllowed e) { //// }else {
logger.error(e.getLocalizedMessage()); //// if (user.getStructure() == null) {
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); //// return new ResponseEntity<>(
} catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | //// new ApiResponse<>(false, "Cet utilisateur n'est pas dans une structure; on ne peut donc pas afficher les demandes de réinitialisation de mot de passe."),
FileStorageException e) { //// HttpStatus.OK
logger.error(e.getLocalizedMessage()); //// );
return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); //// } else {
} catch (NullPointerException e) { //// return new ResponseEntity<>(
logger.error(e.getLocalizedMessage()); //// new ApiResponse<>(true, demandeReinitialisationMPService.getDemandeReinitialisationMPNonTraiteList(user.getStructure()), "Liste des demande de Reinitialisation chargée avec succès."),
return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); //// 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); //// }
} // } 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") @GetMapping("/all-paged")
public ResponseEntity<?> getAllDemandeReinitialisationMPPaged(@RequestParam int pageNo, @RequestParam int pageSize) { public ResponseEntity<?> getAllDemandeReinitialisationMPPaged(@RequestParam int pageNo, @RequestParam int pageSize) {

View File

@@ -0,0 +1,179 @@
package io.gmss.fiscad.controllers.user;
import io.gmss.fiscad.entities.user.Fonction;
import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.rfu.metier.FonctionService;
import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.request.crudweb.FonctionPaylaodWeb;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@RestController
@RequestMapping(value = "api/fonction", produces = MediaType.APPLICATION_JSON_VALUE)
@SecurityRequirement(name = "bearer")
@Tag(name = "Fonction")
@CrossOrigin(origins = "*")
public class FonctionController {
private final FonctionService fonctionService;
private static final Logger logger = LoggerFactory.getLogger(FonctionController.class);
public FonctionController(FonctionService fonctionService) {
this.fonctionService = fonctionService;
}
@PostMapping("/create")
public ResponseEntity<?> createFonction(@RequestBody @Valid @Validated FonctionPaylaodWeb fonctionPaylaodWeb) {
try {
Fonction fonction = fonctionService.createFonction(fonctionPaylaodWeb);
return new ResponseEntity<>(
new ApiResponse<>(true, fonction, "Secteur affecté 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);
}
}
@PutMapping("/update/{id}")
public ResponseEntity<?> updateFonction(@PathVariable Long id, @RequestBody FonctionPaylaodWeb fonctionPaylaodWeb) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, fonctionService.updateFonction(id, fonctionPaylaodWeb), "Affectation de Secteur mise à jour 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);
}
}
@DeleteMapping("/delete/{id}")
public ResponseEntity<?> deleteFonction(@PathVariable Long id) {
try {
fonctionService.deleteFonction(id);
return new ResponseEntity<>(
new ApiResponse<>(true, "Fonction supprimé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")
public ResponseEntity<?> getAllFonctionList() {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, fonctionService.getFonctionListToDto(), "Liste des caractéristiques 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")
public ResponseEntity<?> getAllFonctionPaged(@RequestParam int pageNo, @RequestParam int pageSize) {
try {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, fonctionService.getFonctionListToDtoPageable(pageable), "Liste des caractéristiques 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("/id/{id}")
public ResponseEntity<?> getFonctionById(@PathVariable Long id) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, fonctionService.getFonctionById(id), "Fonction 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) {
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);
}
}
}

View File

@@ -0,0 +1,182 @@
package io.gmss.fiscad.controllers.user;
import io.gmss.fiscad.entities.user.Profile;
import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.user.ProfileService;
import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.request.crudweb.ProfilePaylaodWeb;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@RestController
@RequestMapping(value = "api/profile", produces = MediaType.APPLICATION_JSON_VALUE)
@SecurityRequirement(name = "bearer")
@Tag(name = "Profile")
@CrossOrigin(origins = "*")
public class ProfileController {
private final ProfileService profileService;
private static final Logger logger = LoggerFactory.getLogger(ProfileController.class);
public ProfileController(ProfileService profileService) {
this.profileService = profileService;
}
@PostMapping("/create")
public ResponseEntity<?> createProfile(@RequestBody @Valid @Validated ProfilePaylaodWeb profilePaylaodWeb ) {
try {
Profile profile = profileService.createProfile(profilePaylaodWeb);
return new ResponseEntity<>(
new ApiResponse<>(true, profile, "Profile created successully."),
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);
}
}
@PutMapping("/update/{id}")
public ResponseEntity<?> updateProfile(@PathVariable Long id, @RequestBody ProfilePaylaodWeb profilePaylaodWeb) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, profileService.updateProfile(id, profilePaylaodWeb), "Profile updated successully."),
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);
}
}
@DeleteMapping("/delete/{id}")
public ResponseEntity<?> deleteProfile(@PathVariable Long id) {
try {
profileService.deleteProfile(id);
return new ResponseEntity<>(
new ApiResponse<>(true, "Profile deleted successully"),
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")
public ResponseEntity<?> getAll() {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, profileService.getProfileList(), "Liste des profiles."),
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("/id/{id}")
public ResponseEntity<?> getById(@PathVariable Long id) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, profileService.getProfileById(id), "Profile trouvé 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")
public ResponseEntity<?> getAllPaged(@RequestParam int pageNo, @RequestParam int pageSize) {
try {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, profileService.getProfileList(pageable), "Liste des profiles."),
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);
}
}
}

View File

@@ -8,12 +8,15 @@ import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.user.UserService; import io.gmss.fiscad.interfaces.user.UserService;
import io.gmss.fiscad.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.Login; import io.gmss.fiscad.paylaods.Login;
import io.gmss.fiscad.paylaods.request.crudweb.UserPaylaodWeb;
import io.gmss.fiscad.security.CurrentUser; import io.gmss.fiscad.security.CurrentUser;
import io.gmss.fiscad.security.UserPrincipal; import io.gmss.fiscad.security.UserPrincipal;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
@@ -21,6 +24,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.HttpClientErrorException;
import java.util.Optional;
import java.util.Set; import java.util.Set;
@@ -40,12 +44,11 @@ public class UserController {
} }
@PostMapping("/create") @PostMapping("/create")
public ResponseEntity<?> createUser(@RequestBody @Valid @Validated User user) { public ResponseEntity<?> createUser(@RequestBody @Valid @Validated UserPaylaodWeb userPaylaodWeb) {
try { try {
user.setUsername(user.getEmail()); userPaylaodWeb = userService.createUser(userPaylaodWeb);
user = userService.createUser(user, true);
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, user, "Utilisateur créé avec succès"), new ApiResponse<>(true, userPaylaodWeb, "Utilisateur créé avec succès"),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -91,9 +94,9 @@ public class UserController {
@PostMapping("/reset-password") @PostMapping("/reset-password")
public ResponseEntity<?> resetUserPassword(@RequestBody @Valid @Validated Login login) { public ResponseEntity<?> resetUserPassword(@RequestBody @Valid @Validated Login login) {
try { try {
User user = userService.resetPassword(login.getUsername(), login.getPassword()); UserPaylaodWeb userPaylaodWeb= userService.resetPassword(login.getUsername(), login.getPassword());
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, user, "Votre mot de passe à été réinitialisée avec succès."), new ApiResponse<>(true, userPaylaodWeb, "Votre mot de passe à été réinitialisée avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -112,10 +115,10 @@ public class UserController {
} }
} }
@PostMapping("/validate-user-account") @PostMapping("/validate-user-account/{userName}")
public ResponseEntity<?> validateUserAccount(@RequestBody @Valid @Validated Login login) { public ResponseEntity<?> validateUserAccount(@PathVariable String userName) {
try { try {
User user = userService.validateUserAccount(login.getUsername(), login.getUserRole()); User user = userService.validateUserAccount(userName);
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, user, "Cet compte à été activé avec succès."), new ApiResponse<>(true, user, "Cet compte à été activé avec succès."),
HttpStatus.OK HttpStatus.OK
@@ -138,10 +141,10 @@ public class UserController {
@PutMapping("/update/{id}") @PutMapping("/update/{id}")
public ResponseEntity<?> updateUser(@PathVariable Long id, @RequestBody User user) { public ResponseEntity<?> updateUser(@PathVariable Long id, @RequestBody UserPaylaodWeb userPaylaodWeb) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, userService.updateUser(id, user), "Utilisateur modifié avec succès."), new ApiResponse<>(true, userService.updateUser(id, userPaylaodWeb), "Utilisateur modifié avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -165,12 +168,13 @@ public class UserController {
try { try {
User user = userService.getUserById(id); User user = userService.getUserById(id);
if(containsRoleAnonyme(user.getRoles())){ // if(user.getAvoirFonctions().isEmpty()){
return new ResponseEntity<>( // return new ResponseEntity<>(
new ApiResponse<>(false, user , "Ce compte n'est pas encore validé."), // new ApiResponse<>(false, user , "Ce compte n'est pas encore validé."),
HttpStatus.OK // HttpStatus.OK
); // );
} // }
if(user.isResetPassword()){ if(user.isResetPassword()){
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(false, user , "Ce compte n'est pas encore validé."), new ApiResponse<>(false, user , "Ce compte n'est pas encore validé."),
@@ -228,27 +232,12 @@ public class UserController {
@GetMapping("/all") @GetMapping("/all")
public ResponseEntity<?> getAll(@CurrentUser UserPrincipal userPrincipal) { public ResponseEntity<?> getAll() {
try { try {
if(userPrincipal==null){
return new ResponseEntity<>(
new ApiResponse<>(false, null, "Vous n'êtes pas authorisés à accéder à la liste des utilisateurs"),
HttpStatus.OK
);
}
User user = userPrincipal.getUser();
if (user.getRoles().stream().anyMatch(r -> r.getNom().equals(UserRole.ROLE_ADMIN))) {
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, userService.getAllUserListResponse(), "Liste des utilisateurs chargée avec succès."), new ApiResponse<>(true, userService.getListUserToDto(), "Liste des utilisateurs chargée avec succès."),
HttpStatus.OK HttpStatus.OK);
);
} else {
return new ResponseEntity<>(
new ApiResponse<>(true, userService.getListUserResponseByStructure(userPrincipal.getUser().getStructure().getId()), "Liste des utilisateurs chargée avec succès."),
HttpStatus.OK
);
}
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
logger.error(e.getLocalizedMessage()); logger.error(e.getLocalizedMessage());
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
@@ -265,20 +254,65 @@ public class UserController {
} }
} }
@GetMapping("/all-by-structure") @GetMapping("/all-paged")
public ResponseEntity<?> getAllByStructure(@CurrentUser UserPrincipal userPrincipal) { public ResponseEntity<?> getAllPaged(@RequestParam int pageNo, @RequestParam int pageSize) {
try { try {
if (userPrincipal.getUser().getStructure() != null) { Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, userService.getListUserByStructure(userPrincipal.getUser().getStructure().getId()), "Liste des utilisateurs chargée avec succès."), new ApiResponse<>(true, userService.getListUserToDto(pageable), "Liste des utilisateurs chargée avec succès."),
HttpStatus.OK HttpStatus.OK);
); } catch (HttpClientErrorException.MethodNotAllowed e) {
} else { logger.error(e.getLocalizedMessage());
return new ResponseEntity<>( return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
new ApiResponse<>(false, "Impossible de trouver la structure indiquée."), } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException |
HttpStatus.OK 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-by-structure/{structureId}")
public ResponseEntity<?> getAllByStructure(@PathVariable Long structureId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, userService.getListUserByStructureToDto(structureId), "Liste des utilisateurs 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("/page/all-by-structure/{structureId}")
public ResponseEntity<?> getAllByStructurePaged(@PathVariable Long structureId, @RequestParam int pageNo, @RequestParam int pageSize) {
try {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, userService.getListUserByStructureToDto(structureId,pageable), "Liste des utilisateurs chargée avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
logger.error(e.getLocalizedMessage()); logger.error(e.getLocalizedMessage());
return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK);
@@ -351,35 +385,5 @@ public class UserController {
} }
} }
@GetMapping("/all-by-role/{userrole}")
public ResponseEntity<?> getUserByUserRole(@PathVariable UserRole userrole) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, userService.getUserByProfil(userrole), "Users found."),
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);
}
}
public boolean containsRoleAnonyme(Set<Role> roles){
for(Role r: roles ){
if(r.getNom().equals(UserRole.ROLE_ANONYMOUS)){
return true;
}
}
return false;
}
} }

View File

@@ -23,7 +23,7 @@ public class BaseEntity implements Serializable {
@CreatedDate @CreatedDate
@JsonIgnore @JsonIgnore
private Instant createdAt; private Instant createdAt ;
@LastModifiedDate @LastModifiedDate
@JsonIgnore @JsonIgnore
private Instant updatedAt; private Instant updatedAt;
@@ -37,4 +37,6 @@ public class BaseEntity implements Serializable {
private boolean deleted; private boolean deleted;
private Long externalKey; private Long externalKey;
private Long enqueteExternalKey; private Long enqueteExternalKey;
@JsonIgnore
private String source ;
} }

View File

@@ -24,9 +24,11 @@ public class Quartier extends BaseEntity implements Serializable {
private Long id; private Long id;
private String code; private String code;
private String nom; private String nom;
private String codeExterne;
// @JsonIgnore // @JsonIgnore
@ManyToOne @ManyToOne
private Arrondissement arrondissement; private Arrondissement arrondissement;
// @JsonIgnore // @JsonIgnore
// @OneToOne(mappedBy = "quartier") // @OneToOne(mappedBy = "quartier")
// private Bloc bloc; // private Bloc bloc;

View File

@@ -1,5 +1,6 @@
package io.gmss.fiscad.entities.decoupage; package io.gmss.fiscad.entities.decoupage;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference; import com.fasterxml.jackson.annotation.JsonManagedReference;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.entities.infocad.parametre.Structure; import io.gmss.fiscad.entities.infocad.parametre.Structure;
@@ -26,16 +27,16 @@ public class Secteur extends BaseEntity implements Serializable {
private Long id; private Long id;
private String code; private String code;
private String nom; private String nom;
@ManyToOne
private User chefSecteur;
@ManyToOne
private Structure structure;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) // @ManyToOne
@JoinColumn(name = "secteur_id") // private Structure structure;
@JsonManagedReference
private List<SecteurDecoupage> secteurDecoupages;
///Creer un payload pour la creation de secteur découpage //@JsonBackReference
/// ressource pour envoyer les découpage d'un secteur @ManyToOne
private Section section ;
//@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
// @JoinColumn(name = "secteur_id")
// @JsonManagedReference
// private List<SecteurDecoupage> secteurDecoupages;
} }

View File

@@ -25,7 +25,6 @@ import java.util.List;
@AllArgsConstructor @AllArgsConstructor
@Where(clause = " deleted = false") @Where(clause = " deleted = false")
public class SecteurDecoupage extends BaseEntity implements Serializable { public class SecteurDecoupage extends BaseEntity implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
@@ -36,16 +35,20 @@ public class SecteurDecoupage extends BaseEntity implements Serializable {
@JsonDeserialize(using = LocalDateDeserializer.class) @JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateFin; private LocalDate dateFin;
@JsonBackReference //@JsonBackReference
@ManyToOne @ManyToOne
private Secteur secteur; private Secteur secteur;
private String codeSecteur ;
@ManyToOne @ManyToOne
private Arrondissement arrondissement; private Arrondissement arrondissement;
@ManyToOne @ManyToOne
private Quartier quartier; private Quartier quartier;
private String codeQuartier ;
// @JsonIgnore // @JsonIgnore
// @OneToMany(mappedBy = "secteurDecoupage") // @OneToMany(mappedBy = "secteurDecoupage")
// private List<Bloc> blocs; // private List<Bloc> blocs;

View File

@@ -0,0 +1,37 @@
package io.gmss.fiscad.entities.decoupage;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.entities.infocad.parametre.Structure;
import io.gmss.fiscad.entities.user.Fonction;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Where;
import java.io.Serializable;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@Where(clause = " deleted = false")
public class Section extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String code;
private String nom;
@ManyToOne
private Structure structure;
//@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
//@JoinColumn(name = "section_id")
//@JsonManagedReference
//private List<Secteur> secteurs;
}

View File

@@ -55,9 +55,9 @@ public class ActeurConcerne extends BaseEntity implements Serializable {
@Enumerated(EnumType.STRING) @Enumerated(EnumType.STRING)
private RoleActeur roleActeur; private RoleActeur roleActeur;
@OneToMany(mappedBy = "acteurConcerne") // @OneToMany(mappedBy = "acteurConcerne")
@JsonManagedReference // @JsonManagedReference
private List<Piece> pieces; // private List<Piece> pieces;
@JsonIgnore @JsonIgnore
@ManyToOne @ManyToOne

View File

@@ -15,18 +15,16 @@ import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement; import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement;
import io.gmss.fiscad.entities.rfu.parametre.Campagne; import io.gmss.fiscad.entities.rfu.parametre.Campagne;
import io.gmss.fiscad.entities.rfu.parametre.Equipe; import io.gmss.fiscad.entities.rfu.parametre.Equipe;
import io.gmss.fiscad.entities.rfu.parametre.Exercice;
import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu; import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu;
import io.gmss.fiscad.entities.user.User; import io.gmss.fiscad.entities.user.User;
import io.gmss.fiscad.enums.StatusEnquete; import io.gmss.fiscad.enums.StatutEnquete;
import io.gmss.fiscad.enums.StatutEnregistrement; import io.gmss.fiscad.enums.StatutEnregistrement;
import io.gmss.fiscad.repositories.infocad.parametre.PersonneRepository;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate; import java.time.LocalDate;
@@ -58,17 +56,21 @@ public class Enquete extends BaseEntity implements Serializable {
private boolean litige; private boolean litige;
@JsonIgnore
@ManyToOne @ManyToOne
private User user; private User user;
@JsonIgnore
@ManyToOne
private Exercice exercice;
private Long mobileDataId; private Long mobileDataId;
@JsonIgnore @JsonIgnore
@OneToMany(mappedBy = "enquete") @OneToMany(mappedBy = "enquete")
private List<ActeurConcerne> acteurConcernes; private List<ActeurConcerne> acteurConcernes;
@JsonIgnore //@JsonIgnore
@ManyToOne @ManyToOne
private Parcelle parcelle; private Parcelle parcelle;
@@ -86,7 +88,7 @@ public class Enquete extends BaseEntity implements Serializable {
@ManyToOne @ManyToOne
private Equipe equipe; private Equipe equipe;
@JsonIgnore // @JsonIgnore
@ManyToOne @ManyToOne
@JoinColumn(name = "proprietaire_id") @JoinColumn(name = "proprietaire_id")
private Personne personne ; private Personne personne ;
@@ -97,7 +99,7 @@ public class Enquete extends BaseEntity implements Serializable {
private String autreNumeroTitreFoncier; private String autreNumeroTitreFoncier;
private Long personneId; private Long personneId;
@Enumerated(EnumType.STRING) @Enumerated(EnumType.STRING)
private StatusEnquete statusEnquete; private StatutEnquete statutEnquete;
@JsonFormat(pattern = "dd-MM-yyyy") @JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class) @JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateValidation; private LocalDate dateValidation;
@@ -155,18 +157,22 @@ public class Enquete extends BaseEntity implements Serializable {
private String numeroTitreFoncier; private String numeroTitreFoncier;
/// Nouveau champs ajoutés pour RFU Abomey /// Nouveau champs ajoutés pour RFU Abomey
private String numEnterParcelle; private String numEntreeParcelle;
private String numRue; private String numRue;
private String nomRue; private String nomRue;
private String emplacement; private String emplacement;
private float altitude; private Float altitude;
private float precision; private Float precision;
private int nbreCoProprietaire; private Integer nbreCoProprietaire;
private int nbreIndivisiaire; private Integer nbreIndivisiaire;
private String autreAdresse; private String autreAdresse;
private String surface; private Float superficie ;
private int nbreBatiment; private Integer nbreBatiment;
private int nbrePiscine; private Integer nbrePiscine;
private Long montantMensuelleLocation;
private Long montantAnnuelleLocation;
private Long valeurParcelleEstime;
private Long valeurParcelleReel;
@JsonFormat(pattern = "dd-MM-yyyy") @JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class) @JsonDeserialize(using = LocalDateDeserializer.class)
@@ -178,9 +184,11 @@ public class Enquete extends BaseEntity implements Serializable {
@JsonIgnore @JsonIgnore
@OneToMany(mappedBy = "enquete") @OneToMany(mappedBy = "enquete")
@JsonManagedReference
private List<EnqueteUniteLogement> enqueteUniteLogements; private List<EnqueteUniteLogement> enqueteUniteLogements;
@JsonIgnore @JsonIgnore
@JsonManagedReference
@OneToMany(mappedBy = "enquete") @OneToMany(mappedBy = "enquete")
private List<EnqueteBatiment> enqueteBatiments; private List<EnqueteBatiment> enqueteBatiments;
@@ -188,8 +196,8 @@ public class Enquete extends BaseEntity implements Serializable {
@OneToMany(mappedBy = "enquete") @OneToMany(mappedBy = "enquete")
private List<CaracteristiqueParcelle> caracteristiqueParcelles; private List<CaracteristiqueParcelle> caracteristiqueParcelles;
@Enumerated(EnumType.STRING) //@Enumerated(EnumType.STRING)
private StatutEnregistrement statutEnregistrement; //private StatutEnregistrement statutEnregistrement;
public Long getTerminalId() { public Long getTerminalId() {
@@ -220,7 +228,7 @@ public class Enquete extends BaseEntity implements Serializable {
public String getDepartement() { public String getDepartement() {
if (this.bloc != null) { if (this.bloc != null) {
Arrondissement arrondissement = this.bloc.getArrondissement(); Arrondissement arrondissement = this.bloc.getArrondissement();
if (arrondissement != null) { if (arrondissement != null && arrondissement.getCommune()!=null && arrondissement.getCommune().getDepartement()!=null) {
return arrondissement.getCommune().getDepartement().getNom(); return arrondissement.getCommune().getDepartement().getNom();
} else return ""; } else return "";
} else return ""; } else return "";
@@ -229,7 +237,7 @@ public class Enquete extends BaseEntity implements Serializable {
public String getCommune() { public String getCommune() {
if (this.bloc != null) { if (this.bloc != null) {
Arrondissement arrondissement = this.bloc.getArrondissement(); Arrondissement arrondissement = this.bloc.getArrondissement();
if (arrondissement != null) { if (arrondissement != null && arrondissement.getCommune()!=null) {
return arrondissement.getCommune().getNom(); return arrondissement.getCommune().getNom();
} else return ""; } else return "";
} else return ""; } else return "";
@@ -247,7 +255,7 @@ public class Enquete extends BaseEntity implements Serializable {
public String getTypeDomaine() { public String getTypeDomaine() {
if (this.parcelle != null) { if (this.parcelle != null) {
NatureDomaine natureDomaine = this.parcelle.getNatureDomaine(); NatureDomaine natureDomaine = this.parcelle.getNatureDomaine();
if (natureDomaine != null) { if (natureDomaine != null && natureDomaine.getTypeDomaine()!=null ) {
return natureDomaine.getTypeDomaine().getLibelle(); return natureDomaine.getTypeDomaine().getLibelle();
} else return ""; } else return "";
} else return ""; } else return "";
@@ -260,7 +268,7 @@ public class Enquete extends BaseEntity implements Serializable {
} }
public String getStructureEnqueteur() { public String getStructureEnqueteur() {
if (this.user != null) { if (this.user != null && this.user.getStructure()!=null) {
return this.user.getStructure().getNom(); return this.user.getStructure().getNom();
} else return ""; } else return "";
} }

View File

@@ -25,7 +25,6 @@ import java.util.List;
// "WHERE id = ?") // "WHERE id = ?")
//@Where(clause = " deleted = false") //@Where(clause = " deleted = false")
public class Parcelle extends BaseEntity implements Serializable { public class Parcelle extends BaseEntity implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
@@ -36,9 +35,10 @@ public class Parcelle extends BaseEntity implements Serializable {
private String numeroParcelle; private String numeroParcelle;
private String longitude; private String longitude;
private String latitude; private String latitude;
private String altitude;
private String situationGeographique; private String situationGeographique;
@ColumnDefault("0") @ColumnDefault("0.0")
private int superficie; private float superficie;
@ManyToOne @ManyToOne
private NatureDomaine natureDomaine; private NatureDomaine natureDomaine;
@JsonIgnore @JsonIgnore
@@ -52,7 +52,6 @@ public class Parcelle extends BaseEntity implements Serializable {
@ManyToOne @ManyToOne
private Tpe terminal; private Tpe terminal;
private String autreNumeroTitreFoncier; private String autreNumeroTitreFoncier;
private Long typeDomaineId; private Long typeDomaineId;
private Long numeroProvisoire; private Long numeroProvisoire;
private Long blocId; private Long blocId;
@@ -60,6 +59,11 @@ public class Parcelle extends BaseEntity implements Serializable {
private boolean synchronise; private boolean synchronise;
private Long idDerniereEnquete; private Long idDerniereEnquete;
private Long mobileDataId; private Long mobileDataId;
private String numEntreeParcelle;
private String codeQuartier;
@ManyToOne
private Rue rue ;
private String numeroRue ;
// @JsonIgnore // @JsonIgnore
// @OneToMany(mappedBy = "parcelle") // @OneToMany(mappedBy = "parcelle")
// private List<Batiment> batiments; // private List<Batiment> batiments;

View File

@@ -1,6 +1,7 @@
package io.gmss.fiscad.entities.infocad.metier; package io.gmss.fiscad.entities.infocad.metier;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
@@ -62,14 +63,23 @@ public class ParcelleGeom extends BaseEntity implements Serializable {
@Enumerated(EnumType.STRING) @Enumerated(EnumType.STRING)
private StatutParcelle statutParcelle; private StatutParcelle statutParcelle;
private Long uploadId; private Long uploadId;
@ManyToOne
@ManyToOne //(fetch = FetchType.LAZY)
// @JsonBackReference
private Departement departement; private Departement departement;
@ManyToOne
@ManyToOne //(fetch = FetchType.LAZY)
//@JsonBackReference
private Commune commune; private Commune commune;
@ManyToOne
@ManyToOne //(fetch = FetchType.LAZY)
// @JsonBackReference
private Arrondissement arrondissement; private Arrondissement arrondissement;
@ManyToOne
@ManyToOne //(fetch = FetchType.LAZY)
//@JsonBackReference
private Quartier quartier ; private Quartier quartier ;
@ColumnDefault("0") @ColumnDefault("0")
private int geomSrid; private int geomSrid;
@JsonSerialize(using = GeometrySerializer.class) @JsonSerialize(using = GeometrySerializer.class)

View File

@@ -44,6 +44,10 @@ public class Piece extends BaseEntity implements Serializable {
@JsonFormat(pattern = "dd-MM-yyyy") @JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class) @JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateExpiration; private LocalDate dateExpiration;
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateEtablissement;
@ManyToOne @ManyToOne
private TypePiece typePiece; private TypePiece typePiece;
private Long mobileDataId; private Long mobileDataId;
@@ -51,15 +55,22 @@ public class Piece extends BaseEntity implements Serializable {
@ManyToOne(fetch = FetchType.LAZY) @ManyToOne(fetch = FetchType.LAZY)
private Personne personne; private Personne personne;
private Long personneExternalKey; private Long personneExternalKey;
@JsonIgnore
@JsonBackReference // @JsonIgnore
@ManyToOne(fetch = FetchType.LAZY) // @JsonBackReference
private ActeurConcerne acteurConcerne; // @ManyToOne(fetch = FetchType.LAZY)
private Long acteurConcerneExternalKey; // private ActeurConcerne acteurConcerne;
// private Long acteurConcerneExternalKey;
@ManyToOne @ManyToOne
private SourceDroit sourceDroit; private SourceDroit sourceDroit;
@JsonIgnore
@JsonBackReference
@ManyToOne(fetch = FetchType.LAZY)
private Enquete enquete ;
@ManyToOne @ManyToOne
private ModeAcquisition modeAcquisition; private ModeAcquisition modeAcquisition;
@@ -74,7 +85,7 @@ public class Piece extends BaseEntity implements Serializable {
private Long max_numero_piece_id; private Long max_numero_piece_id;
private Long max_numero_acteur_concerne_id; private Long max_numero_acteur_concerne_id;
private Long enqueteId; //private Long enqueteId;
private Long blocId; private Long blocId;
@ColumnDefault("false") @ColumnDefault("false")
private boolean synchronise; private boolean synchronise;

View File

@@ -0,0 +1,30 @@
package io.gmss.fiscad.entities.infocad.metier;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.entities.infocad.parametre.TypeRue;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where;
import java.io.Serializable;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Rue extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String numero ;
private String nom ;
@ManyToOne
private TypeRue typeRue ;
}

View File

@@ -34,7 +34,6 @@ import java.util.Set;
"WHERE id = ?") "WHERE id = ?")
@Where(clause = " deleted = false") @Where(clause = " deleted = false")
public class Bloc extends BaseEntity implements Serializable { public class Bloc extends BaseEntity implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;

View File

@@ -20,6 +20,8 @@ import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where; import org.hibernate.annotations.Where;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@@ -38,11 +40,12 @@ public class Personne extends BaseEntity implements Serializable {
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private String ifu; private String ifu;
private String nomOuSigle; private String nom;
private String prenomOuRaisonSociale; private String prenom;
private String raisonSociale;
private String numRavip; private String numRavip;
private String npi; private String npi;
private String dateNaissanceOuConsti; private LocalDate dateNaissanceOuConsti;
private String lieuNaissance; private String lieuNaissance;
private String tel1; private String tel1;
private String tel2; private String tel2;
@@ -75,10 +78,12 @@ public class Personne extends BaseEntity implements Serializable {
@ColumnDefault("0") @ColumnDefault("0")
private int mustHaveRepresentant; private int mustHaveRepresentant;
private String filePath; private String filePath;
private String observation; private String observation;
@ColumnDefault("false") @ColumnDefault("false")
private boolean synchronise; private boolean synchronise;
@OneToMany(mappedBy = "personne") @OneToMany(mappedBy = "personne")
private List<Upload> uploads; private List<Upload> uploads;
@@ -87,10 +92,11 @@ public class Personne extends BaseEntity implements Serializable {
private Long mobileDataId; private Long mobileDataId;
public List<Upload> getUploads() { public List<Upload> getUploads() {
return uploads.stream().filter(upload -> upload.getPiece() == null && upload.getMembreGroupe() == null).toList();
return uploads==null ? new ArrayList<>():uploads.stream().filter(upload -> upload.getPiece() == null && upload.getMembreGroupe() == null).toList();
} }
public List<Piece> getPieces() { public List<Piece> getPieces() {
return pieces.stream().filter(piece -> piece.getActeurConcerne() == null).toList(); return pieces==null ? new ArrayList<>():pieces.stream().filter(piece -> piece.getPersonne() != null).toList();
} }
} }

View File

@@ -2,9 +2,11 @@ package io.gmss.fiscad.entities.infocad.parametre;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.entities.decoupage.Arrondissement; import io.gmss.fiscad.entities.decoupage.Arrondissement;
import io.gmss.fiscad.entities.decoupage.Commune; import io.gmss.fiscad.entities.decoupage.Commune;
import io.gmss.fiscad.entities.user.Fonction;
import io.gmss.fiscad.entities.user.User; import io.gmss.fiscad.entities.user.User;
import jakarta.persistence.*; import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@@ -28,12 +30,12 @@ import java.util.Set;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@SQLDelete(sql = //@SQLDelete(sql =
"UPDATE structure " + // "UPDATE structure " +
"SET deleted = true " + // "SET deleted = true " +
"WHERE id = ?") // "WHERE id = ?")
@Where(clause = " deleted = false") //@Where(clause = " deleted = false")
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}) //@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class Structure extends BaseEntity implements Serializable { public class Structure extends BaseEntity implements Serializable {
@Id @Id
@@ -47,21 +49,29 @@ public class Structure extends BaseEntity implements Serializable {
private String tel; private String tel;
private String email; private String email;
private String adresse; private String adresse;
@NotNull //@NotNull(message = "Veuillez préciser la commune du centre d'impôts")
@ManyToOne @ManyToOne
private Commune commune; private Commune commune;
//@JsonIgnore
@JsonIgnore
@ManyToMany @ManyToMany
@JoinTable(name = "arrondissements_structures", @JoinTable(name = "arrondissements_structures",
joinColumns = @JoinColumn(name = "structure_id"), joinColumns = @JoinColumn(name = "structure_id"),
inverseJoinColumns = @JoinColumn(name = "arrondissement_id") inverseJoinColumns = @JoinColumn(name = "arrondissement_id")
) )
private Set<Arrondissement> arrondissements; private Set<Arrondissement> arrondissements;
// @JsonIgnore
// @OneToMany(mappedBy = "structure")
// private List<User> agents;
// @JsonIgnore
// @OneToMany(mappedBy = "structure")
// private List<Bloc> blocs;
@Override
public String toString() {
return "Structure{" +
"id=" + id +
", code='" + code + '\'' +
", nom='" + nom + '\'' +
", ifu='" + ifu + '\'' +
", rccm='" + rccm + '\'' +
", tel='" + tel + '\'' +
", email='" + email + '\'' +
", adresse='" + adresse + '\'' +
'}';
}
} }

View File

@@ -0,0 +1,37 @@
package io.gmss.fiscad.entities.infocad.parametre;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.entities.decoupage.Arrondissement;
import io.gmss.fiscad.entities.decoupage.Quartier;
import io.gmss.fiscad.entities.decoupage.Secteur;
import io.gmss.fiscad.entities.decoupage.SecteurDecoupage;
import io.gmss.fiscad.entities.infocad.metier.Enquete;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where;
import java.io.Serializable;
import java.util.List;
import java.util.Set;
/**
* Un bloc représente un secteur de découpage admin dans le cadre d'une enquete fiscale
*/
@EqualsAndHashCode(callSuper = true)
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TypeRue extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String code;
private String nom;
}

View File

@@ -2,7 +2,7 @@ package io.gmss.fiscad.entities.metadata;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType; import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.paylaods.request.ActeurConcernePayLoad; import io.gmss.fiscad.paylaods.request.synchronisation.ActeurConcernePayLoad;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@@ -2,7 +2,7 @@ package io.gmss.fiscad.entities.metadata;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType; import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.paylaods.request.BatimentPaylaod; import io.gmss.fiscad.paylaods.request.synchronisation.BatimentPaylaod;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@@ -2,7 +2,7 @@ package io.gmss.fiscad.entities.metadata;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType; import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.paylaods.request.CaracteristiqueBatimentPaylod; import io.gmss.fiscad.paylaods.request.synchronisation.CaracteristiqueBatimentPayload;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@@ -26,7 +26,7 @@ public class MobileDataCaracteristiqueBatiment extends BaseEntity implements Ser
private Long externalKey; private Long externalKey;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)
@Column(columnDefinition = "jsonb") @Column(columnDefinition = "jsonb")
private CaracteristiqueBatimentPaylod caracteristiqueBatimentPaylod ; private CaracteristiqueBatimentPayload CaracteristiqueBatimentPayload ;
@Column(columnDefinition = "boolean default false") @Column(columnDefinition = "boolean default false")
private boolean traiter; private boolean traiter;
} }

View File

@@ -2,7 +2,7 @@ package io.gmss.fiscad.entities.metadata;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType; import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.paylaods.request.CaracteristiqueParcellePaylod; import io.gmss.fiscad.paylaods.request.synchronisation.CaracteristiqueParcellePayload;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@@ -26,7 +26,7 @@ public class MobileDataCaracteristiqueParcelle extends BaseEntity implements Ser
private Long externalKey; private Long externalKey;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)
@Column(columnDefinition = "jsonb") @Column(columnDefinition = "jsonb")
private CaracteristiqueParcellePaylod caracteristiqueParcellePaylod ; private CaracteristiqueParcellePayload CaracteristiqueParcellePayload ;
@Column(columnDefinition = "boolean default false") @Column(columnDefinition = "boolean default false")
private boolean traiter; private boolean traiter;
} }

View File

@@ -2,7 +2,7 @@ package io.gmss.fiscad.entities.metadata;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType; import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.paylaods.request.CaracteristiqueUniteLogementPaylod; import io.gmss.fiscad.paylaods.request.synchronisation.CaracteristiqueUniteLogementPayload;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@@ -26,7 +26,7 @@ public class MobileDataCaracteristiqueUniteLogement extends BaseEntity implement
private Long externalKey; private Long externalKey;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)
@Column(columnDefinition = "jsonb") @Column(columnDefinition = "jsonb")
private CaracteristiqueUniteLogementPaylod caracteristiqueUniteLogementPaylod ; private CaracteristiqueUniteLogementPayload CaracteristiqueUniteLogementPayload ;
@Column(columnDefinition = "boolean default false") @Column(columnDefinition = "boolean default false")
private boolean traiter; private boolean traiter;
} }

View File

@@ -2,7 +2,7 @@ package io.gmss.fiscad.entities.metadata;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType; import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.paylaods.request.DeclarationNcPayload; import io.gmss.fiscad.paylaods.request.synchronisation.DeclarationNcPayload;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@@ -2,7 +2,7 @@ package io.gmss.fiscad.entities.metadata;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType; import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.paylaods.request.EnquetePayLoad; import io.gmss.fiscad.paylaods.request.synchronisation.EnquetePayLoad;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@@ -2,8 +2,8 @@ package io.gmss.fiscad.entities.metadata;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType; import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.paylaods.request.BatimentPaylaod; import io.gmss.fiscad.paylaods.request.synchronisation.BatimentPaylaod;
import io.gmss.fiscad.paylaods.request.EnqueteActivitePayload; import io.gmss.fiscad.paylaods.request.synchronisation.EnqueteActivitePayload;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@@ -2,7 +2,7 @@ package io.gmss.fiscad.entities.metadata;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType; import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.paylaods.request.EnqueteBatimentPayload; import io.gmss.fiscad.paylaods.request.synchronisation.EnqueteBatimentPayload;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@@ -2,7 +2,7 @@ package io.gmss.fiscad.entities.metadata;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType; import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.paylaods.request.EnqueteUniteLogementPayload; import io.gmss.fiscad.paylaods.request.synchronisation.EnqueteUniteLogementPayload;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@@ -2,7 +2,7 @@ package io.gmss.fiscad.entities.metadata;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType; import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.paylaods.request.MembreGroupePayLoad; import io.gmss.fiscad.paylaods.request.synchronisation.MembreGroupePayLoad;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@@ -2,7 +2,7 @@ package io.gmss.fiscad.entities.metadata;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType; import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.paylaods.request.ParcellePayLoad; import io.gmss.fiscad.paylaods.request.synchronisation.ParcellePayLoad;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@@ -2,7 +2,7 @@ package io.gmss.fiscad.entities.metadata;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType; import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.paylaods.request.ParcellePayLoad; import io.gmss.fiscad.paylaods.request.synchronisation.ParcellePayLoad;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@@ -2,7 +2,7 @@ package io.gmss.fiscad.entities.metadata;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType; import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.paylaods.request.PersonnePayLoad; import io.gmss.fiscad.paylaods.request.synchronisation.PersonnePayLoad;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@@ -2,7 +2,7 @@ package io.gmss.fiscad.entities.metadata;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType; import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.paylaods.request.PiecePayLoad; import io.gmss.fiscad.paylaods.request.synchronisation.PiecePayLoad;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@@ -2,8 +2,8 @@ package io.gmss.fiscad.entities.metadata;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType; import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.paylaods.request.ParcellePayLoad; import io.gmss.fiscad.paylaods.request.synchronisation.ParcellePayLoad;
import io.gmss.fiscad.paylaods.request.UniteLogementPaylaod; import io.gmss.fiscad.paylaods.request.synchronisation.UniteLogementPaylaod;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@@ -2,7 +2,7 @@ package io.gmss.fiscad.entities.metadata;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType; import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.paylaods.request.UploadPayLoad; import io.gmss.fiscad.paylaods.request.synchronisation.UploadPayLoad;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@@ -25,7 +25,6 @@ import java.util.List;
@AllArgsConstructor @AllArgsConstructor
@Where(clause = " deleted = false") @Where(clause = " deleted = false")
public class Batiment extends BaseEntity implements Serializable { public class Batiment extends BaseEntity implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
@@ -35,10 +34,13 @@ public class Batiment extends BaseEntity implements Serializable {
@JsonDeserialize(using = LocalDateDeserializer.class) @JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateConstruction; private LocalDate dateConstruction;
private Long idDerniereEnquete; private Long idDerniereEnquete;
@JsonIgnore @JsonIgnore
@ManyToOne @ManyToOne
private Parcelle parcelle; private Parcelle parcelle;
private Long parcelleExternalKey; private Long parcelleExternalKey;
@JsonIgnore @JsonIgnore
@ManyToOne @ManyToOne
private Tpe terminal; private Tpe terminal;

View File

@@ -40,6 +40,7 @@ public class CaracteristiqueBatiment extends BaseEntity implements Serializable
@ManyToOne @ManyToOne
private Caracteristique caracteristique; private Caracteristique caracteristique;
private String valeur; private String valeur;
private String observation ;
@JsonIgnore @JsonIgnore
@ManyToOne @ManyToOne
private Tpe terminal ; private Tpe terminal ;

View File

@@ -30,13 +30,17 @@ public class CaracteristiqueUniteLogement extends BaseEntity implements Serializ
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JsonBackReference @JsonBackReference
private EnqueteUniteLogement enqueteUniteLogement; private EnqueteUniteLogement enqueteUniteLogement;
private Long enqueteUniteLogementExternalKey; private Long enqueteUniteLogementExternalKey;
@ManyToOne @ManyToOne
private Caracteristique caracteristique; private Caracteristique caracteristique;
private String valeur; private String valeur;
private String observation;
@JsonIgnore @JsonIgnore
@ManyToOne @ManyToOne
private Tpe terminal; private Tpe terminal;

View File

@@ -57,6 +57,7 @@ public class EnqueteActivite extends BaseEntity implements Serializable {
private String NumeroRccm; private String NumeroRccm;
@OneToOne @OneToOne
private Personne personne; private Personne personne;
private Long personneExternalKey; private Long personneExternalKey;
@ManyToOne @ManyToOne

View File

@@ -11,6 +11,7 @@ import io.gmss.fiscad.entities.infocad.metier.Enquete;
import io.gmss.fiscad.entities.infocad.metier.Tpe; import io.gmss.fiscad.entities.infocad.metier.Tpe;
import io.gmss.fiscad.entities.infocad.metier.Upload; import io.gmss.fiscad.entities.infocad.metier.Upload;
import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.entities.infocad.parametre.Personne;
import io.gmss.fiscad.entities.rfu.parametre.Caracteristique;
import io.gmss.fiscad.entities.user.User; import io.gmss.fiscad.entities.user.User;
import io.gmss.fiscad.enums.StatutEnregistrement; import io.gmss.fiscad.enums.StatutEnregistrement;
import jakarta.persistence.*; import jakarta.persistence.*;
@@ -53,7 +54,10 @@ public class EnqueteBatiment extends BaseEntity implements Serializable {
private float surfaceLouee; private float surfaceLouee;
private int nbreMenage; private int nbreMenage;
private int nbreHabitant; private int nbreHabitant;
private float valeurMensuelleLocation; private Long montantMensuelLocation;
private Long montantLocatifAnnuelDeclare;
private Long valeurBatimentEstime;
private Long valeurBatimentReel;
private int nbreMoisLocation; private int nbreMoisLocation;
private String autreCaracteristiquePhysique; private String autreCaracteristiquePhysique;
@JsonFormat(pattern = "dd-MM-yyyy") @JsonFormat(pattern = "dd-MM-yyyy")
@@ -62,20 +66,34 @@ public class EnqueteBatiment extends BaseEntity implements Serializable {
@JsonFormat(pattern = "dd-MM-yyyy") @JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class) @JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateFinExcemption; private LocalDate dateFinExcemption;
@OneToOne
private Personne personne; //@JsonIgnore
private Long personneExternalKey;
@ManyToOne @ManyToOne
private Batiment batiment; private Personne personne;
private Long batimentExternalKey;
@ManyToOne
@JoinColumn(name = "categorie_caracteristique_id")
private Caracteristique caracteristique;
private Long personneExternalKey;
@JsonIgnore @JsonIgnore
@ManyToOne @ManyToOne(fetch = FetchType.LAZY)
@JsonBackReference
private Batiment batiment;
private Long batimentExternalKey;
private Long nbreEtage;
// @JsonIgnore
@ManyToOne(fetch = FetchType.LAZY)
@JsonBackReference
private Enquete enquete; private Enquete enquete;
@JsonManagedReference ///pour couper la récurcivité
@OneToMany(mappedBy = "enqueteBatiment") @OneToMany(mappedBy = "enqueteBatiment")
@JsonManagedReference ///pour couper la récurcivité
private List<CaracteristiqueBatiment> caracteristiqueBatiments; private List<CaracteristiqueBatiment> caracteristiqueBatiments;
@JsonIgnore @JsonIgnore
@@ -89,7 +107,7 @@ public class EnqueteBatiment extends BaseEntity implements Serializable {
@OneToMany(mappedBy = "enqueteBatiment") @OneToMany(mappedBy = "enqueteBatiment")
private List<Upload> uploads; private List<Upload> uploads;
@Enumerated(EnumType.STRING) //@Enumerated(EnumType.STRING)
@JsonIgnore //@JsonIgnore
private StatutEnregistrement statutEnregistrement; //private StatutEnregistrement statutEnregistrement;
} }

View File

@@ -1,5 +1,6 @@
package io.gmss.fiscad.entities.rfu.metier; package io.gmss.fiscad.entities.rfu.metier;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonManagedReference; import com.fasterxml.jackson.annotation.JsonManagedReference;
@@ -40,15 +41,17 @@ public class EnqueteUniteLogement extends BaseEntity implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private float surface;
private int nbrePiece; private int nbrePiece;
private int nbreHabitant; private int nbreHabitant;
private int nbreMenage; private int nbreMenage;
private boolean enLocation; private boolean enLocation;
private float montantMensuelLoyer; private float montantMensuelLoyer;
private int nbreMoisEnLocation; private int nbreMoisLocation;
private float montantLocatifAnnuelDeclare; private float montantLocatifAnnuelDeclare;
private Long valeurUniteLogementEstime;
private Long valeurUniteLogementReel;
private float surfaceLouee; private float surfaceLouee;
private float SurfaceAuSol;
private boolean sbee; private boolean sbee;
private boolean soneb; private boolean soneb;
private String numCompteurSbee; private String numCompteurSbee;
@@ -59,16 +62,25 @@ public class EnqueteUniteLogement extends BaseEntity implements Serializable {
@JsonFormat(pattern = "dd-MM-yyyy") @JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class) @JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateFinExcemption; private LocalDate dateFinExcemption;
@JsonIgnore @JsonIgnore
@ManyToOne @ManyToOne(fetch = FetchType.LAZY)
@JsonBackReference
private Enquete enquete; private Enquete enquete;
@ManyToOne @ManyToOne
private UniteLogement uniteLogement; private UniteLogement uniteLogement;
private Long uniteLogementExternalKey; private Long uniteLogementExternalKey;
@OneToOne @OneToOne
private Personne personne; private Personne personne;
private Long personneExternalKey; private Long personneExternalKey;
private Long mobileDataId; private Long mobileDataId;
@OneToMany(mappedBy = "enqueteUniteLogement") @OneToMany(mappedBy = "enqueteUniteLogement")
@JsonManagedReference @JsonManagedReference
private List<CaracteristiqueUniteLogement> caracteristiqueUniteLogements; private List<CaracteristiqueUniteLogement> caracteristiqueUniteLogements;

View File

@@ -1,6 +1,9 @@
package io.gmss.fiscad.entities.rfu.metier; package io.gmss.fiscad.entities.rfu.metier;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.gmss.fiscad.deserializer.LocalDateDeserializer;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.entities.infocad.metier.Tpe; import io.gmss.fiscad.entities.infocad.metier.Tpe;
import jakarta.persistence.*; import jakarta.persistence.*;
@@ -11,6 +14,7 @@ import lombok.NoArgsConstructor;
import org.hibernate.annotations.Where; import org.hibernate.annotations.Where;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate;
import java.util.List; import java.util.List;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@@ -27,6 +31,9 @@ public class UniteLogement extends BaseEntity implements Serializable {
private String nul; private String nul;
private String numeroEtage; private String numeroEtage;
private String code; private String code;
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateConstruction;
@JsonIgnore @JsonIgnore
@OneToMany(mappedBy = "uniteLogement") @OneToMany(mappedBy = "uniteLogement")
private List<EnqueteUniteLogement> enqueteUniteLogements; private List<EnqueteUniteLogement> enqueteUniteLogements;

View File

@@ -39,6 +39,7 @@ public class Caracteristique extends BaseEntity implements Serializable {
private Tpe terminal; private Tpe terminal;
@ManyToOne @ManyToOne
private CategorieBatiment categorieBatiment; private CategorieBatiment categorieBatiment;
@ManyToOne(fetch = FetchType.LAZY) @ManyToOne(fetch = FetchType.LAZY)
private Arrondissement arrondissement; private Arrondissement arrondissement;
} }

View File

@@ -0,0 +1,67 @@
package io.gmss.fiscad.entities.user;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.gmss.fiscad.deserializer.LocalDateDeserializer;
import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.entities.decoupage.Secteur;
import io.gmss.fiscad.entities.decoupage.Section;
import io.gmss.fiscad.entities.infocad.parametre.Structure;
import io.gmss.fiscad.enums.Titre;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.time.LocalDate;
@EqualsAndHashCode(callSuper = true)
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
//@SQLDelete(sql =
// "UPDATE parcelle " +
// "SET deleted = true " +
// "WHERE id = ?")
//@Where(clause = " deleted = false")
public class AvoirFonction extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateDebut;
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateFin;
@JsonIgnore
@ManyToOne //(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "user_id", nullable = false)
@NotNull
private User user;
@ManyToOne //(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "fonction_id", nullable = false)
@NotNull
private Fonction fonction;
@Enumerated(EnumType.STRING)
private Titre titre;
@JsonIgnore
public Long getExternalKey() {
return super.getExternalKey();
}
@JsonIgnore
public Long getEnqueteExternalKey() {
return super.getEnqueteExternalKey();
}
}

View File

@@ -0,0 +1,71 @@
package io.gmss.fiscad.entities.user;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.gmss.fiscad.deserializer.LocalDateDeserializer;
import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.entities.decoupage.Departement;
import io.gmss.fiscad.entities.decoupage.Secteur;
import io.gmss.fiscad.entities.decoupage.Section;
import io.gmss.fiscad.entities.infocad.parametre.Structure;
import io.gmss.fiscad.entities.user.User;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springframework.stereotype.Service;
import java.io.Serializable;
import java.time.LocalDate;
@EqualsAndHashCode(callSuper = true)
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
//@SQLDelete(sql =
// "UPDATE parcelle " +
// "SET deleted = true " +
// "WHERE id = ?")
//@Where(clause = " deleted = false")
public class Fonction extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String code ;
private String nom ;
@JsonBackReference
@ManyToOne
private Secteur secteur;
//@JsonBackReference
@ManyToOne
private Section section;
@ManyToOne
@JoinColumn(name = "structure_id")
private Structure structure;
@ManyToOne
private Departement departement;
//@JsonIgnore
@ManyToOne //(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "profile_id", nullable = false)
@NotNull
private Profile profile;
@JsonIgnore
public Long getExternalKey() {
return super.getExternalKey();
}
@JsonIgnore
public Long getEnqueteExternalKey() {
return super.getEnqueteExternalKey();
}
}

View File

@@ -0,0 +1,78 @@
package io.gmss.fiscad.entities.user;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.enums.UserProfile;
import io.gmss.fiscad.enums.UserRole;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
//@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class Profile extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Enumerated(EnumType.STRING)
private UserProfile nom;
private String description;
public Profile(UserProfile name, String description) {
this.nom = name;
this.description = description;
}
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "profile_role",
joinColumns = @JoinColumn(name = "profile_id"),
inverseJoinColumns = @JoinColumn(name = "role_id")
)
private Set<Role> roles = new HashSet<>();
@Override
public boolean equals(Object o) {
// If the object is compared with itself then return true
if (o == this) {
return true;
}
/* Check if o is an instance of Complex or not
"null instanceof [type]" also returns false */
if (!(o instanceof Profile)) {
return false;
}
// typecast o to Complex so that we can compare data members
Profile r = (Profile) o;
// Compare the data members and return accordingly
return r.getNom().equals(this.getNom());
}
@Override
public int hashCode() {
return Objects.hash(id, nom, description);
}
@JsonIgnore
public Long getExternalKey() {
return super.getExternalKey();
}
@JsonIgnore
public Long getEnqueteExternalKey() {
return super.getEnqueteExternalKey();
}
}

View File

@@ -1,5 +1,6 @@
package io.gmss.fiscad.entities.user; package io.gmss.fiscad.entities.user;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.enums.UserRole; import io.gmss.fiscad.enums.UserRole;
import jakarta.persistence.*; import jakarta.persistence.*;
@@ -54,4 +55,13 @@ public class Role extends BaseEntity implements Serializable {
public int hashCode() { public int hashCode() {
return Objects.hash(id, nom, description); return Objects.hash(id, nom, description);
} }
@JsonIgnore
public Long getExternalKey() {
return super.getExternalKey();
}
@JsonIgnore
public Long getEnqueteExternalKey() {
return super.getEnqueteExternalKey();
}
} }

View File

@@ -16,6 +16,7 @@ import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where; import org.hibernate.annotations.Where;
import java.io.Serializable; import java.io.Serializable;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@@ -39,6 +40,12 @@ public class User extends BaseEntity implements Serializable {
private String prenom; private String prenom;
private String tel; private String tel;
private String email; private String email;
@Column(
name = "username",
nullable = false,
unique = true,
length = 200
)
private String username; private String username;
@JsonIgnore @JsonIgnore
private String password; private String password;
@@ -46,41 +53,31 @@ public class User extends BaseEntity implements Serializable {
private boolean active; private boolean active;
@Column(columnDefinition = "boolean default false") @Column(columnDefinition = "boolean default false")
private boolean resetPassword; private boolean resetPassword;
@ManyToMany
@JoinTable(name = "users_roles", @OneToMany(mappedBy = "user")
joinColumns = @JoinColumn(name = "user_id"), private Set<AvoirFonction> avoirFonctions= new HashSet<>();
inverseJoinColumns = @JoinColumn(name = "roles_id")
)
private Set<Role> roles;
@ManyToOne @ManyToOne
private Structure structure; private Structure structure;
// @JsonIgnore
// @OneToMany(mappedBy = "user")
// private List<Enquete> enquetes;
@JsonIgnore @JsonIgnore
@OneToMany(mappedBy = "user") @OneToMany(mappedBy = "user")
private List<Participer> participers; private List<Participer> participers;
// @JsonIgnore
// @OneToMany(mappedBy = "chefSecteur")
// private List<Secteur> secteurs;
@Transient @Transient
private Long idCampagneCourant; private Long idCampagneCourant;
@Transient @Transient
private Long idSecteurCourant; private Long idSecteurCourant;
public void setUsername(String username) {
this.username = this.email;
}
public boolean isAdmin() { public boolean isAdmin() {
for (Role r : this.roles) { // for (Role r : this.roles) {
if (r.getNom().equals(UserRole.ROLE_ADMIN)) { // if (r.getNom().equals(UserRole.ROLE_ADMIN)) {
return true; // return true;
} // }
} // }
return false; return false;
} }

View File

@@ -1,10 +1,9 @@
package io.gmss.fiscad.enums; package io.gmss.fiscad.enums;
public enum StatusEnquete { public enum StatutEnquete {
EN_COURS, EN_COURS,
FINALISE, FINALISE,
REJETE, REJETE,
VALIDE, VALIDE,
//SYNCHRONISE
ECHEC ECHEC
} }

View File

@@ -1,6 +1,9 @@
package io.gmss.fiscad.enums; package io.gmss.fiscad.enums;
public enum StatutEnregistrement { public enum StatutEnregistrement {
NOUVELLE_INSERTION, SAISIE_EN_COURS,
MISE_A_JOUR SAISIE,
VALIDATION_EN_COURS,
VALIDE,
REJETE
} }

View File

@@ -0,0 +1,6 @@
package io.gmss.fiscad.enums;
public enum Titre {
TITULAIRE,
INTERIMAIRE
}

View File

@@ -0,0 +1,9 @@
package io.gmss.fiscad.enums;
public enum UserProfile {
INSPECTEUR_GESTIONNAIRE,
ADMIN_FONCTIONNEL,
INSPECTEUR_GESTIONNAIRE_CHEF_SECTEUR,
INSPECTEUR_GESTIONNAIRE_CHEF_SECTION,
INSPECTEUR_GESTIONNAIRE_CHEF_CENTRE
}

View File

@@ -2,11 +2,23 @@ package io.gmss.fiscad.enums;
public enum UserRole { public enum UserRole {
ROLE_ADMIN, ADMIN,
ROLE_USER, CREATE_USER,
ROLE_DIRECTEUR, UPDATE_USER,
ROLE_SUPERVISEUR, READ_USER,
ROLE_ENQUETEUR, DELETE_USER,
ROLE_ANONYMOUS, CREATE_PARCELLE,
ROLE_RESPONSABLE UPDATE_PARCELLE,
READ_PARCELLE,
DELETE_PARCELLE,
CREATE_ENQUETE,
UPDATE_ENQUETE,
READ_ENQUETE,
DELETE_ENQUETE,
CREATE_BATIMENT,
UPDATE_BATIMENT,
READ_BATIMENT,
DELETE_BATIMENT
} }

View File

@@ -0,0 +1,11 @@
package io.gmss.fiscad.exceptions;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;
@ResponseStatus(HttpStatus.NOT_ACCEPTABLE)
public class ApplicationException extends RuntimeException {
public ApplicationException(String message) {
super(message);
}
}

View File

@@ -6,7 +6,8 @@ import io.gmss.fiscad.exceptions.BadRequestException;
import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.exceptions.NotFoundException;
import io.gmss.fiscad.interfaces.decoupage.ArrondissementService; import io.gmss.fiscad.interfaces.decoupage.ArrondissementService;
import io.gmss.fiscad.interfaces.decoupage.CommuneService; import io.gmss.fiscad.interfaces.decoupage.CommuneService;
import io.gmss.fiscad.repositories.decoupage.ArrondissementRepository; import io.gmss.fiscad.paylaods.request.crudweb.ArrondissementPaylaodWeb;
import io.gmss.fiscad.persistence.repositories.decoupage.ArrondissementRepository;
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.stereotype.Service; import org.springframework.stereotype.Service;
@@ -55,27 +56,28 @@ public class ArrondissementServiceImpl implements ArrondissementService {
} }
@Override @Override
public Page<Arrondissement> getArrondissementList(Pageable pageable) { public Page<ArrondissementPaylaodWeb> getArrondissementList(Pageable pageable) {
return arrondissementRepository.findAll(pageable); return arrondissementRepository.findAllArrondissementToDtoPageable(pageable);
} }
@Override @Override
public List<Arrondissement> getArrondissementList() { public List<ArrondissementPaylaodWeb> getArrondissementList() {
return arrondissementRepository.findAll(); return arrondissementRepository.findAllArrondissementToDto();
} }
@Override @Override
public Optional<Arrondissement> getArrondissementById(Long id) { public List<ArrondissementPaylaodWeb> getArrondissementListByCommuneId(Long communeId) {
return arrondissementRepository.findById(id); return arrondissementRepository.findAllArrondissementByCommuneToDto(communeId);
} }
@Override @Override
public List<Arrondissement> getArrondissementByComune(Long communeId) { public Page<ArrondissementPaylaodWeb> getArrondissementListByCommuneId(Long communeId, Pageable pageable) {
Optional<Commune> communeOptional = communeService.getCommuneById(communeId); return arrondissementRepository.findAllArrondissementByCommuneToDtoPageable(communeId,pageable);
if (communeOptional.isEmpty()) {
throw new NotFoundException("Impossible de trouver la commune spécifiée.");
} }
return arrondissementRepository.findAllByCommune(communeOptional.get());
@Override
public Optional<ArrondissementPaylaodWeb> getArrondissementById(Long id) {
return arrondissementRepository.findArrondissementToDtoById(id);
} }

View File

@@ -6,7 +6,9 @@ import io.gmss.fiscad.exceptions.BadRequestException;
import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.exceptions.NotFoundException;
import io.gmss.fiscad.interfaces.decoupage.CommuneService; import io.gmss.fiscad.interfaces.decoupage.CommuneService;
import io.gmss.fiscad.interfaces.decoupage.DepartementService; import io.gmss.fiscad.interfaces.decoupage.DepartementService;
import io.gmss.fiscad.repositories.decoupage.CommuneRepository; import io.gmss.fiscad.paylaods.request.crudweb.CommunePaylaodWeb;
import io.gmss.fiscad.paylaods.request.crudweb.DepartementPaylaodWeb;
import io.gmss.fiscad.persistence.repositories.decoupage.CommuneRepository;
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.stereotype.Service; import org.springframework.stereotype.Service;
@@ -55,27 +57,28 @@ public class CommuneServiceImpl implements CommuneService {
} }
@Override @Override
public Page<Commune> getCommuneList(Pageable pageable) { public Page<CommunePaylaodWeb> getCommuneList(Pageable pageable) {
return communeRepository.findAll(pageable); return communeRepository.findAllCommuneToDtoPageable(pageable);
}
@Override
public List<Commune> getCommuneList() {
return communeRepository.findAll();
} }
@Override @Override
public List<Commune> getCommunesByDepartement(Long departementId) { public List<CommunePaylaodWeb> getCommuneList() {
Optional<Departement> departementOptional = departementService.getDepartementById(departementId); return communeRepository.findAllCommuneToDto();
if (departementOptional.isEmpty()) {
throw new NotFoundException("Impossible de trouver le département spécifié.");
}
return communeRepository.findAllByDepartement(departementOptional.get());
} }
@Override @Override
public Optional<Commune> getCommuneById(Long id) { public List<CommunePaylaodWeb> getCommunesByDepartementId(Long departementId) {
return communeRepository.findById(id); return communeRepository.findAllCommuneByDepartementToDto(departementId);
}
@Override
public Page<CommunePaylaodWeb> getCommunesByDepartementId(Long departementId, Pageable pageable) {
return communeRepository.findAllCommuneByDepartementToDtoPageable(departementId,pageable);
}
@Override
public Optional<CommunePaylaodWeb> getCommuneById(Long id) {
return communeRepository.findCommuneToDtoById(id);
} }
} }

View File

@@ -4,7 +4,8 @@ import io.gmss.fiscad.entities.decoupage.Departement;
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.DepartementService; import io.gmss.fiscad.interfaces.decoupage.DepartementService;
import io.gmss.fiscad.repositories.decoupage.DepartementRepository; import io.gmss.fiscad.paylaods.request.crudweb.DepartementPaylaodWeb;
import io.gmss.fiscad.persistence.repositories.decoupage.DepartementRepository;
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.stereotype.Service; import org.springframework.stereotype.Service;
@@ -51,20 +52,20 @@ public class DepartementServiceImpl implements DepartementService {
} }
@Override @Override
public Page<Departement> getDepartementList(Pageable pageable) { public Page<DepartementPaylaodWeb> getDepartementList(Pageable pageable) {
return departementRepository.findAll(pageable); return departementRepository.findAllDepartementToDtoPageable(pageable);
} }
@Override @Override
public List<Departement> getDepartementList() { public List<DepartementPaylaodWeb> getDepartementList() {
return departementRepository.findAll(); return departementRepository.findAllDepartementToDto();
} }
@Override @Override
public Optional<Departement> getDepartementById(Long id) { public Optional<DepartementPaylaodWeb> getDepartementById(Long id) {
if (departementRepository.existsById(id)) { if (departementRepository.existsById(id)) {
return departementRepository.findById(id); return departementRepository.findDepartementToDtoById(id);
} else { } else {
throw new NotFoundException("Impossible de trouver le département spécifié dans la base de données."); throw new NotFoundException("Impossible de trouver le département spécifié dans la base de données.");
} }

View File

@@ -4,7 +4,7 @@ import io.gmss.fiscad.entities.decoupage.Nationalite;
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.NationaliteService; import io.gmss.fiscad.interfaces.decoupage.NationaliteService;
import io.gmss.fiscad.repositories.decoupage.NationaliteRepository; import io.gmss.fiscad.persistence.repositories.decoupage.NationaliteRepository;
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.stereotype.Service; import org.springframework.stereotype.Service;

View File

@@ -6,7 +6,8 @@ import io.gmss.fiscad.exceptions.BadRequestException;
import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.exceptions.NotFoundException;
import io.gmss.fiscad.interfaces.decoupage.ArrondissementService; import io.gmss.fiscad.interfaces.decoupage.ArrondissementService;
import io.gmss.fiscad.interfaces.decoupage.QuartierService; import io.gmss.fiscad.interfaces.decoupage.QuartierService;
import io.gmss.fiscad.repositories.decoupage.QuartierRepository; import io.gmss.fiscad.paylaods.request.crudweb.QuartierPaylaodWeb;
import io.gmss.fiscad.persistence.repositories.decoupage.QuartierRepository;
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.stereotype.Service; import org.springframework.stereotype.Service;
@@ -55,31 +56,28 @@ public class QuartierServiceImpl implements QuartierService {
} }
@Override @Override
public Page<Quartier> getQuartierList(Pageable pageable) { public Page<QuartierPaylaodWeb> getQuartierList(Pageable pageable) {
return quartierRepository.findAll(pageable); return quartierRepository.findAllQuartierToDtoPageable(pageable);
} }
@Override @Override
public List<Quartier> getQuartierList() { public List<QuartierPaylaodWeb> getQuartierList() {
return quartierRepository.findAll(); return quartierRepository.findAllQuartierToDto();
} }
@Override @Override
public Optional<Quartier> getQuartierById(Long id) { public List<QuartierPaylaodWeb> getQuartierListByArrondissementId(Long arrondissementId) {
if (quartierRepository.existsById(id)) { return quartierRepository.findAllQuartierByArrondissementToDto(arrondissementId);
return quartierRepository.findById(id);
} else {
throw new NotFoundException("Impossible de trouver le quartier spécifié dans la base de données.");
}
} }
@Override @Override
public List<Quartier> getQuartierByArrondissement(Long arrondissementId) { public Page<QuartierPaylaodWeb> getQuartierListByArrondissementId(Long arrondissementId, Pageable pageable) {
Optional<Arrondissement> arrondissementOptional = arrondissementService.getArrondissementById(arrondissementId); return quartierRepository.findAllQuartierByArrondissementToDtoPageable(arrondissementId,pageable);
if (arrondissementOptional.isEmpty()) {
throw new NotFoundException("Impossible de trouver l'arrondissement spécifié.");
} }
return quartierRepository.getAllByArrondissement(arrondissementOptional.get());
@Override
public Optional<QuartierPaylaodWeb> getQuartierById(Long id) {
return quartierRepository.findQuartierToDtoById(id);
} }
} }

View File

@@ -1,42 +1,58 @@
package io.gmss.fiscad.implementations.decoupage; package io.gmss.fiscad.implementations.decoupage;
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.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.repositories.decoupage.SecteurDecoupageRepository; import io.gmss.fiscad.interfaces.decoupage.SecteurService;
import io.gmss.fiscad.paylaods.request.crudweb.SecteurDecoupagePaylaodWeb;
import io.gmss.fiscad.paylaods.request.crudweb.SecteurPaylaodWeb;
import io.gmss.fiscad.paylaods.response.restoration.ParcelleStatsProjectionUnSecteur;
import io.gmss.fiscad.persistence.repositories.decoupage.SecteurDecoupageRepository;
import io.gmss.fiscad.persistence.repositories.infocad.metier.ParcelleRepository;
import io.gmss.fiscad.service.EntityFromPayLoadService;
import lombok.AllArgsConstructor;
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.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@AllArgsConstructor
@Service @Service
public class SecteurDecoupageServiceImpl implements SecteurDecoupageService { public class SecteurDecoupageServiceImpl implements SecteurDecoupageService {
private final SecteurDecoupageRepository secteurDecoupageRepository; private final SecteurDecoupageRepository secteurDecoupageRepository;
private final SecteurService secteurService;
private final ParcelleRepository parcelleRepository;
private final EntityFromPayLoadService entityFromPayLoadService;
public SecteurDecoupageServiceImpl(SecteurDecoupageRepository secteurDecoupageRepository) {
this.secteurDecoupageRepository = secteurDecoupageRepository;
}
@Override @Override
public SecteurDecoupage createSecteurDecoupage(SecteurDecoupage secteurDecoupage) throws BadRequestException { public SecteurDecoupagePaylaodWeb createSecteurDecoupage(SecteurDecoupagePaylaodWeb secteurDecoupagePaylaodWeb) throws BadRequestException {
if (secteurDecoupage.getId() != null) { if (secteurDecoupagePaylaodWeb.getId() != null) {
throw new BadRequestException("Impossible de créer un nouveau secteur découpage ayant un id non null."); throw new BadRequestException("Impossible de créer un nouveau secteur découpage ayant un id non null.");
} }
return secteurDecoupageRepository.save(secteurDecoupage); SecteurDecoupage secteurDecoupage = entityFromPayLoadService.getSecteurDecoupageFromPayLoadWeb(secteurDecoupagePaylaodWeb);
secteurDecoupage = secteurDecoupageRepository.save(secteurDecoupage);
return secteurDecoupageRepository.findSecteurDecoupageToDtoById(secteurDecoupage.getId()).orElse(null);
} }
@Override @Override
public SecteurDecoupage updateSecteurDecoupage(Long id, SecteurDecoupage secteurDecoupage) throws NotFoundException { public SecteurDecoupagePaylaodWeb updateSecteurDecoupage(Long id, SecteurDecoupagePaylaodWeb secteurDecoupagePaylaodWeb) throws NotFoundException {
if (secteurDecoupage.getId() == null) { if (secteurDecoupagePaylaodWeb.getId() == null) {
throw new BadRequestException("Impossible de mettre à jour un nouveau secteur découpage ayant un id null."); throw new BadRequestException("Impossible de mettre à jour un nouveau secteur découpage ayant un id null.");
} }
if (!secteurDecoupageRepository.existsById(secteurDecoupage.getId())) { if (!secteurDecoupageRepository.existsById(secteurDecoupagePaylaodWeb.getId())) {
throw new NotFoundException("Impossible de trouver le secteur découpage spécifié."); throw new NotFoundException("Impossible de trouver le secteur découpage spécifié.");
} }
return secteurDecoupageRepository.save(secteurDecoupage);
SecteurDecoupage secteurDecoupage = entityFromPayLoadService.getSecteurDecoupageFromPayLoadWeb(secteurDecoupagePaylaodWeb);
secteurDecoupage = secteurDecoupageRepository.save(secteurDecoupage);
return secteurDecoupageRepository.findSecteurDecoupageToDtoById(secteurDecoupage.getId()).orElse(null);
} }
@Override @Override
@@ -50,13 +66,28 @@ public class SecteurDecoupageServiceImpl implements SecteurDecoupageService {
} }
@Override @Override
public Page<SecteurDecoupage> getSecteurDecoupageList(Pageable pageable) { public Page<SecteurDecoupagePaylaodWeb> getSecteurDecoupageList(Pageable pageable) {
return secteurDecoupageRepository.findAll(pageable); return secteurDecoupageRepository.findAllSecteurDecoupageToDtoPageable(pageable);
} }
@Override @Override
public List<SecteurDecoupage> getSecteurDecoupageList() { public List<SecteurDecoupagePaylaodWeb> getSecteurDecoupageList() {
return secteurDecoupageRepository.findAll(); return secteurDecoupageRepository.findAllSecteurDecoupageToDto();
}
@Override
public Page<SecteurDecoupagePaylaodWeb> getSecteurDecoupageListBySecteurId(Long secteurId, Pageable pageable) {
return secteurDecoupageRepository.findAllSecteurDecoupageBySecteurToDtoPageable(secteurId,pageable);
}
@Override
public List<SecteurDecoupagePaylaodWeb> getSecteurDecoupageListBySecteurId(Long sectionId) {
return secteurDecoupageRepository.findAllSecteurDecoupageBySecteurToDto(sectionId);
}
@Override
public Optional<SecteurDecoupagePaylaodWeb> getSecteurDecoupageByIdToDto(Long id) {
return secteurDecoupageRepository.findSecteurDecoupageToDtoById(id);
} }
@@ -64,4 +95,21 @@ public class SecteurDecoupageServiceImpl implements SecteurDecoupageService {
public Optional<SecteurDecoupage> getSecteurDecoupageById(Long id) { public Optional<SecteurDecoupage> getSecteurDecoupageById(Long id) {
return secteurDecoupageRepository.findById(id); return secteurDecoupageRepository.findById(id);
} }
@Override
public List<ParcelleStatsProjectionUnSecteur> getStatParcelleDecoupageUnSecteur(Long secteurId) {
return parcelleRepository.findStatsBySecteurs(List.of(secteurId));
}
@Override
public List<ParcelleStatsProjectionUnSecteur> getStatParcelleDecoupageByUserId(Long userId) {
List<ParcelleStatsProjectionUnSecteur> parcelleStatsProjectionUnSecteurs = new ArrayList<>();
List<Secteur> secteurs= secteurService.getListSecteurUserId(userId);
List<Long> secteurIds = secteurs.stream()
.map(Secteur::getId)
.toList();
parcelleStatsProjectionUnSecteurs = parcelleRepository.findStatsBySecteurs(secteurIds);
return parcelleStatsProjectionUnSecteurs ;
}
} }

View File

@@ -3,105 +3,103 @@ 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.entities.infocad.parametre.Structure; import io.gmss.fiscad.entities.infocad.parametre.Structure;
import io.gmss.fiscad.entities.user.AvoirFonction;
import io.gmss.fiscad.entities.user.User; import io.gmss.fiscad.entities.user.User;
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;
import io.gmss.fiscad.paylaods.request.SecteurDecoupagePayload; import io.gmss.fiscad.paylaods.request.crudweb.SecteurPaylaodWeb;
import io.gmss.fiscad.paylaods.request.SecteurPayload; import io.gmss.fiscad.paylaods.request.synchronisation.SecteurDecoupagePayload;
import io.gmss.fiscad.repositories.decoupage.ArrondissementRepository; import io.gmss.fiscad.paylaods.request.synchronisation.SecteurPayload;
import io.gmss.fiscad.repositories.decoupage.QuartierRepository; import io.gmss.fiscad.persistence.repositories.decoupage.ArrondissementRepository;
import io.gmss.fiscad.repositories.decoupage.SecteurRepository; import io.gmss.fiscad.persistence.repositories.decoupage.QuartierRepository;
import io.gmss.fiscad.repositories.infocad.parametre.StructureRepository; import io.gmss.fiscad.persistence.repositories.decoupage.SecteurRepository;
import io.gmss.fiscad.repositories.user.UserRepository; import io.gmss.fiscad.persistence.repositories.infocad.metier.ParcelleRepository;
import io.gmss.fiscad.persistence.repositories.infocad.parametre.StructureRepository;
import io.gmss.fiscad.persistence.repositories.user.AvoirFonctionRepository;
import io.gmss.fiscad.persistence.repositories.user.UserRepository;
import io.gmss.fiscad.service.EntityFromPayLoadService;
import lombok.AllArgsConstructor;
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.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@AllArgsConstructor
@Service @Service
public class SecteurServiceImpl implements SecteurService { public class SecteurServiceImpl implements SecteurService {
private final SecteurRepository secteurRepository; private final SecteurRepository secteurRepository;
private final ParcelleRepository parcelleRepository;
private final UserRepository userRepository; private final UserRepository userRepository;
private final ArrondissementRepository arrondissementRepository; private final ArrondissementRepository arrondissementRepository;
private final QuartierRepository quartierRepository; private final QuartierRepository quartierRepository;
private final StructureRepository structureRepository; private final StructureRepository structureRepository;
private final AvoirFonctionRepository avoirFonctionRepository;
private final EntityFromPayLoadService entityFromPayLoadService;
public SecteurServiceImpl(SecteurRepository secteurRepository, UserRepository userRepository, ArrondissementRepository arrondissementRepository, QuartierRepository quartierRepository, StructureRepository structureRepository) {
this.secteurRepository = secteurRepository;
this.userRepository = userRepository;
this.arrondissementRepository = arrondissementRepository;
this.quartierRepository = quartierRepository;
this.structureRepository = structureRepository;
}
@Override @Override
public Secteur createSecteur(SecteurPayload secteurPayload) throws BadRequestException { public SecteurPaylaodWeb createSecteur(SecteurPaylaodWeb secteurPaylaodWeb) throws BadRequestException {
if (secteurPayload.getId() != null) { if (secteurPaylaodWeb.getId() != null) {
throw new BadRequestException("Impossible de créer un nouveau secteur ayant un id non null."); throw new BadRequestException("Impossible de créer un nouveau secteur ayant un id non null.");
} }
Secteur secteur = entityFromPayLoadService.getSecteurFromPayLoadWeb(secteurPaylaodWeb);
if (secteurPayload.getChefSecteurId() != null && userRepository.existsById(secteurPayload.getChefSecteurId())) { secteur = secteurRepository.save(secteur);
Secteur secteur = getSecteurFromPayload(secteurPayload); return secteurRepository.findSecteurToDtoById(secteur.getId()).orElse(null);
return secteurRepository.save(secteur);
} else {
throw new BadRequestException("Impossible de créer un nouveau secteur sans le chef le Chef Secteur.");
}
} }
private Secteur getSecteurFromPayload(SecteurPayload secteurPayload) { // private Secteur getSecteurFromPayload(SecteurPayload secteurPayload) {
Secteur secteur = new Secteur(); // Secteur secteur = new Secteur();
Optional<User> optionalUser = userRepository.findById(secteurPayload.getChefSecteurId()); //// Optional<User> optionalUser = userRepository.findById(secteurPayload.getChefSecteurId());
secteur.setChefSecteur(optionalUser.orElse(null)); // //secteur.setChefSecteur(optionalUser.orElse(null));
Optional<Structure> optionalStructure = structureRepository.findById(secteurPayload.getStructureId()); //// Optional<Structure> optionalStructure = structureRepository.findById(secteurPayload.getStructureId());
secteur.setStructure(optionalStructure.orElse(null)); //// secteur.setStructure(optionalStructure.orElse(null));
List<SecteurDecoupage> secteurDecoupageList = new ArrayList<>(); //// List<SecteurDecoupage> secteurDecoupageList = new ArrayList<>();
//
for (SecteurDecoupagePayload sdp : secteurPayload.getSecteurDecoupages()) { //// for (SecteurDecoupagePayload sdp : secteurPayload.getSecteurDecoupages()) {
SecteurDecoupage sd = new SecteurDecoupage(); //// SecteurDecoupage sd = new SecteurDecoupage();
if (sdp.getSecteurId() != null && secteurRepository.existsById(sdp.getSecteurId())) { //// if (sdp.getSecteurId() != null && secteurRepository.existsById(sdp.getSecteurId())) {
sd.setSecteur(secteurRepository.findById(sdp.getSecteurId()).orElse(null)); //// sd.setSecteur(secteurRepository.findById(sdp.getSecteurId()).orElse(null));
} //// }
////
if (sdp.getArrondissementId() != null && arrondissementRepository.existsById(sdp.getArrondissementId())) { //// if (sdp.getArrondissementId() != null && arrondissementRepository.existsById(sdp.getArrondissementId())) {
sd.setArrondissement(arrondissementRepository.findById(sdp.getArrondissementId()).orElse(null)); //// sd.setArrondissement(arrondissementRepository.findById(sdp.getArrondissementId()).orElse(null));
} //// }
////
if (sdp.getQuartierId() != null && quartierRepository.existsById(sdp.getQuartierId())) { //// if (sdp.getQuartierId() != null && quartierRepository.existsById(sdp.getQuartierId())) {
sd.setQuartier(quartierRepository.findById(sdp.getQuartierId()).orElse(null)); //// sd.setQuartier(quartierRepository.findById(sdp.getQuartierId()).orElse(null));
} //// }
sd.setDateDebut(sdp.getDateDebut()); //// sd.setDateDebut(sdp.getDateDebut());
sd.setDateFin(sdp.getDateFin()); //// sd.setDateFin(sdp.getDateFin());
sd.setId(sdp.getId()); //// sd.setId(sdp.getId());
secteurDecoupageList.add(sd); //// secteurDecoupageList.add(sd);
} //// }
secteur.setSecteurDecoupages(secteurDecoupageList); // //secteur.setSecteurDecoupages(secteurDecoupageList);
//TODO // //TODO
secteur.setId(secteurPayload.getId()); // secteur.setId(secteurPayload.getId());
secteur.setCode(secteurPayload.getCode()); // secteur.setCode(secteurPayload.getCode());
secteur.setNom(secteurPayload.getNom()); // secteur.setNom(secteurPayload.getNom());
return secteur; // return secteur;
} // }
@Override @Override
public Secteur updateSecteur(Long id, SecteurPayload secteurPayload) throws NotFoundException { public SecteurPaylaodWeb updateSecteur(Long id, SecteurPaylaodWeb secteurPaylaodWeb) throws NotFoundException {
if (secteurPayload.getId() == null) { if (secteurPaylaodWeb.getId() == null) {
throw new BadRequestException("Impossible de mettre à jour un nouveau secteur ayant un id null."); throw new BadRequestException("Impossible de mettre à jour un nouveau secteur ayant un id null.");
} }
if (!secteurRepository.existsById(secteurPayload.getId())) { if (!secteurRepository.existsById(secteurPaylaodWeb.getId())) {
throw new NotFoundException("Impossible de trouver le secteur spécifié."); throw new NotFoundException("Impossible de trouver le secteur spécifié.");
} }
if (secteurPayload.getChefSecteurId() != null && userRepository.existsById(secteurPayload.getChefSecteurId())) { Secteur secteur = entityFromPayLoadService.getSecteurFromPayLoadWeb(secteurPaylaodWeb);
Secteur secteur = getSecteurFromPayload(secteurPayload); secteur = secteurRepository.save(secteur);
return secteurRepository.save(secteur); return secteurRepository.findSecteurToDtoById(secteur.getId()).orElse(null);
} else {
throw new BadRequestException("Impossible de créer un nouveau secteur sans le chef le Chef Secteur.");
}
} }
@Override @Override
@@ -115,23 +113,58 @@ public class SecteurServiceImpl implements SecteurService {
} }
@Override @Override
public Page<Secteur> getSecteurList(Pageable pageable) { public Page<SecteurPaylaodWeb> getSecteurList(Pageable pageable) {
return secteurRepository.findAll(pageable); return secteurRepository.findAllSecteurToDtoPageable(pageable);
} }
@Override @Override
public List<Secteur> getSecteurList() { public List<SecteurPaylaodWeb> getSecteurList() {
return secteurRepository.findAll(); return secteurRepository.findAllSecteurToDto();
} }
@Override @Override
public List<Secteur> getSecteurListUneStruture(Long structureId) { public Page<SecteurPaylaodWeb> getSecteurListBySectionId(Long sectionId, Pageable pageable) {
return secteurRepository.findAllByStructure_Id(structureId); return secteurRepository.findAllSecteurBySectionIdToDtoPageable(sectionId,pageable);
}
@Override
public List<SecteurPaylaodWeb> getSecteurListBySectionId(Long sectionId) {
return secteurRepository.findAllSecteurBySectionIdToDto(sectionId);
}
@Override
public List<SecteurPaylaodWeb> getSecteurListByStructureId(Long structureId) {
return secteurRepository.findAllSecteurByStructureIdToDto(structureId);
}
@Override
public Page<SecteurPaylaodWeb> getSecteurListByStructureId(Long structureId, Pageable pageable) {
return secteurRepository.findAllSecteurByStructureIdToDtoPageable(structureId,pageable);
} }
@Override @Override
public Optional<Secteur> getSecteurById(Long id) { public Optional<SecteurPaylaodWeb> getSecteurById(Long id) {
return secteurRepository.findById(id); return secteurRepository.findSecteurToDtoById(id);
}
@Override
public List<Secteur> getListSecteurUserId(Long userId) {
List<AvoirFonction> avoirFonctions= avoirFonctionRepository.findAvoirFonctionByUser_Id(userId);
List<Secteur> secteurs = new ArrayList<>();
avoirFonctions.stream()
.filter(af -> af.getDateFin() == null || af.getDateFin().isAfter(LocalDate.now()))
.forEach(avoirFonction -> {
if(avoirFonction.getFonction().getSecteur()!=null){
secteurs.addAll(List.of(avoirFonction.getFonction().getSecteur()));
}else
if (avoirFonction.getFonction().getSection()!=null){
secteurs.addAll(secteurRepository.findDistinctBySection_Id(avoirFonction.getFonction().getSection().getId()));
}else if(avoirFonction.getFonction().getStructure()!=null){
secteurs.addAll(secteurRepository.findDistinctBySection_Structure_Id(avoirFonction.getFonction().getStructure().getId()));
}
});
return secteurs;
} }
} }

View File

@@ -0,0 +1,90 @@
package io.gmss.fiscad.implementations.decoupage;
import io.gmss.fiscad.entities.decoupage.Secteur;
import io.gmss.fiscad.entities.decoupage.Section;
import io.gmss.fiscad.entities.rfu.metier.Batiment;
import io.gmss.fiscad.exceptions.BadRequestException;
import io.gmss.fiscad.exceptions.NotFoundException;
import io.gmss.fiscad.interfaces.decoupage.SectionService;
import io.gmss.fiscad.paylaods.request.crudweb.SectionPaylaodWeb;
import io.gmss.fiscad.persistence.repositories.decoupage.SectionRepository;
import io.gmss.fiscad.persistence.repositories.infocad.parametre.StructureRepository;
import io.gmss.fiscad.persistence.repositories.rfu.metier.BatimentRepository;
import io.gmss.fiscad.service.EntityFromPayLoadService;
import lombok.AllArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@AllArgsConstructor
@Service
public class SectionServiceImpl implements SectionService {
private final StructureRepository structureRepository;
private final SectionRepository sectionRepository;
private final EntityFromPayLoadService entityFromPayLoadService;
@Override
public SectionPaylaodWeb createSection(SectionPaylaodWeb sectionPaylaodWeb) throws BadRequestException {
if (sectionPaylaodWeb.getId() != null) {
throw new BadRequestException("Impossible de créer une nouvelle section ayant un id non null.");
}
Section section= entityFromPayLoadService.getSectionFromPayLoadWeb(sectionPaylaodWeb);
section=sectionRepository.save(section);
return sectionRepository.findSectionToDtoById(section.getId()).orElse(null);
}
@Override
public SectionPaylaodWeb updateSection(Long id, SectionPaylaodWeb sectionPaylaodWeb) throws NotFoundException {
if (sectionPaylaodWeb.getId() == null) {
throw new BadRequestException("Impossible de mettre à jour un nouveau section ayant un id null.");
}
if (!sectionRepository.existsById(sectionPaylaodWeb.getId())) {
throw new NotFoundException("Impossible de trouver le section spécifié.");
}
Section section= entityFromPayLoadService.getSectionFromPayLoadWeb(sectionPaylaodWeb);
section=sectionRepository.save(section);
return sectionRepository.findSectionToDtoById(section.getId()).orElse(null);
}
@Override
public void deleteSection(Long id) throws NotFoundException {
Optional<Section> optionalSection = sectionRepository.findById(id);
if (optionalSection.isPresent()) {
sectionRepository.deleteById(optionalSection.get().getId());
} else {
throw new NotFoundException("Impossible de trouver la section spécifié.");
}
}
@Override
public Page<SectionPaylaodWeb> getSectionList(Pageable pageable) {
return sectionRepository.findAllSectionToDtoPageable(pageable);
}
@Override
public List<SectionPaylaodWeb> getSectionList() {
return sectionRepository.findAllSectionToDto();
}
@Override
public List<SectionPaylaodWeb> getSectionListByStructureId(Long structureId) {
return sectionRepository.findAllSectionByStructureToDto(structureId);
}
@Override
public Page<SectionPaylaodWeb> getSectionListByStructureId(Long structureId, Pageable pageable) {
return sectionRepository.findAllSectionByStructureToDtoPageable(structureId,pageable);
}
@Override
public Optional<SectionPaylaodWeb> getSectionById(Long id) {
return sectionRepository.findSectionToDtoById(id);
}
}

View File

@@ -4,7 +4,7 @@ import io.gmss.fiscad.entities.infocad.metier.ActeurConcerne;
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.infocad.metier.ActeurConcerneService; import io.gmss.fiscad.interfaces.infocad.metier.ActeurConcerneService;
import io.gmss.fiscad.repositories.infocad.metier.ActeurConcerneRepository; import io.gmss.fiscad.persistence.repositories.infocad.metier.ActeurConcerneRepository;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;

View File

@@ -7,7 +7,7 @@ import io.gmss.fiscad.exceptions.NotFoundException;
import io.gmss.fiscad.interfaces.infocad.metier.CommentaireService; import io.gmss.fiscad.interfaces.infocad.metier.CommentaireService;
import io.gmss.fiscad.paylaods.request.SyncCommentaireRequest; import io.gmss.fiscad.paylaods.request.SyncCommentaireRequest;
import io.gmss.fiscad.paylaods.response.CommentaireResponse; import io.gmss.fiscad.paylaods.response.CommentaireResponse;
import io.gmss.fiscad.repositories.infocad.metier.CommentaireRepository; import io.gmss.fiscad.persistence.repositories.infocad.metier.CommentaireRepository;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;

View File

@@ -1,36 +1,45 @@
package io.gmss.fiscad.implementations.infocad.metier; package io.gmss.fiscad.implementations.infocad.metier;
import io.gmss.fiscad.entities.infocad.metier.ActeurConcerne; import io.gmss.fiscad.entities.infocad.metier.*;
import io.gmss.fiscad.entities.infocad.metier.Enquete; import io.gmss.fiscad.entities.infocad.parametre.Personne;
import io.gmss.fiscad.entities.infocad.metier.EnqueteFiltreResponse;
import io.gmss.fiscad.entities.infocad.metier.Parcelle;
import io.gmss.fiscad.entities.infocad.parametre.Bloc;
import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueParcelle; import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueParcelle;
import io.gmss.fiscad.entities.rfu.metier.DeclarationNc;
import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment; import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement; import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement;
import io.gmss.fiscad.entities.rfu.parametre.Equipe;
import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu;
import io.gmss.fiscad.entities.user.User; import io.gmss.fiscad.entities.user.User;
import io.gmss.fiscad.enums.StatusEnquete; import io.gmss.fiscad.enums.StatutEnquete;
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.infocad.metier.EnqueteService; import io.gmss.fiscad.interfaces.infocad.metier.EnqueteService;
import io.gmss.fiscad.interfaces.infocad.metier.PieceService;
import io.gmss.fiscad.interfaces.rfu.metier.CaracteristiqueParcelleService;
import io.gmss.fiscad.interfaces.rfu.metier.DeclarationNcService;
import io.gmss.fiscad.interfaces.user.UserService; import io.gmss.fiscad.interfaces.user.UserService;
import io.gmss.fiscad.paylaods.request.EnquetePayLoad; //import io.gmss.fiscad.paylaods.request.synchronisation.EnquetePayLoad ;
//import io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb ;
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.response.*; import io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb;
import io.gmss.fiscad.paylaods.response.FicheResponse.*; import io.gmss.fiscad.paylaods.response.* ;
import io.gmss.fiscad.repositories.decoupage.ArrondissementRepository; import io.gmss.fiscad.paylaods.response.FicheResponse.* ;
import io.gmss.fiscad.repositories.decoupage.CommuneRepository; import io.gmss.fiscad.paylaods.response.synchronisation.EnqueteNonSyncResponse;
import io.gmss.fiscad.repositories.decoupage.SecteurRepository; import io.gmss.fiscad.persistence.repositories.decoupage.ArrondissementRepository;
import io.gmss.fiscad.repositories.infocad.metier.ActeurConcerneRepository; import io.gmss.fiscad.persistence.repositories.decoupage.CommuneRepository;
import io.gmss.fiscad.repositories.infocad.metier.EnqueteRepository; import io.gmss.fiscad.persistence.repositories.decoupage.SecteurRepository;
import io.gmss.fiscad.repositories.infocad.metier.ParcelleRepository; import io.gmss.fiscad.persistence.repositories.infocad.metier.*;
import io.gmss.fiscad.repositories.infocad.parametre.BlocRepository; import io.gmss.fiscad.persistence.repositories.infocad.parametre.BlocRepository;
import io.gmss.fiscad.repositories.infocad.parametre.StructureRepository; import io.gmss.fiscad.persistence.repositories.infocad.parametre.PersonneRepository;
import io.gmss.fiscad.repositories.rfu.metier.CaracteristiqueParcelleRepository; import io.gmss.fiscad.persistence.repositories.infocad.parametre.StructureRepository;
import io.gmss.fiscad.repositories.rfu.metier.EnqueteBatimentRepository; import io.gmss.fiscad.persistence.repositories.rfu.metier.CaracteristiqueParcelleRepository;
import io.gmss.fiscad.repositories.rfu.metier.EnqueteUniteLogementRepository; import io.gmss.fiscad.persistence.repositories.rfu.metier.EnqueteBatimentRepository;
import io.gmss.fiscad.repositories.user.UserRepository; import io.gmss.fiscad.persistence.repositories.rfu.metier.EnqueteUniteLogementRepository;
import io.gmss.fiscad.persistence.repositories.rfu.parametre.EquipeRepository;
import io.gmss.fiscad.persistence.repositories.rfu.parametre.ZoneRfuRepository;
import io.gmss.fiscad.persistence.repositories.user.UserRepository;
import io.gmss.fiscad.service.EntityFromPayLoadService;
import jakarta.persistence.EntityManager; import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext; import jakarta.persistence.PersistenceContext;
import jakarta.persistence.Query; import jakarta.persistence.Query;
@@ -65,36 +74,209 @@ public class EnqueteServiceImpl implements EnqueteService {
private final EnqueteUniteLogementRepository enqueteUniteLogementRepository; private final EnqueteUniteLogementRepository enqueteUniteLogementRepository;
private final SecteurRepository secteurRepository; private final SecteurRepository secteurRepository;
private final StructureRepository structureRepository; private final StructureRepository structureRepository;
private final ParcelleServiceImpl parcelleService;
private final PersonneRepository personneRepository;
private final ZoneRfuRepository zoneRfuRepository ;
private final EquipeRepository equipeRepository ;
private final RueRepository rueRepository ;
private final CaracteristiqueParcelleService caracteristiqueParcelleService ;
private final PieceService pieceService ;
private final UploadRepository uploadRepository ;
private final DeclarationNcService declarationNcService ;
private final EntityFromPayLoadService entityFromPayLoadService ;
@PersistenceContext @PersistenceContext
private final EntityManager em; private final EntityManager em;
@Override @Override
public Enquete createEnquete(EnquetePayLoad enquetePayLoad) throws BadRequestException { public Enquete createEnquete(EnquetePayLoadWeb enquetePayLoadWeb) throws BadRequestException {
Optional<User> optionalUser = userRepository.findById(enquetePayLoad.getUserId()); Parcelle parcelle=new Parcelle();
Long rueId;
Optional<User> optionalUser = userRepository.findById(enquetePayLoadWeb.getEnqueteurId());
if (!optionalUser.isPresent()) { if (!optionalUser.isPresent()) {
throw new BadRequestException("Impossible d'enregistrer une enquête avec un enquêteur inexistant"); throw new BadRequestException("Echec de l'enregistrement : Enquêteur inexistant");
} }
Optional<Bloc> optionalBloc = blocRepository.findById(enquetePayLoad.getBlocId()); Optional<Personne> optionalProprietaire = personneRepository.findById(enquetePayLoadWeb.getProprietaireId());
if (!optionalBloc.isPresent()) { if (!optionalProprietaire.isPresent()) {
throw new BadRequestException("Impossible d'enregistrer une enquête avec un bloc inexistant"); throw new BadRequestException("Echec de l'enregistrement : Propriétaire inexistant");
} }
Optional<Parcelle> optionalParcelle = parcelleRepository.findById(enquetePayLoad.getParcelleId());
if (!optionalParcelle.isPresent()) { Optional<ZoneRfu> optionalZoneRfu = zoneRfuRepository.findById(enquetePayLoadWeb.getZoneRfuId());
throw new BadRequestException("Impossible d'enregistrer une enquête avec une parcelle inexistante"); if (!optionalZoneRfu.isPresent()) {
throw new BadRequestException("Echec de l'enregistrement : zone inexistante");
} }
if(enquetePayLoadWeb.getZoneRfuId()!=null) {
Optional<Rue> optionalRue = rueRepository.findById(enquetePayLoadWeb.getZoneRfuId());
if (optionalRue.isPresent()) {
rueId = optionalRue.get().getId();
enquetePayLoadWeb.getParcellePayLoadWeb().setRueId(rueId);
}
}
Optional<Equipe> optionalEquipe = equipeRepository.findById(enquetePayLoadWeb.getEquipeId());
///enregistrement de la pacelle
try {
if (enquetePayLoadWeb.getParcellePayLoadWeb().getId() == null) {
parcelle = parcelleService.createParcelle(enquetePayLoadWeb.getParcellePayLoadWeb());
} else {
parcelle = parcelleService.updateParcelle(enquetePayLoadWeb.getParcellePayLoadWeb().getId(),enquetePayLoadWeb.getParcellePayLoadWeb());
}
}catch (Exception e){
e.printStackTrace();
throw new ApplicationException("Echec de l'enregistrement : La parcelle non enregistrée.");
}
////enregistrement de l'enquete
Enquete enquete = new Enquete(); Enquete enquete = new Enquete();
enquete.setDateEnquete(LocalDate.now()); enquete.setDateEnquete(LocalDate.now());
enquete.setBloc(optionalBloc.get()); //enquete.setBloc(optionalBloc.get());
enquete.setUser(optionalUser.get()); enquete.setUser(optionalUser.get());
enquete.setParcelle(optionalParcelle.get()); enquete.setParcelle(parcelle);
enquete.setLitige(enquetePayLoad.isLitige()); enquete.setLitige(enquetePayLoadWeb.isLitige());
enquete.setStatusEnquete(StatusEnquete.EN_COURS); enquete.setStatutEnquete(StatutEnquete.EN_COURS);
enquete.setObservationParticuliere(enquetePayLoad.getObservationParticuliere()); enquete.setObservationParticuliere(enquetePayLoadWeb.getObservation());
enquete.setPersonne(optionalProprietaire.orElse(null));
enquete.setZoneRfu(optionalZoneRfu.orElse(null));
enquete.setAutreAdresse(enquetePayLoadWeb.getAutreAdresse());
enquete.setAutreNumeroTitreFoncier(enquetePayLoadWeb.getAutreNumeroTitreFoncier());
enquete.setNumeroTitreFoncier(enquetePayLoadWeb.getNumeroTitreFoncier());
enquete.setEquipe(optionalEquipe.orElse(null));
enquete.setDateDebutExcemption(enquetePayLoadWeb.getDateDebutExemption());
enquete.setDateFinExcemption(enquetePayLoadWeb.getDateFinExemption());
enquete.setNbreBatiment(enquetePayLoadWeb.getNbreBatiment());
enquete.setNbrePiscine(enquetePayLoadWeb.getNbrePiscine());
enquete.setNbreIndivisiaire(enquetePayLoadWeb.getNbreIndivisiaire());
enquete.setNbreCoProprietaire(enquetePayLoadWeb.getNbreCoProprietaire());
enquete.setNumEntreeParcelle(enquetePayLoadWeb.getNumEntreeParcelle());
enquete.setNomRue(enquetePayLoadWeb.getNomRue());
enquete.setNumRue(enquetePayLoadWeb.getNumRue());
enquete.setSuperficie(enquetePayLoadWeb.getSuperficie());
enquete.setMontantMensuelleLocation(enquetePayLoadWeb.getMontantMensuelleLocation());
enquete.setMontantAnnuelleLocation(enquetePayLoadWeb.getMontantAnnuelleLocation());
enquete.setValeurParcelleEstime(enquetePayLoadWeb.getValeurParcelleEstime());
enquete.setValeurParcelleReel(enquetePayLoadWeb.getValeurParcelleReel());
Enquete finalEnquete=enqueteRepository.save(enquete);
//////Enregistrement des caractéristiques parcelle
enquetePayLoadWeb.getCaracteristiqueParcellePayloadWebs().forEach(caracteristiqueParcellePayloadWeb -> {
caracteristiqueParcellePayloadWeb.setEnqueteId(finalEnquete.getId());
CaracteristiqueParcelle caracteristiqueParcelle=entityFromPayLoadService.getCaracteristiqueParcelleFromPayLoadWeb(caracteristiqueParcellePayloadWeb);
caracteristiqueParcelleService.createCaracteristiqueParcelle(caracteristiqueParcelle);
});
/////Enregistrement des pièce de parcelles
enquetePayLoadWeb.getPiecePayLoadWebs().forEach(piecePayLoadWeb -> {
piecePayLoadWeb.setEnqueteId(finalEnquete.getId());
//Piece piece=entityFromPayLoadService.getPieceFromPayLoadWeb(piecePayLoadWeb);
Piece piecefinal = pieceService.createPiece(entityFromPayLoadService.getPieceFromPayLoadWeb(piecePayLoadWeb));
piecePayLoadWeb.getUploadPayLoadWebs().forEach(uploadPayLoadWeb -> {
uploadPayLoadWeb.setEnqueteId(finalEnquete.getId());
Upload upload=entityFromPayLoadService.getUploadFromPayLoadWeb(uploadPayLoadWeb);
upload.setPiece(piecefinal);
uploadRepository.save(upload);
});
});
/////Enregistrement des pièce de parcelles
enquetePayLoadWeb.getDeclarationNcPayloadWebs().forEach(declarationNcPayloadWeb -> {
declarationNcPayloadWeb.setEnqueteId(finalEnquete.getId());
DeclarationNc declarationNcfinal=declarationNcService.createDeclarationNc(entityFromPayLoadService.getDeclarationNcFromPayLoadWeb(declarationNcPayloadWeb));
declarationNcPayloadWeb.getUploadPayLoadWebs().forEach(uploadPayLoadWeb -> {
uploadPayLoadWeb.setEnqueteId(finalEnquete.getId());
Upload upload=entityFromPayLoadService.getUploadFromPayLoadWeb(uploadPayLoadWeb);
upload.setDeclarationNc(declarationNcfinal);
uploadRepository.save(upload);
});
});
return enquete;
}
@Override
public Enquete updateEnquete(Long id,EnquetePayLoadWeb enquetePayLoadWeb) throws NotFoundException {
if (enquetePayLoadWeb.getId() == null) {
throw new BadRequestException("Impossible de mettre à jour une enquête ayant un id null.");
}
if (!enqueteRepository.existsById(enquetePayLoadWeb.getId())) {
throw new NotFoundException("Impossible de trouver l'enquête que vous désirez modifier.");
}
if (enquetePayLoadWeb.getParcellePayLoadWeb()==null) {
throw new BadRequestException("Impossible d'enregistrer une enquête avec une parcelle inexistante");
}
Parcelle parcelle=new Parcelle();
Long rueId;
Optional<User> optionalUser = userRepository.findById(enquetePayLoadWeb.getEnqueteurId());
if (!optionalUser.isPresent()) {
throw new BadRequestException("Echec de l'enregistrement : Enquêteur inexistant");
}
Optional<Personne> optionalProprietaire = personneRepository.findById(enquetePayLoadWeb.getProprietaireId());
if (!optionalProprietaire.isPresent()) {
throw new BadRequestException("Echec de l'enregistrement : Propriétaire inexistant");
}
Optional<ZoneRfu> optionalZoneRfu = zoneRfuRepository.findById(enquetePayLoadWeb.getZoneRfuId());
if (!optionalZoneRfu.isPresent()) {
throw new BadRequestException("Echec de l'enregistrement : zone inexistante");
}
Optional<Rue> optionalRue = rueRepository.findById(enquetePayLoadWeb.getZoneRfuId());
if (optionalRue.isPresent()) {
rueId=optionalRue.get().getId();
enquetePayLoadWeb.getParcellePayLoadWeb().setRueId(rueId);
}
Optional<Equipe> optionalEquipe = equipeRepository.findById(enquetePayLoadWeb.getEquipeId());
///enregistrement de la pacelle
try {
if (enquetePayLoadWeb.getParcellePayLoadWeb().getId() == null) {
parcelle = parcelleService.createParcelle(enquetePayLoadWeb.getParcellePayLoadWeb());
} else {
parcelle = parcelleService.updateParcelle(enquetePayLoadWeb.getParcellePayLoadWeb().getId(),enquetePayLoadWeb.getParcellePayLoadWeb());
}
}catch (Exception e){
throw new ApplicationException("Echec de l'enregistrement : La parcelle non enregistrée.");
}
////enregistrement de l'enquete
Enquete enquete = new Enquete();
enquete.setDateEnquete(LocalDate.now());
//enquete.setBloc(optionalBloc.get());
enquete.setUser(optionalUser.get());
enquete.setParcelle(parcelle);
enquete.setLitige(enquetePayLoadWeb.isLitige());
enquete.setStatutEnquete(StatutEnquete.EN_COURS);
enquete.setObservationParticuliere(enquetePayLoadWeb.getObservation());
enquete.setPersonne(optionalProprietaire.orElse(null));
enquete.setZoneRfu(optionalZoneRfu.orElse(null));
enquete.setAutreAdresse(enquetePayLoadWeb.getAutreAdresse());
enquete.setAutreNumeroTitreFoncier(enquetePayLoadWeb.getAutreNumeroTitreFoncier());
enquete.setNumeroTitreFoncier(enquetePayLoadWeb.getNumeroTitreFoncier());
enquete.setEquipe(optionalEquipe.orElse(null));
enquete.setDateDebutExcemption(enquetePayLoadWeb.getDateDebutExemption());
enquete.setDateFinExcemption(enquetePayLoadWeb.getDateFinExemption());
enquete.setNbreBatiment(enquetePayLoadWeb.getNbreBatiment());
enquete.setNbrePiscine(enquetePayLoadWeb.getNbrePiscine());
enquete.setNbreIndivisiaire(enquetePayLoadWeb.getNbreIndivisiaire());
enquete.setNbreCoProprietaire(enquetePayLoadWeb.getNbreCoProprietaire());
enquete.setNumEntreeParcelle(enquetePayLoadWeb.getNumEntreeParcelle());
enquete.setNomRue(enquetePayLoadWeb.getNomRue());
enquete.setNumRue(enquetePayLoadWeb.getNumRue());
enquete.setSuperficie(enquetePayLoadWeb.getSuperficie());
enquete.setMontantMensuelleLocation(enquetePayLoadWeb.getMontantMensuelleLocation());
enquete.setMontantAnnuelleLocation(enquetePayLoadWeb.getMontantAnnuelleLocation());
enquete.setValeurParcelleEstime(enquetePayLoadWeb.getValeurParcelleEstime());
enquete.setValeurParcelleReel(enquetePayLoadWeb.getValeurParcelleReel());
return enqueteRepository.save(enquete); return enqueteRepository.save(enquete);
} }
@Override @Override
public List<EnqueteResponse> getEnqueteCommuneArrondBloc() { public List<EnqueteResponse> getEnqueteCommuneArrondBloc() {
return enqueteRepository.getEnqueteComArrondBloc(); return enqueteRepository.getEnqueteComArrondBloc();
@@ -196,36 +378,6 @@ public class EnqueteServiceImpl implements EnqueteService {
return enqueteFiltreResponses; return enqueteFiltreResponses;
} }
@Override
public Enquete updateEnquete(EnquetePayLoad enquetePayLoad) throws NotFoundException {
if (enquetePayLoad.getIdBackend() == null) {
throw new BadRequestException("Impossible de mettre à jour une enquête ayant un id null.");
}
if (!enqueteRepository.existsById(enquetePayLoad.getIdBackend())) {
throw new NotFoundException("Impossible de trouver l'enquête que vous désirez modifier.");
}
Optional<User> optionalUser = userRepository.findById(enquetePayLoad.getUserId());
if (!optionalUser.isPresent()) {
throw new BadRequestException("Impossible d'enregistrer une enquête avec un enquêteur inexistant");
}
Optional<Bloc> optionalBloc = blocRepository.findById(enquetePayLoad.getBlocId());
if (!optionalBloc.isPresent()) {
throw new BadRequestException("Impossible d'enregistrer une enquête avec un bloc inexistant");
}
Optional<Parcelle> optionalParcelle = parcelleRepository.findById(enquetePayLoad.getParcelleId());
if (!optionalParcelle.isPresent()) {
throw new BadRequestException("Impossible d'enregistrer une enquête avec une parcelle inexistante");
}
Enquete enquete = enqueteRepository.findById(enquetePayLoad.getParcelleId()).get();
enquete.setBloc(optionalBloc.get());
enquete.setUser(optionalUser.get());
enquete.setParcelle(optionalParcelle.get());
enquete.setLitige(enquetePayLoad.isLitige());
enquete.setDateFinalisation(enquetePayLoad.getDateFinalisation());
enquete.setStatusEnquete(enquetePayLoad.getStatusEnquete());
enquete.setObservationParticuliere(enquetePayLoad.getObservationParticuliere());
return enqueteRepository.save(enquete);
}
@Override @Override
public void deleteEnquete(Long id) throws NotFoundException { public void deleteEnquete(Long id) throws NotFoundException {
@@ -247,6 +399,11 @@ public class EnqueteServiceImpl implements EnqueteService {
return enqueteRepository.findAll(); return enqueteRepository.findAll();
} }
@Override
public List<Enquete> getEnqueteListByParcelle(Long parcelleId) {
return enqueteRepository.findAllByParcelle_Id(parcelleId);
}
@Override @Override
public Optional<Enquete> getEnqueteById(Long id) { public Optional<Enquete> getEnqueteById(Long id) {
if (enqueteRepository.existsById(id)) { if (enqueteRepository.existsById(id)) {
@@ -267,7 +424,7 @@ public class EnqueteServiceImpl implements EnqueteService {
} }
Enquete enquete = optionalEnquete.get(); Enquete enquete = optionalEnquete.get();
enquete.setDateValidation(LocalDate.now()); enquete.setDateValidation(LocalDate.now());
enquete.setStatusEnquete(StatusEnquete.VALIDE); enquete.setStatutEnquete(StatutEnquete.VALIDE);
enquete.setSynchronise(false); enquete.setSynchronise(false);
return enqueteRepository.save(enquete); return enqueteRepository.save(enquete);
} }
@@ -284,7 +441,7 @@ public class EnqueteServiceImpl implements EnqueteService {
Enquete enquete = optionalEnquete.get(); Enquete enquete = optionalEnquete.get();
enquete.setDateRejet(LocalDate.now()); enquete.setDateRejet(LocalDate.now());
enquete.setDescriptionMotifRejet(enqueteTraitementPayLoad.getMotifRejet()); enquete.setDescriptionMotifRejet(enqueteTraitementPayLoad.getMotifRejet());
enquete.setStatusEnquete(StatusEnquete.REJETE); enquete.setStatutEnquete(StatutEnquete.REJETE);
enquete.setSynchronise(false); enquete.setSynchronise(false);
return enqueteRepository.save(enquete); return enqueteRepository.save(enquete);
} }
@@ -325,7 +482,7 @@ public class EnqueteServiceImpl implements EnqueteService {
throw new NotFoundException("Impossible de trouver l'enquête que vous désirez finaliser."); throw new NotFoundException("Impossible de trouver l'enquête que vous désirez finaliser.");
} }
optionalEnquete.get().setDateFinalisation(LocalDate.now()); optionalEnquete.get().setDateFinalisation(LocalDate.now());
optionalEnquete.get().setStatusEnquete(StatusEnquete.FINALISE); optionalEnquete.get().setStatutEnquete(StatutEnquete.FINALISE);
return enqueteRepository.save(optionalEnquete.get()); return enqueteRepository.save(optionalEnquete.get());
} }
@@ -340,7 +497,7 @@ public class EnqueteServiceImpl implements EnqueteService {
} }
optionalEnquete.get().setDateLitigeResolu(LocalDate.now()); optionalEnquete.get().setDateLitigeResolu(LocalDate.now());
optionalEnquete.get().setLitige(false); optionalEnquete.get().setLitige(false);
optionalEnquete.get().setStatusEnquete(StatusEnquete.EN_COURS); optionalEnquete.get().setStatutEnquete(StatutEnquete.EN_COURS);
return enqueteRepository.save(optionalEnquete.get()); return enqueteRepository.save(optionalEnquete.get());
} }

View File

@@ -3,19 +3,15 @@ package io.gmss.fiscad.implementations.infocad.metier;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import io.gmss.fiscad.entities.infocad.metier.Enquete; import io.gmss.fiscad.entities.infocad.metier.Enquete;
import io.gmss.fiscad.entities.infocad.metier.Parcelle;
import io.gmss.fiscad.entities.infocad.metier.ParcelleGeom; import io.gmss.fiscad.entities.infocad.metier.ParcelleGeom;
import io.gmss.fiscad.entities.infocad.metier.Upload; import io.gmss.fiscad.entities.infocad.metier.Upload;
import io.gmss.fiscad.enums.StatutParcelle;
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.infocad.metier.ParcelleGeomService; import io.gmss.fiscad.interfaces.infocad.metier.ParcelleGeomService;
import io.gmss.fiscad.interfaces.synchronisation.SynchronisationService;
import io.gmss.fiscad.paylaods.request.UploadPayLoad;
import io.gmss.fiscad.paylaods.response.EnqueteCheckResponse; import io.gmss.fiscad.paylaods.response.EnqueteCheckResponse;
import io.gmss.fiscad.repositories.infocad.metier.EnqueteRepository; import io.gmss.fiscad.persistence.repositories.infocad.metier.EnqueteRepository;
import io.gmss.fiscad.repositories.infocad.metier.ParcelleGeomRepository; import io.gmss.fiscad.persistence.repositories.infocad.metier.ParcelleGeomRepository;
import io.gmss.fiscad.repositories.infocad.metier.UploadRepository; import io.gmss.fiscad.persistence.repositories.infocad.metier.UploadRepository;
import io.gmss.fiscad.service.FileStorageService; import io.gmss.fiscad.service.FileStorageService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.Coordinate;

View File

@@ -1,85 +1,90 @@
package io.gmss.fiscad.implementations.infocad.metier; 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.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.parametre.NatureDomaine; import io.gmss.fiscad.entities.infocad.parametre.NatureDomaine;
import io.gmss.fiscad.entities.infocad.parametre.SituationGeographique;
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.ParcelleService; import io.gmss.fiscad.interfaces.infocad.metier.ParcelleService;
import io.gmss.fiscad.paylaods.request.ParcellePayLoad; import io.gmss.fiscad.paylaods.request.FiltreParcellePayLoad;
import io.gmss.fiscad.repositories.decoupage.QuartierRepository; import io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb;
import io.gmss.fiscad.repositories.infocad.metier.ParcelleRepository; import io.gmss.fiscad.paylaods.response.dataTableResponse.ParcelleDataTableResponse;
import io.gmss.fiscad.repositories.infocad.parametre.NatureDomaineRepository; import io.gmss.fiscad.persistence.repositories.decoupage.QuartierRepository;
import io.gmss.fiscad.repositories.infocad.parametre.SituationGeographiqueRepository; 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.parametre.NatureDomaineRepository;
import io.gmss.fiscad.persistence.repositories.infocad.parametre.SituationGeographiqueRepository;
import io.gmss.fiscad.persistence.specification.ParcelleSpecification;
import io.gmss.fiscad.service.GeometryService; import io.gmss.fiscad.service.GeometryService;
import org.springframework.beans.factory.annotation.Value; import jakarta.persistence.Query;
import org.springframework.data.domain.Page; import lombok.AllArgsConstructor;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.*;
import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@Service
@AllArgsConstructor
public class ParcelleServiceImpl implements ParcelleService { public class ParcelleServiceImpl implements ParcelleService {
private final NatureDomaineRepository natureDomaineRepository; private final NatureDomaineRepository natureDomaineRepository;
private final QuartierRepository quartierRepository; private final QuartierRepository quartierRepository;
private final SituationGeographiqueRepository situationGeographiqueRepository; private final SituationGeographiqueRepository situationGeographiqueRepository;
private final ParcelleRepository parcelleRepository; private final ParcelleRepository parcelleRepository;
private final RueRepository rueRepository;
private final GeometryService geometryService; private final GeometryService geometryService;
@Value("${infocad.geom.srid}") private final SecteurService secteurService;
private String defaultSrid32631;
// @Value("${infocad.geom.srid}")
// private String defaultSrid32631;
// @Value("${infocad.geom.sridfixe}")
// private String defaultSrid;
@Value("${infocad.geom.sridfixe}")
private String defaultSrid;
public ParcelleServiceImpl(NatureDomaineRepository natureDomaineRepository, QuartierRepository quartierRepository, SituationGeographiqueRepository situationGeographiqueRepository, ParcelleRepository parcelleRepository, GeometryService geometryService) {
this.natureDomaineRepository = natureDomaineRepository;
this.quartierRepository = quartierRepository;
this.situationGeographiqueRepository = situationGeographiqueRepository;
this.parcelleRepository = parcelleRepository;
this.geometryService = geometryService;
}
@Override @Override
public Parcelle createParcelle(ParcellePayLoad parcellePayLoad) throws BadRequestException { public Parcelle createParcelle(ParcellePayLoadWeb parcellePayLoadWeb) throws BadRequestException {
Optional<NatureDomaine> optionalNatureDomaine = natureDomaineRepository.findById(parcellePayLoad.getNatureDomaineId()); Optional<NatureDomaine> optionalNatureDomaine = natureDomaineRepository.findById(parcellePayLoadWeb.getNatureDomaineId());
if (!optionalNatureDomaine.isPresent()) { if (!optionalNatureDomaine.isPresent()) {
throw new BadRequestException("Impossible d'enregistrer une parcelle avec une nature de domaine inexistant"); throw new BadRequestException("Impossible d'enregistrer une parcelle avec une nature de domaine inexistant");
} }
Optional<Quartier> optionalQuartier = quartierRepository.findById(parcellePayLoad.getQuartierId()); Optional<Quartier> optionalQuartier = quartierRepository.findById(parcellePayLoadWeb.getQuartierId());
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<SituationGeographique> optionalSituationGeographique = situationGeographiqueRepository.findById(parcellePayLoad.getSituationGeographiqueId()); Parcelle parcelle = new Parcelle();
if (!optionalSituationGeographique.isPresent()) { parcelle.setNatureDomaine(optionalNatureDomaine.orElse(null));
throw new BadRequestException("Impossible d'enregistrer une parcelle avec une situation géographique inexistant"); parcelle.setQuartier(optionalQuartier.orElse(null));
} parcelle = getParcelleFromPayload(parcelle, parcellePayLoadWeb);
Parcelle parcelle = getParcelle(parcellePayLoad, optionalSituationGeographique, optionalNatureDomaine);
return parcelleRepository.save(parcelle); return parcelleRepository.save(parcelle);
} }
@Override @Override
public Parcelle updateParcelle(ParcellePayLoad parcellePayLoad) throws NotFoundException { public Parcelle updateParcelle(Long id, ParcellePayLoadWeb parcellePayLoadWeb) throws NotFoundException {
Optional<Parcelle> optionalParcelle = parcelleRepository.findById(parcellePayLoad.getIdBackend()); Optional<Parcelle> optionalParcelle = parcelleRepository.findById(parcellePayLoadWeb.getId());
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(parcellePayLoad.getNatureDomaineId()); Optional<NatureDomaine> optionalNatureDomaine = natureDomaineRepository.findById(parcellePayLoadWeb.getNatureDomaineId());
if (!optionalNatureDomaine.isPresent()) { if (!optionalNatureDomaine.isPresent()) {
throw new BadRequestException("Impossible d'enregistrer une parcelle avec une nature de domaine inexistante"); throw new BadRequestException("Impossible d'enregistrer une parcelle avec une nature de domaine inexistante");
} }
Optional<Quartier> optionalQuartier = quartierRepository.findById(parcellePayLoad.getQuartierId()); Optional<Quartier> optionalQuartier = quartierRepository.findById(parcellePayLoadWeb.getQuartierId());
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<SituationGeographique> optionalSituationGeographique = situationGeographiqueRepository.findById(parcellePayLoad.getSituationGeographiqueId()); // Optional<SituationGeographique> optionalSituationGeographique = situationGeographiqueRepository.findById(parcellePayLoadWeb.getSituationGeographiqueId());
if (!optionalSituationGeographique.isPresent()) { // if (!optionalSituationGeographique.isPresent()) {
throw new BadRequestException("Impossible d'enregistrer une parcelle avec une situation géographique inexistant"); // throw new BadRequestException("Impossible d'enregistrer une parcelle avec une situation géographique inexistant");
} // }
Parcelle parcelle=optionalParcelle.get();
Parcelle parcelle = getParcelle(optionalParcelle.get(), parcellePayLoad, optionalSituationGeographique, optionalNatureDomaine); parcelle.setNatureDomaine(optionalNatureDomaine.orElse(null));
parcelle.setQuartier(optionalQuartier.orElse(null));
parcelle = getParcelleFromPayload(optionalParcelle.get(), parcellePayLoadWeb);
return parcelleRepository.save(parcelle); return parcelleRepository.save(parcelle);
} }
@@ -95,6 +100,15 @@ public class ParcelleServiceImpl implements ParcelleService {
@Override @Override
public Page<Parcelle> getParcelleList(Pageable pageable) { public Page<Parcelle> getParcelleList(Pageable pageable) {
Sort sort = pageable.getSort().isSorted()
? pageable.getSort()
: Sort.by(Sort.Direction.DESC, "id");
Pageable pageableWithSort = PageRequest.of(
pageable.getPageNumber(),
pageable.getPageSize(),
sort
);
return parcelleRepository.findAll(pageable); return parcelleRepository.findAll(pageable);
} }
@@ -112,74 +126,91 @@ public class ParcelleServiceImpl implements ParcelleService {
} }
} }
private Parcelle getParcelle(ParcellePayLoad parcellePayLoad, Optional<SituationGeographique> optionalSituationGeographique, Optional<NatureDomaine> optionalNatureDomaine) { @Override
StringBuilder coordonnees = new StringBuilder(); public Page<ParcelleDataTableResponse> getParcelleDataTableListByUserId(Long userId, Pageable pageable) {
Parcelle parcelle = new Parcelle();
parcelle.setP(parcellePayLoad.getP()); List<Secteur> secteurs = secteurService.getListSecteurUserId(userId);
parcelle.setI(parcellePayLoad.getI()); List<Long> secteurIds = secteurs.stream()
parcelle.setQ(parcellePayLoad.getQ()); .map(Secteur::getId)
parcelle.setNup(parcellePayLoad.getNup()); .toList();
parcelle.setLatitude(parcellePayLoad.getLatitude()); Page<ParcelleDataTableResponse> parcelleDataTableResponses=parcelleRepository.getParcelleDataTableResponse(secteurIds,pageable);
parcelle.setLongitude(parcellePayLoad.getLongitude());
//parcelle.setSituationGeographique(optionalSituationGeographique.get()); return parcelleDataTableResponses ;
parcelle.setSituationGeographique(parcellePayLoad.getSituationGeographique()); }
parcelle.setNatureDomaine(optionalNatureDomaine.get());
parcelle.setNupProvisoire(parcellePayLoad.getNupProvisoire()); @Override
// parcelle.setGeomSrid(parcellePayLoad.getGeomSrid()); public Page<ParcelleDataTableResponse> getParcelleDataTableListByMultiFiltre(Long userId, FiltreParcellePayLoad filtreParcellePayLoad, Pageable pageable) {
//////////spatial List<Secteur> secteurs = secteurService.getListSecteurUserId(userId);
// try { List<Long> secteurIds = secteurs.stream()
// Point point=null; .map(Secteur::getId)
// if (parcellePayLoad.getLatitude() != null && parcellePayLoad.getLongitude() != null){ .toList();
// coordonnees.append(parcelle.getLongitude()).append(" ").append(parcelle.getLatitude());
// point = geometryService.toGeometryPoint(coordonnees.toString(), parcelle.getGeomSrid());//Integer.parseInt(defaultSrid));
// if(parcelle.getGeomSrid()==Integer.parseInt(defaultSrid32631)) {
// parcelle.setGeometry32631(point);
// parcelle. setGeometry(null);
// }
// if(parcelle.getGeomSrid()==Integer.parseInt(defaultSrid)) {
// parcelle.setGeometry(point);
// parcelle.setGeometry32631(null);
// }
// }
// }catch (Exception e){
// //
// } // return parcelleRepository.findAll(
// ParcelleSpecification.filtre(filtreParcellePayLoad, secteurIds),
// pageable
// );
Page<ParcelleDataTableResponse> parcelleDataTableResponses=parcelleRepository.getParcelleDataTableResponse(secteurIds,pageable);
return parcelleDataTableResponses ;
}
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; return parcelle;
} }
private Parcelle getParcelle(Parcelle parcelle, ParcellePayLoad parcellePayLoad, 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(parcellePayLoad.getP()); // parcelle.setP(parcellePayLoadWeb.getP());
parcelle.setI(parcellePayLoad.getI()); // parcelle.setI(parcellePayLoadWeb.getI());
parcelle.setQ(parcellePayLoad.getQ()); // parcelle.setQ(parcellePayLoadWeb.getQ());
parcelle.setNup(parcellePayLoad.getNup()); // parcelle.setNup(parcellePayLoadWeb.getNup());
parcelle.setLatitude(parcellePayLoad.getLatitude()); // parcelle.setLatitude(parcellePayLoadWeb.getLatitude());
parcelle.setLongitude(parcellePayLoad.getLongitude()); // parcelle.setLongitude(parcellePayLoadWeb.getLongitude());
//parcelle.setSituationGeographique(optionalSituationGeographique.get()); // //parcelle.setSituationGeographique(optionalSituationGeographique.get());
parcelle.setSituationGeographique(parcellePayLoad.getSituationGeographique()); // parcelle.setSituationGeographique(parcellePayLoadWeb.getSituationGeographique());
parcelle.setNatureDomaine(optionalNatureDomaine.get()); // parcelle.setNatureDomaine(optionalNatureDomaine.get());
parcelle.setNupProvisoire(parcellePayLoad.getNupProvisoire()); // parcelle.setNupProvisoire(parcellePayLoadWeb.getNupProvisoire());
//parcelle.setGeomSrid(parcellePayLoad.getGeomSrid()); // //parcelle.setGeomSrid(parcellePayLoadWeb.getGeomSrid());
//////////spatial // //////////spatial
// try { //// try {
// Point point=null; //// Point point=null;
// if (parcellePayLoad.getLatitude() != null && parcellePayLoad.getLongitude() != null && parcellePayLoad.getGeomSrid() != 0){ //// if (parcellePayLoadWeb.getLatitude() != null && parcellePayLoadWeb.getLongitude() != null && parcellePayLoadWeb.getGeomSrid() != 0){
// coordonnees.append(parcelle.getLongitude()).append(" ").append(parcelle.getLatitude()); //// coordonnees.append(parcelle.getLongitude()).append(" ").append(parcelle.getLatitude());
// point = geometryService.toGeometryPoint(coordonnees.toString(), parcelle.getGeomSrid());//Integer.parseInt(defaultSrid)); //// point = geometryService.toGeometryPoint(coordonnees.toString(), parcelle.getGeomSrid());//Integer.parseInt(defaultSrid));
// if(parcelle.getGeomSrid()==Integer.parseInt(defaultSrid32631)) { //// if(parcelle.getGeomSrid()==Integer.parseInt(defaultSrid32631)) {
// parcelle.setGeometry32631(point); //// parcelle.setGeometry32631(point);
// parcelle.setGeometry(null); //// parcelle.setGeometry(null);
//// }
//// if(parcelle.getGeomSrid()==Integer.parseInt(defaultSrid)) {
//// parcelle.setGeometry(point);
//// parcelle.setGeometry32631(null);
//// }
//// }
//// }catch (Exception e){
////
//// }
// return parcelle;
// } // }
// if(parcelle.getGeomSrid()==Integer.parseInt(defaultSrid)) {
// parcelle.setGeometry(point);
// parcelle.setGeometry32631(null);
// }
// }
// }catch (Exception e){
//
// }
return parcelle;
}
} }

View File

@@ -1,16 +1,23 @@
package io.gmss.fiscad.implementations.infocad.metier; package io.gmss.fiscad.implementations.infocad.metier;
import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.entities.infocad.parametre.*;
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.infocad.metier.PersonneService; import io.gmss.fiscad.interfaces.infocad.metier.PersonneService;
import io.gmss.fiscad.paylaods.dto.*; import io.gmss.fiscad.paylaods.dto.*;
import io.gmss.fiscad.repositories.infocad.metier.MembreGroupeRepository; import io.gmss.fiscad.paylaods.request.crudweb.PersonnePayLoadWeb;
import io.gmss.fiscad.repositories.infocad.metier.PieceRepository; import io.gmss.fiscad.persistence.repositories.decoupage.CommuneRepository;
import io.gmss.fiscad.repositories.infocad.metier.UploadRepository; import io.gmss.fiscad.persistence.repositories.decoupage.NationaliteRepository;
import io.gmss.fiscad.repositories.infocad.parametre.PersonneRepository; import io.gmss.fiscad.persistence.repositories.infocad.metier.MembreGroupeRepository;
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.PersonneRepository;
import io.gmss.fiscad.persistence.repositories.infocad.parametre.ProfessionRepository;
import io.gmss.fiscad.persistence.repositories.infocad.parametre.SituationMatrimonialeRepository;
import io.gmss.fiscad.persistence.repositories.infocad.parametre.TypePersonneRepository;
import io.gmss.fiscad.service.EntityFromPayLoadService;
import jakarta.persistence.EntityNotFoundException; import jakarta.persistence.EntityNotFoundException;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
@@ -28,15 +35,41 @@ public class PersonneServiceImpl implements PersonneService {
private final UploadRepository uploadRepository; private final UploadRepository uploadRepository;
private final PieceRepository pieceRepository; private final PieceRepository pieceRepository;
private final MembreGroupeRepository membreGroupeRepository; private final MembreGroupeRepository membreGroupeRepository;
private final TypePersonneRepository typePersonneRepository;
private final CommuneRepository communeRepository;
private final NationaliteRepository nationaliteRepository;
private final ProfessionRepository professionRepository;
private final SituationMatrimonialeRepository situationMatrimonialeRepository;
private final EntityFromPayLoadService entityFromPayLoadService;
@Override @Override
public Personne createPersonne(Personne personne) throws BadRequestException { public Personne createPersonne(PersonnePayLoadWeb personnePayLoadWeb) throws BadRequestException {
return null; // Optional<TypePersonne> optionalTypePersonne = typePersonneRepository.findById(personnePayLoadWeb.getTypePersonneId());
//
// Optional<Commune> optionalCommune = communeRepository.findById(personnePayLoadWeb.getCommuneId());
//
//
// Optional<Nationalite> optionalNationalite = nationaliteRepository.findById(personnePayLoadWeb.getNationaliteId());
//
// Optional<SituationMatrimoniale> optionalQuartier = situationMatrimonialeRepository.findById(personnePayLoadWeb.getSituationMatrimonialeId());
//
// Optional<Profession> optionalProfession = professionRepository.findById(personnePayLoadWeb.getProfessionId());
//
Personne personne = entityFromPayLoadService.getPersonneFromPayLoadWeb(personnePayLoadWeb);
return personneRepository.save(personne);
} }
@Override @Override
public Personne updatePersonne(Long id, Personne personne) throws NotFoundException { public Personne updatePersonne(Long id, PersonnePayLoadWeb personnePayLoadWeb) throws NotFoundException {
return null; if (personnePayLoadWeb.getId() == null) {
throw new BadRequestException("Impossible de mettre à jour une enquête ayant un id null.");
}
if (!personneRepository.existsById(personnePayLoadWeb.getId())) {
throw new NotFoundException("Impossible de trouver la personne que vous désirez modifier.");
}
Personne personne = entityFromPayLoadService.getPersonneFromPayLoadWeb(personnePayLoadWeb);
return personneRepository.save(personne);
} }
@Override @Override
@@ -56,7 +89,7 @@ public class PersonneServiceImpl implements PersonneService {
@Override @Override
public Optional<Personne> getPersonneById(Long id) { public Optional<Personne> getPersonneById(Long id) {
return Optional.empty(); return personneRepository.findById(id);
} }
@Override @Override
@@ -73,7 +106,7 @@ public class PersonneServiceImpl implements PersonneService {
.toList(); .toList();
System.out.println(uploadsDirects.size()); System.out.println(uploadsDirects.size());
// 3. Pièces et leurs Uploads // 3. Pièces et leurs Uploads
List<PieceDTO> pieces = pieceRepository.findByPersonne_IdAndActeurConcerneIsNull(id) List<PieceDTO> pieces = pieceRepository.findByPersonne_IdAndEnqueteIsNull(id)
.stream().map(piece -> { .stream().map(piece -> {
List<UploadDTO> uploads = piece.getUploads().stream() List<UploadDTO> uploads = piece.getUploads().stream()
.map(u -> new UploadDTO(u.getId(), u.getExternalKey(), u.getObservation(), u.isSynchronise(), u.getFileName(), u.getOriginalFileName(), u.getURIFile(), u.getCheckSum(), u.getSize(), u.getMimeType())) .map(u -> new UploadDTO(u.getId(), u.getExternalKey(), u.getObservation(), u.isSynchronise(), u.getFileName(), u.getOriginalFileName(), u.getURIFile(), u.getCheckSum(), u.getSize(), u.getMimeType()))
@@ -99,7 +132,7 @@ public class PersonneServiceImpl implements PersonneService {
if(mg.getTypeRepresentation() == null){ if(mg.getTypeRepresentation() == null){
return new MembreGroupeDTO( return new MembreGroupeDTO(
mg.getId(), mg.getId(),
new PersonneSimpleDTO(pRep.getId(), pRep.getNomOuSigle(), pRep.getPrenomOuRaisonSociale()), new PersonneSimpleDTO(pRep.getId(), pRep.getNom(), pRep.getPrenom(),pRep.getRaisonSociale()),
null, null,
new PositionRepresentationDTO(mg.getPositionRepresentation().getId(), mg.getPositionRepresentation().getLibelle()), new PositionRepresentationDTO(mg.getPositionRepresentation().getId(), mg.getPositionRepresentation().getLibelle()),
uploads uploads
@@ -107,7 +140,7 @@ public class PersonneServiceImpl implements PersonneService {
}else{ }else{
return new MembreGroupeDTO( return new MembreGroupeDTO(
mg.getId(), mg.getId(),
new PersonneSimpleDTO(pRep.getId(), pRep.getNomOuSigle(), pRep.getPrenomOuRaisonSociale()), new PersonneSimpleDTO(pRep.getId(), pRep.getNom(), pRep.getPrenom(),pRep.getRaisonSociale()),
new TypeRepresentationDTO(mg.getTypeRepresentation().getId(), mg.getTypeRepresentation().getLibelle()), new TypeRepresentationDTO(mg.getTypeRepresentation().getId(), mg.getTypeRepresentation().getLibelle()),
new PositionRepresentationDTO(mg.getPositionRepresentation().getId(), mg.getPositionRepresentation().getLibelle()), new PositionRepresentationDTO(mg.getPositionRepresentation().getId(), mg.getPositionRepresentation().getLibelle()),
uploads uploads
@@ -121,8 +154,9 @@ public class PersonneServiceImpl implements PersonneService {
return new PersonneCompletDTO( return new PersonneCompletDTO(
personne.getId(), personne.getId(),
personne.getIfu(), personne.getIfu(),
personne.getNomOuSigle(), personne.getNom(),
personne.getPrenomOuRaisonSociale(), personne.getPrenom(),
personne.getRaisonSociale(),
personne.getNumRavip(), personne.getNumRavip(),
personne.getNpi(), personne.getNpi(),
personne.getDateNaissanceOuConsti(), personne.getDateNaissanceOuConsti(),

Some files were not shown because too many files have changed in this diff Show More