diff --git a/.env b/.env
new file mode 100644
index 0000000..00cde75
--- /dev/null
+++ b/.env
@@ -0,0 +1,3 @@
+POSTGRES_DB=abomey_db
+POSTGRES_USER=infocad_user
+POSTGRES_PASSWORD=W5fwD({9*q53
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..22ee741
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,14 @@
+# Étape 1 : Build avec Maven et Java 17
+FROM openjdk:17-jdk-slim
+
+
+WORKDIR /app
+
+# Copier le .jar compilé depuis l'étape précédente
+COPY ./target/Fiscad-0.0.1-SNAPSHOT.jar fiscad.jar
+
+# Exposer le port configuré
+EXPOSE 8282
+
+# Lancer l'application
+ENTRYPOINT ["java", "-jar", "fiscad.jar"]
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..dac368b
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,45 @@
+version: '3.9'
+
+services:
+
+ db:
+ image: postgres:15
+ container_name: fiscad-db
+ restart: always
+ environment:
+ POSTGRES_DB: ${POSTGRES_DB}
+ POSTGRES_USER: ${POSTGRES_USER}
+ POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
+ ports:
+ - "5432:5432"
+ volumes:
+ - db-data:/var/lib/postgresql/data
+ healthcheck:
+ test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
+ interval: 10s
+ timeout: 5s
+ retries: 5
+
+ app:
+ build:
+ context: .
+ dockerfile: Dockerfile
+ container_name: fiscad-app
+ depends_on:
+ - db
+ environment:
+ SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/${POSTGRES_DB}
+ SPRING_DATASOURCE_USERNAME: ${POSTGRES_USER}
+ SPRING_DATASOURCE_PASSWORD: ${POSTGRES_PASSWORD}
+ SERVER_PORT: 8282
+ IO_GMSS_FISCAD_PROFILE: abomey
+ SPRING_PROFILES_ACTIVE: abomey
+ ports:
+ - "8282:8282"
+ volumes:
+ - ./uploads:/app/uploads
+ - ./jasperReport:/app/jasperReport
+ restart: on-failure
+
+volumes:
+ db-data:
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index fd1aafe..15fedd3 100755
--- a/pom.xml
+++ b/pom.xml
@@ -5,6 +5,7 @@
org.springframework.boot
spring-boot-starter-parent
+
3.4.2
@@ -28,6 +29,18 @@
org.springframework.boot
spring-boot-starter-web
+
+
+ org.springframework
+ spring-web
+ 6.1.5
+
+
+ org.springframework
+ spring-webmvc
+ 6.1.5
+
+
org.springframework.boot
spring-boot-starter-data-jpa
@@ -88,7 +101,7 @@
org.springdoc
springdoc-openapi-starter-webmvc-ui
- 2.6.0
+ 2.2.0
@@ -109,6 +122,12 @@
${hibernate.version}
+
+ com.vladmihalcea
+ hibernate-types-60
+ 2.21.1
+
+
org.n52.jackson
jackson-datatype-jts
@@ -121,6 +140,12 @@
16.0.0
+
+ jakarta.servlet
+ jakarta.servlet-api
+ 6.1.0
+ provided
+
@@ -147,6 +172,11 @@
3.8.1
17
+
+ -parameters
+
+ 16
+ 16
diff --git a/sql/audits/acteur-concerne-audit.sql b/sql/audits/acteur-concerne-audit.sql
new file mode 100644
index 0000000..3250164
--- /dev/null
+++ b/sql/audits/acteur-concerne-audit.sql
@@ -0,0 +1,52 @@
+-- 1️⃣ Créer la table d’audit
+CREATE TABLE audit.acteur_concerne_audit_log (
+ audit_id SERIAL PRIMARY KEY,
+ acteur_concerne_id BIGINT,
+ action VARCHAR(10),
+ changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ old_data JSONB,
+ new_data JSONB
+);
+
+-- 2️⃣ Créer la fonction d’audit
+CREATE OR REPLACE FUNCTION audit.audit_acteur_concerne_changes()
+RETURNS TRIGGER AS $$
+BEGIN
+ IF (TG_OP = 'UPDATE') THEN
+ INSERT INTO audit.acteur_concerne_audit_log (acteur_concerne_id, action, old_data, new_data)
+ VALUES (
+ OLD.id,
+ TG_OP,
+ to_jsonb(OLD),
+ to_jsonb(NEW)
+ );
+RETURN NEW;
+ELSIF (TG_OP = 'INSERT') THEN
+ INSERT INTO audit.acteur_concerne_audit_log (acteur_concerne_id, action, new_data)
+ VALUES (
+ NEW.id,
+ TG_OP,
+ to_jsonb(NEW)
+ );
+RETURN NEW;
+ELSIF (TG_OP = 'DELETE') THEN
+ INSERT INTO audit.acteur_concerne_audit_log (acteur_concerne_id, action, old_data)
+ VALUES (
+ OLD.id,
+ TG_OP,
+ to_jsonb(OLD)
+ );
+RETURN OLD;
+END IF;
+END;
+$$ LANGUAGE plpgsql;
+
+-- 3️⃣ Créer le trigger
+CREATE TRIGGER trigger_audit_acteur_concerne
+ AFTER INSERT OR UPDATE OR DELETE ON acteur_concerne
+ FOR EACH ROW
+ EXECUTE FUNCTION audit.audit_acteur_concerne_changes();
+
+
+GRANT USAGE ON SCHEMA audit TO infocad_user;
+GRANT INSERT, SELECT ON audit.acteur_concerne_audit_log TO infocad_user;
\ No newline at end of file
diff --git a/sql/audits/enquete-audit.sql b/sql/audits/enquete-audit.sql
new file mode 100644
index 0000000..237091d
--- /dev/null
+++ b/sql/audits/enquete-audit.sql
@@ -0,0 +1,86 @@
+-- Créer le schéma audit
+
+CREATE SCHEMA IF NOT EXISTS audit;
+
+
+-- Créer la table d'audit dans le schéma audit
+
+CREATE TABLE audit.enquete_audit_log (
+ audit_id SERIAL PRIMARY KEY,
+ enquete_id BIGINT,
+ action VARCHAR(10),
+ changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ old_data JSONB,
+ new_data JSONB
+);
+
+-- Créer la fonction dans le schéma audit
+
+CREATE OR REPLACE FUNCTION audit.audit_enquete_changes()
+ RETURNS TRIGGER AS $$
+BEGIN
+ IF (TG_OP = 'UPDATE') THEN
+ INSERT INTO audit.enquete_audit_log (enquete_id, action, old_data, new_data)
+ VALUES (
+ OLD.id,
+ TG_OP,
+ to_jsonb(OLD),
+ to_jsonb(NEW)
+ );
+ RETURN NEW;
+ ELSIF (TG_OP = 'INSERT') THEN
+ INSERT INTO audit.enquete_audit_log (enquete_id, action, new_data)
+ VALUES (
+ NEW.id,
+ TG_OP,
+ to_jsonb(NEW)
+ );
+ RETURN NEW;
+ ELSIF (TG_OP = 'DELETE') THEN
+ INSERT INTO audit.enquete_audit_log (enquete_id, action, old_data)
+ VALUES (
+ OLD.id,
+ TG_OP,
+ to_jsonb(OLD)
+ );
+ RETURN OLD;
+ END IF;
+END;
+$$ LANGUAGE plpgsql;
+
+
+
+
+-- Créer le trigger
+
+CREATE TRIGGER trigger_audit_enquete
+ AFTER INSERT OR UPDATE OR DELETE ON enquete
+ FOR EACH ROW
+EXECUTE FUNCTION audit.audit_enquete_changes();
+
+
+-- donner les droits si nécéssaires
+
+GRANT USAGE ON SCHEMA audit TO infocad_user;
+GRANT INSERT, SELECT ON audit.enquete_audit_log TO infocad_user;
+
+
+-- Lister les audits
+
+SELECT * FROM enquete_audit_log WHERE enquete_id = 42 ORDER BY changed_at DESC;
+
+SELECT
+ enquete_id,
+ action,
+ changed_at,
+ old_data->>'status_enquete' AS status_before,
+ new_data->>'status_enquete' AS status_after,
+ old_data->>'updated_by' AS updated_by_before,
+ new_data->>'updated_by' AS updated_by_after
+FROM audit.enquete_audit_log
+WHERE enquete_id = 5
+ORDER BY changed_at DESC;
+
+
+
+
diff --git a/sql/audits/parcelle-audit.sql b/sql/audits/parcelle-audit.sql
new file mode 100644
index 0000000..9b37ffe
--- /dev/null
+++ b/sql/audits/parcelle-audit.sql
@@ -0,0 +1,55 @@
+-- Créer le schéma audit
+
+CREATE SCHEMA IF NOT EXISTS audit;
+
+-- 1️⃣ Créer la table d’audit
+CREATE TABLE audit.parcelle_audit_log (
+ audit_id SERIAL PRIMARY KEY,
+ parcelle_id BIGINT,
+ action VARCHAR(10),
+ changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ old_data JSONB,
+ new_data JSONB
+);
+
+-- 2️⃣ Créer la fonction d’audit
+CREATE OR REPLACE FUNCTION audit.audit_parcelle_changes()
+RETURNS TRIGGER AS $$
+BEGIN
+ IF (TG_OP = 'UPDATE') THEN
+ INSERT INTO audit.parcelle_audit_log (parcelle_id, action, old_data, new_data)
+ VALUES (
+ OLD.id,
+ TG_OP,
+ to_jsonb(OLD),
+ to_jsonb(NEW)
+ );
+RETURN NEW;
+ELSIF (TG_OP = 'INSERT') THEN
+ INSERT INTO audit.parcelle_audit_log (parcelle_id, action, new_data)
+ VALUES (
+ NEW.id,
+ TG_OP,
+ to_jsonb(NEW)
+ );
+RETURN NEW;
+ELSIF (TG_OP = 'DELETE') THEN
+ INSERT INTO audit.parcelle_audit_log (parcelle_id, action, old_data)
+ VALUES (
+ OLD.id,
+ TG_OP,
+ to_jsonb(OLD)
+ );
+RETURN OLD;
+END IF;
+END;
+$$ LANGUAGE plpgsql;
+
+-- 3️⃣ Créer le trigger
+CREATE TRIGGER trigger_audit_parcelle
+ AFTER INSERT OR UPDATE OR DELETE ON parcelle
+ FOR EACH ROW
+ EXECUTE FUNCTION audit.audit_parcelle_changes();
+
+GRANT USAGE ON SCHEMA audit TO infocad_user;
+GRANT INSERT, SELECT ON audit.parcelle_audit_log TO infocad_user;
\ No newline at end of file
diff --git a/sql/audits/personne-audit.sql b/sql/audits/personne-audit.sql
new file mode 100644
index 0000000..25c67ba
--- /dev/null
+++ b/sql/audits/personne-audit.sql
@@ -0,0 +1,69 @@
+-- Créer le schéma audit
+
+CREATE SCHEMA IF NOT EXISTS audit;
+
+-- 1️⃣ Créer la table d’audit
+CREATE TABLE audit.personne_audit_log (
+ audit_id SERIAL PRIMARY KEY,
+ personne_id BIGINT,
+ action VARCHAR(10),
+ changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ old_data JSONB,
+ new_data JSONB
+);
+
+-- 2️⃣ Créer la fonction d’audit
+CREATE OR REPLACE FUNCTION audit.audit_personne_changes()
+ RETURNS TRIGGER AS $$
+BEGIN
+ IF (TG_OP = 'UPDATE') THEN
+ INSERT INTO audit.personne_audit_log (personne_id, action, old_data, new_data)
+ VALUES (
+ OLD.id,
+ TG_OP,
+ to_jsonb(OLD),
+ to_jsonb(NEW)
+ );
+ RETURN NEW;
+ ELSIF (TG_OP = 'INSERT') THEN
+ INSERT INTO audit.personne_audit_log (personne_id, action, new_data)
+ VALUES (
+ NEW.id,
+ TG_OP,
+ to_jsonb(NEW)
+ );
+ RETURN NEW;
+ ELSIF (TG_OP = 'DELETE') THEN
+ INSERT INTO audit.personne_audit_log (personne_id, action, old_data)
+ VALUES (
+ OLD.id,
+ TG_OP,
+ to_jsonb(OLD)
+ );
+ RETURN OLD;
+ END IF;
+END;
+$$ LANGUAGE plpgsql;
+
+-- 3️⃣ Créer le trigger
+CREATE TRIGGER trigger_audit_personne
+ AFTER INSERT OR UPDATE OR DELETE ON personne
+ FOR EACH ROW
+EXECUTE FUNCTION audit.audit_personne_changes();
+
+
+
+GRANT USAGE ON SCHEMA audit TO infocad_user;
+GRANT INSERT, SELECT ON audit.personne_audit_log TO infocad_user;
+
+SELECT
+ personne_id,
+ action,
+ changed_at,
+ old_data->>'prenom_ou_raison_sociale' AS prenom_before,
+ new_data->>'prenom_ou_raison_sociale' AS prenom_after,
+ old_data->>'updated_by' AS updated_by_before,
+ new_data->>'updated_by' AS updated_by_after
+FROM audit.personne_audit_log
+WHERE personne_id = 10
+ORDER BY changed_at DESC;
diff --git a/sql/audits/piece-audit.sql b/sql/audits/piece-audit.sql
new file mode 100644
index 0000000..76a3b35
--- /dev/null
+++ b/sql/audits/piece-audit.sql
@@ -0,0 +1,52 @@
+-- 1️⃣ Créer la table d’audit
+CREATE TABLE audit.piece_audit_log (
+ audit_id SERIAL PRIMARY KEY,
+ piece_id BIGINT,
+ action VARCHAR(10),
+ changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ old_data JSONB,
+ new_data JSONB
+);
+
+-- 2️⃣ Créer la fonction d’audit
+CREATE OR REPLACE FUNCTION audit.audit_piece_changes()
+ RETURNS TRIGGER AS $$
+BEGIN
+ IF (TG_OP = 'UPDATE') THEN
+ INSERT INTO audit.piece_audit_log (piece_id, action, old_data, new_data)
+ VALUES (
+ OLD.id,
+ TG_OP,
+ to_jsonb(OLD),
+ to_jsonb(NEW)
+ );
+ RETURN NEW;
+ ELSIF (TG_OP = 'INSERT') THEN
+ INSERT INTO audit.piece_audit_log (piece_id, action, new_data)
+ VALUES (
+ NEW.id,
+ TG_OP,
+ to_jsonb(NEW)
+ );
+ RETURN NEW;
+ ELSIF (TG_OP = 'DELETE') THEN
+ INSERT INTO audit.piece_audit_log (piece_id, action, old_data)
+ VALUES (
+ OLD.id,
+ TG_OP,
+ to_jsonb(OLD)
+ );
+ RETURN OLD;
+ END IF;
+END;
+$$ LANGUAGE plpgsql;
+
+-- 3️⃣ Créer le trigger
+CREATE TRIGGER trigger_audit_piece
+ AFTER INSERT OR UPDATE OR DELETE ON piece
+ FOR EACH ROW
+EXECUTE FUNCTION audit.audit_piece_changes();
+
+
+GRANT USAGE ON SCHEMA audit TO infocad_user;
+GRANT INSERT, SELECT ON audit.piece_audit_log TO infocad_user;
\ No newline at end of file
diff --git a/sql/audits/upload-audit.sql b/sql/audits/upload-audit.sql
new file mode 100644
index 0000000..55eb051
--- /dev/null
+++ b/sql/audits/upload-audit.sql
@@ -0,0 +1,52 @@
+-- 1️⃣ Créer la table d’audit
+CREATE TABLE audit.upload_audit_log (
+ audit_id SERIAL PRIMARY KEY,
+ upload_id BIGINT,
+ action VARCHAR(10),
+ changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ old_data JSONB,
+ new_data JSONB
+);
+
+-- 2️⃣ Créer la fonction d’audit
+CREATE OR REPLACE FUNCTION audit.audit_upload_changes()
+ RETURNS TRIGGER AS $$
+BEGIN
+ IF (TG_OP = 'UPDATE') THEN
+ INSERT INTO audit.upload_audit_log (upload_id, action, old_data, new_data)
+ VALUES (
+ OLD.id,
+ TG_OP,
+ to_jsonb(OLD),
+ to_jsonb(NEW)
+ );
+ RETURN NEW;
+ ELSIF (TG_OP = 'INSERT') THEN
+ INSERT INTO audit.upload_audit_log (upload_id, action, new_data)
+ VALUES (
+ NEW.id,
+ TG_OP,
+ to_jsonb(NEW)
+ );
+ RETURN NEW;
+ ELSIF (TG_OP = 'DELETE') THEN
+ INSERT INTO audit.upload_audit_log (upload_id, action, old_data)
+ VALUES (
+ OLD.id,
+ TG_OP,
+ to_jsonb(OLD)
+ );
+ RETURN OLD;
+ END IF;
+END;
+$$ LANGUAGE plpgsql;
+
+-- 3️⃣ Créer le trigger
+CREATE TRIGGER trigger_audit_upload
+ AFTER INSERT OR UPDATE OR DELETE ON upload
+ FOR EACH ROW
+EXECUTE FUNCTION audit.audit_upload_changes();
+
+
+GRANT USAGE ON SCHEMA audit TO infocad_user;
+GRANT INSERT, SELECT ON audit.upload_audit_log TO infocad_user;
\ No newline at end of file
diff --git a/sql/migration/script.sh b/sql/migration/script.sh
new file mode 100644
index 0000000..1291538
--- /dev/null
+++ b/sql/migration/script.sh
@@ -0,0 +1,24 @@
+# pour sauvegarder la base infocad
+# 👉 Explications :
+ #
+ #docker exec -t postgres_db: Exécute la commande dans le container.
+ #
+ #pg_dump: Utilitaire pour exporter la base.
+ #
+ #-U infocad_user: Nom d'utilisateur que tu as mis dans docker-compose.
+ #
+ #infocad: Le nom de la base de données.
+ #
+ #> backup_infocad.sql: Sauvegarde le dump sur ta machine hôte (pas dans le container).
+
+docker exec -t postgres_db pg_dump -U infocad_user infocad | gzip > backup_infocad.sql.gz
+
+
+# Suppression des tables
+
+DROP SCHEMA public CASCADE;
+CREATE SCHEMA public;
+
+# 🚀 Pour restaurer plus tard :
+ #a) Copie du fichier dans le container :
+gunzip -c backup_infocad.sql.gz | docker exec -i postgres_db psql -U infocad_user infocad
\ No newline at end of file
diff --git a/src.zip b/src.zip
new file mode 100644
index 0000000..39fcf50
Binary files /dev/null and b/src.zip differ
diff --git a/src/main/java/io/gmss/fiscad/advice/FileUploadExceptionAdvice.java b/src/main/java/io/gmss/fiscad/advice/FileUploadExceptionAdvice.java
new file mode 100644
index 0000000..9c9e0d0
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/advice/FileUploadExceptionAdvice.java
@@ -0,0 +1,24 @@
+package io.gmss.fiscad.advice;
+
+import io.gmss.fiscad.paylaods.ApiResponse;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.multipart.MaxUploadSizeExceededException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+import org.springframework.http.ResponseEntity;
+import org.springframework.http.HttpStatus;
+
+@RestControllerAdvice
+public class FileUploadExceptionAdvice {
+
+ @Value("${spring.servlet.multipart.max-file-size}")
+ private String maxFileSize;
+
+ @ExceptionHandler(MaxUploadSizeExceededException.class)
+ public ResponseEntity> handleMaxSizeException(MaxUploadSizeExceededException exc) {
+ String message = String.format("Le fichier est trop volumineux. Taille maximale autorisée : %s.", maxFileSize);
+ return ResponseEntity.status(HttpStatus.PAYLOAD_TOO_LARGE)
+ .body(new ApiResponse<>(false, null, message));
+ }
+}
+
diff --git a/src/main/java/io/gmss/fiscad/configuration/OpenApiConfig.java b/src/main/java/io/gmss/fiscad/configuration/OpenApiConfig.java
index ec17d80..755068f 100644
--- a/src/main/java/io/gmss/fiscad/configuration/OpenApiConfig.java
+++ b/src/main/java/io/gmss/fiscad/configuration/OpenApiConfig.java
@@ -31,17 +31,9 @@ import io.swagger.v3.oas.annotations.servers.Server;
description = "Local ENV",
url = "http://localhost:8282"
),
- @Server(
- description = "PROD ENV (http)",
- url = "http://161.97.163.53:20002"
- ),
@Server(
description = "PROD ENV (https)",
- url = "https://fiscadbackend.novatic.org"
- ),
- @Server(
- description = "Local ENV (http) - 2",
- url = "http://192.168.1.106:8282"
+ url = "https://backend.fiscad.org"
)
},
security = {
diff --git a/src/main/java/io/gmss/fiscad/configuration/SwaggerOAS3Config.java b/src/main/java/io/gmss/fiscad/configuration/SwaggerOAS3Config.java
index 9d06c14..b263a4f 100644
--- a/src/main/java/io/gmss/fiscad/configuration/SwaggerOAS3Config.java
+++ b/src/main/java/io/gmss/fiscad/configuration/SwaggerOAS3Config.java
@@ -13,12 +13,12 @@ public class SwaggerOAS3Config {
private static final String[] RFU_METIER = {
"/api/batiment/**", "/api/caracteristique-caracteristiqueBatiment/**", "/api/caracteristique-parcelle/**",
"/api/caracteristique-unite-logement/**", "/api/enquete-batiment/**", "/api/enquete-unite-logement/**",
- "/api/unite-logement/**"
+ "/api/unite-logement/**", "/api/donnees-impositions-tfu/**", "/api/impositions-tfu/**"
};
private static final String[] RFU_PARAMETRE = {
- "/api/campagne/**", "/api/caracteristique/**", "/api/equipe/**", "/api/type-caracteristique/**","api/categorie-batiment/**"
-
+ "/api/campagne/**", "/api/caracteristique/**", "/api/equipe/**", "/api/type-caracteristique/**","/api/categorie-batiment/**","/api/barem-rfu/**",
+ "/api/zone-rfu/**", "/api/barem-rfu-non-bati/**", "/api/exercice/**"
};
private static final String[] DECOUPAGE = {
diff --git a/src/main/java/io/gmss/fiscad/controllers/decoupage/ArrondissementController.java b/src/main/java/io/gmss/fiscad/controllers/decoupage/ArrondissementController.java
index ee9bc65..a7107f9 100644
--- a/src/main/java/io/gmss/fiscad/controllers/decoupage/ArrondissementController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/decoupage/ArrondissementController.java
@@ -16,6 +16,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -26,6 +27,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Arrondissement")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class ArrondissementController {
private final ArrondissementService arrondissementService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/decoupage/CommuneController.java b/src/main/java/io/gmss/fiscad/controllers/decoupage/CommuneController.java
index eb5181e..215bd1c 100644
--- a/src/main/java/io/gmss/fiscad/controllers/decoupage/CommuneController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/decoupage/CommuneController.java
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -25,6 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Commune")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class CommuneController {
private final CommuneService communeService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/decoupage/DepartementController.java b/src/main/java/io/gmss/fiscad/controllers/decoupage/DepartementController.java
index fb342d3..2e10c60 100644
--- a/src/main/java/io/gmss/fiscad/controllers/decoupage/DepartementController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/decoupage/DepartementController.java
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -25,6 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Département")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class DepartementController {
private final DepartementService departementService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/decoupage/NationaliteController.java b/src/main/java/io/gmss/fiscad/controllers/decoupage/NationaliteController.java
index eeb6c57..d24fe65 100644
--- a/src/main/java/io/gmss/fiscad/controllers/decoupage/NationaliteController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/decoupage/NationaliteController.java
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -25,6 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Nationalité")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class NationaliteController {
private final NationaliteService nationaliteService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/decoupage/QuartierController.java b/src/main/java/io/gmss/fiscad/controllers/decoupage/QuartierController.java
index 30239f7..f068506 100644
--- a/src/main/java/io/gmss/fiscad/controllers/decoupage/QuartierController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/decoupage/QuartierController.java
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -25,6 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Quartier")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class QuartierController {
private final QuartierService quartierService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurController.java b/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurController.java
index 15a8b4b..ccfded8 100644
--- a/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurController.java
@@ -14,6 +14,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -23,6 +24,7 @@ import org.springframework.web.client.HttpClientErrorException;
@RequestMapping(value = "api/secteur", produces = MediaType.APPLICATION_JSON_VALUE)
//@SecurityRequirement(name = "bearer")
@Tag(name = "Secteur")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class SecteurController {
private final SecteurService secteurService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurDecoupageController.java b/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurDecoupageController.java
index ecc2b0c..6ee92a5 100644
--- a/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurDecoupageController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurDecoupageController.java
@@ -14,6 +14,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -23,6 +24,7 @@ import org.springframework.web.client.HttpClientErrorException;
@RequestMapping(value = "api/secteur-decoupage", produces = MediaType.APPLICATION_JSON_VALUE)
@SecurityRequirement(name = "bearer")
@Tag(name = "SecteurDecoupage")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class SecteurDecoupageController {
private final SecteurDecoupageService secteurDecoupageService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/ActeurConcerneController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/ActeurConcerneController.java
index e74eefc..080d99a 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/ActeurConcerneController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/ActeurConcerneController.java
@@ -2,7 +2,9 @@ package io.gmss.fiscad.controllers.infocad.metier;
import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.infocad.metier.ActeurConcerneService;
+import io.gmss.fiscad.interfaces.infocad.metier.PersonneService;
import io.gmss.fiscad.paylaods.ApiResponse;
+import io.gmss.fiscad.paylaods.dto.PersonneCompletDTO;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.slf4j.Logger;
@@ -21,11 +23,13 @@ import org.springframework.web.client.HttpClientErrorException;
public class ActeurConcerneController {
private final ActeurConcerneService acteurConcerneService;
+ private final PersonneService personneService;
private static final Logger logger = LoggerFactory.getLogger(ActeurConcerneController.class);
- public ActeurConcerneController(ActeurConcerneService acteurConcerneService) {
+ public ActeurConcerneController(ActeurConcerneService acteurConcerneService, PersonneService personneService) {
this.acteurConcerneService = acteurConcerneService;
+ this.personneService = personneService;
}
@@ -51,6 +55,20 @@ public class ActeurConcerneController {
return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK);
}
}
-
+ @GetMapping("/get-details/{id}")
+ public ResponseEntity> getDetails(@PathVariable Long id) {
+ try{
+ PersonneCompletDTO personneCompletDTO = personneService.getPersonneComplete(id);
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, personneCompletDTO, "Personne retrouvée avec succès."),
+ HttpStatus.OK
+ );
+ }catch (Exception e){
+ return new ResponseEntity<>(
+ new ApiResponse<>(false, e.getMessage()),
+ HttpStatus.OK
+ );
+ }
+ }
}
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/EnqueteController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/EnqueteController.java
index bf1cf55..11dae19 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/EnqueteController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/EnqueteController.java
@@ -171,6 +171,30 @@ public class EnqueteController {
}
+ @GetMapping("/all/dgi/decoupage-admin-for-enquete")
+ public ResponseEntity> getAllByEnqueteDecoupageAdminForDgi() {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, enqueteService.getDecoupageAdminUserConnecterAndStatForDgi(), "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);
+ }
+ }
+
+
@DeleteMapping("/delete/{id}")
public ResponseEntity> deleteStructurer(@PathVariable Long id) {
try {
@@ -292,7 +316,7 @@ public class EnqueteController {
public ResponseEntity> getFicheEnqueteById(@PathVariable Long id) {
try {
return new ResponseEntity<>(
- new ApiResponse<>(true, enqueteService.getFicheEnquete(id), "enquete trouvé avec succès."),
+ new ApiResponse<>(true, enqueteService.getFicheEnquete(id,null), "enquete trouvé avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -315,7 +339,7 @@ public class EnqueteController {
public ResponseEntity> getFicheEnqueteByNupProvisoir(@PathVariable String nupProvisoir) {
try {
return new ResponseEntity<>(
- new ApiResponse<>(true, enqueteService.getFicheEnqueteByNupProvisoir(nupProvisoir), "enquete trouvé avec succès."),
+ new ApiResponse<>(true, enqueteService.getFicheEnquete(null,nupProvisoir), "enquete trouvé avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -357,28 +381,7 @@ public class EnqueteController {
}
}
- @GetMapping("/traiter-non-synch-to-mobile/{terminalId}")
- public ResponseEntity> getEnqueteValideNonSynch(@PathVariable Long terminalId) {
- try {
- return new ResponseEntity<>(
- new ApiResponse<>(true, enqueteService.getEnqueteValideNonSynch(terminalId), "Liste des enquetes traitées non synchronisées sur le termianl."),
- 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);
- }
- }
+
}
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PersonneController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PersonneController.java
new file mode 100644
index 0000000..7b78e72
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PersonneController.java
@@ -0,0 +1,39 @@
+package io.gmss.fiscad.controllers.infocad.metier;
+
+
+import io.gmss.fiscad.interfaces.infocad.metier.PersonneService;
+import io.gmss.fiscad.paylaods.ApiResponse;
+import io.gmss.fiscad.paylaods.dto.PersonneCompletDTO;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+@RestController
+@RequestMapping(value = "api/personne", produces = MediaType.APPLICATION_JSON_VALUE)
+@RequiredArgsConstructor
+public class PersonneController {
+
+ private final PersonneService personneService;
+
+ @GetMapping("/get-details/{id}")
+ public ResponseEntity> getDetails(@PathVariable Long id) {
+ try{
+ PersonneCompletDTO personneCompletDTO = personneService.getPersonneComplete(id);
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, personneCompletDTO, "Personne retrouvée avec succès."),
+ HttpStatus.OK
+ );
+ }catch (Exception e){
+ return new ResponseEntity<>(
+ new ApiResponse<>(false, e.getMessage()),
+ HttpStatus.OK
+ );
+ }
+ }
+}
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/TpeController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/TpeController.java
index 1dd398e..0058472 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/TpeController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/TpeController.java
@@ -57,9 +57,23 @@ public class TpeController {
return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK);
}
}
-
+ @PostMapping("/re-create")
+ public ResponseEntity> reCreateTpe(@RequestBody @Valid @Validated Tpe tpe) {
+ try{
+ tpe = tpeService.reCreateExistTpe(tpe);
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, tpe, "Tpe créé avec succès."),
+ HttpStatus.OK
+ );
+ }catch (Exception e){
+ return new ResponseEntity<>(
+ new ApiResponse<>(false, e.getMessage()),
+ HttpStatus.OK
+ );
+ }
+ }
@PutMapping("/update/{id}")
- public ResponseEntity> updateTpe(@PathVariable Long id, @RequestBody Tpe tpe) {
+ public ResponseEntity> majTpe(@PathVariable Long id, @RequestBody Tpe tpe) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, tpeService.updateTpe(id, tpe), "Tpe mis à jour avec succès."),
@@ -81,6 +95,30 @@ public class TpeController {
}
}
+
+ @PutMapping("/restaure/{id}")
+ public ResponseEntity> updateTpe(@PathVariable Long id, @RequestBody Tpe tpe) {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, tpeService.majTpe(id, tpe), "Tpe 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);
+ }
+ }
+
@DeleteMapping("/delete/{id}")
public ResponseEntity> deleteTper(@PathVariable Long id) {
try {
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/UploadController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/UploadController.java
index 64fb901..a386913 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/UploadController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/UploadController.java
@@ -39,14 +39,10 @@ public class UploadController {
boolean headIsValid = false;
private static final Logger logger = LoggerFactory.getLogger(UploadController.class);
-
@Autowired
private UploadRepository uploadRepository;
-
-
@Autowired
private FileStorageService fileStorageService;
-
@Autowired
private StringManager stringManager;
private int firstLineColumnNumber = 0;
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/BlocController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/BlocController.java
index 91fbbe6..63a8fd5 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/BlocController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/BlocController.java
@@ -17,6 +17,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -27,7 +28,8 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Bloc")
@CrossOrigin(origins = "*")
-public class BlocController {
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
+public class BlocController {
private final BlocService blocService;
private static final Logger logger = LoggerFactory.getLogger(BlocController.class);
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/ModeAcquisitionController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/ModeAcquisitionController.java
index f2a2591..0cb1686 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/ModeAcquisitionController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/ModeAcquisitionController.java
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -25,6 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Mode d'acquisition")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class ModeAcquisitionController {
private final ModeAcquisitionService modeAcquisitionService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/NatureDomaineController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/NatureDomaineController.java
index 1f4af25..82fc21b 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/NatureDomaineController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/NatureDomaineController.java
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -25,6 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Nature domaine")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class NatureDomaineController {
private final NatureDomaineService natureDomaineService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/PositionRepresentationController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/PositionRepresentationController.java
index 1c11774..b5d3d96 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/PositionRepresentationController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/PositionRepresentationController.java
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -25,6 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Position représentation")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class PositionRepresentationController {
private final PositionRepresentationService positionRepresentationService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/ProfessionController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/ProfessionController.java
index 49ef435..6756442 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/ProfessionController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/ProfessionController.java
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -25,6 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Profession")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class ProfessionController {
private final ProfessionService professionService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/SituationGeographiqueController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/SituationGeographiqueController.java
index 04e5c53..47302fc 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/SituationGeographiqueController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/SituationGeographiqueController.java
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -25,6 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Situation géographique")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class SituationGeographiqueController {
private final SituationGeographiqueService situationGeographiqueService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/SituationMatrimonialeController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/SituationMatrimonialeController.java
index f595068..d8e862d 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/SituationMatrimonialeController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/SituationMatrimonialeController.java
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -25,6 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Situation matrimoniale")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class SituationMatrimonialeController {
private final SituationMatrimonialeService situationMatrimonialeService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/SourceDroitController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/SourceDroitController.java
index 7c76f1d..f9df9df 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/SourceDroitController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/SourceDroitController.java
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -25,6 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Source de droit")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class SourceDroitController {
private final SourceDroitService sourceDroitService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/StructureController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/StructureController.java
index 59f436d..ed008f1 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/StructureController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/StructureController.java
@@ -16,6 +16,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -26,6 +27,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Structure")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class StructureController {
private final StructureService structureService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypeContestationController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypeContestationController.java
index 1f571c8..ebd4256 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypeContestationController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypeContestationController.java
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -25,6 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Type de contestation")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class TypeContestationController {
private final TypeContestationService typeContestationService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypeDomaineController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypeDomaineController.java
index de2d3ae..da4a911 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypeDomaineController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypeDomaineController.java
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -25,6 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Type de domaine")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class TypeDomaineController {
private final TypeDomaineService typeDomaineService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypePersonneController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypePersonneController.java
index 2ca5ed9..f23c983 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypePersonneController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypePersonneController.java
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -25,6 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Type de personne")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class TypePersonneController {
private final TypePersonneService typePersonneService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypePieceController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypePieceController.java
index 758a56f..6f485eb 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypePieceController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypePieceController.java
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -25,6 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Type de pièce")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class TypePieceController {
private final TypePieceService typePieceService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypeRepresentationController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypeRepresentationController.java
index 10c6554..e07661c 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypeRepresentationController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/TypeRepresentationController.java
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -25,6 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Type de représentation")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR')")
public class TypeRepresentationController {
private final TypeRepresentationService typeRepresentationService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/rfu/metier/DonneesImpositionTfuController.java b/src/main/java/io/gmss/fiscad/controllers/rfu/metier/DonneesImpositionTfuController.java
new file mode 100644
index 0000000..45c88ca
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/controllers/rfu/metier/DonneesImpositionTfuController.java
@@ -0,0 +1,276 @@
+package io.gmss.fiscad.controllers.rfu.metier;
+
+
+import io.gmss.fiscad.entities.rfu.metier.DonneesImpositionTfu;
+import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu;
+import io.gmss.fiscad.enums.StatusAvis;
+import io.gmss.fiscad.exceptions.*;
+import io.gmss.fiscad.interfaces.rfu.metier.DonneesImpositionTfuService;
+import io.gmss.fiscad.paylaods.ApiResponse;
+import io.gmss.fiscad.repositories.rfu.metier.ImpositionsTfuRepository;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.AllArgsConstructor;
+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.Optional;
+
+
+@RestController
+@RequestMapping(value = "api/donnees-impositions-tfu", produces = MediaType.APPLICATION_JSON_VALUE)
+@SecurityRequirement(name = "bearer")
+@Tag(name = "DonneesImpositionTfu")
+@CrossOrigin(origins = "*")
+@AllArgsConstructor
+public class DonneesImpositionTfuController {
+
+ private final DonneesImpositionTfuService donneesImpositionTfuService ;
+ private final ImpositionsTfuRepository impositionsTfuRepository ;
+
+ private static final Logger logger = LoggerFactory.getLogger(DonneesImpositionTfuController.class);
+
+
+
+ @PostMapping("/create")
+ public ResponseEntity> createDonneesImpositionTfu(@RequestBody @Valid @Validated DonneesImpositionTfu donneesImpositionTfu) {
+ try {
+ donneesImpositionTfu = donneesImpositionTfuService.createDonneesImpositionTfu(donneesImpositionTfu);
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, donneesImpositionTfu, "DonneesImpositionTfu 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> updateDonneesImpositionTfu(@PathVariable Long id, @RequestBody DonneesImpositionTfu donneesImpositionTfu) {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, donneesImpositionTfuService.updateDonneesImpositionTfu(id, donneesImpositionTfu), "DonneesImpositionTfu 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> deleteDonneesImpositionTfu(@PathVariable Long id) {
+ try {
+ donneesImpositionTfuService.deleteDonneesImpositionTfu(id);
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, "DonneesImpositionTfu 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> getAllDonneesImpositionTfuList() {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, donneesImpositionTfuService.getDonneesImpositionTfuList(), "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> getAllDonneesImpositionTfuPaged(@RequestParam int pageNo, @RequestParam int pageSize) {
+ try {
+ Pageable pageable = PageRequest.of(pageNo, pageSize);
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, donneesImpositionTfuService.getDonneesImpositionTfuList(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> getDonneesImpositionTfuById(@PathVariable Long id) {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, donneesImpositionTfuService.getDonneesImpositionTfuById(id), "DonneesImpositionTfu 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 = "Générer les données fiscales TFU")
+ @PostMapping("/generer")
+ public ResponseEntity> genererDonneesFiscale(@RequestBody ImpositionsTfu impositionsTfu) {
+ try {
+ Optional optionalImpositionsTfu =impositionsTfuRepository.findById(impositionsTfu.getId());
+
+ if(optionalImpositionsTfu.isEmpty()){
+ return new ResponseEntity<>(
+ new ApiResponse<>(false, null, "L'imposition tfu n'est pas trouvée."),
+ HttpStatus.OK
+ );
+ }
+
+ if(!optionalImpositionsTfu.get().getStatusAvis().equals(StatusAvis.CREE)){
+ return new ResponseEntity<>(
+ new ApiResponse<>(false, null, "le statut actuel ne permet pas cette opération."),
+ HttpStatus.OK
+ );
+ }
+
+ optionalImpositionsTfu.get().setStatusAvis(StatusAvis.GENERE);
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, donneesImpositionTfuService.genererDonneesFiscales(optionalImpositionsTfu.get()), "DonneesImpositionTfu 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 = "Récuperer les avis d'id d'une imposition")
+ @GetMapping("/by-impositions-id/{impositionsId}")
+ public ResponseEntity> getDonneesFiscale(@PathVariable Long impositionsId) {
+ try {
+
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, donneesImpositionTfuService.getDonneesFiscalesByImposition(impositionsId), "DonneesImpositionTfu 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 = "Récuperer les avis d'id d'une imposition et l'id d'un arrondissement")
+ @GetMapping("/by-impositions-id/by-arrondissement/{impositionsId}/{arrondissementId}")
+ public ResponseEntity> getDonneesFiscaleParImpositionArrondissement(@PathVariable Long impositionsId,@PathVariable Long arrondissementId) {
+ try {
+
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, donneesImpositionTfuService.getDonneesFiscalesByImpositionArrondissement(impositionsId,arrondissementId), "DonneesImpositionTfu 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);
+ }
+ }
+}
diff --git a/src/main/java/io/gmss/fiscad/controllers/rfu/metier/ImpositionsTfuController.java b/src/main/java/io/gmss/fiscad/controllers/rfu/metier/ImpositionsTfuController.java
new file mode 100644
index 0000000..ef446ea
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/controllers/rfu/metier/ImpositionsTfuController.java
@@ -0,0 +1,225 @@
+package io.gmss.fiscad.controllers.rfu.metier;
+
+
+import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu;
+import io.gmss.fiscad.exceptions.*;
+import io.gmss.fiscad.interfaces.rfu.metier.ImpositionsTfuService;
+import io.gmss.fiscad.paylaods.ApiResponse;
+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/impositions-tfu", produces = MediaType.APPLICATION_JSON_VALUE)
+@SecurityRequirement(name = "bearer")
+@Tag(name = "Impositions TFU")
+@CrossOrigin(origins = "*")
+public class ImpositionsTfuController {
+
+ private final ImpositionsTfuService impositionsTfuService;
+ private static final Logger logger = LoggerFactory.getLogger(ImpositionsTfuController.class);
+
+ public ImpositionsTfuController(ImpositionsTfuService impositionsTfuService) {
+ this.impositionsTfuService = impositionsTfuService;
+ }
+
+ @PostMapping("/create")
+ public ResponseEntity> createImpositionsTfu(@RequestBody @Valid @Validated ImpositionsTfu impositionsTfu) {
+ try {
+ impositionsTfu = impositionsTfuService.createImpositionsTfu(impositionsTfu);
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, impositionsTfu, "Unite de logement 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> updateImpositionsTfu(@PathVariable Long id, @RequestBody ImpositionsTfu impositionsTfu) {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, impositionsTfuService.updateImpositionsTfu(id, impositionsTfu), "Unite de logement 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("/valider/{id}")
+ public ResponseEntity> validerImpositionsTfu(@RequestBody ImpositionsTfu impositionsTfu) {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, impositionsTfuService.validerImpositionsTfu(impositionsTfu), "Unite de logement 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("/annuler/{id}")
+ public ResponseEntity> annulerImpositionsTfu(@PathVariable Long id, @RequestBody ImpositionsTfu impositionsTfu) {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, impositionsTfuService.annulerImpositionsTfu(impositionsTfu), "Unite de logement 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> deleteImpositionsTfu(@PathVariable Long id) {
+ try {
+ impositionsTfuService.deleteImpositionsTfu(id);
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, "Unite Logement 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> getAllImpositionsTfuList() {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, impositionsTfuService.getImpositionsTfuList(), "Liste des Enquetes des unites Logements 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> getAllImpositionsTfuPaged(@RequestParam int pageNo, @RequestParam int pageSize) {
+ try {
+ Pageable pageable = PageRequest.of(pageNo, pageSize);
+
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, impositionsTfuService.getImpositionsTfuList(pageable), "Liste des enquetes des unites de logements 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> getImpositionsTfuById(@PathVariable Long id) {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, impositionsTfuService.getImpositionsTfuById(id), "Unite de de logement 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);
+ }
+ }
+}
diff --git a/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/BaremRfuController.java b/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/BaremRfuController.java
index f3ee184..b0de2c3 100644
--- a/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/BaremRfuController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/BaremRfuController.java
@@ -1,6 +1,6 @@
package io.gmss.fiscad.controllers.rfu.parametre;
-import io.gmss.fiscad.entities.rfu.parametre.BaremRfu;
+import io.gmss.fiscad.entities.rfu.parametre.BaremRfuBati;
import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.rfu.parametre.BaremRfuService;
import io.gmss.fiscad.paylaods.ApiResponse;
@@ -22,7 +22,7 @@ import org.springframework.web.client.HttpClientErrorException;
@RestController
@RequestMapping(value = "api/barem-rfu", produces = MediaType.APPLICATION_JSON_VALUE)
@SecurityRequirement(name = "bearer")
-@Tag(name = "BaremRfu")
+@Tag(name = "Barem Rfu")
public class BaremRfuController {
private final BaremRfuService baremRfuService;
private static final Logger logger = LoggerFactory.getLogger(BaremRfuController.class);
@@ -33,11 +33,11 @@ public class BaremRfuController {
@PostMapping("/create")
- public ResponseEntity> createBaremRfu(@RequestBody @Valid @Validated BaremRfu baremRfu) {
+ public ResponseEntity> createBaremRfu(@RequestBody @Valid @Validated BaremRfuBati baremRfuBati) {
try {
- baremRfu = baremRfuService.createBaremRfu(baremRfu);
+ baremRfuBati = baremRfuService.createBaremRfu(baremRfuBati);
return new ResponseEntity<>(
- new ApiResponse<>(true, baremRfu, "BaremRfu créé avec succès."),
+ new ApiResponse<>(true, baremRfuBati, "BaremRfuBati créé avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -57,10 +57,10 @@ public class BaremRfuController {
}
@PutMapping("/update/{id}")
- public ResponseEntity> updateBaremRfu(@PathVariable Long id, @RequestBody BaremRfu baremRfu) {
+ public ResponseEntity> updateBaremRfu(@PathVariable Long id, @RequestBody BaremRfuBati baremRfuBati) {
try {
return new ResponseEntity<>(
- new ApiResponse<>(true, baremRfuService.updateBaremRfu(id, baremRfu), "BaremRfu mis à jour avec succès."),
+ new ApiResponse<>(true, baremRfuService.updateBaremRfu(id, baremRfuBati), "BaremRfuBati mis à jour avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -84,7 +84,7 @@ public class BaremRfuController {
try {
baremRfuService.deleteBaremRfu(id);
return new ResponseEntity<>(
- new ApiResponse<>(true, "BaremRfu supprimée avec succès."),
+ new ApiResponse<>(true, "BaremRfuBati supprimée avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -155,7 +155,7 @@ public class BaremRfuController {
public ResponseEntity> getBaremRfuById(@PathVariable Long id) {
try {
return new ResponseEntity<>(
- new ApiResponse<>(true, baremRfuService.getBaremRfuById(id), "BaremRfu trouvée avec succès."),
+ new ApiResponse<>(true, baremRfuService.getBaremRfuById(id), "BaremRfuBati trouvée avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -175,7 +175,8 @@ public class BaremRfuController {
}
@GetMapping("/categorie-batiment/{idCategorieBatiment}")
- public ResponseEntity> getBaremRfuByType(@PathVariable Long idCategorieBatiment) {
+ public ResponseEntity> getBaremRfuByType( //@Parameter(description = "ID de la catégorie de bâtiment", required = true)
+ @PathVariable Long idCategorieBatiment) {
try {
return new ResponseEntity<>(
diff --git a/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/BaremRfuNonBatiController.java b/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/BaremRfuNonBatiController.java
new file mode 100644
index 0000000..2f864b1
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/BaremRfuNonBatiController.java
@@ -0,0 +1,180 @@
+package io.gmss.fiscad.controllers.rfu.parametre;
+
+import io.gmss.fiscad.entities.rfu.parametre.BaremRfuNonBati;
+import io.gmss.fiscad.exceptions.*;
+import io.gmss.fiscad.interfaces.rfu.parametre.BaremRfuNonBatiService;
+import io.gmss.fiscad.paylaods.ApiResponse;
+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/barem-rfu-non-bati", produces = MediaType.APPLICATION_JSON_VALUE)
+@SecurityRequirement(name = "bearer")
+@Tag(name = "Barem rfu non bati")
+public class BaremRfuNonBatiController {
+
+ private final BaremRfuNonBatiService baremRfuNonBatiService;
+ private static final Logger logger = LoggerFactory.getLogger(BaremRfuNonBatiController.class);
+
+ public BaremRfuNonBatiController(BaremRfuNonBatiService baremRfuNonBatiService) {
+ this.baremRfuNonBatiService = baremRfuNonBatiService;
+ }
+
+
+ @PostMapping("/create")
+ public ResponseEntity> createBaremRfuNonBati(@RequestBody @Valid @Validated BaremRfuNonBati baremRfuNonBati) {
+ try {
+ baremRfuNonBati = baremRfuNonBatiService.createBaremRfuNonBati(baremRfuNonBati);
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, baremRfuNonBati, "BaremRfuNonBati 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> updateBaremRfuNonBati(@PathVariable Long id, @RequestBody BaremRfuNonBati baremRfuNonBati) {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, baremRfuNonBatiService.updateBaremRfuNonBati(id, baremRfuNonBati), "BaremRfuNonBati 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);
+ }
+ }
+
+ @DeleteMapping("/delete/{id}")
+ public ResponseEntity> deleteBaremRfuNonBatir(@PathVariable Long id) {
+ try {
+ baremRfuNonBatiService.deleteBaremRfuNonBati(id);
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, "BaremRfuNonBati 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> getAllBaremRfuNonBatiList() {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, baremRfuNonBatiService.getBaremRfuNonBatiList(), "Liste des baremRfuNonBatis 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> getAllBaremRfuNonBatiPaged(@RequestParam int pageNo, @RequestParam int pageSize) {
+ try {
+ Pageable pageable = PageRequest.of(pageNo, pageSize);
+
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, baremRfuNonBatiService.getBaremRfuNonBatiList(pageable), "Liste des baremRfuNonBatis 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> getBaremRfuNonBatiById(@PathVariable Long id) {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, baremRfuNonBatiService.getBaremRfuNonBatiById(id), "BaremRfuNonBati 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);
+ }
+ }
+
+
+}
+
diff --git a/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/CategorieBatimentController.java b/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/CategorieBatimentController.java
index afd37e8..4660bd8 100644
--- a/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/CategorieBatimentController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/CategorieBatimentController.java
@@ -22,7 +22,7 @@ import org.springframework.web.client.HttpClientErrorException;
@RestController
@RequestMapping(value = "api/categorie-batiment", produces = MediaType.APPLICATION_JSON_VALUE)
@SecurityRequirement(name = "bearer")
-@Tag(name = "CategorieBatiment")
+@Tag(name = "Categorie Batiment")
public class CategorieBatimentController {
private final CategorieBatimentService categorieBatimentService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/ExerciceController.java b/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/ExerciceController.java
new file mode 100644
index 0000000..dd889c1
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/ExerciceController.java
@@ -0,0 +1,180 @@
+package io.gmss.fiscad.controllers.rfu.parametre;
+
+import io.gmss.fiscad.entities.rfu.parametre.Exercice;
+import io.gmss.fiscad.exceptions.*;
+import io.gmss.fiscad.interfaces.rfu.parametre.ExerciceService;
+import io.gmss.fiscad.paylaods.ApiResponse;
+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/exercice", produces = MediaType.APPLICATION_JSON_VALUE)
+@SecurityRequirement(name = "bearer")
+@Tag(name = "exercice")
+public class ExerciceController {
+
+ private final ExerciceService exerciceService;
+ private static final Logger logger = LoggerFactory.getLogger(ExerciceController.class);
+
+ public ExerciceController(ExerciceService exerciceService) {
+ this.exerciceService = exerciceService;
+ }
+
+
+ @PostMapping("/create")
+ public ResponseEntity> createExercice(@RequestBody @Valid @Validated Exercice exercice) {
+ try {
+ exercice = exerciceService.createExercice(exercice);
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, exercice, "Exercice 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> updateExercice(@PathVariable Long id, @RequestBody Exercice exercice) {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, exerciceService.updateExercice(id, exercice), "Exercice 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);
+ }
+ }
+
+ @DeleteMapping("/delete/{id}")
+ public ResponseEntity> deleteExercicer(@PathVariable Long id) {
+ try {
+ exerciceService.deleteExercice(id);
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, "Exercice 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> getAllExerciceList() {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, exerciceService.getExerciceList(), "Liste des exercices 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> getAllExercicePaged(@RequestParam int pageNo, @RequestParam int pageSize) {
+ try {
+ Pageable pageable = PageRequest.of(pageNo, pageSize);
+
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, exerciceService.getExerciceList(pageable), "Liste des exercices 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> getExerciceById(@PathVariable Long id) {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, exerciceService.getExerciceById(id), "Exercice 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);
+ }
+ }
+
+
+}
+
diff --git a/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/ZoneRfuController.java b/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/ZoneRfuController.java
new file mode 100644
index 0000000..2cf112d
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/ZoneRfuController.java
@@ -0,0 +1,180 @@
+package io.gmss.fiscad.controllers.rfu.parametre;
+
+import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu;
+import io.gmss.fiscad.exceptions.*;
+import io.gmss.fiscad.interfaces.rfu.parametre.ZoneRfuService;
+import io.gmss.fiscad.paylaods.ApiResponse;
+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/zone-rfu", produces = MediaType.APPLICATION_JSON_VALUE)
+@SecurityRequirement(name = "bearer")
+@Tag(name = "Zone RFU")
+public class ZoneRfuController {
+
+ private final ZoneRfuService zoneRfuService;
+ private static final Logger logger = LoggerFactory.getLogger(ZoneRfuController.class);
+
+ public ZoneRfuController(ZoneRfuService zoneRfuService) {
+ this.zoneRfuService = zoneRfuService;
+ }
+
+
+ @PostMapping("/create")
+ public ResponseEntity> createZoneRfu(@RequestBody @Valid @Validated ZoneRfu zoneRfu) {
+ try {
+ zoneRfu = zoneRfuService.createZoneRfu(zoneRfu);
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, zoneRfu, "ZoneRfu 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> updateZoneRfu(@PathVariable Long id, @RequestBody ZoneRfu zoneRfu) {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, zoneRfuService.updateZoneRfu(id, zoneRfu), "ZoneRfu 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);
+ }
+ }
+
+ @DeleteMapping("/delete/{id}")
+ public ResponseEntity> deleteZoneRfur(@PathVariable Long id) {
+ try {
+ zoneRfuService.deleteZoneRfu(id);
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, "ZoneRfu 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> getAllZoneRfuList() {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, zoneRfuService.getZoneRfuList(), "Liste des zoneRfus 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> getAllZoneRfuPaged(@RequestParam int pageNo, @RequestParam int pageSize) {
+ try {
+ Pageable pageable = PageRequest.of(pageNo, pageSize);
+
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, zoneRfuService.getZoneRfuList(pageable), "Liste des zoneRfus 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> getZoneRfuById(@PathVariable Long id) {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, zoneRfuService.getZoneRfuById(id), "ZoneRfu 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);
+ }
+ }
+
+
+}
+
diff --git a/src/main/java/io/gmss/fiscad/controllers/synchronisation/RestaurationController.java b/src/main/java/io/gmss/fiscad/controllers/synchronisation/RestaurationController.java
index 270662d..ee8c461 100644
--- a/src/main/java/io/gmss/fiscad/controllers/synchronisation/RestaurationController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/synchronisation/RestaurationController.java
@@ -10,6 +10,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -18,6 +19,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Restauration")
@CrossOrigin(origins = "*")
+@PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR') or hasRole('ROLE_ENQUETEUR')")
public class RestaurationController {
public final RestaurationService restaurationService;
diff --git a/src/main/java/io/gmss/fiscad/controllers/synchronisation/SynchronisationController.java b/src/main/java/io/gmss/fiscad/controllers/synchronisation/SynchronisationController.java
index ebe60f4..788affc 100644
--- a/src/main/java/io/gmss/fiscad/controllers/synchronisation/SynchronisationController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/synchronisation/SynchronisationController.java
@@ -1,11 +1,14 @@
package io.gmss.fiscad.controllers.synchronisation;
import io.gmss.fiscad.exceptions.*;
+import io.gmss.fiscad.interfaces.infocad.metier.EnqueteService;
import io.gmss.fiscad.interfaces.synchronisation.SynchronisationService;
import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.request.*;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.transaction.Transactional;
+import lombok.AllArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
@@ -22,13 +25,13 @@ import java.util.List;
@SecurityRequirement(name = "bearer")
@Tag(name = "Synchronisation")
@CrossOrigin(origins = "*")
+@AllArgsConstructor
public class SynchronisationController {
private final SynchronisationService synchronisationService;
+ private final EnqueteService enqueteService;
private static final Logger logger = LoggerFactory.getLogger(SynchronisationController.class);
- public SynchronisationController(SynchronisationService synchronisationService) {
- this.synchronisationService = synchronisationService;
- }
+
@GetMapping("/user-decoupage-territorial")
public ResponseEntity> getUserDecoupageTerritorial() {
@@ -75,7 +78,7 @@ public class SynchronisationController {
return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK);
}
}
-
+ @Transactional
@PostMapping("/personnes")
public ResponseEntity> syncPersonne(@RequestBody List personnePayLoads) {
try {
@@ -172,6 +175,7 @@ public class SynchronisationController {
public ResponseEntity> syncPiece(@RequestBody List piecePayLoads) {
try {
return new ResponseEntity<>(
+ //new ApiResponse<>(true, null, "Liste des pièces synchronisée avec succès."),
new ApiResponse<>(true, synchronisationService.syncPiece(piecePayLoads), "Liste des pièces synchronisée avec succès."),
HttpStatus.OK
);
@@ -195,6 +199,7 @@ public class SynchronisationController {
public ResponseEntity> syncActeurConcerne(@RequestBody List piecePayLoads) {
try {
return new ResponseEntity<>(
+ //new ApiResponse<>(true, null, "Liste des acteurs concernes synchronisée avec succès."),
new ApiResponse<>(true, synchronisationService.syncActeurConcerne(piecePayLoads), "Liste des acteurs concernes synchronisée avec succès."),
HttpStatus.OK
);
@@ -217,22 +222,24 @@ public class SynchronisationController {
//@PostMapping("/files")
@PostMapping(path = "/files")
public ResponseEntity> syncFiles(@RequestPart(required = true) MultipartFile file,
- @RequestParam(required = false) Long idBackend,
- @RequestParam Long externalKey,
- @RequestParam(required = false) Long pieceId,
- @RequestParam(required = false) Long membreGroupeId,
- @RequestParam(required = false) Long terminalId,
- @RequestParam(required = false) String name,
- @RequestParam(required = false) String filePath,
- @RequestParam(required = false) Long max_numero_piece_id,
- @RequestParam(required = false) Long max_numero_upload_id,
- @RequestParam(required = false) Long max_numero_acteur_concerne_id,
- @RequestParam(required = false) Long enqueteId,
- @RequestParam(required = false) Long enqueteBatimentId,
- @RequestParam(required = false) Long enqueteUniteLogementId
+ @RequestParam(value = "idBackend",required = false) Long idBackend,
+ @RequestParam(value = "externalKey",required = true) Long externalKey,
+ @RequestParam(value = "pieceId",required = false) Long pieceId,
+ @RequestParam(value = "membreGroupeId",required = false) Long membreGroupeId,
+ @RequestParam(value = "terminalId",required = false) Long terminalId,
+ @RequestParam(value = "name",required = false) String name,
+ @RequestParam(value = "filePath",required = false) String filePath,
+ @RequestParam(value = "max_numero_piece_id",required = false) Long max_numero_piece_id,
+ @RequestParam(value = "max_numero_upload_id",required = false) Long max_numero_upload_id,
+ @RequestParam(value = "max_numero_acteur_concerne_id",required = false) Long max_numero_acteur_concerne_id,
+ @RequestParam(value = "enqueteId",required = false) Long enqueteId,
+ @RequestParam(value = "enqueteBatimentId",required = false) Long enqueteBatimentId,
+ @RequestParam(value = "enqueteUniteLogementId",required = false) Long enqueteUniteLogementId,
+ @RequestParam(value = "personneId",required = false) Long personneId
) {
try {
return new ResponseEntity<>(
+ //null,
new ApiResponse<>(true, synchronisationService.syncFiles(file,
idBackend,
externalKey,
@@ -244,7 +251,10 @@ public class SynchronisationController {
max_numero_piece_id,
max_numero_upload_id,
max_numero_acteur_concerne_id,
- enqueteId, enqueteBatimentId, enqueteUniteLogementId), "Liste des fichiers synchronisée avec succès."),
+ enqueteId,
+ enqueteBatimentId,
+ enqueteUniteLogementId,
+ personneId), "Liste des fichiers synchronisée avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -287,10 +297,10 @@ public class SynchronisationController {
}
@PostMapping(path = "/synchronise/enquete/confirme-from-mobile")
- public ResponseEntity> syncAllEnqueteData(@RequestBody List batimentPaylaods) {
+ public ResponseEntity> syncAllEnqueteData(@RequestBody List longList) {
try {
return new ResponseEntity<>(
- new ApiResponse<>(true, synchronisationService.syncBatiment(batimentPaylaods), "Synchronisation confirmée avec succès."),
+ new ApiResponse<>(true, synchronisationService.syncEnqueteFromMobile(longList), "Synchronisation confirmée avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -309,7 +319,6 @@ public class SynchronisationController {
}
}
-
/**
* Liste des API pour la synchronisation des données liées à FISCAD
* Fait le mercredi 15 janvier 2025 à 09h21
@@ -320,6 +329,7 @@ public class SynchronisationController {
public ResponseEntity> syncBatiment(@RequestBody List batimentPaylaods) {
try {
return new ResponseEntity<>(
+ //new ApiResponse<>(true, null, "Liste des batiments synchronisées avec succès."),
new ApiResponse<>(true, synchronisationService.syncBatiment(batimentPaylaods), "Liste des batiments synchronisées avec succès."),
HttpStatus.OK
);
@@ -343,6 +353,7 @@ public class SynchronisationController {
public ResponseEntity> syncUniteLogement(@RequestBody List uniteLogementPaylaods) {
try {
return new ResponseEntity<>(
+ //new ApiResponse<>(true,null, "Liste des unités de logement synchronisées avec succès."),
new ApiResponse<>(true, synchronisationService.syncUniteLogement(uniteLogementPaylaods), "Liste des unités de logement synchronisées avec succès."),
HttpStatus.OK
);
@@ -366,6 +377,7 @@ public class SynchronisationController {
public ResponseEntity> syncCaracteristiqueBatiment(@RequestBody List caracteristiqueBatimentPaylods) {
try {
return new ResponseEntity<>(
+ //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."),
HttpStatus.OK
);
@@ -389,6 +401,7 @@ public class SynchronisationController {
public ResponseEntity> syncCaracteristiqueParcelle(@RequestBody List caracteristiqueParcellePaylods) {
try {
return new ResponseEntity<>(
+ //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."),
HttpStatus.OK
);
@@ -412,6 +425,7 @@ public class SynchronisationController {
public ResponseEntity> syncCaracteristiqueUniteLogement(@RequestBody List caracteristiqueUniteLogementPaylods) {
try {
return new ResponseEntity<>(
+ //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."),
HttpStatus.OK
);
@@ -435,6 +449,7 @@ public class SynchronisationController {
public ResponseEntity> syncEnqueteBatiment(@RequestBody List enqueteBatimentPayloads) {
try {
return new ResponseEntity<>(
+ //new ApiResponse<>(true, null, "Liste des enquêtes des batiments synchronisée avec succès."),
new ApiResponse<>(true, synchronisationService.syncEnqueteBatiment(enqueteBatimentPayloads), "Liste des enquêtes des batiments synchronisée avec succès."),
HttpStatus.OK
);
@@ -458,6 +473,7 @@ public class SynchronisationController {
public ResponseEntity> syncEnqueteUniteLogement(@RequestBody List enqueteUniteLogementPayloads) {
try {
return new ResponseEntity<>(
+ //new ApiResponse<>(true, null, "Liste des enquêtes des unités de logement synchronisée avec succès."),
new ApiResponse<>(true, synchronisationService.syncEnqueteUniteLogement(enqueteUniteLogementPayloads), "Liste des enquêtes des unités de logement synchronisée avec succès."),
HttpStatus.OK
);
@@ -477,4 +493,29 @@ public class SynchronisationController {
}
}
+
+
+ @GetMapping("/traiter-non-synch-to-mobile/{terminalId}")
+ public ResponseEntity> getEnqueteValideNonSynch(@PathVariable Long terminalId) {
+ try {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, enqueteService.getEnqueteValideNonSynch(terminalId), "Liste des enquetes traitées non synchronisées sur le termianl."),
+ 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);
+ }
+ }
+
}
diff --git a/src/main/java/io/gmss/fiscad/controllers/user/AuthController.java b/src/main/java/io/gmss/fiscad/controllers/user/AuthController.java
index 72220e6..02a9a4a 100755
--- a/src/main/java/io/gmss/fiscad/controllers/user/AuthController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/user/AuthController.java
@@ -19,6 +19,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
@@ -78,7 +79,11 @@ public class AuthController {
} 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) {
+ }
+ catch (BadCredentialsException ex) {
+ return ResponseEntity.status(HttpStatus.UNAUTHORIZED)
+ .body(new ApiResponse<>(false, null, "Identifiants invalides. Veuillez vérifier votre nom d'utilisateur et votre mot de passe."));
+ }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);
}
@@ -89,9 +94,9 @@ public class AuthController {
try {
User user = getUser(userRequest);
user.setUsername(userRequest.getEmail());
- user = userService.createUser(user, false);
+ user = userService.createUser(user, true);
return new ResponseEntity<>(
- new ApiResponse<>(true, user, "User created successully."),
+ new ApiResponse<>(true, user, "Inscription effectué avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
diff --git a/src/main/java/io/gmss/fiscad/controllers/user/DemandeReinitialisationMPController.java b/src/main/java/io/gmss/fiscad/controllers/user/DemandeReinitialisationMPController.java
index bea393c..c680ca9 100644
--- a/src/main/java/io/gmss/fiscad/controllers/user/DemandeReinitialisationMPController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/user/DemandeReinitialisationMPController.java
@@ -47,7 +47,7 @@ public class DemandeReinitialisationMPController {
try {
demandeReinitialisationMPService.createDemandeReinitialisationMP(usernamrOrEmail);
return new ResponseEntity<>(
- new ApiResponse<>(true, "DemandeReinitialisation MP créé avec succès."),
+ new ApiResponse<>(true, "Demande Reinitialisation mot de passe créé avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
diff --git a/src/main/java/io/gmss/fiscad/controllers/user/UserController.java b/src/main/java/io/gmss/fiscad/controllers/user/UserController.java
index 349afd1..0de0959 100755
--- a/src/main/java/io/gmss/fiscad/controllers/user/UserController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/user/UserController.java
@@ -1,6 +1,7 @@
package io.gmss.fiscad.controllers.user;
+import io.gmss.fiscad.entities.user.Role;
import io.gmss.fiscad.entities.user.User;
import io.gmss.fiscad.enums.UserRole;
import io.gmss.fiscad.exceptions.*;
@@ -20,6 +21,8 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
+import java.util.Set;
+
@RestController
@RequestMapping(value = "api/user", produces = MediaType.APPLICATION_JSON_VALUE)
@@ -114,7 +117,7 @@ public class UserController {
try {
User user = userService.validateUserAccount(login.getUsername(), login.getUserRole());
return new ResponseEntity<>(
- new ApiResponse<>(true, user, "Cet utilisateur à été activé avec succès."),
+ new ApiResponse<>(true, user, "Cet compte à été activé avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -138,7 +141,7 @@ public class UserController {
public ResponseEntity> updateUser(@PathVariable Long id, @RequestBody User user) {
try {
return new ResponseEntity<>(
- new ApiResponse<>(true, userService.updateUser(id, user), "User updated successully."),
+ new ApiResponse<>(true, userService.updateUser(id, user), "Utilisateur modifié avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -157,11 +160,24 @@ public class UserController {
}
}
- @GetMapping("/activate-or-not")
- public ResponseEntity> acitvateOrNotUser(@RequestParam Long id) {
+ @GetMapping("/activate-or-not/{id}")
+ public ResponseEntity> acitvateOrNotUser(@PathVariable Long id) {
try {
- User user = userService.activateOrNotUser(id);
+ User user = userService.getUserById(id);
+ if(containsRoleAnonyme(user.getRoles())){
+ return new ResponseEntity<>(
+ new ApiResponse<>(false, user , "Ce compte n'est pas encore validé."),
+ HttpStatus.OK
+ );
+ }
+ if(user.isResetPassword()){
+ return new ResponseEntity<>(
+ new ApiResponse<>(false, user , "Ce compte n'est pas encore validé."),
+ HttpStatus.OK
+ );
+ }
+ user = userService.activateOrNotUser(id);
String message = "Utilisateur activé avec succès";
if (!user.isActive()) {
message = "Utilisateur désactivé avec succès";
@@ -214,7 +230,12 @@ public class UserController {
@GetMapping("/all")
public ResponseEntity> getAll(@CurrentUser UserPrincipal userPrincipal) {
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))) {
@@ -353,5 +374,12 @@ public class UserController {
}
}
-
+ public boolean containsRoleAnonyme(Set roles){
+ for(Role r: roles ){
+ if(r.getNom().equals(UserRole.ROLE_ANONYMOUS)){
+ return true;
+ }
+ }
+ return false;
+ }
}
diff --git a/src/main/java/io/gmss/fiscad/entities/BaseEntity.java b/src/main/java/io/gmss/fiscad/entities/BaseEntity.java
index c92da2b..6a336ef 100755
--- a/src/main/java/io/gmss/fiscad/entities/BaseEntity.java
+++ b/src/main/java/io/gmss/fiscad/entities/BaseEntity.java
@@ -36,4 +36,5 @@ public class BaseEntity implements Serializable {
@JsonIgnore
private boolean deleted;
private Long externalKey;
+ private Long enqueteExternalKey;
}
diff --git a/src/main/java/io/gmss/fiscad/entities/decoupage/Secteur.java b/src/main/java/io/gmss/fiscad/entities/decoupage/Secteur.java
index b5b368e..25d09eb 100644
--- a/src/main/java/io/gmss/fiscad/entities/decoupage/Secteur.java
+++ b/src/main/java/io/gmss/fiscad/entities/decoupage/Secteur.java
@@ -1,5 +1,6 @@
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.User;
@@ -29,9 +30,11 @@ public class Secteur extends BaseEntity implements Serializable {
private User chefSecteur;
@ManyToOne
private Structure structure;
-// @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
-// @JoinColumn(name = "secteur_id")
-// private List secteurDecoupages;
+
+ @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
+ @JoinColumn(name = "secteur_id")
+ @JsonManagedReference
+ private List secteurDecoupages;
///Creer un payload pour la creation de secteur découpage
/// ressource pour envoyer les découpage d'un secteur
diff --git a/src/main/java/io/gmss/fiscad/entities/decoupage/SecteurDecoupage.java b/src/main/java/io/gmss/fiscad/entities/decoupage/SecteurDecoupage.java
index 0acdcf8..416d62e 100644
--- a/src/main/java/io/gmss/fiscad/entities/decoupage/SecteurDecoupage.java
+++ b/src/main/java/io/gmss/fiscad/entities/decoupage/SecteurDecoupage.java
@@ -1,5 +1,6 @@
package io.gmss.fiscad.entities.decoupage;
+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;
@@ -35,10 +36,13 @@ public class SecteurDecoupage extends BaseEntity implements Serializable {
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateFin;
+ @JsonBackReference
@ManyToOne
private Secteur secteur;
+
@ManyToOne
private Arrondissement arrondissement;
+
@ManyToOne
private Quartier quartier;
diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/metier/ActeurConcerne.java b/src/main/java/io/gmss/fiscad/entities/infocad/metier/ActeurConcerne.java
index 43bd994..682ee7f 100644
--- a/src/main/java/io/gmss/fiscad/entities/infocad/metier/ActeurConcerne.java
+++ b/src/main/java/io/gmss/fiscad/entities/infocad/metier/ActeurConcerne.java
@@ -1,6 +1,7 @@
package io.gmss.fiscad.entities.infocad.metier;
import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonManagedReference;
import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.entities.infocad.parametre.Personne;
import io.gmss.fiscad.entities.infocad.parametre.PositionRepresentation;
@@ -25,11 +26,11 @@ import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
-@SQLDelete(sql =
- "UPDATE acteur_concerne " +
- "SET deleted = true " +
- "WHERE id = ?")
-@Where(clause = " deleted = false")
+//@SQLDelete(sql =
+// "UPDATE acteur_concerne " +
+// "SET deleted = true " +
+// "WHERE id = ?")
+//@Where(clause = " deleted = false")
public class ActeurConcerne extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -44,16 +45,19 @@ public class ActeurConcerne extends BaseEntity implements Serializable {
private PositionRepresentation positionRepresentation;
@ManyToOne
private Personne personne;
+ private Long personneExternalKey;
@ManyToOne
private TypeContestation typeContestation;
+
@JsonIgnore
@ManyToOne
private Enquete enquete;
@Enumerated(EnumType.STRING)
private RoleActeur roleActeur;
-// @OneToMany(mappedBy = "acteurConcerne")
-// private List pieces;
+ @OneToMany(mappedBy = "acteurConcerne")
+ @JsonManagedReference
+ private List pieces;
@JsonIgnore
@ManyToOne
@@ -66,5 +70,4 @@ public class ActeurConcerne extends BaseEntity implements Serializable {
private int haveDeclarant;
private Long max_numero_acteur_concerne_id;
-
}
diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Commentaire.java b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Commentaire.java
index da9087f..84e8f6a 100644
--- a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Commentaire.java
+++ b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Commentaire.java
@@ -21,11 +21,11 @@ import java.time.LocalDateTime;
@Data
@NoArgsConstructor
@AllArgsConstructor
-@SQLDelete(sql =
- "UPDATE commentaire " +
- "SET deleted = true " +
- "WHERE id = ?")
-@Where(clause = " deleted = false")
+//@SQLDelete(sql =
+// "UPDATE commentaire " +
+// "SET deleted = true " +
+// "WHERE id = ?")
+//@Where(clause = " deleted = false")
public class Commentaire extends BaseEntity implements Serializable {
@Id
diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Enquete.java b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Enquete.java
index 31cddff..03813a7 100644
--- a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Enquete.java
+++ b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Enquete.java
@@ -2,6 +2,7 @@ package io.gmss.fiscad.entities.infocad.metier;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.gmss.fiscad.deserializer.LocalDateDeserializer;
import io.gmss.fiscad.entities.BaseEntity;
@@ -13,6 +14,7 @@ import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement;
import io.gmss.fiscad.entities.rfu.parametre.Campagne;
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.enums.StatusEnquete;
import io.gmss.fiscad.enums.StatutEnregistrement;
@@ -33,11 +35,11 @@ import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
-@SQLDelete(sql =
- "UPDATE enquete " +
- "SET deleted = true " +
- "WHERE id = ?")
-@Where(clause = " deleted = false")
+//@SQLDelete(sql =
+// "UPDATE enquete " +
+// "SET deleted = true " +
+// "WHERE id = ?")
+//@Where(clause = " deleted = false")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "origine_enquete", discriminatorType = DiscriminatorType.STRING)
@DiscriminatorValue("INFOCAD")
@@ -50,23 +52,35 @@ public class Enquete extends BaseEntity implements Serializable {
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateEnquete;
private boolean litige;
+
@JsonIgnore
@ManyToOne
private User user;
+
@JsonIgnore
@OneToMany(mappedBy = "enquete")
private List acteurConcernes;
+
+
+ @JsonIgnore
@ManyToOne
private Parcelle parcelle;
+ private Long parcelleExternalKey;
@JsonIgnore
@ManyToOne
private Bloc bloc;
@ManyToOne
private Campagne campagne;
+
+ @JsonIgnore
@ManyToOne
private Equipe equipe;
-
+ @JsonIgnore
+ @ManyToOne
+ private ZoneRfu zoneRfu;
+ private String autreNumeroTitreFoncier;
+ private Long personneId;
@Enumerated(EnumType.STRING)
private StatusEnquete statusEnquete;
@JsonFormat(pattern = "dd-MM-yyyy")
@@ -106,9 +120,11 @@ public class Enquete extends BaseEntity implements Serializable {
@Transient
private String structureEnqueteur;
+
@JsonIgnore
@ManyToOne
private Tpe terminal;
+
@Transient
private Long terminalId;
@@ -142,17 +158,20 @@ public class Enquete extends BaseEntity implements Serializable {
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateFinExcemption;
+
@JsonIgnore
@OneToMany(mappedBy = "enquete")
private List enqueteUniteLogements;
+
@JsonIgnore
@OneToMany(mappedBy = "enquete")
private List enqueteBatiments;
+
@JsonIgnore
@OneToMany(mappedBy = "enquete")
private List caracteristiqueParcelles;
+
@Enumerated(EnumType.STRING)
- @JsonIgnore
private StatutEnregistrement statutEnregistrement;
diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/metier/MembreGroupe.java b/src/main/java/io/gmss/fiscad/entities/infocad/metier/MembreGroupe.java
index ee6e520..2763fd1 100644
--- a/src/main/java/io/gmss/fiscad/entities/infocad/metier/MembreGroupe.java
+++ b/src/main/java/io/gmss/fiscad/entities/infocad/metier/MembreGroupe.java
@@ -35,9 +35,9 @@ public class MembreGroupe extends BaseEntity implements Serializable {
private TypeRepresentation typeRepresentation;
@ManyToOne
private PositionRepresentation positionRepresentation;
-// @JsonIgnore
-// @OneToMany(mappedBy = "membreGroupe")
-// private Set uploads;
+ @JsonIgnore
+ @OneToMany(mappedBy = "membreGroupe")
+ private Set uploads;
@JsonIgnore
@ManyToOne
private Tpe terminal;
diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Parcelle.java b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Parcelle.java
index 0750cab..3634b4e 100644
--- a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Parcelle.java
+++ b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Parcelle.java
@@ -6,10 +6,7 @@ import io.gmss.fiscad.entities.decoupage.Quartier;
import io.gmss.fiscad.entities.infocad.parametre.NatureDomaine;
import io.gmss.fiscad.entities.rfu.metier.Batiment;
import jakarta.persistence.*;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
+import lombok.*;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where;
@@ -22,11 +19,11 @@ import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
-@SQLDelete(sql =
- "UPDATE parcelle " +
- "SET deleted = true " +
- "WHERE id = ?")
-@Where(clause = " deleted = false")
+//@SQLDelete(sql =
+// "UPDATE parcelle " +
+// "SET deleted = true " +
+// "WHERE id = ?")
+//@Where(clause = " deleted = false")
public class Parcelle extends BaseEntity implements Serializable {
@Id
@@ -34,21 +31,15 @@ public class Parcelle extends BaseEntity implements Serializable {
private Long id;
private String qip;
private String q;
- @Column(unique = true)
private String nup;
- @Column(unique = true)
private String nupProvisoire;
private String numeroParcelle;
private String longitude;
private String latitude;
private String situationGeographique;
-// @JsonIgnore
-// @OneToMany(mappedBy = "parcelle")
-// private List enquetes;
- // @ManyToOne
-// private SituationGeographique situationGeographique;
+ @ColumnDefault("0")
+ private int superficie;
@ManyToOne
- //private TypeDomaine typeDomaine;
private NatureDomaine natureDomaine;
@JsonIgnore
@ManyToOne
@@ -60,14 +51,13 @@ public class Parcelle extends BaseEntity implements Serializable {
@JsonIgnore
@ManyToOne
private Tpe terminal;
+ private String autreNumeroTitreFoncier;
private Long typeDomaineId;
private Long numeroProvisoire;
private Long blocId;
@ColumnDefault("false")
private boolean synchronise;
-
-
private Long idDerniereEnquete;
// @JsonIgnore
// @OneToMany(mappedBy = "parcelle")
diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/metier/ParcelleGeom.java b/src/main/java/io/gmss/fiscad/entities/infocad/metier/ParcelleGeom.java
index 7c67a89..4780656 100644
--- a/src/main/java/io/gmss/fiscad/entities/infocad/metier/ParcelleGeom.java
+++ b/src/main/java/io/gmss/fiscad/entities/infocad/metier/ParcelleGeom.java
@@ -72,9 +72,11 @@ public class ParcelleGeom extends BaseEntity implements Serializable {
@Enumerated(EnumType.STRING)
private StatutParcelle statutParcelle;
- ///@JsonIgnore
- @ManyToOne
- private Upload upload;
+// @JsonIgnore
+// @ManyToOne
+// private Upload upload;
+
+ private Long uploadId;
////////////
@@ -97,7 +99,8 @@ public class ParcelleGeom extends BaseEntity implements Serializable {
@JsonSerialize(using = GeometrySerializer.class)
@JsonDeserialize(contentUsing = GeometryDeserializer.class)
@Column(name = "geometry",columnDefinition = "geometry(Polygon,32631)")
- //private Polygon geometry32631 ;
- //@Column(columnDefinition = "geometry")
private Polygon geometry;
+
+ @Column(columnDefinition = "TEXT")
+ private String geometryString;
}
diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Piece.java b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Piece.java
index 4d88137..cdf95df 100644
--- a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Piece.java
+++ b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Piece.java
@@ -1,5 +1,6 @@
package io.gmss.fiscad.entities.infocad.metier;
+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;
@@ -27,11 +28,11 @@ import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
-@SQLDelete(sql =
- "UPDATE piece " +
- "SET deleted = true " +
- "WHERE id = ?")
-@Where(clause = " deleted = false")
+//@SQLDelete(sql =
+// "UPDATE piece " +
+// "SET deleted = true " +
+// "WHERE id = ?")
+//@Where(clause = " deleted = false")
public class Piece extends BaseEntity implements Serializable {
@Id
@@ -47,11 +48,16 @@ public class Piece extends BaseEntity implements Serializable {
@JsonIgnore
@ManyToOne
private Personne personne;
+ private Long personneExternalKey;
@JsonIgnore
- @ManyToOne
+ @JsonBackReference
+ @ManyToOne(fetch = FetchType.LAZY)
private ActeurConcerne acteurConcerne;
+ private Long acteurConcerneExternalKey;
+
@ManyToOne
private SourceDroit sourceDroit;
+
@ManyToOne
private ModeAcquisition modeAcquisition;
diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Upload.java b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Upload.java
index 1d0b1fa..43705d5 100644
--- a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Upload.java
+++ b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Upload.java
@@ -1,12 +1,16 @@
package io.gmss.fiscad.entities.infocad.metier;
import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity;
+import io.gmss.fiscad.entities.infocad.parametre.Personne;
import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
+import org.hibernate.annotations.ColumnDefault;
+import org.hibernate.annotations.Type;
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
import java.io.Serializable;
@@ -19,7 +23,6 @@ public class Upload extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
- private Long externalKey;
private String Observation;
private boolean synchronise;
private String fileName;
@@ -29,15 +32,20 @@ public class Upload extends BaseEntity implements Serializable {
private String checkSum;
private long size;
private String mimeType;
- @JsonIgnore
- @ManyToOne
- private Piece piece;
- @JsonIgnore
- @ManyToOne
- private MembreGroupe membreGroupe;
@JsonIgnore
- @ManyToOne
+ @ManyToOne(fetch = FetchType.LAZY)
+ private Piece piece;
+ private Long pieceExternalKey;
+
+
+ @JsonIgnore
+ @ManyToOne(fetch = FetchType.LAZY)
+ private MembreGroupe membreGroupe;
+ private Long membreGroupeExternalKey;
+
+ @JsonIgnore
+ @ManyToOne(fetch = FetchType.LAZY)
private Tpe terminal;
private String name;
@@ -49,32 +57,52 @@ public class Upload extends BaseEntity implements Serializable {
private Long blocId;
private String reference;
private String description;
-
- @Transient
+ @ColumnDefault("0")
private int nombreParcelleGeom;
+ @JsonIgnore
+ @ManyToOne(fetch = FetchType.LAZY)
+ @JoinColumn(name = "enquete_batiment_id")
+ private EnqueteBatiment enqueteBatiment;
+ private Long enqueteBatimentExternalKey;
@JsonIgnore
- @ManyToOne
- private EnqueteBatiment enqueteBatiment;
- @JsonIgnore
- @ManyToOne
+ @ManyToOne(fetch = FetchType.LAZY)
+ @JoinColumn(name = "enquete_unite_logement_id")
private EnqueteUniteLogement enqueteUniteLogement;
+ private Long enqueteUniteLogementExternalKey;
+
+ @JsonIgnore
+ @ManyToOne (fetch = FetchType.LAZY)
+ @JoinColumn(name = "personne_id")
+ private Personne personne ;
+ private Long personneExternalKey ;
+
+ @Type(JsonBinaryType.class)
+ @Column(columnDefinition = "jsonb")
+ private Upload uploadJson;
+
public Upload() {
}
public String getURIFile() {
-
String url = this.serverContext() + fileName;
System.out.println("url = " + url);
+ // return url != null ? url.toLowerCase().startsWith("https") ? url : url.toLowerCase().replaceFirst("http", "https") : null;
return url != null ? url.toLowerCase().startsWith("https") ? url : url.toLowerCase().replaceFirst("http", "https") : null;
+
}
private String serverContext() {
- return ServletUriComponentsBuilder.fromCurrentContextPath()
+ String url= ServletUriComponentsBuilder.fromCurrentContextPath()
.path("/api/upload/downloadFile/")
.toUriString();
+ if(!url.contains("8282/api")){
+ url.replace("/api",":8282/api");
+ }
+
+ return url;
}
@Override
@@ -86,13 +114,4 @@ public class Upload extends BaseEntity implements Serializable {
'}';
}
-
-// public int getNombreParcelleGeom(){
-// if(parcelleGeoms!=null){
-// return parcelleGeoms.size();
-// }else {
-// return 0;
-// }
-//
-// }
}
\ No newline at end of file
diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Bloc.java b/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Bloc.java
index 8c15712..7619ff8 100644
--- a/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Bloc.java
+++ b/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Bloc.java
@@ -8,6 +8,7 @@ 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;
@@ -52,6 +53,8 @@ public class Bloc extends BaseEntity implements Serializable {
inverseJoinColumns = @JoinColumn(name = "quartier_id")
)
private Set quartiers;
+
+ @NotNull
@ManyToOne
private Arrondissement arrondissement;
diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Personne.java b/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Personne.java
index 43872a2..caffe40 100644
--- a/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Personne.java
+++ b/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Personne.java
@@ -47,9 +47,6 @@ public class Personne extends BaseEntity implements Serializable {
private String adresse;
@Enumerated(EnumType.STRING)
private Categorie categorie;
-// @JsonIgnore
-// @OneToMany(mappedBy = "personne")
-// private List acteurConcernes;
@ManyToOne
private SituationMatrimoniale situationMatrimoniale;
@ManyToOne
@@ -60,8 +57,6 @@ public class Personne extends BaseEntity implements Serializable {
private Profession profession;
@ManyToOne
private Commune commune;
-// @OneToMany(mappedBy = "personne")
-// private List pieces;
@JsonIgnore
@ManyToOne
private Tpe terminal;
diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Structure.java b/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Structure.java
index 3a7ce8b..015c868 100644
--- a/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Structure.java
+++ b/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Structure.java
@@ -1,11 +1,13 @@
package io.gmss.fiscad.entities.infocad.parametre;
import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.entities.decoupage.Arrondissement;
import io.gmss.fiscad.entities.decoupage.Commune;
import io.gmss.fiscad.entities.user.User;
import jakarta.persistence.*;
+import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -31,6 +33,7 @@ import java.util.Set;
"SET deleted = true " +
"WHERE id = ?")
@Where(clause = " deleted = false")
+@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class Structure extends BaseEntity implements Serializable {
@Id
@@ -44,6 +47,7 @@ public class Structure extends BaseEntity implements Serializable {
private String tel;
private String email;
private String adresse;
+ @NotNull
@ManyToOne
private Commune commune;
//@JsonIgnore
diff --git a/src/main/java/io/gmss/fiscad/entities/metadata/PieceMetaData.java b/src/main/java/io/gmss/fiscad/entities/metadata/PieceMetaData.java
new file mode 100644
index 0000000..8224f9f
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/entities/metadata/PieceMetaData.java
@@ -0,0 +1,28 @@
+package io.gmss.fiscad.entities.metadata;
+
+import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
+import io.gmss.fiscad.entities.BaseEntity;
+import io.gmss.fiscad.entities.infocad.metier.Piece;
+import io.gmss.fiscad.entities.infocad.metier.Upload;
+import jakarta.persistence.*;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.annotations.Type;
+
+import java.io.Serializable;
+
+@Entity
+@Getter
+@Setter
+public class PieceMetaData extends BaseEntity implements Serializable {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ private Long pieceId;
+
+ @Type(JsonBinaryType.class)
+ @Column(columnDefinition = "jsonb")
+ private Piece pieceJson;
+
+}
\ No newline at end of file
diff --git a/src/main/java/io/gmss/fiscad/entities/metadata/UploadMetaData.java b/src/main/java/io/gmss/fiscad/entities/metadata/UploadMetaData.java
new file mode 100644
index 0000000..da4352d
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/entities/metadata/UploadMetaData.java
@@ -0,0 +1,36 @@
+package io.gmss.fiscad.entities.metadata;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
+import io.gmss.fiscad.entities.BaseEntity;
+import io.gmss.fiscad.entities.infocad.metier.MembreGroupe;
+import io.gmss.fiscad.entities.infocad.metier.Piece;
+import io.gmss.fiscad.entities.infocad.metier.Tpe;
+import io.gmss.fiscad.entities.infocad.metier.Upload;
+import io.gmss.fiscad.entities.infocad.parametre.Personne;
+import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
+import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement;
+import jakarta.persistence.*;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.annotations.ColumnDefault;
+import org.hibernate.annotations.Type;
+import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
+
+import java.io.Serializable;
+
+@Entity
+@Getter
+@Setter
+public class UploadMetaData extends BaseEntity implements Serializable {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ private Long uploadId;
+
+ @Type(JsonBinaryType.class)
+ @Column(columnDefinition = "jsonb")
+ private Upload uploadJson;
+
+}
\ No newline at end of file
diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/Batiment.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/Batiment.java
index 814e9c5..d74b49d 100644
--- a/src/main/java/io/gmss/fiscad/entities/rfu/metier/Batiment.java
+++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/Batiment.java
@@ -34,18 +34,13 @@ public class Batiment extends BaseEntity implements Serializable {
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateConstruction;
-// @JsonIgnore
-// @OneToMany(mappedBy = "batiment")
-// private List enqueteBatiments;
private Long idDerniereEnquete;
@JsonIgnore
@ManyToOne
private Parcelle parcelle;
-// @JsonIgnore
-// @OneToMany(mappedBy = "batiment")
-// private List uniteLogements;
-
+ private Long parcelleExternalKey;
@JsonIgnore
@ManyToOne
private Tpe terminal;
+ private Long enqueteId;
}
diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueBatiment.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueBatiment.java
index b86dde1..1942096 100644
--- a/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueBatiment.java
+++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueBatiment.java
@@ -1,5 +1,6 @@
package io.gmss.fiscad.entities.rfu.metier;
+import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.entities.infocad.metier.Tpe;
@@ -19,22 +20,28 @@ import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
-@SQLDelete(sql =
- "UPDATE caracteristique_batiment " +
- "SET deleted = true " +
- "WHERE id = ?")
-@Where(clause = " deleted = false")
+//@SQLDelete(sql =
+// "UPDATE caracteristique_batiment " +
+// "SET deleted = true " +
+// "WHERE id = ?")
+//@Where(clause = " deleted = false")
public class CaracteristiqueBatiment extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
- @ManyToOne
+
+
+ @ManyToOne(fetch = FetchType.LAZY)
+ @JsonBackReference ///pour couper la recurcivité
private EnqueteBatiment enqueteBatiment;
+ private Long enqueteBatimentExternalKey;
+
@ManyToOne
private Caracteristique caracteristique;
private String valeur;
@JsonIgnore
@ManyToOne
- private Tpe terminal;
+ private Tpe terminal ;
+ private Long enqueteId ;
}
diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueParcelle.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueParcelle.java
index 36df3a0..8419fce 100644
--- a/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueParcelle.java
+++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueParcelle.java
@@ -20,18 +20,19 @@ import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
-@SQLDelete(sql =
- "UPDATE caracteristique_parcelle " +
- "SET deleted = true " +
- "WHERE id = ?")
-@Where(clause = " deleted = false")
+//@SQLDelete(sql =
+// "UPDATE caracteristique_parcelle " +
+// "SET deleted = true " +
+// "WHERE id = ?")
+//@Where(clause = " deleted = false")
public class CaracteristiqueParcelle extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
+
@JsonIgnore
- @ManyToOne
+ @ManyToOne(fetch = FetchType.LAZY)
private Enquete enquete;
@ManyToOne
private Caracteristique caracteristique;
diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueUniteLogement.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueUniteLogement.java
index eecdea3..dca1e05 100644
--- a/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueUniteLogement.java
+++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueUniteLogement.java
@@ -1,5 +1,6 @@
package io.gmss.fiscad.entities.rfu.metier;
+import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.entities.infocad.metier.Tpe;
@@ -19,23 +20,26 @@ import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
-@SQLDelete(sql =
- "UPDATE caracteristique_unite_logement " +
- "SET deleted = true " +
- "WHERE id = ?")
-@Where(clause = " deleted = false")
+//@SQLDelete(sql =
+// "UPDATE caracteristique_unite_logement " +
+// "SET deleted = true " +
+// "WHERE id = ?")
+//@Where(clause = " deleted = false")
public class CaracteristiqueUniteLogement extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne
+ @JsonBackReference
private EnqueteUniteLogement enqueteUniteLogement;
+ private Long enqueteUniteLogementExternalKey;
@ManyToOne
private Caracteristique caracteristique;
private String valeur;
@JsonIgnore
@ManyToOne
private Tpe terminal;
+ private Long enqueteId;
}
diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/DonneesImpositionTfu.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/DonneesImpositionTfu.java
index 1dc46a6..e2a2f10 100644
--- a/src/main/java/io/gmss/fiscad/entities/rfu/metier/DonneesImpositionTfu.java
+++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/DonneesImpositionTfu.java
@@ -5,6 +5,7 @@ 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.infocad.metier.Enquete;
import io.gmss.fiscad.entities.infocad.metier.Parcelle;
import io.gmss.fiscad.entities.infocad.metier.Tpe;
import jakarta.persistence.*;
@@ -12,6 +13,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
+import org.hibernate.annotations.ColumnDefault;
import org.hibernate.annotations.Where;
import java.io.Serializable;
@@ -22,10 +24,19 @@ import java.time.LocalDate;
@Data
@NoArgsConstructor
@AllArgsConstructor
+@Table(
+ name = "donnees_imposition_tfu",
+ uniqueConstraints = {
+ @UniqueConstraint(columnNames = {"codeCommune","q","ilot","parcelle","annee","numBatiment","numUniteLogement","impositions_tfu_id"}),
+ @UniqueConstraint(columnNames = {"codeCommune","nup", "annee","numBatiment","numUniteLogement","impositions_tfu_id"}),
+ @UniqueConstraint(columnNames = {"codeCommune","nupProvisoire", "annee","numBatiment","numUniteLogement","impositions_tfu_id"})
+ }
+)
public class DonneesImpositionTfu extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
+ private Long annee;
private String codeDepartement;
private String nomDepartement;
private String codeCommune;
@@ -57,11 +68,13 @@ public class DonneesImpositionTfu extends BaseEntity implements Serializable {
private String adresseSc;
private String longitude;
private String latitude;
- private Long superficieParc;
+ private int superficieParc;
private Long superficieAuSolBat;
private Long superficieAuSolUlog;
private String batieOuiNon;
private String exhonereOuiNon;
+ private String batimentExhonereOuiNon;
+ private String uniteLogementExhonereOuiNon;
private Long valeurLocativeAdm;
private Long montantLoyerAnnuel;
private Long tfuMetreCarre;
@@ -74,4 +87,16 @@ public class DonneesImpositionTfu extends BaseEntity implements Serializable {
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateEnquete;
+ private Long enqueteId;
+ private Long structureId;
+ private Long secteurId;
+
+ private Long zoneRfuId;
+ @ColumnDefault("0")
+ private float tauxParcelleNonBati;
+ private Long valeurAdministrativeParcelleNonBati;
+ @JsonIgnore
+ @ManyToOne(fetch = FetchType.LAZY)
+ @JoinColumn(name = "impositions_tfu_id", nullable = false)
+ private ImpositionsTfu impositionsTfu;
}
diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/EnqueteBatiment.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/EnqueteBatiment.java
index 54519f7..1654384 100644
--- a/src/main/java/io/gmss/fiscad/entities/rfu/metier/EnqueteBatiment.java
+++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/EnqueteBatiment.java
@@ -1,7 +1,9 @@
package io.gmss.fiscad.entities.rfu.metier;
+import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.gmss.fiscad.deserializer.LocalDateDeserializer;
import io.gmss.fiscad.entities.BaseEntity;
@@ -29,11 +31,11 @@ import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
-@SQLDelete(sql =
- "UPDATE enquete_batiment " +
- "SET deleted = true " +
- "WHERE id = ?")
-@Where(clause = " deleted = false")
+//@SQLDelete(sql =
+// "UPDATE enquete_batiment " +
+// "SET deleted = true " +
+// "WHERE id = ?")
+//@Where(clause = " deleted = false")
public class EnqueteBatiment extends BaseEntity implements Serializable {
@Id
@@ -62,38 +64,32 @@ public class EnqueteBatiment extends BaseEntity implements Serializable {
private LocalDate dateFinExcemption;
@OneToOne
private Personne personne;
+ private Long personneExternalKey;
@ManyToOne
private Batiment batiment;
+ private Long batimentExternalKey;
+
@JsonIgnore
@ManyToOne
private Enquete enquete;
+
+
+ @JsonManagedReference ///pour couper la récurcivité
@OneToMany(mappedBy = "enqueteBatiment")
private List caracteristiqueBatiments;
+
@JsonIgnore
@ManyToOne
private Tpe terminal;
@JsonIgnore
@ManyToOne
private User user;
- @JsonIgnore
+
+ //@JsonIgnore
@OneToMany(mappedBy = "enqueteBatiment")
private List uploads;
+
@Enumerated(EnumType.STRING)
@JsonIgnore
private StatutEnregistrement statutEnregistrement;
-
- public List getCaracteristiqueBatiments(){
- List caracteristiqueBatimentList=new ArrayList<>();
- if(caracteristiqueBatiments!=null){
- caracteristiqueBatiments.forEach(caracteristiqueBatiment -> {
- caracteristiqueBatiment.setEnqueteBatiment(null);
- caracteristiqueBatimentList.add(caracteristiqueBatiment);
- });
- }
- return caracteristiqueBatimentList;
- }
-
- //@JsonIgnore
-
-
}
diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/EnqueteUniteLogement.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/EnqueteUniteLogement.java
index 1dbf58f..9d45867 100644
--- a/src/main/java/io/gmss/fiscad/entities/rfu/metier/EnqueteUniteLogement.java
+++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/EnqueteUniteLogement.java
@@ -2,6 +2,7 @@ package io.gmss.fiscad.entities.rfu.metier;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.gmss.fiscad.deserializer.LocalDateDeserializer;
import io.gmss.fiscad.entities.BaseEntity;
@@ -29,11 +30,11 @@ import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
-@SQLDelete(sql =
- "UPDATE enquete_unite_logement " +
- "SET deleted = true " +
- "WHERE id = ?")
-@Where(clause = " deleted = false")
+//@SQLDelete(sql =
+// "UPDATE enquete_unite_logement " +
+// "SET deleted = true " +
+// "WHERE id = ?")
+//@Where(clause = " deleted = false")
public class EnqueteUniteLogement extends BaseEntity implements Serializable {
@Id
@@ -63,31 +64,25 @@ public class EnqueteUniteLogement extends BaseEntity implements Serializable {
private Enquete enquete;
@ManyToOne
private UniteLogement uniteLogement;
+ private Long uniteLogementExternalKey;
@OneToOne
private Personne personne;
+ private Long personneExternalKey;
+
@OneToMany(mappedBy = "enqueteUniteLogement")
+ @JsonManagedReference
private List caracteristiqueUniteLogements;
+
@JsonIgnore
@ManyToOne
private Tpe terminal;
@JsonIgnore
@ManyToOne
private User user;
- @JsonIgnore
+ //@JsonIgnore
@OneToMany(mappedBy = "enqueteUniteLogement")
private List uploads;
@JsonIgnore
@Enumerated(EnumType.STRING)
private StatutEnregistrement statutEnregistrement;
-
- public List getCaracteristiqueUniteLogements(){
- List caracteristiqueUniteLogementList=new ArrayList<>();
- if(caracteristiqueUniteLogements!=null){
- caracteristiqueUniteLogements.forEach(caracteristiqueUniteLogement -> {
- caracteristiqueUniteLogement.setEnqueteUniteLogement(null);
- caracteristiqueUniteLogementList.add(caracteristiqueUniteLogement);
- });
- }
- return caracteristiqueUniteLogementList;
- }
}
diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/ImpositionsTfu.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/ImpositionsTfu.java
new file mode 100644
index 0000000..03b218d
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/ImpositionsTfu.java
@@ -0,0 +1,56 @@
+package io.gmss.fiscad.entities.rfu.metier;
+
+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.Commune;
+import io.gmss.fiscad.entities.rfu.parametre.Exercice;
+import io.gmss.fiscad.entities.rfu.parametre.Participer;
+import io.gmss.fiscad.enums.StatusAvis;
+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.time.LocalDate;
+import java.util.List;
+
+@EqualsAndHashCode(callSuper = true)
+@Entity
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ImpositionsTfu extends BaseEntity implements Serializable {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+ @ManyToOne
+ private Exercice exercice;
+ @ManyToOne
+ private Commune commune;
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @JsonDeserialize(using = LocalDateDeserializer.class)
+ private LocalDate dateGeneration;
+ private String ReferencePieceAdmin;
+ private String datePieceAdmin;
+ @Enumerated(EnumType.STRING)
+ private StatusAvis statusAvis;
+ private Long nombreAvis;
+ @Column(columnDefinition = "TEXT")
+ private String motif;
+ @JsonIgnore
+ @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
+ @JoinColumn(name = "impositions_tfu_id")
+ private List donneesImpositionTfus;
+
+ public Long getNombreAvis(){
+ return donneesImpositionTfus==null?0l:donneesImpositionTfus.size();
+ }
+}
diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/UniteLogement.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/UniteLogement.java
index 7ff2ccc..a015d3b 100644
--- a/src/main/java/io/gmss/fiscad/entities/rfu/metier/UniteLogement.java
+++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/UniteLogement.java
@@ -32,8 +32,10 @@ public class UniteLogement extends BaseEntity implements Serializable {
private List enqueteUniteLogements;
@ManyToOne
private Batiment batiment;
+ private Long batimentExternalKey;
private Long idDerniereEnquete;
@JsonIgnore
@ManyToOne
private Tpe terminal;
+ private Long enqueteId;
}
diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/BaremRfu.java b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/BaremRfuBati.java
similarity index 72%
rename from src/main/java/io/gmss/fiscad/entities/rfu/parametre/BaremRfu.java
rename to src/main/java/io/gmss/fiscad/entities/rfu/parametre/BaremRfuBati.java
index 74459cc..e5658c8 100644
--- a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/BaremRfu.java
+++ b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/BaremRfuBati.java
@@ -1,9 +1,7 @@
package io.gmss.fiscad.entities.rfu.parametre;
-import com.fasterxml.jackson.annotation.JsonIgnore;
import io.gmss.fiscad.entities.BaseEntity;
-import io.gmss.fiscad.entities.infocad.metier.Tpe;
-import io.gmss.fiscad.enums.TypeImmeuble;
+import io.gmss.fiscad.entities.decoupage.Arrondissement;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -19,13 +17,15 @@ import java.io.Serializable;
@NoArgsConstructor
@AllArgsConstructor
@Where(clause = " deleted = false")
-public class BaremRfu extends BaseEntity implements Serializable {
+public class BaremRfuBati extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Long valeurLocative;
- private Long tfuMetreCarre;
+ private Double tfuMetreCarre;
private Long tfuMinimum;
@ManyToOne
private CategorieBatiment categorieBatiment;
+ @ManyToOne
+ private Arrondissement arrondissement;
}
diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/BaremRfuNonBati.java b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/BaremRfuNonBati.java
new file mode 100644
index 0000000..723d921
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/BaremRfuNonBati.java
@@ -0,0 +1,31 @@
+package io.gmss.fiscad.entities.rfu.parametre;
+
+import io.gmss.fiscad.entities.BaseEntity;
+import io.gmss.fiscad.entities.decoupage.Arrondissement;
+import io.gmss.fiscad.entities.decoupage.Commune;
+import jakarta.persistence.*;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import org.hibernate.annotations.Where;
+
+import java.io.Serializable;
+
+@EqualsAndHashCode(callSuper = true)
+@Entity
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Where(clause = " deleted = false")
+public class BaremRfuNonBati extends BaseEntity implements Serializable {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+ private Long valeurAdministrative;
+ private float taux;
+ @ManyToOne
+ private Commune commune;
+ @ManyToOne
+ private ZoneRfu zoneRfu;
+}
diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Caracteristique.java b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Caracteristique.java
index 6911edc..01bea69 100644
--- a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Caracteristique.java
+++ b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Caracteristique.java
@@ -39,6 +39,6 @@ public class Caracteristique extends BaseEntity implements Serializable {
private Tpe terminal;
@ManyToOne
private CategorieBatiment categorieBatiment;
- @ManyToOne
+ @ManyToOne(fetch = FetchType.LAZY)
private Arrondissement arrondissement;
}
diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/CategorieBatiment.java b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/CategorieBatiment.java
index 20d4d19..68c6c8f 100644
--- a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/CategorieBatiment.java
+++ b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/CategorieBatiment.java
@@ -1,10 +1,7 @@
package io.gmss.fiscad.entities.rfu.parametre;
import io.gmss.fiscad.entities.BaseEntity;
-import jakarta.persistence.Entity;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
-import jakarta.persistence.Id;
+import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -23,6 +20,7 @@ public class CategorieBatiment extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
- private Long code;
- private Long nom;
+ @Column(unique = true)
+ private String code;
+ private String nom;
}
diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Equipe.java b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Equipe.java
index 7a67ce7..3c36109 100644
--- a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Equipe.java
+++ b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Equipe.java
@@ -34,6 +34,7 @@ public class Equipe extends BaseEntity implements Serializable {
private Secteur secteur;
@ManyToOne
private Campagne campagne;
+
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "equipe_id")
private List participers;
diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Exercice.java b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Exercice.java
new file mode 100644
index 0000000..a412cdb
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Exercice.java
@@ -0,0 +1,37 @@
+package io.gmss.fiscad.entities.rfu.parametre;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import io.gmss.fiscad.deserializer.LocalDateDeserializer;
+import io.gmss.fiscad.entities.BaseEntity;
+import io.gmss.fiscad.enums.TypeCampagne;
+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.time.LocalDate;
+
+@EqualsAndHashCode(callSuper = true)
+@Entity
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Where(clause = " deleted = false")
+public class Exercice extends BaseEntity implements Serializable {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+ private int annee;
+ private boolean estGenerer;
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @JsonDeserialize(using = LocalDateDeserializer.class)
+ private LocalDate dateDebut;
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @JsonDeserialize(using = LocalDateDeserializer.class)
+ private LocalDate dateFin;
+}
+
diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Participer.java b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Participer.java
index 20ccad3..41abab6 100644
--- a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Participer.java
+++ b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Participer.java
@@ -26,16 +26,20 @@ public class Participer extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
- @JsonFormat(pattern = "dd-MM-yyyy")
+
+ @JsonFormat(pattern = "yyyy-MM-dd")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateDebut;
- @JsonFormat(pattern = "dd-MM-yyyy")
+
+ @JsonFormat(pattern = "yyyy-MM-dd")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateFin;
+
@JsonIgnore
@ManyToOne
private Equipe equipe;
- @JsonIgnore
+
+ //@JsonIgnore
@ManyToOne
private User user;
}
diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/ZoneRfu.java b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/ZoneRfu.java
new file mode 100644
index 0000000..2aaa784
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/ZoneRfu.java
@@ -0,0 +1,29 @@
+package io.gmss.fiscad.entities.rfu.parametre;
+
+import io.gmss.fiscad.entities.BaseEntity;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import org.hibernate.annotations.Where;
+
+import java.io.Serializable;
+
+@EqualsAndHashCode(callSuper = true)
+@Entity
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Where(clause = " deleted = false")
+public class ZoneRfu extends BaseEntity implements Serializable {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+ private String code;
+ private String nom;
+}
+
diff --git a/src/main/java/io/gmss/fiscad/entities/user/User.java b/src/main/java/io/gmss/fiscad/entities/user/User.java
index 697ef43..0df5028 100755
--- a/src/main/java/io/gmss/fiscad/entities/user/User.java
+++ b/src/main/java/io/gmss/fiscad/entities/user/User.java
@@ -39,8 +39,8 @@ public class User extends BaseEntity implements Serializable {
private String prenom;
private String tel;
private String email;
- @JsonIgnore
private String username;
+ @JsonIgnore
private String password;
@Column(columnDefinition = "boolean default true")
private boolean active;
@@ -57,9 +57,11 @@ public class User extends BaseEntity implements Serializable {
// @JsonIgnore
// @OneToMany(mappedBy = "user")
// private List enquetes;
+
@JsonIgnore
@OneToMany(mappedBy = "user")
private List participers;
+
// @JsonIgnore
// @OneToMany(mappedBy = "chefSecteur")
// private List secteurs;
@@ -87,7 +89,7 @@ public class User extends BaseEntity implements Serializable {
if(participers!=null) {
for (Participer p : participers) {
if (p.getDateFin() == null) {
- if (p.getEquipe().getCampagne() != null) {
+ if (p.getEquipe()!= null && p.getEquipe().getCampagne() != null) {
return p.getEquipe().getCampagne().getId();
}
}
@@ -100,7 +102,7 @@ public class User extends BaseEntity implements Serializable {
if(participers!=null){
for (Participer p : participers) {
if (p.getDateFin() == null) {
- if(p.getEquipe().getSecteur()!=null) {
+ if(p.getEquipe()!=null && p.getEquipe().getSecteur()!=null) {
return p.getEquipe().getSecteur().getId();
}
}
diff --git a/src/main/java/io/gmss/fiscad/enums/RoleActeur.java b/src/main/java/io/gmss/fiscad/enums/RoleActeur.java
index 6a901e7..758826e 100644
--- a/src/main/java/io/gmss/fiscad/enums/RoleActeur.java
+++ b/src/main/java/io/gmss/fiscad/enums/RoleActeur.java
@@ -6,5 +6,6 @@ public enum RoleActeur {
TEMOIN,
CONTESTATAIRE,
DECLARANT,
- MEMBRE
+ MEMBRE,
+ PERSONNE_CONTACT
}
diff --git a/src/main/java/io/gmss/fiscad/enums/StatusAvis.java b/src/main/java/io/gmss/fiscad/enums/StatusAvis.java
new file mode 100755
index 0000000..7518370
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/enums/StatusAvis.java
@@ -0,0 +1,8 @@
+package io.gmss.fiscad.enums;
+
+public enum StatusAvis {
+ CREE,
+ GENERE,
+ ANNULE,
+ VALIDE,
+}
diff --git a/src/main/java/io/gmss/fiscad/enums/StatusEnquete.java b/src/main/java/io/gmss/fiscad/enums/StatusEnquete.java
index 0692e99..d9f3de6 100755
--- a/src/main/java/io/gmss/fiscad/enums/StatusEnquete.java
+++ b/src/main/java/io/gmss/fiscad/enums/StatusEnquete.java
@@ -5,5 +5,6 @@ public enum StatusEnquete {
FINALISE,
REJETE,
VALIDE,
- SYNCHRONISE
+ //SYNCHRONISE
+ ECHEC
}
diff --git a/src/main/java/io/gmss/fiscad/enums/UserRole.java b/src/main/java/io/gmss/fiscad/enums/UserRole.java
index 35e3191..03dfe4e 100644
--- a/src/main/java/io/gmss/fiscad/enums/UserRole.java
+++ b/src/main/java/io/gmss/fiscad/enums/UserRole.java
@@ -7,5 +7,6 @@ public enum UserRole {
ROLE_DIRECTEUR,
ROLE_SUPERVISEUR,
ROLE_ENQUETEUR,
- ROLE_ANONYMOUS
+ ROLE_ANONYMOUS,
+ ROLE_RESPONSABLE
}
diff --git a/src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurServiceImpl.java
index 1152865..d05ee95 100644
--- a/src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurServiceImpl.java
+++ b/src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurServiceImpl.java
@@ -79,7 +79,7 @@ public class SecteurServiceImpl implements SecteurService {
sd.setId(sdp.getId());
secteurDecoupageList.add(sd);
}
- //secteur.setSecteurDecoupages(secteurDecoupageList);
+ secteur.setSecteurDecoupages(secteurDecoupageList);
//TODO
secteur.setId(secteurPayload.getId());
secteur.setCode(secteurPayload.getCode());
diff --git a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/EnqueteServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/EnqueteServiceImpl.java
index c85220a..dfab1de 100644
--- a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/EnqueteServiceImpl.java
+++ b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/EnqueteServiceImpl.java
@@ -21,10 +21,12 @@ import io.gmss.fiscad.paylaods.response.*;
import io.gmss.fiscad.paylaods.response.FicheResponse.*;
import io.gmss.fiscad.repositories.decoupage.ArrondissementRepository;
import io.gmss.fiscad.repositories.decoupage.CommuneRepository;
+import io.gmss.fiscad.repositories.decoupage.SecteurRepository;
import io.gmss.fiscad.repositories.infocad.metier.ActeurConcerneRepository;
import io.gmss.fiscad.repositories.infocad.metier.EnqueteRepository;
import io.gmss.fiscad.repositories.infocad.metier.ParcelleRepository;
import io.gmss.fiscad.repositories.infocad.parametre.BlocRepository;
+import io.gmss.fiscad.repositories.infocad.parametre.StructureRepository;
import io.gmss.fiscad.repositories.rfu.metier.CaracteristiqueParcelleRepository;
import io.gmss.fiscad.repositories.rfu.metier.EnqueteBatimentRepository;
import io.gmss.fiscad.repositories.rfu.metier.EnqueteUniteLogementRepository;
@@ -61,6 +63,8 @@ public class EnqueteServiceImpl implements EnqueteService {
private final CaracteristiqueParcelleRepository caracteristiqueParcelleRepository;
private final EnqueteBatimentRepository enqueteBatimentRepository;
private final EnqueteUniteLogementRepository enqueteUniteLogementRepository;
+ private final SecteurRepository secteurRepository;
+ private final StructureRepository structureRepository;
@PersistenceContext
private final EntityManager em;
@@ -181,8 +185,10 @@ public class EnqueteServiceImpl implements EnqueteService {
condition += " AND e.litige is " + filtreEnquetePayLoad.getLitige();
}
+ if (filtreEnquetePayLoad.getSecteurId() != null) {
+ condition += " AND b.secteur_id = " + filtreEnquetePayLoad.getSecteurId();
+ }
- System.out.println(condition);
StringBuilder sb = new StringBuilder(sql).append(condition);
query = em.createNativeQuery(sb.toString(), EnqueteFiltreResponse.class);
List enqueteFiltreResponses = query.getResultList();
@@ -259,10 +265,11 @@ public class EnqueteServiceImpl implements EnqueteService {
if (!optionalEnquete.isPresent()) {
throw new NotFoundException("Impossible de trouver l'enquête que vous désirez valider.");
}
- optionalEnquete.get().setDateValidation(LocalDate.now());
- optionalEnquete.get().setStatusEnquete(StatusEnquete.VALIDE);
- optionalEnquete.get().setSynchronise(false);
- return enqueteRepository.save(optionalEnquete.get());
+ Enquete enquete = optionalEnquete.get();
+ enquete.setDateValidation(LocalDate.now());
+ enquete.setStatusEnquete(StatusEnquete.VALIDE);
+ enquete.setSynchronise(false);
+ return enqueteRepository.save(enquete);
}
@Override
@@ -274,12 +281,12 @@ public class EnqueteServiceImpl implements EnqueteService {
if (!optionalEnquete.isPresent()) {
throw new NotFoundException("Impossible de trouver l'enquête que vous désirez rejeter.");
}
- optionalEnquete.get().setDateRejet(LocalDate.now());
- optionalEnquete.get().setDescriptionMotifRejet(enqueteTraitementPayLoad.getMotifRejet());
-
- optionalEnquete.get().setStatusEnquete(StatusEnquete.REJETE);
- optionalEnquete.get().setSynchronise(false);
- return enqueteRepository.save(optionalEnquete.get());
+ Enquete enquete = optionalEnquete.get();
+ enquete.setDateRejet(LocalDate.now());
+ enquete.setDescriptionMotifRejet(enqueteTraitementPayLoad.getMotifRejet());
+ enquete.setStatusEnquete(StatusEnquete.REJETE);
+ enquete.setSynchronise(false);
+ return enqueteRepository.save(enquete);
}
@Override
@@ -372,10 +379,57 @@ public class EnqueteServiceImpl implements EnqueteService {
return userDecoupageEnqResponses;
}
+
@Override
- public FicheEnqueteResponse getFicheEnquete(Long enqueteId) {
+ public UserDecoupageEnqResponses getDecoupageAdminUserConnecterAndStatForDgi() {
+ String userName = "";
+ try {
+ authentication = SecurityContextHolder.getContext().getAuthentication();
+ userName = authentication.getName();
+ } catch (Exception e) {
+ return null;
+ }
+
+ User user = userService.getUserByUsername(userName);
+ //User user = userService.getUserByUsername("admin@gmail.com");
+ //User user = userService.getUserByUsername("rnovatopo@gmail.com");
+ System.out.println(user);
+
+ System.out.println(user.isAdmin());
+
+ List communeEnqResponses =
+ user.isAdmin() ? communeRepository.getAdminCommuneEnqResponse() : communeRepository.getCommuneEnqResponse(user.getStructure().getId());
+
+
+ List structureEnqResponses =
+ user.isAdmin() ? structureRepository.getAdminStructureEnqResponse() : structureRepository.getStructureEnqResponse(user.getStructure().getId());
+
+
+
+ List secteurEnqResponses =
+ user.isAdmin() ? secteurRepository.getAdminSecteurEnqResponse() : secteurRepository.getSecteurEnqResponse(user.getStructure()==null?0l:user.getStructure().getId(),user.getIdSecteurCourant()==null?0l:user.getIdSecteurCourant());
+
+
+ UserDecoupageEnqResponses userDecoupageEnqResponses = new UserDecoupageEnqResponses();
+ userDecoupageEnqResponses.setCommunes(communeEnqResponses);
+ userDecoupageEnqResponses.setStructureEnqResponses(structureEnqResponses);
+ userDecoupageEnqResponses.setSecteurEnqResponses(secteurEnqResponses);
+ return userDecoupageEnqResponses;
+ }
+
+ @Override
+ public FicheEnqueteResponse getFicheEnquete(Long enqueteId,String nupProvisoir) {
+
+ if(enqueteId==null){
+ Optional optionalEnquete = enqueteRepository.findFirstByParcelle_NupProvisoireOrderByDateEnqueteDesc(nupProvisoir);
+ if(optionalEnquete.isPresent()){
+ enqueteId=optionalEnquete.get().getId();
+ }
+ }
+
Optional optionalEnquete = enqueteRepository.findById(enqueteId);
+
List acteurConcernes = acteurConcerneRepository.findActeurConcerneByEnquete_Id(enqueteId);
FicheEnqueteResponse ficheEnqueteResponse = new FicheEnqueteResponse(); // payload de réponse global
@@ -385,6 +439,7 @@ public class EnqueteServiceImpl implements EnqueteService {
if (optionalEnquete.isPresent()) {
ficheEnquetesResponse = modelMapper.map(optionalEnquete.get(), FicheEnquetesResponse.class);
}
+
List caracteristiqueParcelles = caracteristiqueParcelleRepository.findAllByEnquete_Id(enqueteId);
List enqueteBatiments = enqueteBatimentRepository.findAllByEnquete_Id(enqueteId);
@@ -400,41 +455,6 @@ public class EnqueteServiceImpl implements EnqueteService {
return ficheEnqueteResponse;
}
-
- @Override
- public FicheEnqueteResponse getFicheEnqueteByNupProvisoir(String nupProvisoir) {
-
- Optional optionalEnquete = enqueteRepository.findFirstByParcelle_NupProvisoireOrderByDateEnqueteDesc(nupProvisoir);
-
- if(optionalEnquete.isPresent()){
-
- List acteurConcernes = acteurConcerneRepository.findActeurConcerneByEnquete_Id(optionalEnquete.get().getId());
-
- FicheEnqueteResponse ficheEnqueteResponse = new FicheEnqueteResponse(); // payload de réponse global
-
- FicheEnquetesResponse ficheEnquetesResponse = new FicheEnquetesResponse(); // classe payload de Enquete
-
- if (optionalEnquete.isPresent()) {
- ficheEnquetesResponse = modelMapper.map(optionalEnquete.get(), FicheEnquetesResponse.class);
- }
- List caracteristiqueParcelles = caracteristiqueParcelleRepository.findAllByEnquete_Id(optionalEnquete.get().getId());
-
- List enqueteBatiments = enqueteBatimentRepository.findAllByEnquete_Id(optionalEnquete.get().getId());
-
- List enqueteUniteLogements = enqueteUniteLogementRepository.findAllByEnquete_Id(optionalEnquete.get().getId());
-
- ficheEnquetesResponse.setCaracteristiquesParcelles(caracteristiqueParcelles);
- ficheEnquetesResponse.setEnquetesBatiments(enqueteBatiments);
- ficheEnquetesResponse.setEnquetesUniteLogements(enqueteUniteLogements);
- ficheEnqueteResponse.setEnquete(ficheEnquetesResponse);
- ficheEnqueteResponse.setActeurConcernes(acteurConcernes);
-
- return ficheEnqueteResponse;
- }else{
- return null;
- }
- }
-
@Override
public List getEnqueteValideNonSynch(Long terminalId) {
return enqueteRepository.getEnqueteValNonSync(terminalId);
diff --git a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/ParcelleGeomServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/ParcelleGeomServiceImpl.java
index cf60ab8..7c749b2 100644
--- a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/ParcelleGeomServiceImpl.java
+++ b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/ParcelleGeomServiceImpl.java
@@ -12,6 +12,7 @@ import io.gmss.fiscad.exceptions.NotFoundException;
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.repositories.infocad.metier.EnqueteRepository;
import io.gmss.fiscad.repositories.infocad.metier.ParcelleGeomRepository;
import io.gmss.fiscad.repositories.infocad.metier.UploadRepository;
@@ -66,10 +67,19 @@ public class ParcelleGeomServiceImpl implements ParcelleGeomService {
JsonNode feature = features.next();
createOnParcelleFromGeoJson(feature,upload);
}
+ //////Creation de la geometry
+ try {
+ parcelleGeomRepository.creationGeometry();
+ parcelleGeomRepository.majCentroidParcelle();
+ uploadRepository.majNombreParcelle(n,upload.getId());// save(upload);
+ }catch (Exception e){
+ }
+
try {
parcelleGeomRepository.majIdQuartier();
}catch (Exception e){
}
+
return n;
}
@@ -92,19 +102,24 @@ public class ParcelleGeomServiceImpl implements ParcelleGeomService {
JsonNode propertiesNode = feature.get("properties");
WKTReader wktReader = new WKTReader();
if (geometryNode != null) {
-// Polygon geometry = null;
-// try {
-// geometry = convertGeoJsonToPolygon(geometryNode.toString());
-// } catch (ParseException e) {
-// e.printStackTrace();
-// //throw new RuntimeException(e);
-// } catch (Exception e) {
-// e.printStackTrace();
-// // throw new RuntimeException(e);
-// }
+
+ Polygon geometry = null;
ParcelleGeom parcelleGeom = new ParcelleGeom();
- parcelleGeom.setUpload(upload);
- // parcelleGeom.setGeometry(geometry);
+ try {
+ geometry = convertGeoJsonToPolygon(geometryNode.toString());
+ String polygoneString =geometry.getExteriorRing().toString();
+ polygoneString=polygoneString.replace("LINEARRING (","POLYGON ((" );
+ polygoneString=polygoneString.replace(")","))" );
+ parcelleGeom.setGeometryString(polygoneString);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ //throw new RuntimeException(e);
+ } catch (Exception e) {
+ e.printStackTrace();
+ // throw new RuntimeException(e);
+ }
+ parcelleGeom.setUploadId(upload.getId());
+
parcelleGeom.setDepartement(propertiesNode.get("DEPARTEMENT").textValue());
parcelleGeom.setCommune(propertiesNode.get("COMMUNE").textValue());
parcelleGeom.setArrondissement(propertiesNode.get("ARRONDISSEMENT").textValue());
@@ -129,7 +144,7 @@ public class ParcelleGeomServiceImpl implements ParcelleGeomService {
parcelleGeom.setObservations(propertiesNode.get("OBSERVATIONS").textValue());
parcelleGeom= parcelleGeomRepository.save(parcelleGeom);
try {
- setStatutParcelleGeom(parcelleGeom.getNupProvisoire());
+ setStatutParcelleGeomFromGeoJson(parcelleGeom);
}catch (Exception e){
e.printStackTrace();
}
@@ -173,26 +188,48 @@ public class ParcelleGeomServiceImpl implements ParcelleGeomService {
}
@Override
- public void setStatutParcelleGeom(String nupProvisoir) {
- Optional optionalParcelleGeom=parcelleGeomRepository.findFirstByNupProvisoire(nupProvisoir);
-// Optional enqueteOptional=enqueteRepository.getEnquetByNupProvisoir(nupProvisoir);
-//
-// if(enqueteOptional.isEmpty()){
-// if(!optionalParcelleGeom.isEmpty()){
-// optionalParcelleGeom.get().setStatutParcelle(StatutParcelle.NON_ENQUETER);
-// }
-// }else {
-// if(!optionalParcelleGeom.isEmpty()){
-// if(enqueteOptional.get().getEnqueteBatiments()!=null && !enqueteOptional.get().getEnqueteBatiments().isEmpty()) {
-// optionalParcelleGeom.get().setStatutParcelle(StatutParcelle.ENQUETER_BATIE);
-// }else{
-// optionalParcelleGeom.get().setStatutParcelle(StatutParcelle.ENQUETER_NON_BATIE);
-// }
-// }
-//
+ public void setStatutParcelleGeomFromGeoJson(ParcelleGeom parcelleGeom) {
+ if(parcelleGeom.getNupProvisoire()!=null) {
+ List enqueteCheckResponses = enqueteRepository.getEnquetByNupProvisoir(parcelleGeom.getNupProvisoire());
+
+ if (enqueteCheckResponses.isEmpty()) {
+ System.out.println("NON ENQUETE");
+ parcelleGeomRepository.majStatutParcelleGeomNonEnqueter(parcelleGeom.getNupProvisoire());
+ //parcelleGeom.setStatutParcelle(StatutParcelle.NON_ENQUETER);
+ } else {
+ if (enqueteCheckResponses.get(0).getNombreBatiment() != null && enqueteCheckResponses.get(0).getNombreBatiment() != 0) {
+ // parcelleGeom.setStatutParcelle(StatutParcelle.ENQUETER_BATIE);
+ parcelleGeomRepository.majStatutParcelleGeomBatie(parcelleGeom.getNupProvisoire());
+ } else {
+ parcelleGeomRepository.majStatutParcelleGeomNonBatie(parcelleGeom.getNupProvisoire());
+ }
+ }
+ enqueteCheckResponses.clear();
+// parcelleGeomRepository.save(parcelleGeom);
+ }else{
+ parcelleGeomRepository.majStatutParcelleGeomNonEnqueter(parcelleGeom.getNupProvisoire());
+ }
+
+ }
+
+ @Override
+ public void setStatutParcelleGeomFromEnquete(Enquete enquete) {
+
+ if(enquete.getNbreBatiment()!=0) {
+ parcelleGeomRepository.majStatutParcelleGeomBatie(enquete.getCodeParcelle());
+ }else{
+ parcelleGeomRepository.majStatutParcelleGeomNonBatie(enquete.getCodeParcelle());
+ }
+
+
+ }
+
+ @Override
+ public void linkParcelleToParcelleGeom(String nupProvisoir,Long parcelleId) {
+// Optional parcelleGeomOptional=parcelleGeomRepository.findFirstByNupProvisoire(nupProvisoir);
+// if(parcelleGeomOptional.isPresent()){
+// parcelleGeomOptional.get().par
// }
-
-
}
diff --git a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java
new file mode 100644
index 0000000..4afedb5
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java
@@ -0,0 +1,159 @@
+package io.gmss.fiscad.implementations.infocad.metier;
+
+
+import io.gmss.fiscad.entities.infocad.parametre.Personne;
+import io.gmss.fiscad.exceptions.BadRequestException;
+import io.gmss.fiscad.exceptions.NotFoundException;
+
+import io.gmss.fiscad.interfaces.infocad.metier.PersonneService;
+import io.gmss.fiscad.paylaods.dto.*;
+import io.gmss.fiscad.repositories.infocad.metier.MembreGroupeRepository;
+import io.gmss.fiscad.repositories.infocad.metier.PieceRepository;
+import io.gmss.fiscad.repositories.infocad.metier.UploadRepository;
+import io.gmss.fiscad.repositories.infocad.parametre.PersonneRepository;
+import jakarta.persistence.EntityNotFoundException;
+import lombok.RequiredArgsConstructor;
+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;
+
+@Service
+@RequiredArgsConstructor
+public class PersonneServiceImpl implements PersonneService {
+
+ private final PersonneRepository personneRepository;
+ private final UploadRepository uploadRepository;
+ private final PieceRepository pieceRepository;
+ private final MembreGroupeRepository membreGroupeRepository;
+
+ @Override
+ public Personne createPersonne(Personne personne) throws BadRequestException {
+ return null;
+ }
+
+ @Override
+ public Personne updatePersonne(Long id, Personne personne) throws NotFoundException {
+ return null;
+ }
+
+ @Override
+ public void deletePersonne(Long id) throws NotFoundException {
+
+ }
+
+ @Override
+ public Page getPersonneList(Pageable pageable) {
+ return null;
+ }
+
+ @Override
+ public List getPersonneList() {
+ return null;
+ }
+
+ @Override
+ public Optional getPersonneById(Long id) {
+ return Optional.empty();
+ }
+
+ @Override
+ public PersonneCompletDTO getPersonneComplete(Long id) {
+ // 1. Charger la personne
+ Personne personne = personneRepository.findById(id)
+ .orElseThrow(() -> new EntityNotFoundException("Personne non trouvée."));
+
+ // 2. Uploads liés directement
+ List uploadsDirects = uploadRepository
+ .findByPersonne_IdAndPieceIsNullAndMembreGroupeIsNull(id)
+ .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()))
+ .toList();
+ System.out.println(uploadsDirects.size());
+ // 3. Pièces et leurs Uploads
+ List pieces = pieceRepository.findByPersonne_Id(id)
+ .stream().map(piece -> {
+ List 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()))
+ .toList();
+ return new PieceDTO(
+ piece.getId(),
+ piece.getTypePiece() != null ? piece.getTypePiece().getLibelle() : "",
+ piece.getUrl(),
+ uploads
+ );
+ }).toList();
+
+ // 4. MembreGroupe
+ List membres = membreGroupeRepository
+ .findByPersonneRepresantee_Id(id)
+ .stream().map(mg -> {
+ List uploads = mg.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()))
+ .toList();
+
+ Personne pRep = mg.getPersonneRepresantante();
+
+ if(mg.getTypeRepresentation() == null){
+ return new MembreGroupeDTO(
+ mg.getId(),
+ new PersonneSimpleDTO(pRep.getId(), pRep.getNomOuSigle(), pRep.getPrenomOuRaisonSociale()),
+ null,
+ new PositionRepresentationDTO(mg.getPositionRepresentation().getId(), mg.getPositionRepresentation().getLibelle()),
+ uploads
+ );
+ }else{
+ return new MembreGroupeDTO(
+ mg.getId(),
+ new PersonneSimpleDTO(pRep.getId(), pRep.getNomOuSigle(), pRep.getPrenomOuRaisonSociale()),
+ new TypeRepresentationDTO(mg.getTypeRepresentation().getId(), mg.getTypeRepresentation().getLibelle()),
+ new PositionRepresentationDTO(mg.getPositionRepresentation().getId(), mg.getPositionRepresentation().getLibelle()),
+ uploads
+ );
+ }
+
+
+ }).toList();
+
+ // 5. Construction finale
+ return new PersonneCompletDTO(
+ personne.getId(),
+ personne.getIfu(),
+ personne.getNomOuSigle(),
+ personne.getPrenomOuRaisonSociale(),
+ personne.getNumRavip(),
+ personne.getNpi(),
+ personne.getDateNaissanceOuConsti(),
+ personne.getLieuNaissance(),
+ personne.getTel1(),
+ personne.getTel2(),
+ personne.getAdresse(),
+ personne.getCategorie(),
+ personne.getSituationMatrimoniale(),
+ personne.getNationalite(),
+ personne.getTypePersonne(),
+ personne.getProfession(),
+ personne.getCommune(),
+ personne.getTerminal(),
+ personne.getHaveRepresentant(),
+ personne.getRavipQuestion(),
+ personne.getAge(),
+ personne.getNomJeuneFille(),
+ personne.getNomMere(),
+ personne.getPrenomMere(),
+ personne.getIndicatifTel1(),
+ personne.getIndicatifTel2(),
+ personne.getSexe(),
+ personne.getMustHaveRepresentant(),
+ personne.getFilePath(),
+ personne.getObservation(),
+ personne.isSynchronise(),
+ uploadsDirects,
+ pieces,
+ membres
+ );
+ }
+}
+
diff --git a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/TpeServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/TpeServiceImpl.java
index c0e8c30..eca0012 100644
--- a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/TpeServiceImpl.java
+++ b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/TpeServiceImpl.java
@@ -56,6 +56,23 @@ public class TpeServiceImpl implements TpeService {
return tpeRepository.save(tpe);
}
+ @Override
+ public Tpe majTpe(Long id, Tpe tpe) throws NotFoundException {
+ if (tpe.getId() == null) {
+ throw new BadRequestException("Impossible de mettre à jour un nouveau tpe ayant un id null.");
+ }
+ Optional optionalTpe=tpeRepository.findById(tpe.getId());
+ if (optionalTpe.isEmpty()) {
+ tpeRepository.insertTpeManuellement(tpe.getId(),
+ tpe.getNumeroEquipement(),
+ tpe.getIdentifier(),
+ tpe.getModel(),
+ tpe.getCodeEquipe()
+ );
+ }
+ return tpe ;
+ }
+
@Override
public void deleteTpe(Long id) throws NotFoundException {
Optional tpeOptional = tpeRepository.findById(id);
@@ -108,5 +125,9 @@ public class TpeServiceImpl implements TpeService {
public List getTpeListByUserId(Long userId) {
return tpeRepository.getTpeByUserId(userId);
}
-
+ @Override
+ public Tpe reCreateExistTpe(Tpe tpe) throws BadRequestException {
+ tpeRepository.save(tpe);
+ return tpe;
+ }
}
diff --git a/src/main/java/io/gmss/fiscad/implementations/infocad/parametre/BlocServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/infocad/parametre/BlocServiceImpl.java
index e8a4d36..49b43e5 100644
--- a/src/main/java/io/gmss/fiscad/implementations/infocad/parametre/BlocServiceImpl.java
+++ b/src/main/java/io/gmss/fiscad/implementations/infocad/parametre/BlocServiceImpl.java
@@ -50,9 +50,12 @@ public class BlocServiceImpl implements BlocService {
if (bloc.getQuartier() != null) {
bloc.setCoteq(getCoteQuartierByCoteBloc(bloc.getCote(), bloc.getQuartier()));
}
-// if (bloc.getSecteurDecoupage() != null) {
-// bloc.setSecteur(bloc.getSecteurDecoupage().getSecteur());
-// }
+ if (bloc.getSecteurDecoupage() != null) {
+ bloc.setSecteur(bloc.getSecteurDecoupage().getSecteur());
+ // bloc.setSecteurDecoupage();
+ }
+
+
return blocRepository.save(bloc);
}
@@ -98,6 +101,18 @@ public class BlocServiceImpl implements BlocService {
if (!blocRepository.existsById(bloc.getId())) {
throw new NotFoundException("Impossible de trouver le bloc spécifié dans notre base de données.");
}
+ String idBlocParArrondissement = getIdBlocParArrondissementValue(bloc);
+ bloc.setIdBlocParArrondissement(idBlocParArrondissement);
+
+ if (bloc.getStructure() == null) {
+ bloc.setCote(getCoteValue(bloc, idBlocParArrondissement, null));
+ } else {
+ bloc.setCote(getCoteValue(bloc, idBlocParArrondissement, bloc.getStructure().getId()));
+ }
+
+ if (bloc.getQuartier() != null) {
+ bloc.setCoteq(getCoteQuartierByCoteBloc(bloc.getCote(), bloc.getQuartier()));
+ }
return blocRepository.save(bloc);
}
diff --git a/src/main/java/io/gmss/fiscad/implementations/infocad/parametre/StructureServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/infocad/parametre/StructureServiceImpl.java
index 1c4ea0f..dd7ab95 100644
--- a/src/main/java/io/gmss/fiscad/implementations/infocad/parametre/StructureServiceImpl.java
+++ b/src/main/java/io/gmss/fiscad/implementations/infocad/parametre/StructureServiceImpl.java
@@ -45,7 +45,12 @@ public class StructureServiceImpl implements StructureService {
if (!structureRepository.existsById(structure.getId())) {
throw new NotFoundException("Impossible de trouver la structure spécifiée dans notre base de données.");
}
- structureRepository.save(structure);
+ try {
+ structureRepository.save(structure);
+
+ }catch (Exception e){
+ e.printStackTrace();
+ }
Structure structure1 = structureRepository.getById(structure.getId());
diff --git a/src/main/java/io/gmss/fiscad/implementations/rfu/metier/DonneesImpositionTfuServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/rfu/metier/DonneesImpositionTfuServiceImpl.java
new file mode 100644
index 0000000..061bace
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/implementations/rfu/metier/DonneesImpositionTfuServiceImpl.java
@@ -0,0 +1,193 @@
+package io.gmss.fiscad.implementations.rfu.metier;
+
+import io.gmss.fiscad.entities.decoupage.Arrondissement;
+import io.gmss.fiscad.entities.infocad.metier.Enquete;
+import io.gmss.fiscad.entities.infocad.metier.Parcelle;
+import io.gmss.fiscad.entities.rfu.metier.DonneesImpositionTfu;
+import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu;
+import io.gmss.fiscad.entities.rfu.parametre.BaremRfuNonBati;
+import io.gmss.fiscad.entities.rfu.parametre.Exercice;
+import io.gmss.fiscad.exceptions.BadRequestException;
+import io.gmss.fiscad.exceptions.NotFoundException;
+import io.gmss.fiscad.interfaces.rfu.metier.DonneesImpositionTfuService;
+import io.gmss.fiscad.paylaods.response.DonneesImpositionTfuResponse;
+import io.gmss.fiscad.repositories.decoupage.ArrondissementRepository;
+import io.gmss.fiscad.repositories.infocad.metier.EnqueteRepository;
+import io.gmss.fiscad.repositories.infocad.metier.ParcelleRepository;
+import io.gmss.fiscad.repositories.rfu.metier.DonneesImpositionTfuRepository;
+import io.gmss.fiscad.repositories.rfu.metier.ImpositionsTfuRepository;
+import io.gmss.fiscad.repositories.rfu.parametre.BaremRfuNonBatiRepository;
+import io.gmss.fiscad.repositories.rfu.parametre.ExerciceRepository;
+import jakarta.transaction.Transactional;
+import lombok.AllArgsConstructor;
+import org.springframework.dao.DataIntegrityViolationException;
+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;
+
+@Service
+@AllArgsConstructor
+public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuService {
+
+ private final DonneesImpositionTfuRepository donneesImpositionTfuRepository;
+ private final ParcelleRepository parcelleRepository;
+ private final EnqueteRepository enqueteRepository;
+ private final ImpositionsTfuRepository impositionsTfuRepository;
+ private final BaremRfuNonBatiRepository baremRfuNonBatiRepository;
+ private final ExerciceRepository exerciceRepository;
+ private final ArrondissementRepository arrondissementRepository;
+
+
+
+ @Override
+ public DonneesImpositionTfu createDonneesImpositionTfu(DonneesImpositionTfu donneesImpositionTfu) throws BadRequestException {
+ if (donneesImpositionTfu.getId() != null) {
+ throw new BadRequestException("Impossible de créer un nouveau donneesImpositionTfu ayant un id non null.");
+ }
+ return donneesImpositionTfuRepository.save(donneesImpositionTfu);
+ }
+
+ @Override
+ public DonneesImpositionTfu updateDonneesImpositionTfu(Long id, DonneesImpositionTfu donneesImpositionTfu) throws NotFoundException {
+ if (donneesImpositionTfu.getId() == null) {
+ throw new BadRequestException("Impossible de mettre à jour un nouveau donneesImpositionTfu ayant un id null.");
+ }
+ if (!donneesImpositionTfuRepository.existsById(donneesImpositionTfu.getId())) {
+ throw new NotFoundException("Impossible de trouver le donneesImpositionTfu spécifié dans notre base de données.");
+ }
+ return donneesImpositionTfuRepository.save(donneesImpositionTfu);
+ }
+
+ @Override
+ public void deleteDonneesImpositionTfu(Long id) throws NotFoundException {
+ Optional donneesImpositionTfuOptional = donneesImpositionTfuRepository.findById(id);
+ if (donneesImpositionTfuOptional.isPresent()) {
+ donneesImpositionTfuRepository.deleteById(donneesImpositionTfuOptional.get().getId());
+ } else {
+ throw new NotFoundException("Impossible de trouver le donneesImpositionTfu spécifié dans notre base de données.");
+ }
+ }
+
+ @Override
+ public Page getDonneesImpositionTfuList(Pageable pageable) {
+ return donneesImpositionTfuRepository.findAll(pageable);
+ }
+
+ @Override
+ public List getDonneesImpositionTfuList() {
+ return donneesImpositionTfuRepository.findAll();
+ }
+
+
+ @Override
+ public Optional getDonneesImpositionTfuById(Long id) {
+ if (donneesImpositionTfuRepository.existsById(id)) {
+ return donneesImpositionTfuRepository.findById(id);
+ } else {
+ throw new NotFoundException("Impossible de trouver la caractéristique spécifiée dans la base de données.");
+ }
+
+ }
+
+ @Override
+ @Transactional
+ public Long genererDonneesFiscales(ImpositionsTfu impositionsTfu) {
+ List donneesImpositionTfuResponses= donneesImpositionTfuRepository.findAllDonneesImpositionTfu(impositionsTfu.getCommune().getId(),impositionsTfu.getExercice().getAnnee());
+ Long n=0l;
+ for (DonneesImpositionTfuResponse donneesImpositionTfuResponse: donneesImpositionTfuResponses){
+ DonneesImpositionTfu donneesImpositionTfu=new DonneesImpositionTfu();
+ donneesImpositionTfu.setImpositionsTfu(impositionsTfu);
+ donneesImpositionTfu.setZoneRfuId(donneesImpositionTfuResponse.getZoneRfuId());
+ donneesImpositionTfu.setCodeQuartierVillage(donneesImpositionTfuResponse.getCodeQuartierVillage());
+ donneesImpositionTfu.setNomQuartierVillage(donneesImpositionTfuResponse.getNomQuartierVillage());
+ donneesImpositionTfu.setCodeArrondissement(donneesImpositionTfuResponse.getCodeArrondissement());
+ donneesImpositionTfu.setNomArrondissement(donneesImpositionTfuResponse.getNomArrondissement());
+ donneesImpositionTfu.setCodeCommune(donneesImpositionTfuResponse.getCodeCommune());
+ donneesImpositionTfu.setNomCommune(donneesImpositionTfuResponse.getNomCommune());
+ donneesImpositionTfu.setCodeDepartement(donneesImpositionTfuResponse.getCodeDepartement());
+ donneesImpositionTfu.setNomDepartement(donneesImpositionTfuResponse.getNomDepartement());
+ donneesImpositionTfu.setQ(donneesImpositionTfuResponse.getQ());
+ donneesImpositionTfu.setIlot(donneesImpositionTfuResponse.getIlot());
+ donneesImpositionTfu.setParcelle(donneesImpositionTfuResponse.getParcelle());
+ donneesImpositionTfu.setLatitude(donneesImpositionTfuResponse.getLatitude());
+ donneesImpositionTfu.setLongitude(donneesImpositionTfuResponse.getLongitude());
+ donneesImpositionTfu.setNup(donneesImpositionTfuResponse.getNup());
+ donneesImpositionTfu.setNupProvisoire(donneesImpositionTfuResponse.getNupProvisoire());
+ donneesImpositionTfu.setSuperficieParc(donneesImpositionTfuResponse.getSuperficieParc());
+ donneesImpositionTfu.setAdresseProp(donneesImpositionTfuResponse.getAdresseProp());
+ donneesImpositionTfu.setAnnee(donneesImpositionTfuResponse.getAnnee());
+ donneesImpositionTfu.setAdresseSc(donneesImpositionTfuResponse.getAdresseSc());
+ donneesImpositionTfu.setBatieOuiNon(donneesImpositionTfuResponse.getBatieOuiNon());
+ donneesImpositionTfu.setTfuMinimum(donneesImpositionTfuResponse.getTfuMinimum());
+ donneesImpositionTfu.setCategorieBat(donneesImpositionTfuResponse.getCategorieBat());
+ donneesImpositionTfu.setDateEnquete(donneesImpositionTfuResponse.getDateEnquete());
+ donneesImpositionTfu.setEmailProp(donneesImpositionTfuResponse.getEmailProp());
+ donneesImpositionTfu.setEmailSc(donneesImpositionTfuResponse.getEmailSc());
+ donneesImpositionTfu.setMontantLoyerAnnuel(donneesImpositionTfuResponse.getMontantLoyerAnnuel());
+ donneesImpositionTfu.setEnqueteId(donneesImpositionTfuResponse.getEnqueteId());
+ donneesImpositionTfu.setExhonereOuiNon(donneesImpositionTfuResponse.getExhonereOuiNon());
+ donneesImpositionTfu.setIfu(donneesImpositionTfuResponse.getIfu());
+ donneesImpositionTfu.setNombreBat(donneesImpositionTfuResponse.getNombreBat());
+ donneesImpositionTfu.setNombrePiscine(donneesImpositionTfuResponse.getNombrePiscine());
+ donneesImpositionTfu.setNombreUlog(donneesImpositionTfuResponse.getNombreUlog());
+ donneesImpositionTfu.setNomProp(donneesImpositionTfuResponse.getNomProp());
+ donneesImpositionTfu.setNomSc(donneesImpositionTfuResponse.getNomSc());
+ donneesImpositionTfu.setNpi(donneesImpositionTfuResponse.getNpi());
+ donneesImpositionTfu.setNumBatiment(donneesImpositionTfuResponse.getNumBatiment()==null?"":donneesImpositionTfuResponse.getNumBatiment());
+ donneesImpositionTfu.setNumUniteLogement(donneesImpositionTfuResponse.getNumUniteLogement()==null?"":donneesImpositionTfuResponse.getNumUniteLogement());
+ donneesImpositionTfu.setPrenomProp(donneesImpositionTfuResponse.getPrenomProp());
+ donneesImpositionTfu.setPrenomSc(donneesImpositionTfuResponse.getPrenomSc());
+ donneesImpositionTfu.setRaisonSociale(donneesImpositionTfuResponse.getRaisonSociale());
+ donneesImpositionTfu.setSecteurId(donneesImpositionTfuResponse.getSecteurId());
+ donneesImpositionTfu.setStandingBat(donneesImpositionTfuResponse.getStandingBat());
+ donneesImpositionTfu.setStructureId(donneesImpositionTfuResponse.getStructureId());
+ donneesImpositionTfu.setSuperficieAuSolBat(donneesImpositionTfuResponse.getSuperficieAuSolBat());
+ donneesImpositionTfu.setSuperficieAuSolUlog(donneesImpositionTfuResponse.getSuperficieAuSolUlog());
+ donneesImpositionTfu.setTelProp(donneesImpositionTfuResponse.getTelProp());
+ donneesImpositionTfu.setTelSc(donneesImpositionTfuResponse.getTelSc());
+ donneesImpositionTfu.setTfuMetreCarre(donneesImpositionTfuResponse.getTfuMetreCarre());
+ donneesImpositionTfu.setTitreFoncier(donneesImpositionTfuResponse.getTitreFoncier());
+ donneesImpositionTfu.setValeurLocativeAdm(donneesImpositionTfuResponse.getValeurLocativeAdm());
+ donneesImpositionTfu.setBatimentExhonereOuiNon(donneesImpositionTfuResponse.getBatimentExhonereOuiNon());
+ donneesImpositionTfu.setUniteLogementExhonereOuiNon(donneesImpositionTfuResponse.getUniteLogementExhonereOuiNon());
+ try {
+ Optional baremRfuNonBatiOptional=baremRfuNonBatiRepository.findAllByCommune_IdAndZoneRfu_Id(impositionsTfu.getCommune().getId(),donneesImpositionTfu.getZoneRfuId());
+ if(baremRfuNonBatiOptional.isPresent()){
+ donneesImpositionTfu.setValeurAdministrativeParcelleNonBati(baremRfuNonBatiOptional.get().getValeurAdministrative());
+ donneesImpositionTfu.setTauxParcelleNonBati(baremRfuNonBatiOptional.get().getTaux());
+ }
+
+
+ donneesImpositionTfuRepository.save(donneesImpositionTfu);
+ n++;
+ }catch (DataIntegrityViolationException e) {
+ if (e.getCause() instanceof org.hibernate.exception.ConstraintViolationException constraintEx &&
+ constraintEx.getSQLException().getSQLState().equals("23505")) {
+ System.out.println("Doublon détecté (clé unique) !");
+ } else {
+ throw e;
+ }
+ }
+ }
+ impositionsTfuRepository.save(impositionsTfu);
+ return n;
+ }
+
+ @Override
+ public List getDonneesFiscalesByImposition(Long impositionsId) {
+ return donneesImpositionTfuRepository.findAllByImpositionsTfu_Id(impositionsId);
+ }
+
+ @Override
+ public List getDonneesFiscalesByImpositionArrondissement(Long impositionsId, Long arrondissementId) {
+ Optional optionalArrondissement=arrondissementRepository.findById(arrondissementId);
+ if(optionalArrondissement.isPresent()){
+ return donneesImpositionTfuRepository.findAllByImpositionsTfu_IdAndCodeArrondissement(impositionsId,optionalArrondissement.get().getCode());
+ }else {
+ return null;
+ }
+ }
+}
diff --git a/src/main/java/io/gmss/fiscad/implementations/rfu/metier/ImpositionsTfuServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/rfu/metier/ImpositionsTfuServiceImpl.java
new file mode 100644
index 0000000..1204d29
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/implementations/rfu/metier/ImpositionsTfuServiceImpl.java
@@ -0,0 +1,104 @@
+package io.gmss.fiscad.implementations.rfu.metier;
+
+import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu;
+import io.gmss.fiscad.enums.StatusAvis;
+import io.gmss.fiscad.exceptions.BadRequestException;
+import io.gmss.fiscad.exceptions.NotFoundException;
+import io.gmss.fiscad.interfaces.rfu.metier.ImpositionsTfuService;
+import io.gmss.fiscad.repositories.rfu.metier.ImpositionsTfuRepository;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDate;
+import java.util.List;
+import java.util.Optional;
+
+@Service
+public class ImpositionsTfuServiceImpl implements ImpositionsTfuService {
+
+ private final ImpositionsTfuRepository impositionsTfuRepository;
+
+ public ImpositionsTfuServiceImpl(ImpositionsTfuRepository impositionsTfuRepository) {
+ this.impositionsTfuRepository = impositionsTfuRepository;
+ }
+
+ @Override
+ public ImpositionsTfu createImpositionsTfu(ImpositionsTfu impositionsTfu) throws BadRequestException {
+ if (impositionsTfu.getId() != null) {
+ throw new BadRequestException("Impossible de créer une nouvelle unité de logement ayant un id non null.");
+ }
+ List impositionsTfus=impositionsTfuRepository.getImpositionsTfuByCommuneAndExercice(impositionsTfu.getCommune().getCode(),impositionsTfu.getExercice().getAnnee());
+ if (!impositionsTfus.isEmpty()) {
+ throw new BadRequestException("Une Imposition non annulée existe déjà");
+ }
+ impositionsTfu.setStatusAvis(StatusAvis.CREE);
+ impositionsTfu.setDateGeneration(LocalDate.now());
+ return impositionsTfuRepository.save(impositionsTfu);
+ }
+
+ @Override
+ public ImpositionsTfu annulerImpositionsTfu(ImpositionsTfu impositionsTfu) throws BadRequestException {
+ if (impositionsTfu.getId() == null) {
+ throw new BadRequestException("Impossible d'annuler une imposition ayant un id null.");
+ }
+ if (!impositionsTfuRepository.existsById(impositionsTfu.getId())) {
+ throw new NotFoundException("Impossible de trouver la nouvelle unité de logement spécifiée dans notre base de données.");
+ }
+ impositionsTfu.setStatusAvis(StatusAvis.ANNULE);
+ return impositionsTfuRepository.save(impositionsTfu);
+ }
+
+ @Override
+ public ImpositionsTfu validerImpositionsTfu(ImpositionsTfu impositionsTfu) throws BadRequestException {
+ if (impositionsTfu.getId() == null) {
+ throw new BadRequestException("Impossible de valider une imposition ayant un id null.");
+ }
+ if (!impositionsTfuRepository.existsById(impositionsTfu.getId())) {
+ throw new NotFoundException("Impossible de trouver la nouvelle unité de logement spécifiée dans notre base de données.");
+ }
+ impositionsTfu.setStatusAvis(StatusAvis.VALIDE);
+ return impositionsTfuRepository.save(impositionsTfu);
+ }
+
+ @Override
+ public ImpositionsTfu updateImpositionsTfu(Long id, ImpositionsTfu impositionsTfu) throws NotFoundException {
+ if (impositionsTfu.getId() == null) {
+ throw new BadRequestException("Impossible de mettre à jour une nouvelle unité de logement ayant un id null.");
+ }
+ if (!impositionsTfuRepository.existsById(impositionsTfu.getId())) {
+ throw new NotFoundException("Impossible de trouver la nouvelle unité de logement spécifiée dans notre base de données.");
+ }
+ return impositionsTfuRepository.save(impositionsTfu);
+ }
+
+ @Override
+ public void deleteImpositionsTfu(Long id) throws NotFoundException {
+ Optional impositionsTfuOptional = impositionsTfuRepository.findById(id);
+ if (impositionsTfuOptional.isPresent()) {
+ impositionsTfuRepository.deleteById(impositionsTfuOptional.get().getId());
+ } else {
+ throw new NotFoundException("Impossible de trouver la nouvelle unité de logement spécifiée dans notre base de données.");
+ }
+ }
+
+ @Override
+ public Page getImpositionsTfuList(Pageable pageable) {
+ return impositionsTfuRepository.findAll(pageable);
+ }
+
+ @Override
+ public List getImpositionsTfuList() {
+ return impositionsTfuRepository.findAll();
+ }
+
+
+ @Override
+ public Optional getImpositionsTfuById(Long id) {
+ if (impositionsTfuRepository.existsById(id)) {
+ return impositionsTfuRepository.findById(id);
+ } else {
+ throw new NotFoundException("Impossible de trouver la nouvelle unité de logement spécifiée dans la base de données.");
+ }
+ }
+}
diff --git a/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/BaremRfuNonBatiServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/BaremRfuNonBatiServiceImpl.java
new file mode 100644
index 0000000..4039f4a
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/BaremRfuNonBatiServiceImpl.java
@@ -0,0 +1,67 @@
+package io.gmss.fiscad.implementations.rfu.parametre;
+
+import io.gmss.fiscad.entities.rfu.parametre.BaremRfuNonBati;
+import io.gmss.fiscad.exceptions.BadRequestException;
+import io.gmss.fiscad.exceptions.NotFoundException;
+import io.gmss.fiscad.interfaces.rfu.parametre.BaremRfuNonBatiService;
+import io.gmss.fiscad.repositories.rfu.parametre.BaremRfuNonBatiRepository;
+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;
+
+@Service
+public class BaremRfuNonBatiServiceImpl implements BaremRfuNonBatiService {
+ private final BaremRfuNonBatiRepository baremRfuNonBatiRepository;
+
+ public BaremRfuNonBatiServiceImpl(BaremRfuNonBatiRepository baremRfuNonBatiRepository) {
+ this.baremRfuNonBatiRepository = baremRfuNonBatiRepository;
+ }
+
+ @Override
+ public BaremRfuNonBati createBaremRfuNonBati(BaremRfuNonBati baremRfuNonBati) throws BadRequestException {
+ if (baremRfuNonBati.getId() != null) {
+ throw new BadRequestException("Impossible de créer une nouvelle campgne ayant un id non null.");
+ }
+ return baremRfuNonBatiRepository.save(baremRfuNonBati);
+ }
+ @Override
+ public BaremRfuNonBati updateBaremRfuNonBati(Long id, BaremRfuNonBati baremRfuNonBati) throws NotFoundException {
+ if (baremRfuNonBati.getId() == null) {
+ throw new BadRequestException("Impossible de mettre à jour une nouvelle baremRfuNonBati ayant un id null.");
+ }
+ if (!baremRfuNonBatiRepository.existsById(baremRfuNonBati.getId())) {
+ throw new NotFoundException("Impossible de trouver la baremRfuNonBati spécifiée dans notre base de données.");
+ }
+ return baremRfuNonBatiRepository.save(baremRfuNonBati);
+ }
+
+ @Override
+ public void deleteBaremRfuNonBati(Long id) throws NotFoundException {
+ Optional baremRfuNonBatiOptional = baremRfuNonBatiRepository.findById(id);
+ if (baremRfuNonBatiOptional.isPresent()) {
+ baremRfuNonBatiRepository.deleteById(baremRfuNonBatiOptional.get().getId());
+ } else {
+ throw new NotFoundException("Impossible de trouver la baremRfuNonBati spécifiée dans notre base de données.");
+ }
+ }
+ @Override
+ public Page getBaremRfuNonBatiList(Pageable pageable) {
+ return baremRfuNonBatiRepository.findAll(pageable);
+ }
+
+ @Override
+ public List getBaremRfuNonBatiList() {
+ return baremRfuNonBatiRepository.findAll();
+ }
+
+
+
+ @Override
+ public Optional getBaremRfuNonBatiById(Long id) {
+ return baremRfuNonBatiRepository.findById(id);
+ }
+}
+
diff --git a/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/BaremRfuServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/BaremRfuServiceImpl.java
index 12690e3..765e041 100644
--- a/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/BaremRfuServiceImpl.java
+++ b/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/BaremRfuServiceImpl.java
@@ -1,13 +1,10 @@
package io.gmss.fiscad.implementations.rfu.parametre;
-import io.gmss.fiscad.entities.rfu.parametre.BaremRfu;
-import io.gmss.fiscad.entities.rfu.parametre.Campagne;
-import io.gmss.fiscad.entities.rfu.parametre.CategorieBatiment;
+import io.gmss.fiscad.entities.rfu.parametre.BaremRfuBati;
import io.gmss.fiscad.exceptions.BadRequestException;
import io.gmss.fiscad.exceptions.NotFoundException;
import io.gmss.fiscad.interfaces.rfu.parametre.BaremRfuService;
import io.gmss.fiscad.repositories.rfu.parametre.BaremRfuRepository;
-import io.gmss.fiscad.repositories.rfu.parametre.CampagneRepository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
@@ -23,27 +20,27 @@ public class BaremRfuServiceImpl implements BaremRfuService {
}
@Override
- public BaremRfu createBaremRfu(BaremRfu baremRfu) throws BadRequestException {
- if (baremRfu.getId() != null) {
+ public BaremRfuBati createBaremRfu(BaremRfuBati baremRfuBati) throws BadRequestException {
+ if (baremRfuBati.getId() != null) {
throw new BadRequestException("Impossible de créer un nouvel bareme rfu ayant un id non null.");
}
- return baremRfuRepository.save(baremRfu);
+ return baremRfuRepository.save(baremRfuBati);
}
@Override
- public BaremRfu updateBaremRfu(Long id, BaremRfu baremRfu) throws NotFoundException {
- if (baremRfu.getId() == null) {
+ public BaremRfuBati updateBaremRfu(Long id, BaremRfuBati baremRfuBati) throws NotFoundException {
+ if (baremRfuBati.getId() == null) {
throw new BadRequestException("Impossible de mettre à jour une nouvel bareme rfu ayant un id null.");
}
- if (!baremRfuRepository.existsById(baremRfu.getId())) {
+ if (!baremRfuRepository.existsById(baremRfuBati.getId())) {
throw new NotFoundException("Impossible de trouver le bareme spécifiée dans notre base de données.");
}
- return baremRfuRepository.save(baremRfu);
+ return baremRfuRepository.save(baremRfuBati);
}
@Override
public void deleteBaremRfu(Long id) throws NotFoundException {
- Optional baremRfuOptional = baremRfuRepository.findById(id);
+ Optional baremRfuOptional = baremRfuRepository.findById(id);
if (baremRfuOptional.isPresent()) {
baremRfuRepository.deleteById(baremRfuOptional.get().getId());
} else {
@@ -52,22 +49,22 @@ public class BaremRfuServiceImpl implements BaremRfuService {
}
@Override
- public Page getBaremRfuList(Pageable pageable) {
+ public Page getBaremRfuList(Pageable pageable) {
return baremRfuRepository.findAll(pageable);
}
@Override
- public List getBaremRfuList() {
+ public List getBaremRfuList() {
return baremRfuRepository.findAll();
}
@Override
- public List getBaremRfuByType(Long idCategorieBatiment) {
+ public List getBaremRfuByType(Long idCategorieBatiment) {
return baremRfuRepository.findAllByCategorieBatiment_Id(idCategorieBatiment);
}
@Override
- public Optional getBaremRfuById(Long id) {
+ public Optional getBaremRfuById(Long id) {
return baremRfuRepository.findById(id);
}
}
diff --git a/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/EquipeServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/EquipeServiceImpl.java
index be5ebd8..2a211a6 100644
--- a/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/EquipeServiceImpl.java
+++ b/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/EquipeServiceImpl.java
@@ -65,8 +65,9 @@ public class EquipeServiceImpl implements EquipeService {
for (ParticiperPayload pp : equipePayload.getParticiperPayloads()) {
Participer part = new Participer();
- if (pp.getEquipeId() != null && equipeRepository.existsById(pp.getEquipeId())) {
- part.setEquipe(equipeRepository.findById(pp.getEquipeId()).orElse(null));
+ part.setId(pp.getId());
+ if (pp.getEquipeId() != null && equipeRepository.existsById(equipe.getId())) {
+ part.setEquipe(equipeRepository.findById(equipe.getId()).orElse(null));
}
if (pp.getUserId() != null && userRepository.existsById(pp.getUserId())) {
part.setUser(userRepository.findById(pp.getUserId()).orElse(null));
diff --git a/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/ExerciceServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/ExerciceServiceImpl.java
new file mode 100644
index 0000000..8e217ed
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/ExerciceServiceImpl.java
@@ -0,0 +1,67 @@
+package io.gmss.fiscad.implementations.rfu.parametre;
+
+import io.gmss.fiscad.entities.rfu.parametre.Exercice;
+import io.gmss.fiscad.exceptions.BadRequestException;
+import io.gmss.fiscad.exceptions.NotFoundException;
+import io.gmss.fiscad.interfaces.rfu.parametre.ExerciceService;
+import io.gmss.fiscad.repositories.rfu.parametre.ExerciceRepository;
+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;
+
+@Service
+public class ExerciceServiceImpl implements ExerciceService {
+ private final ExerciceRepository exerciceRepository;
+
+ public ExerciceServiceImpl(ExerciceRepository exerciceRepository) {
+ this.exerciceRepository = exerciceRepository;
+ }
+
+ @Override
+ public Exercice createExercice(Exercice exercice) throws BadRequestException {
+ if (exercice.getId() != null) {
+ throw new BadRequestException("Impossible de créer une nouvelle campgne ayant un id non null.");
+ }
+ return exerciceRepository.save(exercice);
+ }
+ @Override
+ public Exercice updateExercice(Long id, Exercice exercice) throws NotFoundException {
+ if (exercice.getId() == null) {
+ throw new BadRequestException("Impossible de mettre à jour une nouvelle exercice ayant un id null.");
+ }
+ if (!exerciceRepository.existsById(exercice.getId())) {
+ throw new NotFoundException("Impossible de trouver la exercice spécifiée dans notre base de données.");
+ }
+ return exerciceRepository.save(exercice);
+ }
+
+ @Override
+ public void deleteExercice(Long id) throws NotFoundException {
+ Optional exerciceOptional = exerciceRepository.findById(id);
+ if (exerciceOptional.isPresent()) {
+ exerciceRepository.deleteById(exerciceOptional.get().getId());
+ } else {
+ throw new NotFoundException("Impossible de trouver la exercice spécifiée dans notre base de données.");
+ }
+ }
+ @Override
+ public Page getExerciceList(Pageable pageable) {
+ return exerciceRepository.findAll(pageable);
+ }
+
+ @Override
+ public List getExerciceList() {
+ return exerciceRepository.findAll();
+ }
+
+
+
+ @Override
+ public Optional getExerciceById(Long id) {
+ return exerciceRepository.findById(id);
+ }
+}
+
diff --git a/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/ZoneRfuServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/ZoneRfuServiceImpl.java
new file mode 100644
index 0000000..ef9ee0d
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/ZoneRfuServiceImpl.java
@@ -0,0 +1,67 @@
+package io.gmss.fiscad.implementations.rfu.parametre;
+
+import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu;
+import io.gmss.fiscad.exceptions.BadRequestException;
+import io.gmss.fiscad.exceptions.NotFoundException;
+import io.gmss.fiscad.interfaces.rfu.parametre.ZoneRfuService;
+import io.gmss.fiscad.repositories.rfu.parametre.ZoneRfuRepository;
+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;
+
+@Service
+public class ZoneRfuServiceImpl implements ZoneRfuService {
+ private final ZoneRfuRepository zoneRfuRepository;
+
+ public ZoneRfuServiceImpl(ZoneRfuRepository zoneRfuRepository) {
+ this.zoneRfuRepository = zoneRfuRepository;
+ }
+
+ @Override
+ public ZoneRfu createZoneRfu(ZoneRfu zoneRfu) throws BadRequestException {
+ if (zoneRfu.getId() != null) {
+ throw new BadRequestException("Impossible de créer une nouvelle campgne ayant un id non null.");
+ }
+ return zoneRfuRepository.save(zoneRfu);
+ }
+ @Override
+ public ZoneRfu updateZoneRfu(Long id, ZoneRfu zoneRfu) throws NotFoundException {
+ if (zoneRfu.getId() == null) {
+ throw new BadRequestException("Impossible de mettre à jour une nouvelle zoneRfu ayant un id null.");
+ }
+ if (!zoneRfuRepository.existsById(zoneRfu.getId())) {
+ throw new NotFoundException("Impossible de trouver la zoneRfu spécifiée dans notre base de données.");
+ }
+ return zoneRfuRepository.save(zoneRfu);
+ }
+
+ @Override
+ public void deleteZoneRfu(Long id) throws NotFoundException {
+ Optional zoneRfuOptional = zoneRfuRepository.findById(id);
+ if (zoneRfuOptional.isPresent()) {
+ zoneRfuRepository.deleteById(zoneRfuOptional.get().getId());
+ } else {
+ throw new NotFoundException("Impossible de trouver la zoneRfu spécifiée dans notre base de données.");
+ }
+ }
+ @Override
+ public Page getZoneRfuList(Pageable pageable) {
+ return zoneRfuRepository.findAll(pageable);
+ }
+
+ @Override
+ public List getZoneRfuList() {
+ return zoneRfuRepository.findAll();
+ }
+
+
+
+ @Override
+ public Optional getZoneRfuById(Long id) {
+ return zoneRfuRepository.findById(id);
+ }
+}
+
diff --git a/src/main/java/io/gmss/fiscad/implementations/synchronisation/SynchronisationServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/synchronisation/SynchronisationServiceImpl.java
index f81f84b..47c6cc9 100644
--- a/src/main/java/io/gmss/fiscad/implementations/synchronisation/SynchronisationServiceImpl.java
+++ b/src/main/java/io/gmss/fiscad/implementations/synchronisation/SynchronisationServiceImpl.java
@@ -5,9 +5,12 @@ import io.gmss.fiscad.entities.decoupage.Nationalite;
import io.gmss.fiscad.entities.decoupage.Quartier;
import io.gmss.fiscad.entities.infocad.metier.*;
import io.gmss.fiscad.entities.infocad.parametre.*;
+import io.gmss.fiscad.entities.metadata.PieceMetaData;
+import io.gmss.fiscad.entities.metadata.UploadMetaData;
import io.gmss.fiscad.entities.rfu.metier.*;
import io.gmss.fiscad.entities.rfu.parametre.Caracteristique;
import io.gmss.fiscad.entities.rfu.parametre.TypeCaracteristique;
+import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu;
import io.gmss.fiscad.entities.user.User;
import io.gmss.fiscad.enums.Categorie;
import io.gmss.fiscad.enums.ProfileApp;
@@ -21,13 +24,18 @@ import io.gmss.fiscad.paylaods.response.*;
import io.gmss.fiscad.repositories.decoupage.*;
import io.gmss.fiscad.repositories.infocad.metier.*;
import io.gmss.fiscad.repositories.infocad.parametre.*;
+import io.gmss.fiscad.repositories.metadata.PieceMetaDataRepository;
+import io.gmss.fiscad.repositories.metadata.UploadMetaDataRepository;
import io.gmss.fiscad.repositories.rfu.metier.*;
import io.gmss.fiscad.repositories.rfu.parametre.CaracteristiqueRepository;
import io.gmss.fiscad.repositories.rfu.parametre.TypeCaracteristiqueRepository;
+import io.gmss.fiscad.repositories.rfu.parametre.ZoneRfuRepository;
import io.gmss.fiscad.repositories.user.UserRepository;
import io.gmss.fiscad.service.FileStorageService;
+import jakarta.transaction.Transactional;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.jpa.repository.Modifying;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Service;
@@ -70,10 +78,13 @@ public class SynchronisationServiceImpl implements SynchronisationService {
private final PieceRepository pieceRepository;
private final ActeurConcerneRepository acteurConcerneRepository;
private final UploadRepository uploadRepository;
+ private final UploadMetaDataRepository uploadMetaDataRepository;
+ private final PieceMetaDataRepository pieceMetaDataRepository;
private final FileStorageService fileStorageService;
private final TpeRepository tpeRepository;
private final BatimentRepository batimentRepository;
private final UniteLogementRepository uniteLogementRepository;
+ private final ZoneRfuRepository zoneRfuRepository;
private final CaracteristiqueRepository caracteristiqueRepository;
private final TypeCaracteristiqueRepository typeCaracteristiqueRepository;
@@ -107,7 +118,9 @@ public class SynchronisationServiceImpl implements SynchronisationService {
quartierRepository.getQuartierResponse(user.getStructure().getId());
List blocSyncResponses = new ArrayList<>();
- if (profile.equals(ProfileApp.ABOMEY.toString())) {
+ System.out.println(profile);
+ if (profile.equals(ProfileApp.ABOMEY.toString().toLowerCase())) {
+ System.out.println("ABOMEY");
if (user.getStructure() != null) {
System.out.println(user.getStructure().getId());
blocSyncResponses =
@@ -115,7 +128,8 @@ public class SynchronisationServiceImpl implements SynchronisationService {
}
}
- if (profile.equals(ProfileApp.DGI.toString())) {
+ if (profile.equals(ProfileApp.DGI.toString().toLowerCase())) {
+ System.out.println("DGI");
if (user.getIdSecteurCourant() != null) {
blocSyncResponses =
blocRepository.getBlocSecteurResponse(user.getStructure().getId(), user.getIdSecteurCourant());
@@ -156,6 +170,9 @@ public class SynchronisationServiceImpl implements SynchronisationService {
List caracteristiquesSyncResponses = caracteristiqueRepository.findAllByActifIsTrue();
List typeCaracteristiquesSyncResponses = typeCaracteristiqueRepository.findAllByActifIsTrue();
+ List zoneRfuSyncResponses = zoneRfuRepository.getZoneRfuResponse();
+
+
referencesSyncResponses.setNatureDomaineSyncResponses(natureDomaineSyncResponses);
referencesSyncResponses.setNationaliteSyncResponses(nationaliteSyncResponses);
@@ -177,6 +194,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
referencesSyncResponses.setCaracteristiquesSyncResponses(caracteristiquesSyncResponses);
referencesSyncResponses.setTypeCaracteristiquesSyncResponses(typeCaracteristiquesSyncResponses);
+ referencesSyncResponses.setZoneRfuSyncResponses(zoneRfuSyncResponses);
return referencesSyncResponses;
}
@@ -231,26 +249,31 @@ public class SynchronisationServiceImpl implements SynchronisationService {
personnePayLoad.setSynchronise(true);
if (personnePayLoad.getIdBackend() != null && personnePayLoad.getIdBackend() != 0) {
Optional optionalPersonne = personneRepository.findById(personnePayLoad.getIdBackend());
- if (!optionalPersonne.isPresent()) {
- personnePayLoad.setObservation("La clé interne est non valide : Enregistrement inexistant ");
- personnePayLoad.setSynchronise(false);
- } else {
- System.out.println("JE SUIS DANS INSERTION.");
- deleteFromPersonne(personnePayLoad.getIdBackend());
- System.out.println("FIN DELETE");
+ if (optionalPersonne.isPresent()) {
+ personne = optionalPersonne.get();
+ System.out.println("SUPRESSION FROM PERSONNE "+personne.getId());
+ deleteFromPersonne(personne.getId());
+ }else{
+ personnePayLoad.setIdBackend(null);
+ }
+ personne = getPersonneFromPersonnePayLoad(personne, personnePayLoad);
+ personne = personneRepository.save(personne);
+ personnePayLoad.setIdBackend(personne.getId());
+ }
+ else {
+ Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(personnePayLoad.getExternalKey(),personnePayLoad.getTerminalId());
+ if(optionalPersonne.isPresent()){
+ System.out.println("SUPRESSION FROM PERSONNE "+personne.getId());
+ deleteFromPersonne(optionalPersonne.get().getId());
personne = optionalPersonne.get();
personne = getPersonneFromPersonnePayLoad(personne, personnePayLoad);
personne = personneRepository.save(personne);
personnePayLoad.setIdBackend(personne.getId());
+ }else {
+ personne = getPersonneFromPersonnePayLoad(personne, personnePayLoad);
+ personne = personneRepository.save(personne);
+ personnePayLoad.setIdBackend(personne.getId());
}
- } else {
-// Optional optionalPersonne=personneRepository.findFirstByExternalKey(personnePayLoad.getExternalKey());
-// if(optionalPersonne.isPresent()){
-// personneRepository.delete(optionalPersonne.get());
-// }
- personne = getPersonneFromPersonnePayLoad(personne, personnePayLoad);
- personne = personneRepository.save(personne);
- personnePayLoad.setIdBackend(personne.getId());
}
syncResponse.setObservation(personnePayLoad.getObservation());
syncResponse.setExternalKey(personnePayLoad.getExternalKey());
@@ -271,8 +294,10 @@ public class SynchronisationServiceImpl implements SynchronisationService {
private void deleteFromPersonne(Long idBackend) {
- uploadRepository.deleteUploadByPiece_Personne_Id(idBackend);
uploadRepository.deleteUploadByMembreGroupe_PersonneRepresantee_Id(idBackend);
+ uploadRepository.deleteUploadByPiece_Personne_Id(idBackend);
+
+ uploadRepository.deleteUploadByPersonne_Id(idBackend);
membreGroupeRepository.deleteMembreGroupeByPersonneRepresantante_Id(idBackend);
pieceRepository.deletePieceByPersonne_Id(idBackend);
}
@@ -306,6 +331,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
Optional optionalTpe = tpeRepository.findById(personnePayLoad.getTerminalId());
personne.setTerminal(optionalTpe.orElse(null));
}
+
personne.setCategorie(personnePayLoad.getCategorie());
personne.setAdresse(personnePayLoad.getAdresse());
personne.setIfu(personnePayLoad.getIfu());
@@ -393,22 +419,27 @@ public class SynchronisationServiceImpl implements SynchronisationService {
membreGroupePayLoad.setSynchronise(true);
if (membreGroupePayLoad.getIdBackend() != null && membreGroupePayLoad.getIdBackend() != 0) {
Optional optionalMembreGroupe = membreGroupeRepository.findById(membreGroupePayLoad.getIdBackend());
- if (!optionalMembreGroupe.isPresent()) {
- membreGroupePayLoad.setObservation("La clé interne est non valide : Enregistrement inexistant ");
- membreGroupePayLoad.setSynchronise(false);
- } else {
+ if (optionalMembreGroupe.isPresent()) {
membreGroupe = optionalMembreGroupe.get();
- membreGroupe = getMembreGroupeFromMembreGroupePayLoad(membreGroupe, membreGroupePayLoad);
- if (membreGroupe != null) {
- membreGroupe = membreGroupeRepository.save(membreGroupe);
- membreGroupePayLoad.setIdBackend(membreGroupe.getId());
- }
+ } else {
+ membreGroupePayLoad.setIdBackend(null);
}
- } else {
- membreGroupe = getMembreGroupeFromMembreGroupePayLoad(membreGroupe, membreGroupePayLoad);
- membreGroupe = membreGroupeRepository.save(membreGroupe);
- membreGroupePayLoad.setIdBackend(membreGroupe.getId());
+ membreGroupe = getMembreGroupeFromMembreGroupePayLoad(membreGroupe, membreGroupePayLoad);
+ membreGroupe = membreGroupeRepository.save(membreGroupe);
+ membreGroupePayLoad.setIdBackend(membreGroupe.getId());
+ } else {
+ Optional optionalMembreGroupe = membreGroupeRepository.findFirstByExternalKeyAndTerminal_Id(membreGroupePayLoad.getExternalKey(),membreGroupePayLoad.getTerminalId());
+ if (optionalMembreGroupe.isPresent()) {
+ membreGroupe=optionalMembreGroupe.get();
+ membreGroupe = getMembreGroupeFromMembreGroupePayLoad(membreGroupe, membreGroupePayLoad);
+ membreGroupe = membreGroupeRepository.save(membreGroupe);
+ membreGroupePayLoad.setIdBackend(membreGroupe.getId());
+ }else {
+ membreGroupe = getMembreGroupeFromMembreGroupePayLoad(membreGroupe, membreGroupePayLoad);
+ membreGroupe = membreGroupeRepository.save(membreGroupe);
+ membreGroupePayLoad.setIdBackend(membreGroupe.getId());
+ }
}
SyncResponse syncResponse = new SyncResponse();
syncResponse.setObservation(membreGroupePayLoad.getObservation());
@@ -461,6 +492,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
}
@Override
+ @Transactional
public List syncEnquete(List enquetePayLoads) {
List syncResponses = new ArrayList<>();
if (enquetePayLoads == null) {
@@ -469,8 +501,14 @@ public class SynchronisationServiceImpl implements SynchronisationService {
syncResponses.add(syncResponse);
return syncResponses;
}
+ enquetePayLoads.forEach(enquetePayLoad -> {
+ System.out.println("ENQUETE A SUPPRIMER " +enquetePayLoad.getCodeParcelle());
+ deleteFromCodeParcelle(enquetePayLoad.getCodeParcelle());
+ });
+
enquetePayLoads.forEach(enquetePayLoad -> {
try {
+ // deleteFromCodeParcelle(enquetePayLoad.getCodeParcelle());
if (enquetePayLoad.getTerminalId() == null) {
SyncResponse syncResponse = new SyncResponse(enquetePayLoad.getIdBackend(),
enquetePayLoad.getExternalKey(), false, "Le terminal n'est pas précisé");
@@ -500,6 +538,15 @@ public class SynchronisationServiceImpl implements SynchronisationService {
return;
}
}
+ if (enquetePayLoad.getZoneRfuId() != null) {
+ Optional optionalZoneRfu = zoneRfuRepository.findById(enquetePayLoad.getZoneRfuId());
+ if (optionalZoneRfu.isEmpty()) {
+ SyncResponse syncResponse = new SyncResponse(enquetePayLoad.getIdBackend(),
+ enquetePayLoad.getExternalKey(), false, "La zone rfu n'existe pas");
+ syncResponses.add(syncResponse);
+ return;
+ }
+ }
if (enquetePayLoad.getParcelleId() == null) {
SyncResponse syncResponse = new SyncResponse(enquetePayLoad.getIdBackend(),
enquetePayLoad.getExternalKey(), false, "La parcelle n'est pas précisée");
@@ -530,34 +577,21 @@ public class SynchronisationServiceImpl implements SynchronisationService {
}
Enquete enquete = new Enquete();
enquetePayLoad.setSynchronise(true);
+ Optional optionalEnquete;
if (enquetePayLoad.getIdBackend() != null && enquetePayLoad.getIdBackend() != 0) {
- Optional optionalEnquete = enqueteRepository.findById(enquetePayLoad.getIdBackend());
- if (!optionalEnquete.isPresent()) {
- enquetePayLoad.setObservation("La clé interne est non valide : Enregistrement inexistant ");
- enquetePayLoad.setSynchronise(false);
- } else {
- //récupération de l'enquete en base de donnéees
- enquete = optionalEnquete.get();
- //verification du statut de l'enquete (Si le status est en_cours ou rejet alors mise à jour)
- if (enquete.getStatusEnquete().equals(StatusEnquete.EN_COURS) || enquete.getStatusEnquete().equals(StatusEnquete.REJETE)) {
- // suppression des pièces, uploads et acteurs concernés
- deleteFromEnquete(enquetePayLoad.getIdBackend());
- enquete = getEnqueteFromEnquetePayLoad(enquete, enquetePayLoad);
- enquete.setStatutEnregistrement(StatutEnregistrement.MISE_A_JOUR);
-
- enquete = enqueteRepository.save(enquete);
- enquetePayLoad.setIdBackend(enquete.getId());
-
- } else {
- enquetePayLoad.setObservation("Le statut de cette enquête est déjà VALIDE. Une mise à jour sur cette enquête n'est donc plus possible.");
- }
- }
+ optionalEnquete = enqueteRepository.findById(enquetePayLoad.getIdBackend());
} else {
- enquete = getEnqueteFromEnquetePayLoad(enquete, enquetePayLoad);
- enquete.setStatutEnregistrement(StatutEnregistrement.NOUVELLE_INSERTION);
- enquete = enqueteRepository.save(enquete);
- enquetePayLoad.setIdBackend(enquete.getId());
+ optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(enquetePayLoad.getExternalKey(), enquetePayLoad.getTerminalId());
}
+ if (optionalEnquete.isPresent()) {
+ enquete = optionalEnquete.get();
+ } else {
+ enquetePayLoad.setIdBackend(null);
+ }
+ enquete = getEnqueteFromEnquetePayLoad(enquete, enquetePayLoad);
+ enquete.setStatutEnregistrement(StatutEnregistrement.NOUVELLE_INSERTION);
+ enquete = enqueteRepository.save(enquete);
+ enquetePayLoad.setIdBackend(enquete.getId());
SyncResponse syncResponse = new SyncResponse();
syncResponse.setObservation(enquetePayLoad.getObservation());
syncResponse.setExternalKey(enquetePayLoad.getExternalKey());
@@ -566,7 +600,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
syncResponses.add(syncResponse);
try{
if(enquete.getParcelle()!=null) {
- parcelleGeomService.setStatutParcelleGeom(enquete.getParcelle().getNupProvisoire());
+ parcelleGeomService.setStatutParcelleGeomFromEnquete(enquete);
}
}catch (Exception e){
e.printStackTrace();
@@ -584,7 +618,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
private void deleteFromEnquete(Long idBackend) {
try {
- uploadRepository.deleteUploadByEnqueteID(idBackend);
+ uploadRepository.deleteUploadByEnqueteId(idBackend);
} catch (Exception e) {
}
@@ -598,6 +632,86 @@ public class SynchronisationServiceImpl implements SynchronisationService {
} catch (Exception e) {
}
+ try {
+ caracteristiqueParcelleRepository.deleteAllByEnquete_Id(idBackend);
+ } catch (Exception e) {
+
+ }
+ }
+
+ //@Transactional
+ protected void deleteFromCodeParcelle(String codeParcelle) {
+ Optional optionalEnquete=enqueteRepository.findFirstByCodeParcelle(codeParcelle);
+ Long idEnquete=null;
+ if(optionalEnquete.isPresent()){
+ idEnquete=optionalEnquete.get().getId();
+ }
+ if(idEnquete!=null) {
+ System.out.println("ENQUETE ID"+idEnquete);
+ try {
+ uploadRepository.deleteUploadByEnqueteId(idEnquete);
+ } catch (Exception e) {
+
+ }
+ try {
+ pieceRepository.deletePieceByEnqueteId(idEnquete);
+ } catch (Exception e) {
+
+ }
+ try {
+ acteurConcerneRepository.deleteActeurConcerneByEnquete(idEnquete);
+ } catch (Exception e) {
+
+ }
+ try {
+ caracteristiqueParcelleRepository.deleteAllByEnquete_Id(idEnquete);
+ } catch (Exception e) {
+
+ }
+
+ try {
+ caracteristiqueBatimentRepository.deleteByEnqueteId(idEnquete);
+ }catch (Exception e){
+
+ }
+
+ try {
+ caracteristiqueUniteLogementRepository.deleteByEnqueteId(idEnquete);
+ }catch (Exception e){
+
+ }
+
+ try {
+ enqueteBatimentRepository.deleteAllByEnquete_Id(idEnquete);
+ }catch (Exception e){
+
+ }
+
+ try {
+ enqueteUniteLogementRepository.deleteAllByEnquete_id(idEnquete);
+ }catch (Exception e){
+
+ }
+
+ try {
+ uniteLogementRepository.deleteByEnqueteId(idEnquete);
+ }catch (Exception e){
+
+ }
+
+ try {
+ batimentRepository.deleteByEnqueteId(idEnquete);
+ }catch (Exception e){
+
+ }
+
+ try {
+ System.out.println("SUPPRESSION DE ENQUETE "+idEnquete);
+ enqueteRepository.deleteById(idEnquete);
+ }catch (Exception e){
+
+ }
+ }
}
private Enquete getEnqueteFromEnquetePayLoad(Enquete enquete, EnquetePayLoad enquetePayLoad) {
@@ -606,9 +720,14 @@ public class SynchronisationServiceImpl implements SynchronisationService {
Optional optionalUser = userRepository.findById(enquetePayLoad.getUserId());
enquete.setUser(optionalUser.orElse(null));
}
+ if (enquetePayLoad.getZoneRfuId() != null) {
+ Optional optionalZoneRfu = zoneRfuRepository.findById(enquetePayLoad.getZoneRfuId());
+ enquete.setZoneRfu(optionalZoneRfu.orElse(null));
+ }
if (enquetePayLoad.getParcelleId() != null) {
- Optional optionalParcelle = parcelleRepository.findFirstByExternalKeyAndTerminal_Id(enquetePayLoad.getParcelleId(), enquetePayLoad.getTerminalId());
+ Optional optionalParcelle = parcelleRepository.findFirstByNupProvisoire(enquetePayLoad.getCodeParcelle());
+ //Optional optionalParcelle = parcelleRepository.findFirstByExternalKeyAndTerminal_Id(enquetePayLoad.getParcelleId(), enquetePayLoad.getTerminalId());
enquete.setParcelle(optionalParcelle.orElse(null));
}
if (enquetePayLoad.getBlocId() != null) {
@@ -620,14 +739,13 @@ public class SynchronisationServiceImpl implements SynchronisationService {
Optional optionalTpe = tpeRepository.findById(enquetePayLoad.getTerminalId());
enquete.setTerminal(optionalTpe.orElse(null));
}
-
+ enquete.setParcelleExternalKey(enquetePayLoad.getParcelleId());
enquete.setStatusEnquete(enquetePayLoad.getStatusEnquete());
enquete.setLitige(enquetePayLoad.isLitige());
enquete.setObservationParticuliere(enquetePayLoad.getObservationParticuliere());
enquete.setDateEnquete(enquetePayLoad.getDateEnquete());
enquete.setDateFinalisation(enquetePayLoad.getDateFinalisation());
enquete.setExternalKey(enquetePayLoad.getExternalKey());
-
enquete.setQuartierId(enquetePayLoad.getQuartierId());
enquete.setArrondissementId(enquetePayLoad.getArrondissementId());
enquete.setCommuneId(enquetePayLoad.getCommuneId());
@@ -638,10 +756,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
enquete.setNomProprietaireParcelle(enquetePayLoad.getNomProprietaireParcelle());
enquete.setCodeEquipe(enquetePayLoad.getCodeEquipe());
enquete.setNumeroTitreFoncier(enquetePayLoad.getNumeroTitreFoncier());
-
-
// Liste des champs pour FISCAD
-
enquete.setNumEnterParcelle(enquetePayLoad.getNumEnterParcelle());
enquete.setNumRue(enquetePayLoad.getNumRue());
enquete.setNomRue(enquetePayLoad.getNomRue());
@@ -656,14 +771,14 @@ public class SynchronisationServiceImpl implements SynchronisationService {
enquete.setNbrePiscine(enquetePayLoad.getNbrePiscine());
enquete.setDateDebutExcemption(enquetePayLoad.getDateDebutExcemption());
enquete.setDateFinExcemption(enquetePayLoad.getDateFinExcemption());
-
+ enquete.setPersonneId(enquetePayLoad.getPersonneId());
+ enquete.setAutreNumeroTitreFoncier(enquete.getAutreNumeroTitreFoncier());
return enquete;
}
private Batiment getBatimentFromBatimentPayLoad(Batiment batiment, BatimentPaylaod batimentPaylaod) {
-
if (batimentPaylaod.getParcelleId() != null) {
Optional optionalParcelle = parcelleRepository.findFirstByExternalKeyAndTerminal_Id(batimentPaylaod.getParcelleId(), batimentPaylaod.getTerminalId());
batiment.setParcelle(optionalParcelle.orElse(null));
@@ -673,8 +788,14 @@ public class SynchronisationServiceImpl implements SynchronisationService {
Optional optionalTpe = tpeRepository.findById(batimentPaylaod.getTerminalId());
batiment.setTerminal(optionalTpe.orElse(null));
}
-
-
+ if (batimentPaylaod.getTerminalId() != null && batimentPaylaod.getEnqueteId()!=null) {
+ Optional optionalEnquete=enqueteRepository.findFirstByExternalKeyAndTerminal_Id(batimentPaylaod.getEnqueteId(),batimentPaylaod.getTerminalId());
+ if(optionalEnquete.isPresent()){
+ batiment.setEnqueteId(optionalEnquete.get().getId());
+ }
+ }
+ batiment.setParcelleExternalKey(batimentPaylaod.getParcelleId());
+ batiment.setEnqueteExternalKey(batimentPaylaod.getEnqueteId());
batiment.setNub(batimentPaylaod.getNub());
batiment.setCode(batimentPaylaod.getCode());
batiment.setDateConstruction(batimentPaylaod.getDateConstruction());
@@ -685,11 +806,6 @@ public class SynchronisationServiceImpl implements SynchronisationService {
private UniteLogement getUniteLogementFromUniteLogementPayLoad(UniteLogement uniteLogement, UniteLogementPaylaod uniteLogementPaylaod) {
-// if (batimentPaylaod.getUserId() != null) {
-// Optional optionalUser = userRepository.findById(batimentPaylaod.getUserId());
-// batiment.setUser(optionalUser.orElse(null));
-// }
-
if (uniteLogementPaylaod.getBatimentId() != null) {
Optional optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPaylaod.getBatimentId(), uniteLogementPaylaod.getTerminalId());
uniteLogement.setBatiment(optionalBatiment.orElse(null));
@@ -699,11 +815,18 @@ public class SynchronisationServiceImpl implements SynchronisationService {
Optional optionalTpe = tpeRepository.findById(uniteLogementPaylaod.getTerminalId());
uniteLogement.setTerminal(optionalTpe.orElse(null));
}
-
+ if (uniteLogementPaylaod.getTerminalId() != null && uniteLogementPaylaod.getEnqueteId()!=null) {
+ Optional optionalEnquete=enqueteRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPaylaod.getEnqueteId(),uniteLogementPaylaod.getTerminalId());
+ if(optionalEnquete.isPresent()){
+ uniteLogement.setEnqueteId(optionalEnquete.get().getId());
+ }
+ }
+ uniteLogement.setEnqueteExternalKey(uniteLogementPaylaod.getEnqueteId());
uniteLogement.setNul(uniteLogementPaylaod.getNul());
uniteLogement.setNumeroEtage(uniteLogementPaylaod.getNumeroEtage());
uniteLogement.setCode(uniteLogementPaylaod.getCode());
uniteLogement.setExternalKey(uniteLogementPaylaod.getExternalKey());
+ uniteLogement.setBatimentExternalKey(uniteLogementPaylaod.getBatimentId());
return uniteLogement;
}
@@ -720,6 +843,18 @@ public class SynchronisationServiceImpl implements SynchronisationService {
caracteristiqueUniteLogement.setCaracteristique(optionalCaracteristique.orElse(null));
}
+ if (caracteristiqueUniteLogementPaylod.getTerminalId() != null) {
+ Optional optionalTpe = tpeRepository.findById(caracteristiqueUniteLogementPaylod.getTerminalId());
+ caracteristiqueUniteLogement.setTerminal(optionalTpe.orElse(null));
+ }
+ if (caracteristiqueUniteLogementPaylod.getTerminalId() != null && caracteristiqueUniteLogementPaylod.getEnqueteId()!=null) {
+ Optional optionalEnquete=enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueUniteLogementPaylod.getEnqueteId(),caracteristiqueUniteLogementPaylod.getTerminalId());
+ if(optionalEnquete.isPresent()){
+ caracteristiqueUniteLogement.setEnqueteId(optionalEnquete.get().getId());
+ }
+ }
+ caracteristiqueUniteLogement.setEnqueteExternalKey(caracteristiqueUniteLogementPaylod.getEnqueteId());
+ caracteristiqueUniteLogement.setEnqueteUniteLogementExternalKey(caracteristiqueUniteLogementPaylod.getEnqueteUniteLogementId());
caracteristiqueUniteLogement.setValeur(caracteristiqueUniteLogementPaylod.getValeur());
caracteristiqueUniteLogement.setExternalKey(caracteristiqueUniteLogementPaylod.getExternalKey());
return caracteristiqueUniteLogement;
@@ -740,6 +875,20 @@ public class SynchronisationServiceImpl implements SynchronisationService {
caracteristiqueBatiment.setCaracteristique(optionalCaracteristique.orElse(null));
}
+ if (caracteristiqueBatimentPaylod.getTerminalId() != null) {
+ Optional optionalTpe = tpeRepository.findById(caracteristiqueBatimentPaylod.getTerminalId());
+ caracteristiqueBatiment.setTerminal(optionalTpe.orElse(null));
+ }
+
+
+ if (caracteristiqueBatimentPaylod.getTerminalId() != null && caracteristiqueBatimentPaylod.getEnqueteId()!=null) {
+ Optional optionalEnquete=enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueBatimentPaylod.getEnqueteId(),caracteristiqueBatimentPaylod.getTerminalId());
+ if(optionalEnquete.isPresent()){
+ caracteristiqueBatiment.setEnqueteId(optionalEnquete.get().getId());
+ }
+ }
+ caracteristiqueBatiment.setEnqueteBatimentExternalKey(caracteristiqueBatimentPaylod.getEnqueteBatimentId());
+ caracteristiqueBatiment.setEnqueteExternalKey(caracteristiqueBatimentPaylod.getEnqueteId());
caracteristiqueBatiment.setValeur(caracteristiqueBatimentPaylod.getValeur());
caracteristiqueBatiment.setExternalKey(caracteristiqueBatimentPaylod.getExternalKey());
return caracteristiqueBatiment;
@@ -750,6 +899,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
if (caracteristiqueParcellePaylod.getEnqueteId() != null) {
Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueParcellePaylod.getEnqueteId(), caracteristiqueParcellePaylod.getTerminalId());
+
caracteristiqueParcelle.setEnquete(optionalEnquete.orElse(null));
}
@@ -758,7 +908,12 @@ public class SynchronisationServiceImpl implements SynchronisationService {
caracteristiqueParcelle.setCaracteristique(optionalCaracteristique.orElse(null));
}
+ if (caracteristiqueParcellePaylod.getTerminalId() != null) {
+ Optional optionalTpe = tpeRepository.findById(caracteristiqueParcellePaylod.getTerminalId());
+ caracteristiqueParcelle.setTerminal(optionalTpe.orElse(null));
+ }
+ caracteristiqueParcelle.setEnqueteExternalKey(caracteristiqueParcellePaylod.getEnqueteId());
caracteristiqueParcelle.setValeur(caracteristiqueParcellePaylod.getValeur());
caracteristiqueParcelle.setExternalKey(caracteristiqueParcellePaylod.getExternalKey());
return caracteristiqueParcelle;
@@ -776,6 +931,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
}
parcellePayLoads.forEach(parcellePayLoad -> {
+ System.out.println(parcellePayLoad);
try {
if (parcellePayLoad.getTerminalId() == null) {
SyncResponse syncResponse = new SyncResponse(parcellePayLoad.getIdBackend(),
@@ -793,18 +949,14 @@ public class SynchronisationServiceImpl implements SynchronisationService {
}
Parcelle parcelle = new Parcelle();
parcellePayLoad.setSynchronise(true);
- if (parcellePayLoad.getIdBackend() != null && parcellePayLoad.getIdBackend() != 0) {
- Optional optionalParcelle = parcelleRepository.findById(parcellePayLoad.getIdBackend());
- if (!optionalParcelle.isPresent()) {
- parcellePayLoad.setObservation("La clé interne est non valide : Enregistrement inexistant ");
+ if (parcellePayLoad.getNupProvisoire() == null || parcellePayLoad.getNupProvisoire()=="" ) {
+ parcellePayLoad.setObservation("Le code parcelle n'est pas précisé");
parcellePayLoad.setSynchronise(false);
- } else {
- parcelle = optionalParcelle.get();
- parcelle = getParcelleFromParcellePayLoad(parcelle, parcellePayLoad);
- parcelle = parcelleRepository.save(parcelle);
- parcellePayLoad.setIdBackend(parcelle.getId());
- }
} else {
+ Optional optionalParcelle = parcelleRepository.findFirstByNupProvisoire(parcellePayLoad.getNupProvisoire());
+ if(optionalParcelle.isPresent()){
+ parcelle=optionalParcelle.get();
+ }
parcelle = getParcelleFromParcellePayLoad(parcelle, parcellePayLoad);
parcelle = parcelleRepository.save(parcelle);
parcellePayLoad.setIdBackend(parcelle.getId());
@@ -857,6 +1009,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
parcelle.setBlocId(parcellePayLoad.getBlocId());
parcelle.setObservation(parcellePayLoad.getObservation());
parcelle.setSituationGeographique(parcellePayLoad.getSituationGeographique());
+ parcelle.setAutreNumeroTitreFoncier(parcellePayLoad.getAutreNumeroTitreFoncier());
return parcelle;
}
@@ -888,9 +1041,9 @@ public class SynchronisationServiceImpl implements SynchronisationService {
}
if (piecePayLoad.getPersonneId() == null && piecePayLoad.getActeurConcerneId() == null) {
- SyncResponse syncResponse = new SyncResponse(piecePayLoad.getIdBackend(),
+ SyncResponse syncResponse = new SyncResponse(piecePayLoad.getIdBackend(),
piecePayLoad.getExternalKey(), false, "La personne ou l'acteur concerné n'est pas précisé");
- syncResponses.add(syncResponse);
+ syncResponses.add(syncResponse);
return;
} else {
if (piecePayLoad.getPersonneId() != null) {
@@ -914,28 +1067,40 @@ public class SynchronisationServiceImpl implements SynchronisationService {
}
Piece piece = new Piece();
piecePayLoad.setSynchronise(true);
+ System.out.println("JE SUIS AU DEBUT DU TEST DE PIECE");
+ System.out.println(piecePayLoad);
+ Optional optionalPiece=Optional.empty();
if (piecePayLoad.getIdBackend() != null && piecePayLoad.getIdBackend() != 0) {
- Optional optionalPiece = pieceRepository.findById(piecePayLoad.getIdBackend());
- if (!optionalPiece.isPresent()) {
- piecePayLoad.setObservation("La clé interne est non valide : Enregistrement inexistant ");
- piecePayLoad.setSynchronise(false);
- } else {
- piece = optionalPiece.get();
- piece = getPieceFromPiecePayLoad(piece, piecePayLoad);
- piece = pieceRepository.save(piece);
- piecePayLoad.setIdBackend(piece.getId());
- }
- } else {
- piece = getPieceFromPiecePayLoad(piece, piecePayLoad);
- piece = pieceRepository.save(piece);
- piecePayLoad.setIdBackend(piece.getId());
+ optionalPiece = pieceRepository.findById(piecePayLoad.getIdBackend());
+ }else{
+ optionalPiece = pieceRepository.findFirstByExternalKeyAndTerminal_Id(piecePayLoad.getExternalKey(),piecePayLoad.getTerminalId());
}
+ if (optionalPiece.isPresent()) {
+ piece = optionalPiece.get();
+ }else {
+ piecePayLoad.setIdBackend(null);
+ }
+
+ piece = getPieceFromPiecePayLoad(piece, piecePayLoad);
+ piece = pieceRepository.save(piece);
+ piecePayLoad.setIdBackend(piece.getId());
+
SyncResponse syncResponse = new SyncResponse();
syncResponse.setObservation(piecePayLoad.getObservation());
syncResponse.setExternalKey(piecePayLoad.getExternalKey());
syncResponse.setSynchronise(piecePayLoad.isSynchronise());
syncResponse.setIdBackend(piecePayLoad.getIdBackend());
syncResponses.add(syncResponse);
+
+ try{
+ PieceMetaData pieceMetaData= new PieceMetaData();
+ pieceMetaData.setPieceJson(piece);
+ pieceMetaData.setPieceId(piece.getId());
+ pieceMetaDataRepository.save(pieceMetaData);
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+
} catch (Exception e) {
SyncResponse syncResponse = new SyncResponse(piecePayLoad.getIdBackend(),
piecePayLoad.getExternalKey(), false, "Erreur inattendue");
@@ -981,6 +1146,17 @@ public class SynchronisationServiceImpl implements SynchronisationService {
Optional optionalTpe = tpeRepository.findById(piecePayLoad.getTerminalId());
piece.setTerminal(optionalTpe.orElse(null));
}
+
+ if (piecePayLoad.getTerminalId() != null && piecePayLoad.getEnqueteId()!=null) {
+ Optional optionalEnquete=enqueteRepository.findFirstByExternalKeyAndTerminal_Id(piecePayLoad.getEnqueteId(),piecePayLoad.getTerminalId());
+ if(optionalEnquete.isPresent()){
+ piece.setEnqueteId(optionalEnquete.get().getId());
+ }
+ }
+
+ piece.setActeurConcerneExternalKey(piecePayLoad.getActeurConcerneId());
+ piece.setPersonneExternalKey(piecePayLoad.getPersonneId());
+ piece.setEnqueteExternalKey(piecePayLoad.getEnqueteId());
piece.setNumeroPiece(piecePayLoad.getNumeroPiece());
piece.setUrl(piecePayLoad.getUrl());
piece.setExternalKey(piecePayLoad.getExternalKey());
@@ -989,6 +1165,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
piece.setMax_numero_acteur_concerne_id(piecePayLoad.getMax_numero_acteur_concerne_id());
piece.setEnqueteId(piecePayLoad.getEnqueteId());
piece.setBlocId(piecePayLoad.getBlocId());
+ piece.setEnqueteExternalKey(piecePayLoad.getEnqueteId());
return piece;
}
@@ -1049,16 +1226,20 @@ public class SynchronisationServiceImpl implements SynchronisationService {
acteurConcernePayLoad.setSynchronise(true);
if (acteurConcernePayLoad.getIdBackend() != null && acteurConcernePayLoad.getIdBackend() != 0) {
Optional optionalActeurConcerne = acteurConcerneRepository.findById(acteurConcernePayLoad.getIdBackend());
- if (!optionalActeurConcerne.isPresent()) {
- acteurConcernePayLoad.setObservation("La clé interne est non valide : Enregistrement inexistant ");
- acteurConcernePayLoad.setSynchronise(false);
- } else {
+ if (optionalActeurConcerne.isPresent()) {
acteurConcerne = optionalActeurConcerne.get();
- acteurConcerne = getActeurConcerneFromActeurConcernePayLoad(acteurConcerne, acteurConcernePayLoad);
- acteurConcerne = acteurConcerneRepository.save(acteurConcerne);
- acteurConcernePayLoad.setIdBackend(acteurConcerne.getId());
+ } else {
+ acteurConcernePayLoad.setIdBackend(null);
}
+ acteurConcerne = getActeurConcerneFromActeurConcernePayLoad(acteurConcerne, acteurConcernePayLoad);
+ acteurConcerne = acteurConcerneRepository.save(acteurConcerne);
+ acteurConcernePayLoad.setIdBackend(acteurConcerne.getId());
+
} else {
+ Optional optionalActeurConcerne = acteurConcerneRepository.findFirstByExternalKeyAndTerminal_Id(acteurConcernePayLoad.getExternalKey(),acteurConcernePayLoad.getTerminalId());
+ if(optionalActeurConcerne.isPresent()){
+ acteurConcerne=optionalActeurConcerne.get();
+ }
acteurConcerne = getActeurConcerneFromActeurConcernePayLoad(acteurConcerne, acteurConcernePayLoad);
acteurConcerne = acteurConcerneRepository.save(acteurConcerne);
acteurConcernePayLoad.setIdBackend(acteurConcerne.getId());
@@ -1106,6 +1287,9 @@ public class SynchronisationServiceImpl implements SynchronisationService {
Optional optionalTpe = tpeRepository.findById(acteurConcernePayLoad.getTerminalId());
acteurConcerne.setTerminal(optionalTpe.orElse(null));
}
+
+ acteurConcerne.setEnqueteExternalKey(acteurConcernePayLoad.getEnqueteId());
+ acteurConcerne.setPersonneExternalKey(acteurConcernePayLoad.getPersonneId());
acteurConcerne.setPart(acteurConcernePayLoad.getPart());
acteurConcerne.setTypeDroit(acteurConcernePayLoad.getTypeDroit());
acteurConcerne.setExternalKey(acteurConcernePayLoad.getExternalKey());
@@ -1130,7 +1314,8 @@ public class SynchronisationServiceImpl implements SynchronisationService {
Long max_numero_acteur_concerne_id,
Long enqueteId,
Long enqueteBatimentId,
- Long enqueteUniteLogementId) {
+ Long enqueteUniteLogementId,
+ Long personneId) {
UploadPayLoad uploadPayLoad = new UploadPayLoad();
uploadPayLoad.setSynchronise(false);
@@ -1148,7 +1333,9 @@ public class SynchronisationServiceImpl implements SynchronisationService {
uploadPayLoad.setEnqueteId(enqueteId);
uploadPayLoad.setEnqueteBatimentId(enqueteBatimentId);
uploadPayLoad.setEnqueteUniteLogementId(enqueteUniteLogementId);
-
+ uploadPayLoad.setPersonneId(personneId);
+ System.out.println("ZZZ");
+ System.out.println(uploadPayLoad);
try {
Upload upload = new Upload();
SyncResponse syncResponse = new SyncResponse();
@@ -1165,35 +1352,27 @@ public class SynchronisationServiceImpl implements SynchronisationService {
}
}
- if ((uploadPayLoad.getPieceId() == null || uploadPayLoad.getPieceId() == 0) && (uploadPayLoad.getMembreGroupeId() == null || uploadPayLoad.getMembreGroupeId() == 0)) {
+ if ((uploadPayLoad.getPieceId() == null || uploadPayLoad.getPieceId() == 0)
+ && (uploadPayLoad.getMembreGroupeId() == null || uploadPayLoad.getMembreGroupeId() == 0)
+ && (uploadPayLoad.getPersonneId() == null || uploadPayLoad.getPersonneId() == 0)
+ && (uploadPayLoad.getEnqueteBatimentId() == null || uploadPayLoad.getEnqueteBatimentId() == 0)
+ && (uploadPayLoad.getEnqueteUniteLogementId() == null || uploadPayLoad.getEnqueteUniteLogementId() == 0)) {
- if ((uploadPayLoad.getEnqueteBatimentId() == null || uploadPayLoad.getEnqueteBatimentId() == 0) && (uploadPayLoad.getEnqueteUniteLogementId() == null || uploadPayLoad.getEnqueteUniteLogementId() == 0)) {
syncResponse = new SyncResponse(uploadPayLoad.getIdBackend(),
- uploadPayLoad.getExternalKey(), false, "La pièce, le membre groupe concernée, l'enquête batiment, l'enquête unité de logement n'est pas précisé");
+ uploadPayLoad.getExternalKey(), false, "La pièce ou le membre groupe concernée ou l'enquête batiment ou l'enquête unité de logement ou la personnes n'est pas précisé");
return syncResponse;
- } else {
- Optional optionalEnqueteUniteLogement = null;
- if (uploadPayLoad.getEnqueteUniteLogementId() != null && uploadPayLoad.getEnqueteUniteLogementId() != 0) {
- optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getEnqueteUniteLogementId(), uploadPayLoad.getTerminalId());
- }
- if (optionalEnqueteUniteLogement == null && optionalEnqueteUniteLogement.isEmpty()) {
- syncResponse = new SyncResponse(uploadPayLoad.getIdBackend(),
- uploadPayLoad.getExternalKey(), false, "L'enquête de l'unité de logement précisée n'existe pas");
- return syncResponse;
- }
-
- Optional optionalEnqueteBatiment = null;
-
- if (uploadPayLoad.getEnqueteBatimentId() != null && uploadPayLoad.getEnqueteBatimentId() != 0) {
- optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getEnqueteBatimentId(), uploadPayLoad.getTerminalId());
- }
- if (optionalEnqueteBatiment == null && optionalEnqueteBatiment.isEmpty()) {
- syncResponse = new SyncResponse(uploadPayLoad.getIdBackend(),
- uploadPayLoad.getExternalKey(), false, "L'enquête bâtiment précisée n'existe pas");
- return syncResponse;
- }
- }
} else {
+ Optional optionalEnqueteUniteLogement = null;
+ if (uploadPayLoad.getEnqueteUniteLogementId() != null && uploadPayLoad.getEnqueteUniteLogementId() != 0) {
+ optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getEnqueteUniteLogementId(), uploadPayLoad.getTerminalId());
+ }
+
+ Optional optionalEnqueteBatiment = null;
+ if (uploadPayLoad.getEnqueteBatimentId() != null && uploadPayLoad.getEnqueteBatimentId() != 0) {
+ optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getEnqueteBatimentId(), uploadPayLoad.getTerminalId());
+ }
+
+
Optional optionalPiece = null;
if (uploadPayLoad.getPieceId() != null) {
optionalPiece = pieceRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getPieceId(), terminalId);
@@ -1202,9 +1381,20 @@ public class SynchronisationServiceImpl implements SynchronisationService {
if (uploadPayLoad.getMembreGroupeId() != null) {
optionalMembreGroupe = membreGroupeRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getMembreGroupeId(), terminalId);
}
- if ((optionalMembreGroupe == null || optionalMembreGroupe.isEmpty()) && (optionalPiece == null || optionalPiece.isEmpty())) {
+
+ Optional optionalPersonne = null;
+ if (uploadPayLoad.getPersonneId() != null) {
+ optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getPersonneId(),terminalId);
+ }
+
+ if ((optionalMembreGroupe == null || optionalMembreGroupe.isEmpty())
+ && (optionalPiece == null || optionalPiece.isEmpty())
+ && (optionalPersonne==null || optionalPersonne.isEmpty())
+ && (optionalEnqueteUniteLogement == null || optionalEnqueteUniteLogement.isEmpty())
+ && (optionalEnqueteBatiment == null || optionalEnqueteBatiment.isEmpty())
+ ) {
syncResponse = new SyncResponse(uploadPayLoad.getIdBackend(),
- uploadPayLoad.getExternalKey(), false, "La pièce ou le groupe précisée n'existe pas");
+ uploadPayLoad.getExternalKey(), false, "La pièce ou le groupe ou la personne précisée n'existe ou l'enquete batiment ou l'enquete unité de logement pas");
return syncResponse;
}
}
@@ -1212,20 +1402,33 @@ public class SynchronisationServiceImpl implements SynchronisationService {
uploadPayLoad.setSynchronise(true);
if (uploadPayLoad.getIdBackend() != null && uploadPayLoad.getIdBackend() != 0) {
Optional optionalUpload = uploadRepository.findById(uploadPayLoad.getIdBackend());
- if (!optionalUpload.isPresent()) {
- uploadPayLoad.setObservation("La clé interne est non valide : Enregistrement inexistant ");
- uploadPayLoad.setSynchronise(false);
- } else {
+ if (optionalUpload.isPresent()) {
upload = optionalUpload.get();
- upload = getUploadFromUplaodPayLoad(upload, uploadPayLoad);
- //upload = uploadRepository.save(upload);
- uploadPayLoad.setIdBackend(upload.getId());
+ }else{
+ uploadPayLoad.setIdBackend(null);
}
+ upload = getUploadFromUplaodPayLoad(upload, uploadPayLoad);
+ uploadPayLoad.setIdBackend(upload.getId());
+
} else {
+ Optional optionalUpload = uploadRepository.findDistinctFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getExternalKey(), uploadPayLoad.getTerminalId());
+ if(optionalUpload.isPresent()) {
+ upload = optionalUpload.get();
+ }
upload = getUploadFromUplaodPayLoad(upload, uploadPayLoad);
- //upload = uploadRepository.save(upload);
uploadPayLoad.setIdBackend(upload.getId());
}
+
+ if(upload.getId()!=null) {
+ try {
+ UploadMetaData uploadMetaData = new UploadMetaData();
+ uploadMetaData.setUploadJson(upload);
+ uploadMetaData.setUploadId(upload.getId());
+ uploadMetaDataRepository.save(uploadMetaData);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
syncResponse.setObservation(uploadPayLoad.getObservation());
syncResponse.setExternalKey(uploadPayLoad.getExternalKey());
syncResponse.setSynchronise(uploadPayLoad.isSynchronise());
@@ -1262,6 +1465,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
}
public Upload getUploadFromUplaodPayLoad(Upload upload, UploadPayLoad uploadPayLoad) {
+ System.out.println("YYY");
if (uploadPayLoad.getTerminalId() != null) {
Optional optionalTpe = tpeRepository.findById(uploadPayLoad.getTerminalId());
upload.setTerminal(optionalTpe.orElse(null));
@@ -1274,7 +1478,10 @@ public class SynchronisationServiceImpl implements SynchronisationService {
Optional optionalMembreGroupe = membreGroupeRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getMembreGroupeId(), uploadPayLoad.getTerminalId());
upload.setMembreGroupe(optionalMembreGroupe.orElse(null));
}
-
+ if(uploadPayLoad.getPersonneId() != null){
+ Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getPersonneId(),uploadPayLoad.getTerminalId());
+ upload.setPersonne(optionalPersonne.orElse(null));
+ }
if (uploadPayLoad.getEnqueteBatimentId() != null) {
Optional optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getEnqueteBatimentId(), uploadPayLoad.getTerminalId());
upload.setEnqueteBatiment(optionalEnqueteBatiment.orElse(null));
@@ -1292,6 +1499,14 @@ public class SynchronisationServiceImpl implements SynchronisationService {
//throw new RuntimeException(e);
}
}
+
+ if (uploadPayLoad.getTerminalId() != null && uploadPayLoad.getEnqueteId()!=null) {
+ Optional optionalEnquete=enqueteRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getEnqueteId(),uploadPayLoad.getTerminalId());
+ if(optionalEnquete.isPresent()){
+ upload.setEnqueteId(optionalEnquete.get().getId());
+ }
+ }
+
String fileName = fileStorageService.storeFile(uploadPayLoad.getFile());
upload.setExternalKey(uploadPayLoad.getExternalKey());
upload.setFileName(fileName);
@@ -1303,8 +1518,12 @@ public class SynchronisationServiceImpl implements SynchronisationService {
upload.setMax_numero_upload_id(uploadPayLoad.getMax_numero_upload_id());
upload.setMax_numero_piece_id(uploadPayLoad.getMax_numero_piece_id());
upload.setMax_numero_acteur_concerne_id(uploadPayLoad.getMax_numero_acteur_concerne_id());
- upload.setEnqueteId(uploadPayLoad.getEnqueteId());
+ upload.setEnqueteExternalKey(uploadPayLoad.getEnqueteId());
upload.setBlocId(uploadPayLoad.getBlocId());
+ upload.setEnqueteBatimentExternalKey(uploadPayLoad.getEnqueteBatimentId());
+ upload.setEnqueteUniteLogementExternalKey(uploadPayLoad.getEnqueteUniteLogementId());
+ upload.setPieceExternalKey(uploadPayLoad.getPieceId());
+ upload.setPersonneExternalKey(uploadPayLoad.getPersonneId());
upload = uploadRepository.save(upload);
return upload;
}
@@ -1322,6 +1541,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
}
batimentPaylaods.forEach(batimentPaylaod -> {
try {
+ System.out.println(batimentPaylaods);
if (batimentPaylaod.getTerminalId() == null) {
SyncResponse syncResponse = new SyncResponse(batimentPaylaod.getIdBackend(),
batimentPaylaod.getExternalKey(), false, "Le terminal n'est pas précisé.");
@@ -1355,16 +1575,20 @@ public class SynchronisationServiceImpl implements SynchronisationService {
batimentPaylaod.setSynchronise(true);
if (batimentPaylaod.getIdBackend() != null && batimentPaylaod.getIdBackend() != 0) {
Optional batimentOptional = batimentRepository.findById(batimentPaylaod.getIdBackend());
- if (!batimentOptional.isPresent()) {
- batimentPaylaod.setObservation("La clé interne est non valide : Enregistrement inexistant ");
- batimentPaylaod.setSynchronise(false);
- } else {
+ if (batimentOptional.isPresent()) {
batiment = batimentOptional.get();
+ } else {
+ batimentPaylaod.setIdBackend(null);
+ }
batiment = getBatimentFromBatimentPayLoad(batiment, batimentPaylaod);
batiment = batimentRepository.save(batiment);
batimentPaylaod.setIdBackend(batiment.getId());
- }
+
} else {
+ Optional batimentOptional = batimentRepository.findFirstByExternalKeyAndTerminal_Id(batimentPaylaod.getExternalKey(),batimentPaylaod.getTerminalId());
+ if(batimentOptional.isPresent()){
+ batiment=batimentOptional.get();
+ }
batiment = getBatimentFromBatimentPayLoad(batiment, batimentPaylaod);
batimentRepository.save(batiment);
batimentPaylaod.setIdBackend(batiment.getId());
@@ -1432,16 +1656,20 @@ public class SynchronisationServiceImpl implements SynchronisationService {
uniteLogementPaylaod.setSynchronise(true);
if (uniteLogementPaylaod.getIdBackend() != null && uniteLogementPaylaod.getIdBackend() != 0) {
Optional uniteLogementOptional = uniteLogementRepository.findById(uniteLogementPaylaod.getIdBackend());
- if (!uniteLogementOptional.isPresent()) {
- uniteLogementPaylaod.setObservation("La clé interne est non valide : Enregistrement inexistant ");
- uniteLogementPaylaod.setSynchronise(false);
- } else {
+ if (uniteLogementOptional.isPresent()) {
uniteLogement = uniteLogementOptional.get();
+ } else {
+ uniteLogementPaylaod.setIdBackend(null);
+ }
uniteLogement = getUniteLogementFromUniteLogementPayLoad(uniteLogement, uniteLogementPaylaod);
uniteLogementRepository.save(uniteLogement);
uniteLogementPaylaod.setIdBackend(uniteLogement.getId());
- }
+
} else {
+ Optional uniteLogementOptional = uniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPaylaod.getExternalKey(),uniteLogementPaylaod.getTerminalId());
+ if(uniteLogementOptional.isPresent()){
+ uniteLogement=uniteLogementOptional.get();
+ }
uniteLogement = getUniteLogementFromUniteLogementPayLoad(uniteLogement, uniteLogementPaylaod);
uniteLogementRepository.save(uniteLogement);
uniteLogementPaylaod.setIdBackend(uniteLogement.getId());
@@ -1465,7 +1693,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
@Override
public List syncCaracteristiqueBatiment(List caracteristiqueBatimentPaylods) {
-
+ System.out.println("DANS CARACT BATIMENT");
List syncResponses = new ArrayList<>();
if (caracteristiqueBatimentPaylods == null) {
SyncResponse syncResponse = new SyncResponse(null,
@@ -1475,6 +1703,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
}
caracteristiqueBatimentPaylods.forEach(caracteristiqueBatimentPaylod -> {
try {
+ System.out.println(caracteristiqueBatimentPaylod);
if (caracteristiqueBatimentPaylod.getTerminalId() == null) {
SyncResponse syncResponse = new SyncResponse(caracteristiqueBatimentPaylod.getIdBackend(),
caracteristiqueBatimentPaylod.getExternalKey(), false, "Le terminal n'est pas précisé.");
@@ -1490,28 +1719,6 @@ public class SynchronisationServiceImpl implements SynchronisationService {
}
}
-
- if (caracteristiqueBatimentPaylod.getEnqueteBatimentId() == null) {
- SyncResponse syncResponse = new SyncResponse(caracteristiqueBatimentPaylod.getIdBackend(),
- caracteristiqueBatimentPaylod.getExternalKey(), false, "L'enquête batiment n'est pas précisé.");
- syncResponses.add(syncResponse);
- return;
- } else {
- Optional optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueBatimentPaylod.getEnqueteBatimentId(), caracteristiqueBatimentPaylod.getTerminalId());
- if (optionalEnqueteBatiment.isEmpty()) {
- SyncResponse syncResponse = new SyncResponse(caracteristiqueBatimentPaylod.getIdBackend(),
- caracteristiqueBatimentPaylod.getExternalKey(), false, "L'enquête batiment précisée n'existe pas");
- syncResponses.add(syncResponse);
- return;
- } else {
- EnqueteBatiment enqueteBatiment = optionalEnqueteBatiment.get();
- if (enqueteBatiment.getStatutEnregistrement().equals(StatutEnregistrement.MISE_A_JOUR)) {
- //suppression de toutes les caractéristiques liées à une enquête si l'enquete à pour statut d'enregistrement MAJ
- deleteAllCaracteristiqueBatimentFromEnqueteBatiment(enqueteBatiment);
- }
- }
- }
-
if (caracteristiqueBatimentPaylod.getCaracteristiqueId() == null) {
SyncResponse syncResponse = new SyncResponse(caracteristiqueBatimentPaylod.getIdBackend(),
caracteristiqueBatimentPaylod.getExternalKey(), false, "La caracteristique du batiment n'est pas précisé.");
@@ -1526,12 +1733,8 @@ public class SynchronisationServiceImpl implements SynchronisationService {
return;
}
}
-
-
CaracteristiqueBatiment caracteristiqueBatiment = new CaracteristiqueBatiment();
-
caracteristiqueBatimentPaylod.setSynchronise(true);
-
caracteristiqueBatiment = getCaracteristiqueBatimentFromCaracteristiqueBatimentPayLoad(caracteristiqueBatiment, caracteristiqueBatimentPaylod);
caracteristiqueBatimentRepository.save(caracteristiqueBatiment);
caracteristiqueBatimentPaylod.setIdBackend(caracteristiqueBatiment.getId());
@@ -1585,27 +1788,6 @@ public class SynchronisationServiceImpl implements SynchronisationService {
}
}
- if (caracteristiqueUniteLogementPaylod.getEnqueteUniteLogementId() == null) {
- SyncResponse syncResponse = new SyncResponse(caracteristiqueUniteLogementPaylod.getIdBackend(),
- caracteristiqueUniteLogementPaylod.getExternalKey(), false, "L'enquête de l'unité de logement n'est pas précisé.");
- syncResponses.add(syncResponse);
- return;
- } else {
- Optional optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueUniteLogementPaylod.getEnqueteUniteLogementId(), caracteristiqueUniteLogementPaylod.getTerminalId());
- if (optionalEnqueteUniteLogement.isEmpty()) {
- SyncResponse syncResponse = new SyncResponse(caracteristiqueUniteLogementPaylod.getIdBackend(),
- caracteristiqueUniteLogementPaylod.getExternalKey(), false, "L'enquête de l'unité de logement précisée n'existe pas");
- syncResponses.add(syncResponse);
- return;
- } else {
- EnqueteUniteLogement enqueteUniteLogement = optionalEnqueteUniteLogement.get();
- if (enqueteUniteLogement.getStatutEnregistrement().equals(StatutEnregistrement.MISE_A_JOUR)) {
- //suppression de toutes les caractéristiques liées à une enquête si l'enquete à pour statut d'enregistrement MAJ
- deleteAllCaracteristiqueUniteLogementFromEnqueteUniteLogement(enqueteUniteLogement);
- }
- }
- }
-
if (caracteristiqueUniteLogementPaylod.getCaracteristiqueId() == null) {
SyncResponse syncResponse = new SyncResponse(caracteristiqueUniteLogementPaylod.getIdBackend(),
caracteristiqueUniteLogementPaylod.getExternalKey(), false, "La caracteristique de l'unité de logement n'est pas précisée.");
@@ -1621,15 +1803,11 @@ public class SynchronisationServiceImpl implements SynchronisationService {
}
}
-
CaracteristiqueUniteLogement caracteristiqueUniteLogement = new CaracteristiqueUniteLogement();
-
caracteristiqueUniteLogementPaylod.setSynchronise(true);
-
caracteristiqueUniteLogement = getCaracteristiqueUniteLogementFromCaracteristiqueUniteLogementPayLoad(caracteristiqueUniteLogement, caracteristiqueUniteLogementPaylod);
caracteristiqueUniteLogementRepository.save(caracteristiqueUniteLogement);
caracteristiqueUniteLogementPaylod.setIdBackend(caracteristiqueUniteLogement.getId());
-
SyncResponse syncResponse = new SyncResponse();
syncResponse.setObservation(caracteristiqueUniteLogementPaylod.getObservation());
syncResponse.setExternalKey(caracteristiqueUniteLogementPaylod.getExternalKey());
@@ -1643,7 +1821,6 @@ public class SynchronisationServiceImpl implements SynchronisationService {
syncResponses.add(syncResponse);
}
});
-
return syncResponses;
}
@@ -1654,7 +1831,6 @@ public class SynchronisationServiceImpl implements SynchronisationService {
@Override
public List syncCaracteristiqueParcelle(List caracteristiqueParcellePaylods) {
-
List syncResponses = new ArrayList<>();
if (caracteristiqueParcellePaylods == null) {
SyncResponse syncResponse = new SyncResponse(null,
@@ -1662,7 +1838,6 @@ public class SynchronisationServiceImpl implements SynchronisationService {
syncResponses.add(syncResponse);
return syncResponses;
}
-
caracteristiqueParcellePaylods.forEach(caracteristiqueParcellePaylod -> {
try {
if (caracteristiqueParcellePaylod.getTerminalId() == null) {
@@ -1680,27 +1855,6 @@ public class SynchronisationServiceImpl implements SynchronisationService {
}
}
- if (caracteristiqueParcellePaylod.getEnqueteId() == null) {
- SyncResponse syncResponse = new SyncResponse(caracteristiqueParcellePaylod.getIdBackend(),
- caracteristiqueParcellePaylod.getExternalKey(), false, "L'enquête n'est pas précisé.");
- syncResponses.add(syncResponse);
- return;
- } else {
- Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueParcellePaylod.getEnqueteId(), caracteristiqueParcellePaylod.getTerminalId());
- if (optionalEnquete.isEmpty()) {
- SyncResponse syncResponse = new SyncResponse(caracteristiqueParcellePaylod.getIdBackend(),
- caracteristiqueParcellePaylod.getExternalKey(), false, "L'enquête précisée n'existe pas");
- syncResponses.add(syncResponse);
- return;
- } else {
- Enquete enquete = optionalEnquete.get();
- if (enquete.getStatutEnregistrement().equals(StatutEnregistrement.MISE_A_JOUR)) {
- //suppression de toutes les caractéristiques liées à une enquête si l'enquete à pour statut d'enregistrement MAJ
- deleteAllCaracteristiqueParcelleFromEnquete(enquete);
- }
- }
- }
-
if (caracteristiqueParcellePaylod.getCaracteristiqueId() == null) {
SyncResponse syncResponse = new SyncResponse(caracteristiqueParcellePaylod.getIdBackend(),
caracteristiqueParcellePaylod.getExternalKey(), false, "La caracteristique de la parcelle n'est pas précisée.");
@@ -1715,12 +1869,8 @@ public class SynchronisationServiceImpl implements SynchronisationService {
return;
}
}
-
-
CaracteristiqueParcelle caracteristiqueParcelle = new CaracteristiqueParcelle();
-
caracteristiqueParcellePaylod.setSynchronise(true);
-
caracteristiqueParcelle = getCaracteristiqueParcelleFromCaracteristiqueParcellePayLoad(caracteristiqueParcelle, caracteristiqueParcellePaylod);
caracteristiqueParcelleRepository.save(caracteristiqueParcelle);
caracteristiqueParcellePaylod.setIdBackend(caracteristiqueParcelle.getId());
@@ -1738,7 +1888,6 @@ public class SynchronisationServiceImpl implements SynchronisationService {
syncResponses.add(syncResponse);
}
});
-
return syncResponses;
}
@@ -1757,12 +1906,14 @@ public class SynchronisationServiceImpl implements SynchronisationService {
return syncResponses;
}
enqueteBatimentPayLoads.forEach(enqueteBatimentPayload -> {
-
+ System.out.println(enqueteBatimentPayload);
try {
+ System.out.println(enqueteBatimentPayload);
if (enqueteBatimentPayload.getTerminalId() == null) {
SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(),
enqueteBatimentPayload.getExternalKey(), false, "Le terminal n'est pas précisé");
syncResponses.add(syncResponse);
+ System.out.println("PAS DE TPE");
return;
} else {
Optional optionalTpe = tpeRepository.findById(enqueteBatimentPayload.getTerminalId());
@@ -1770,6 +1921,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(),
enqueteBatimentPayload.getExternalKey(), false, "Le terminal n'existe pas");
syncResponses.add(syncResponse);
+ System.out.println("PAS DE TPE");
return;
}
}
@@ -1778,6 +1930,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(),
enqueteBatimentPayload.getExternalKey(), false, "L'enquêteur n'est pas précisé");
syncResponses.add(syncResponse);
+ System.out.println("PAS DE USER");
return;
} else {
Optional optionalUser = userRepository.findById(enqueteBatimentPayload.getUserId());
@@ -1785,6 +1938,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(),
enqueteBatimentPayload.getExternalKey(), false, "L'enquêteur précisé n'existe pas");
syncResponses.add(syncResponse);
+ System.out.println("PAS DE USER");
return;
}
}
@@ -1792,10 +1946,12 @@ public class SynchronisationServiceImpl implements SynchronisationService {
SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(),
enqueteBatimentPayload.getExternalKey(), false, "L'enquete de la parcelle n'est pas précisée");
syncResponses.add(syncResponse);
+ System.out.println("PAS DE ENQUETE");
return;
} else {
Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getEnqueteId(), enqueteBatimentPayload.getTerminalId());
if (optionalEnquete.isEmpty()) {
+ System.out.println("PAS DE ENQUETE");
SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(),
enqueteBatimentPayload.getExternalKey(), false, "L'enquete de la parcelle précisée n'existe pas");
syncResponses.add(syncResponse);
@@ -1806,13 +1962,15 @@ public class SynchronisationServiceImpl implements SynchronisationService {
SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(),
enqueteBatimentPayload.getExternalKey(), false, "La personne n'est pas précisée.");
syncResponses.add(syncResponse);
+ System.out.println("PAS DE PERSONNE");
return;
} else {
- Optional optionalPersonne = personneRepository.findById(enqueteBatimentPayload.getPersonneId());
+ Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getPersonneId(),enqueteBatimentPayload.getTerminalId());
if (optionalPersonne.isEmpty()) {
SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(),
enqueteBatimentPayload.getExternalKey(), false, "La personne précisée n'existe pas.");
syncResponses.add(syncResponse);
+ System.out.println("PAS DE PERSONNE");
return;
}
}
@@ -1821,6 +1979,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(),
enqueteBatimentPayload.getExternalKey(), false, "Le batiment n'est pas précisée.");
syncResponses.add(syncResponse);
+ System.out.println("PAS DE BATIMENT");
return;
} else {
Optional optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getBatimentId(), enqueteBatimentPayload.getTerminalId());
@@ -1828,6 +1987,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(),
enqueteBatimentPayload.getExternalKey(), false, "Le batiment précisé n'existe pas.");
syncResponses.add(syncResponse);
+ System.out.println("PAS DE BATIMENT");
return;
}
}
@@ -1836,25 +1996,24 @@ public class SynchronisationServiceImpl implements SynchronisationService {
enqueteBatimentPayload.setSynchronise(true);
if (enqueteBatimentPayload.getIdBackend() != null && enqueteBatimentPayload.getIdBackend() != 0) {
Optional optionalEnqueteBatiment = enqueteBatimentRepository.findById(enqueteBatimentPayload.getIdBackend());
- if (!optionalEnqueteBatiment.isPresent()) {
- enqueteBatimentPayload.setObservation("La clé interne est non valide : Enregistrement inexistant ");
- enqueteBatimentPayload.setSynchronise(false);
- } else {
- //récupération de l'enquete en base de donnéees
+ if (optionalEnqueteBatiment.isPresent()) {
enqueteBatiment = optionalEnqueteBatiment.get();
- //verification du statut de l'enquete (Si le status est en_cours ou rejet alors mise à jour)
- if (enqueteBatiment.getEnquete().getStatusEnquete().equals(StatusEnquete.EN_COURS) || enqueteBatiment.getEnquete().getStatusEnquete().equals(StatusEnquete.REJETE)) {
- // suppression des pièces, uploads et acteurs concernés
- deleteAllUploadFromEnqueteBatiment(enqueteBatiment);
- enqueteBatiment = getEnqueteBatimentFromEnqueteBatimentPayLoad(enqueteBatiment, enqueteBatimentPayload);
- enqueteBatiment.setStatutEnregistrement(StatutEnregistrement.MISE_A_JOUR);
- enqueteBatimentRepository.save(enqueteBatiment);
- enqueteBatimentPayload.setIdBackend(enqueteBatiment.getId());
- } else {
- enqueteBatimentPayload.setObservation("Le statut de cette enquête est déjà VALIDE. Une mise à jour sur cette enquête n'est donc plus possible.");
- }
+ //deleteAllCaracteristiqueBatimentFromEnqueteBatiment(enqueteBatiment);
+ //deleteAllUploadFromEnqueteBatiment(enqueteBatiment);
+ } else {
+ enqueteBatimentPayload.setIdBackend(null);
}
+ enqueteBatiment = getEnqueteBatimentFromEnqueteBatimentPayLoad(enqueteBatiment, enqueteBatimentPayload);
+ enqueteBatiment.setStatutEnregistrement(StatutEnregistrement.MISE_A_JOUR);
+ enqueteBatimentRepository.save(enqueteBatiment);
+ enqueteBatimentPayload.setIdBackend(enqueteBatiment.getId());
} else {
+ Optional optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getExternalKey(),enqueteBatimentPayload.getTerminalId());
+ if(optionalEnqueteBatiment.isPresent()){
+ enqueteBatiment = optionalEnqueteBatiment.get();
+ // deleteAllCaracteristiqueBatimentFromEnqueteBatiment(enqueteBatiment);
+ // deleteAllUploadFromEnqueteBatiment(enqueteBatiment);
+ }
enqueteBatiment = getEnqueteBatimentFromEnqueteBatimentPayLoad(enqueteBatiment, enqueteBatimentPayload);
enqueteBatiment.setStatutEnregistrement(StatutEnregistrement.NOUVELLE_INSERTION);
enqueteBatiment = enqueteBatimentRepository.save(enqueteBatiment);
@@ -1938,7 +2097,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
syncResponses.add(syncResponse);
return;
} else {
- Optional optionalPersonne = personneRepository.findById(enqueteUniteLogementPayload.getPersonneId());
+ Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getPersonneId(),enqueteUniteLogementPayload.getTerminalId());
if (optionalPersonne.isEmpty()) {
SyncResponse syncResponse = new SyncResponse(enqueteUniteLogementPayload.getIdBackend(),
enqueteUniteLogementPayload.getExternalKey(), false, "La personne précisée n'existe pas.");
@@ -1953,8 +2112,8 @@ public class SynchronisationServiceImpl implements SynchronisationService {
syncResponses.add(syncResponse);
return;
} else {
- Optional optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getUniteLogementId(), enqueteUniteLogementPayload.getTerminalId());
- if (optionalBatiment.isEmpty()) {
+ Optional optionalUniteLogement = uniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getUniteLogementId(), enqueteUniteLogementPayload.getTerminalId());
+ if (optionalUniteLogement.isEmpty()) {
SyncResponse syncResponse = new SyncResponse(enqueteUniteLogementPayload.getIdBackend(),
enqueteUniteLogementPayload.getExternalKey(), false, "L'unité de logement précisée n'existe pas.");
syncResponses.add(syncResponse);
@@ -1966,26 +2125,26 @@ public class SynchronisationServiceImpl implements SynchronisationService {
enqueteUniteLogementPayload.setSynchronise(true);
if (enqueteUniteLogementPayload.getIdBackend() != null && enqueteUniteLogementPayload.getIdBackend() != 0) {
Optional optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findById(enqueteUniteLogementPayload.getIdBackend());
- if (!optionalEnqueteUniteLogement.isPresent()) {
- enqueteUniteLogementPayload.setObservation("La clé interne est non valide : Enregistrement inexistant ");
- enqueteUniteLogementPayload.setSynchronise(false);
- } else {
- //récupération de l'enquete en base de donnéees
+ if (optionalEnqueteUniteLogement.isPresent()) {
enqueteUniteLogement = optionalEnqueteUniteLogement.get();
- //verification du statut de l'enquete (Si le status est en_cours ou rejet alors mise à jour)
- if (enqueteUniteLogement.getEnquete().getStatusEnquete().equals(StatusEnquete.EN_COURS) || enqueteUniteLogement.getEnquete().getStatusEnquete().equals(StatusEnquete.REJETE)) {
- // suppression des pièces, uploads et acteurs concernés
- // TODO: 19/01/2025 S'assurer que la suppression des uploads est nécessaire et correcte
- deleteAllUploadFromEnqueteUniteLogement(enqueteUniteLogement);
+ //deleteAllCaracteristiqueUniteLogementFromEnqueteUniteLogement(enqueteUniteLogement);
+ //deleteAllUploadFromEnqueteUniteLogement(enqueteUniteLogement);
+ } else {
+ enqueteUniteLogementPayload.setIdBackend(null);
+ }
enqueteUniteLogement = getEnqueteUniteLogementFromEnqueteUniteLogementPayLoad(enqueteUniteLogement, enqueteUniteLogementPayload);
enqueteUniteLogement.setStatutEnregistrement(StatutEnregistrement.MISE_A_JOUR);
enqueteUniteLogementRepository.save(enqueteUniteLogement);
enqueteUniteLogementPayload.setIdBackend(enqueteUniteLogement.getId());
- } else {
- enqueteUniteLogementPayload.setObservation("Le statut de cette enquête est déjà VALIDE. Une mise à jour sur cette enquête n'est donc plus possible.");
- }
- }
} else {
+ Optional optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getExternalKey(),enqueteUniteLogementPayload.getTerminalId());
+ if(optionalEnqueteUniteLogement.isPresent()){
+ enqueteUniteLogement = optionalEnqueteUniteLogement.get();
+ //deleteAllCaracteristiqueUniteLogementFromEnqueteUniteLogement(enqueteUniteLogement);
+ //deleteAllUploadFromEnqueteUniteLogement(enqueteUniteLogement);
+ } else {
+ enqueteUniteLogementPayload.setIdBackend(null);
+ }
enqueteUniteLogement = getEnqueteUniteLogementFromEnqueteUniteLogementPayLoad(enqueteUniteLogement, enqueteUniteLogementPayload);
enqueteUniteLogement.setStatutEnregistrement(StatutEnregistrement.NOUVELLE_INSERTION);
enqueteUniteLogement = enqueteUniteLogementRepository.save(enqueteUniteLogement);
@@ -2034,7 +2193,7 @@ public class SynchronisationServiceImpl implements SynchronisationService {
enqueteUniteLogement.setUser(optionalUser.orElse(null));
}
-
+ enqueteUniteLogement.setEnqueteExternalKey(enqueteUniteLogementPayload.getEnqueteId());
enqueteUniteLogement.setSurface(enqueteUniteLogementPayload.getSurface());
enqueteUniteLogement.setNbrePiece(enqueteUniteLogementPayload.getNbrePiece());
enqueteUniteLogement.setNbreHabitant(enqueteUniteLogementPayload.getNbreHabitant());
@@ -2052,6 +2211,8 @@ public class SynchronisationServiceImpl implements SynchronisationService {
enqueteUniteLogement.setDateFinExcemption(enqueteUniteLogementPayload.getDateFinExcemption());
enqueteUniteLogement.setExternalKey(enqueteUniteLogementPayload.getExternalKey());
+ enqueteUniteLogement.setPersonneExternalKey(enqueteUniteLogementPayload.getPersonneId());
+ enqueteUniteLogement.setUniteLogementExternalKey(enqueteUniteLogementPayload.getUniteLogementId());
return enqueteUniteLogement;
}
@@ -2059,12 +2220,13 @@ public class SynchronisationServiceImpl implements SynchronisationService {
private void deleteAllUploadFromEnqueteUniteLogement(EnqueteUniteLogement enqueteUniteLogement) {
}
+
private void deleteAllUploadFromEnqueteBatiment(EnqueteBatiment enqueteBatiment) {
uploadRepository.deleteAllByEnqueteBatiment(enqueteBatiment);
}
private EnqueteBatiment getEnqueteBatimentFromEnqueteBatimentPayLoad(EnqueteBatiment enqueteBatiment, EnqueteBatimentPayload enqueteBatimentPayload) {
-
+ System.out.println(enqueteBatimentPayload);
enqueteBatiment.setSurfaceAuSol(enqueteBatimentPayload.getSurfaceAuSol());
enqueteBatiment.setAutreMenuisierie(enqueteBatimentPayload.getAutreMenuisierie());
enqueteBatiment.setAutreMur(enqueteBatimentPayload.getAutreMur());
@@ -2083,7 +2245,9 @@ public class SynchronisationServiceImpl implements SynchronisationService {
enqueteBatiment.setDateDebutExcemption(enqueteBatimentPayload.getDateDebutExcemption());
enqueteBatiment.setDateFinExcemption(enqueteBatimentPayload.getDateFinExcemption());
enqueteBatiment.setExternalKey(enqueteBatimentPayload.getExternalKey());
-
+ enqueteBatiment.setEnqueteExternalKey(enqueteBatimentPayload.getEnqueteId());
+ enqueteBatiment.setPersonneExternalKey(enqueteBatimentPayload.getPersonneId());
+ enqueteBatiment.setBatimentExternalKey(enqueteBatimentPayload.getBatimentId());
if (enqueteBatimentPayload.getPersonneId() != null) {
Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getPersonneId(), enqueteBatimentPayload.getTerminalId());
@@ -2111,5 +2275,4 @@ public class SynchronisationServiceImpl implements SynchronisationService {
return enqueteBatiment;
}
-
}
diff --git a/src/main/java/io/gmss/fiscad/implementations/user/UserServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/user/UserServiceImpl.java
index cfd6430..f861d38 100644
--- a/src/main/java/io/gmss/fiscad/implementations/user/UserServiceImpl.java
+++ b/src/main/java/io/gmss/fiscad/implementations/user/UserServiceImpl.java
@@ -269,7 +269,7 @@ public class UserServiceImpl implements UserService {
roleSet.add(roleService.retrieveRoleByRoleName(userRole));
}
user.setRoles(roleSet);
- user.setActive(true);
+ user.setResetPassword(false);
return userRepository.save(user);
}
@@ -303,4 +303,20 @@ public class UserServiceImpl implements UserService {
user.getIdSecteurCourant());
}
+
+// private static List getUserResponses(List users) {
+// return users.stream()
+// .map(user -> new UserResponse(
+// user.getId(),
+// user.getNom(),
+// user.getPrenom(),
+// user.getTel(),
+// user.getEmail(),
+// user.getUsername(),
+// user.isActive(),
+// user.isResetPassword(),
+// user.getRoles(),
+// user.getStructure()))
+// .collect(Collectors.toList());
+// }
}
diff --git a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/EnqueteService.java b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/EnqueteService.java
index 108273b..bc45ba6 100755
--- a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/EnqueteService.java
+++ b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/EnqueteService.java
@@ -48,9 +48,10 @@ public interface EnqueteService {
Enquete reglerLitigeEnquete(Long enqueteId);
public UserDecoupageEnqResponses getDecoupageAdminUserConnecterAndStat();
+ public UserDecoupageEnqResponses getDecoupageAdminUserConnecterAndStatForDgi();
+
+ public FicheEnqueteResponse getFicheEnquete(Long EnqueteId,String nupProvisoir);
- public FicheEnqueteResponse getFicheEnquete(Long EnqueteId);
- public FicheEnqueteResponse getFicheEnqueteByNupProvisoir(String nupProvisoire);
public List getEnqueteValideNonSynch(Long terminalId);
diff --git a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/ParcelleGeomService.java b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/ParcelleGeomService.java
index da4df49..2df6a0f 100644
--- a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/ParcelleGeomService.java
+++ b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/ParcelleGeomService.java
@@ -1,6 +1,7 @@
package io.gmss.fiscad.interfaces.infocad.metier;
import com.fasterxml.jackson.databind.JsonNode;
+import io.gmss.fiscad.entities.infocad.metier.Enquete;
import io.gmss.fiscad.entities.infocad.metier.ParcelleGeom;
import io.gmss.fiscad.entities.infocad.metier.Upload;
import io.gmss.fiscad.exceptions.BadRequestException;
@@ -24,7 +25,10 @@ public interface ParcelleGeomService {
Optional getParcelleGeomById(Long id);
- void setStatutParcelleGeom(String nupProvisoir);
+ void setStatutParcelleGeomFromGeoJson(ParcelleGeom parcelleGeom);
+
+ void setStatutParcelleGeomFromEnquete(Enquete enquete);
+ void linkParcelleToParcelleGeom(String nupProvisoir,Long parcelleId);
///List getListParcelle(String nupProvisoir);
}
diff --git a/src/main/java/io/gmss/fiscad/interfaces/infocad/parametre/PersonneService.java b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PersonneService.java
similarity index 81%
rename from src/main/java/io/gmss/fiscad/interfaces/infocad/parametre/PersonneService.java
rename to src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PersonneService.java
index 3e06f6d..8c3d14d 100755
--- a/src/main/java/io/gmss/fiscad/interfaces/infocad/parametre/PersonneService.java
+++ b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PersonneService.java
@@ -1,8 +1,9 @@
-package io.gmss.fiscad.interfaces.infocad.parametre;
+package io.gmss.fiscad.interfaces.infocad.metier;
import io.gmss.fiscad.entities.infocad.parametre.Personne;
import io.gmss.fiscad.exceptions.BadRequestException;
import io.gmss.fiscad.exceptions.NotFoundException;
+import io.gmss.fiscad.paylaods.dto.PersonneCompletDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
@@ -22,4 +23,5 @@ public interface PersonneService {
List getPersonneList();
Optional getPersonneById(Long id);
+ PersonneCompletDTO getPersonneComplete(Long id);
}
diff --git a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/TpeService.java b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/TpeService.java
index dba5829..244adc0 100755
--- a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/TpeService.java
+++ b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/TpeService.java
@@ -14,6 +14,7 @@ public interface TpeService {
Tpe createTpe(Tpe tpe) throws BadRequestException;
Tpe updateTpe(Long id, Tpe tpe) throws NotFoundException;
+ Tpe majTpe(Long id, Tpe tpe) throws NotFoundException;
void deleteTpe(Long id) throws NotFoundException;
@@ -28,4 +29,6 @@ public interface TpeService {
List getTpeListByModel(String model);
List getTpeListByUserId(Long userId);
+
+ Tpe reCreateExistTpe(Tpe tpe) throws BadRequestException;
}
diff --git a/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/DonneesImpositionTfuService.java b/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/DonneesImpositionTfuService.java
new file mode 100755
index 0000000..b968664
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/DonneesImpositionTfuService.java
@@ -0,0 +1,31 @@
+package io.gmss.fiscad.interfaces.rfu.metier;
+
+import io.gmss.fiscad.entities.rfu.metier.DonneesImpositionTfu;
+import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu;
+import io.gmss.fiscad.exceptions.BadRequestException;
+import io.gmss.fiscad.exceptions.NotFoundException;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+
+import java.util.List;
+import java.util.Optional;
+
+public interface DonneesImpositionTfuService {
+
+
+ DonneesImpositionTfu createDonneesImpositionTfu(DonneesImpositionTfu donneesImpositionTfu) throws BadRequestException;
+
+ DonneesImpositionTfu updateDonneesImpositionTfu(Long id, DonneesImpositionTfu donneesImpositionTfu) throws NotFoundException;
+
+ void deleteDonneesImpositionTfu(Long id) throws NotFoundException;
+
+ Page getDonneesImpositionTfuList(Pageable pageable);
+
+ List getDonneesImpositionTfuList();
+
+ Optional getDonneesImpositionTfuById(Long id);
+
+ Long genererDonneesFiscales(ImpositionsTfu impositionsTfu);
+ List getDonneesFiscalesByImposition(Long impositionsId);
+ List getDonneesFiscalesByImpositionArrondissement(Long impositionsId,Long arrondissementId);
+}
diff --git a/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/ImpositionsTfuService.java b/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/ImpositionsTfuService.java
new file mode 100755
index 0000000..f33f387
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/ImpositionsTfuService.java
@@ -0,0 +1,27 @@
+package io.gmss.fiscad.interfaces.rfu.metier;
+
+import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu;
+import io.gmss.fiscad.exceptions.BadRequestException;
+import io.gmss.fiscad.exceptions.NotFoundException;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+
+import java.util.List;
+import java.util.Optional;
+
+public interface ImpositionsTfuService {
+
+ ImpositionsTfu createImpositionsTfu(ImpositionsTfu impositionsTfu) throws BadRequestException;
+ ImpositionsTfu annulerImpositionsTfu(ImpositionsTfu impositionsTfu) throws BadRequestException;
+ ImpositionsTfu validerImpositionsTfu(ImpositionsTfu impositionsTfu) throws BadRequestException;
+
+ ImpositionsTfu updateImpositionsTfu(Long id, ImpositionsTfu impositionsTfu) throws NotFoundException;
+
+ void deleteImpositionsTfu(Long id) throws NotFoundException;
+
+ Page getImpositionsTfuList(Pageable pageable);
+
+ List getImpositionsTfuList();
+
+ Optional getImpositionsTfuById(Long id);
+}
diff --git a/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/BaremRfuNonBatiService.java b/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/BaremRfuNonBatiService.java
new file mode 100644
index 0000000..a9a7ec8
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/BaremRfuNonBatiService.java
@@ -0,0 +1,27 @@
+package io.gmss.fiscad.interfaces.rfu.parametre;
+
+import io.gmss.fiscad.entities.rfu.parametre.BaremRfuNonBati;
+import io.gmss.fiscad.exceptions.BadRequestException;
+import io.gmss.fiscad.exceptions.NotFoundException;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+
+import java.util.List;
+import java.util.Optional;
+
+public interface BaremRfuNonBatiService {
+
+ BaremRfuNonBati createBaremRfuNonBati(BaremRfuNonBati baremRfuNonBati) throws BadRequestException;
+
+ BaremRfuNonBati updateBaremRfuNonBati(Long id, BaremRfuNonBati baremRfuNonBati) throws NotFoundException;
+
+ void deleteBaremRfuNonBati(Long id) throws NotFoundException;
+
+ Page getBaremRfuNonBatiList(Pageable pageable);
+
+ List getBaremRfuNonBatiList();
+
+
+ Optional getBaremRfuNonBatiById(Long id);
+}
+
diff --git a/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/BaremRfuService.java b/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/BaremRfuService.java
index df6e3e4..1fe92bd 100644
--- a/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/BaremRfuService.java
+++ b/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/BaremRfuService.java
@@ -1,8 +1,6 @@
package io.gmss.fiscad.interfaces.rfu.parametre;
-import io.gmss.fiscad.entities.rfu.parametre.BaremRfu;
-import io.gmss.fiscad.entities.rfu.parametre.Campagne;
-import io.gmss.fiscad.entities.rfu.parametre.CategorieBatiment;
+import io.gmss.fiscad.entities.rfu.parametre.BaremRfuBati;
import io.gmss.fiscad.exceptions.BadRequestException;
import io.gmss.fiscad.exceptions.NotFoundException;
import org.springframework.data.domain.Page;
@@ -13,18 +11,18 @@ import java.util.Optional;
public interface BaremRfuService {
- BaremRfu createBaremRfu(BaremRfu baremRfu) throws BadRequestException;
+ BaremRfuBati createBaremRfu(BaremRfuBati baremRfuBati) throws BadRequestException;
- BaremRfu updateBaremRfu(Long id, BaremRfu baremRfu) throws NotFoundException;
+ BaremRfuBati updateBaremRfu(Long id, BaremRfuBati baremRfuBati) throws NotFoundException;
void deleteBaremRfu(Long id) throws NotFoundException;
- Page getBaremRfuList(Pageable pageable);
+ Page getBaremRfuList(Pageable pageable);
- List getBaremRfuList();
+ List getBaremRfuList();
- List getBaremRfuByType(Long IdCategorieBatiment);
+ List getBaremRfuByType(Long IdCategorieBatiment);
- Optional getBaremRfuById(Long id);
+ Optional getBaremRfuById(Long id);
}
diff --git a/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/ExerciceService.java b/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/ExerciceService.java
new file mode 100644
index 0000000..5281b0f
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/ExerciceService.java
@@ -0,0 +1,27 @@
+package io.gmss.fiscad.interfaces.rfu.parametre;
+
+import io.gmss.fiscad.entities.rfu.parametre.Exercice;
+import io.gmss.fiscad.exceptions.BadRequestException;
+import io.gmss.fiscad.exceptions.NotFoundException;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+
+import java.util.List;
+import java.util.Optional;
+
+public interface ExerciceService {
+
+ Exercice createExercice(Exercice exercice) throws BadRequestException;
+
+ Exercice updateExercice(Long id, Exercice exercice) throws NotFoundException;
+
+ void deleteExercice(Long id) throws NotFoundException;
+
+ Page getExerciceList(Pageable pageable);
+
+ List getExerciceList();
+
+
+ Optional getExerciceById(Long id);
+}
+
diff --git a/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/ZoneRfuService.java b/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/ZoneRfuService.java
new file mode 100644
index 0000000..162e371
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/ZoneRfuService.java
@@ -0,0 +1,27 @@
+package io.gmss.fiscad.interfaces.rfu.parametre;
+
+import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu;
+import io.gmss.fiscad.exceptions.BadRequestException;
+import io.gmss.fiscad.exceptions.NotFoundException;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+
+import java.util.List;
+import java.util.Optional;
+
+public interface ZoneRfuService {
+
+ ZoneRfu createZoneRfu(ZoneRfu zoneRfu) throws BadRequestException;
+
+ ZoneRfu updateZoneRfu(Long id, ZoneRfu zoneRfu) throws NotFoundException;
+
+ void deleteZoneRfu(Long id) throws NotFoundException;
+
+ Page getZoneRfuList(Pageable pageable);
+
+ List getZoneRfuList();
+
+
+ Optional getZoneRfuById(Long id);
+}
+
diff --git a/src/main/java/io/gmss/fiscad/interfaces/synchronisation/SynchronisationService.java b/src/main/java/io/gmss/fiscad/interfaces/synchronisation/SynchronisationService.java
index 5b930b4..91bc80a 100755
--- a/src/main/java/io/gmss/fiscad/interfaces/synchronisation/SynchronisationService.java
+++ b/src/main/java/io/gmss/fiscad/interfaces/synchronisation/SynchronisationService.java
@@ -57,7 +57,8 @@ public interface SynchronisationService {
Long max_numero_acteur_concerne_id,
Long enqueteId,
Long enqueteBatimentId,
- Long enqueteUniteLogementId
+ Long enqueteUniteLogementId,
+ Long personneId
);
public List syncEnqueteFromMobile(List idEnquete);
diff --git a/src/main/java/io/gmss/fiscad/paylaods/UserResponse.java b/src/main/java/io/gmss/fiscad/paylaods/UserResponse.java
index ff6e0c6..411e917 100644
--- a/src/main/java/io/gmss/fiscad/paylaods/UserResponse.java
+++ b/src/main/java/io/gmss/fiscad/paylaods/UserResponse.java
@@ -25,5 +25,4 @@ public class UserResponse {
private Long idCampagneCourant;
private Long idSecteurCourant;
-
}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/dto/MembreGroupeDTO.java b/src/main/java/io/gmss/fiscad/paylaods/dto/MembreGroupeDTO.java
new file mode 100644
index 0000000..a8531e2
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/paylaods/dto/MembreGroupeDTO.java
@@ -0,0 +1,17 @@
+package io.gmss.fiscad.paylaods.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class MembreGroupeDTO {
+ private Long id;
+ private PersonneSimpleDTO personneRepresantante;
+ private TypeRepresentationDTO typeRepresentation;
+ private PositionRepresentationDTO positionRepresentation;
+ private List uploads;
+}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/dto/PersonneCompletDTO.java b/src/main/java/io/gmss/fiscad/paylaods/dto/PersonneCompletDTO.java
new file mode 100644
index 0000000..2a31fd1
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/paylaods/dto/PersonneCompletDTO.java
@@ -0,0 +1,57 @@
+package io.gmss.fiscad.paylaods.dto;
+
+import io.gmss.fiscad.entities.decoupage.Commune;
+import io.gmss.fiscad.entities.decoupage.Nationalite;
+import io.gmss.fiscad.entities.infocad.metier.Tpe;
+import io.gmss.fiscad.entities.infocad.parametre.Profession;
+import io.gmss.fiscad.entities.infocad.parametre.SituationMatrimoniale;
+import io.gmss.fiscad.entities.infocad.parametre.TypePersonne;
+import io.gmss.fiscad.enums.Categorie;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PersonneCompletDTO {
+ private Long id;
+ private String ifu;
+ private String nomOuSigle;
+ private String prenomOuRaisonSociale;
+ private String numRavip;
+ private String npi;
+ private String dateNaissanceOuConsti;
+ private String lieuNaissance;
+ private String tel1;
+ private String tel2;
+ private String adresse;
+ @Enumerated(EnumType.STRING)
+ private Categorie categorie;
+ private SituationMatrimoniale situationMatrimoniale;
+ private Nationalite nationalite;
+ private TypePersonne typePersonne;
+ private Profession profession;
+ private Commune commune;
+ private Tpe terminal;
+ private int haveRepresentant;
+ private String ravipQuestion;
+ private String age;
+ private String nomJeuneFille;
+ private String nomMere;
+ private String prenomMere;
+ private String indicatifTel1;
+ private String indicatifTel2;
+ private String sexe;
+ private int mustHaveRepresentant;
+ private String filePath;
+ private String observation;
+ private boolean synchronise;
+ private List uploads;
+ private List pieces;
+ private List membregroupe;
+}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/dto/PersonneSimpleDTO.java b/src/main/java/io/gmss/fiscad/paylaods/dto/PersonneSimpleDTO.java
new file mode 100644
index 0000000..7488557
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/paylaods/dto/PersonneSimpleDTO.java
@@ -0,0 +1,14 @@
+package io.gmss.fiscad.paylaods.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PersonneSimpleDTO {
+ private Long id;
+ private String nom;
+ private String prenom;
+}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/dto/PieceDTO.java b/src/main/java/io/gmss/fiscad/paylaods/dto/PieceDTO.java
new file mode 100644
index 0000000..a108053
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/paylaods/dto/PieceDTO.java
@@ -0,0 +1,18 @@
+package io.gmss.fiscad.paylaods.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PieceDTO {
+ private Long id;
+ private String typePiece;
+ private String numeroPiece;
+
+ private List uploads;
+}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/dto/PositionRepresentationDTO.java b/src/main/java/io/gmss/fiscad/paylaods/dto/PositionRepresentationDTO.java
new file mode 100644
index 0000000..b217330
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/paylaods/dto/PositionRepresentationDTO.java
@@ -0,0 +1,12 @@
+package io.gmss.fiscad.paylaods.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PositionRepresentationDTO {
+ private Long id;
+ private String libelle;
+}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/dto/TypeRepresentationDTO.java b/src/main/java/io/gmss/fiscad/paylaods/dto/TypeRepresentationDTO.java
new file mode 100644
index 0000000..f4f38ed
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/paylaods/dto/TypeRepresentationDTO.java
@@ -0,0 +1,12 @@
+package io.gmss.fiscad.paylaods.dto;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class TypeRepresentationDTO {
+ private Long id;
+ private String libelle;
+}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/dto/UploadDTO.java b/src/main/java/io/gmss/fiscad/paylaods/dto/UploadDTO.java
new file mode 100644
index 0000000..c008594
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/paylaods/dto/UploadDTO.java
@@ -0,0 +1,21 @@
+package io.gmss.fiscad.paylaods.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UploadDTO {
+ private Long id;
+ private Long externalKey;
+ private String Observation;
+ private boolean synchronise;
+ private String fileName;
+ private String originalFileName;
+ private String URIFile;
+ private String checkSum;
+ private long size;
+ private String mimeType;
+}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/BatimentPaylaod.java b/src/main/java/io/gmss/fiscad/paylaods/request/BatimentPaylaod.java
index 13af4aa..b8dfdb9 100644
--- a/src/main/java/io/gmss/fiscad/paylaods/request/BatimentPaylaod.java
+++ b/src/main/java/io/gmss/fiscad/paylaods/request/BatimentPaylaod.java
@@ -16,5 +16,20 @@ public class BatimentPaylaod {
private Long parcelleId;
//private Long userId;
private String observation;
+ private Long enqueteId;
+ @Override
+ public String toString() {
+ return "BatimentPaylaod{" +
+ "idBackend=" + idBackend +
+ ", externalKey=" + externalKey +
+ ", terminalId=" + terminalId +
+ ", synchronise=" + synchronise +
+ ", nub='" + nub + '\'' +
+ ", code='" + code + '\'' +
+ ", dateConstruction=" + dateConstruction +
+ ", parcelleId=" + parcelleId +
+ ", observation='" + observation + '\'' +
+ '}';
+ }
}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/CaracteristiqueBatimentPaylod.java b/src/main/java/io/gmss/fiscad/paylaods/request/CaracteristiqueBatimentPaylod.java
index 90487bc..04d20ba 100644
--- a/src/main/java/io/gmss/fiscad/paylaods/request/CaracteristiqueBatimentPaylod.java
+++ b/src/main/java/io/gmss/fiscad/paylaods/request/CaracteristiqueBatimentPaylod.java
@@ -14,4 +14,19 @@ public class CaracteristiqueBatimentPaylod {
private String valeur;
//private Long userId;
private String observation;
+ private Long enqueteId;
+
+ @Override
+ public String toString() {
+ return "CaracteristiqueBatimentPaylod{" +
+ "idBackend=" + idBackend +
+ ", externalKey=" + externalKey +
+ ", synchronise=" + synchronise +
+ ", terminalId=" + terminalId +
+ ", enqueteBatimentId=" + enqueteBatimentId +
+ ", caracteristiqueId=" + caracteristiqueId +
+ ", valeur='" + valeur + '\'' +
+ ", observation='" + observation + '\'' +
+ '}';
+ }
}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/CaracteristiqueUniteLogementPaylod.java b/src/main/java/io/gmss/fiscad/paylaods/request/CaracteristiqueUniteLogementPaylod.java
index 86d0592..f67cd8a 100644
--- a/src/main/java/io/gmss/fiscad/paylaods/request/CaracteristiqueUniteLogementPaylod.java
+++ b/src/main/java/io/gmss/fiscad/paylaods/request/CaracteristiqueUniteLogementPaylod.java
@@ -14,4 +14,5 @@ public class CaracteristiqueUniteLogementPaylod {
private String valeur;
//private Long userId;
private String observation;
+ private Long enqueteId;
}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/EnquetePayLoad.java b/src/main/java/io/gmss/fiscad/paylaods/request/EnquetePayLoad.java
index c4d4116..33da79b 100644
--- a/src/main/java/io/gmss/fiscad/paylaods/request/EnquetePayLoad.java
+++ b/src/main/java/io/gmss/fiscad/paylaods/request/EnquetePayLoad.java
@@ -1,5 +1,6 @@
package io.gmss.fiscad.paylaods.request;
+import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu;
import io.gmss.fiscad.enums.StatusEnquete;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
@@ -52,5 +53,7 @@ public class EnquetePayLoad {
private int nbrePiscine;
private LocalDate dateDebutExcemption;
private LocalDate dateFinExcemption;
-
+ private Long zoneRfuId;
+ private String autreNumeroTitreFoncier;
+ private Long personneId;
}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/FiltreEnquetePayLoad.java b/src/main/java/io/gmss/fiscad/paylaods/request/FiltreEnquetePayLoad.java
index d335cd5..9eaca14 100644
--- a/src/main/java/io/gmss/fiscad/paylaods/request/FiltreEnquetePayLoad.java
+++ b/src/main/java/io/gmss/fiscad/paylaods/request/FiltreEnquetePayLoad.java
@@ -14,9 +14,9 @@ public class FiltreEnquetePayLoad {
private Long typePersonneId;
private String nomPersonne;
private String prenomPersonne;
- private String enqueteurId;
+ private Long enqueteurId;
private Boolean litige;
private String statutEnquete;
-
+ private Long secteurId;
}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/ParcellePayLoad.java b/src/main/java/io/gmss/fiscad/paylaods/request/ParcellePayLoad.java
index e992f67..3c11bdd 100644
--- a/src/main/java/io/gmss/fiscad/paylaods/request/ParcellePayLoad.java
+++ b/src/main/java/io/gmss/fiscad/paylaods/request/ParcellePayLoad.java
@@ -28,7 +28,7 @@ public class ParcellePayLoad {
private Long numeroProvisoire;
private Long blocId;
private String situationGeographique;
-
+ private String autreNumeroTitreFoncier;
// private int geomSrid;
}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/UniteLogementPaylaod.java b/src/main/java/io/gmss/fiscad/paylaods/request/UniteLogementPaylaod.java
index 325344f..f89325d 100644
--- a/src/main/java/io/gmss/fiscad/paylaods/request/UniteLogementPaylaod.java
+++ b/src/main/java/io/gmss/fiscad/paylaods/request/UniteLogementPaylaod.java
@@ -15,4 +15,5 @@ public class UniteLogementPaylaod {
private Long batimentId;
//private Long userId;
private String observation;
+ private Long enqueteId;
}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/UploadPayLoad.java b/src/main/java/io/gmss/fiscad/paylaods/request/UploadPayLoad.java
index bb3b11b..d529365 100644
--- a/src/main/java/io/gmss/fiscad/paylaods/request/UploadPayLoad.java
+++ b/src/main/java/io/gmss/fiscad/paylaods/request/UploadPayLoad.java
@@ -26,6 +26,6 @@ public class UploadPayLoad {
private Long enqueteUniteLogementId;
private String reference;
private String description;
-
+ private Long personneId;
}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/DonneesImpositionTfuResponse.java b/src/main/java/io/gmss/fiscad/paylaods/response/DonneesImpositionTfuResponse.java
new file mode 100644
index 0000000..02a1dda
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/paylaods/response/DonneesImpositionTfuResponse.java
@@ -0,0 +1,81 @@
+package io.gmss.fiscad.paylaods.response;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.time.LocalDate;
+
+public interface DonneesImpositionTfuResponse {
+
+ Long getId();
+ Long getAnnee();
+
+ String getCodeDepartement();
+ String getNomDepartement();
+
+ String getCodeCommune();
+ String getNomCommune();
+
+ String getCodeArrondissement();
+ String getNomArrondissement();
+
+ String getCodeQuartierVillage();
+ String getNomQuartierVillage();
+
+ String getQ();
+ String getIlot();
+ String getParcelle();
+ String getNup();
+ String getNupProvisoire();
+ String getTitreFoncier();
+
+ String getNumBatiment();
+ String getNumUniteLogement();
+
+ String getIfu();
+ String getNpi();
+ String getTelProp();
+ String getEmailProp();
+ String getNomProp();
+ String getPrenomProp();
+ String getRaisonSociale();
+ String getAdresseProp();
+
+ String getTelSc();
+ String getEmailSc();
+ String getNomSc();
+ String getPrenomSc();
+ String getAdresseSc();
+
+ String getLongitude();
+ String getLatitude();
+
+ int getSuperficieParc();
+ Long getSuperficieAuSolBat();
+ Long getSuperficieAuSolUlog();
+
+ String getBatieOuiNon();
+ String getExhonereOuiNon();
+ String getBatimentExhonereOuiNon();
+ String getUniteLogementExhonereOuiNon();
+
+ Long getValeurLocativeAdm();
+ Long getMontantLoyerAnnuel();
+
+ Long getTfuMetreCarre();
+ Long getTfuMinimum();
+
+ String getStandingBat();
+ String getCategorieBat();
+
+ Long getNombrePiscine();
+ Long getNombreUlog();
+ Long getNombreBat();
+
+ @JsonFormat(pattern = "dd-MM-yyyy")
+ LocalDate getDateEnquete();
+
+ Long getEnqueteId();
+ Long getStructureId();
+ Long getSecteurId();
+ Long getZoneRfuId();
+}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/EnqueteCheckResponse.java b/src/main/java/io/gmss/fiscad/paylaods/response/EnqueteCheckResponse.java
new file mode 100644
index 0000000..20d4577
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/paylaods/response/EnqueteCheckResponse.java
@@ -0,0 +1,9 @@
+package io.gmss.fiscad.paylaods.response;
+
+public interface EnqueteCheckResponse {
+ Long getId();
+
+ String getCodeParcelle();
+ Integer getNombreBatiment();
+
+}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/ReferencesSyncResponses.java b/src/main/java/io/gmss/fiscad/paylaods/response/ReferencesSyncResponses.java
index 39890ff..5460e28 100644
--- a/src/main/java/io/gmss/fiscad/paylaods/response/ReferencesSyncResponses.java
+++ b/src/main/java/io/gmss/fiscad/paylaods/response/ReferencesSyncResponses.java
@@ -28,4 +28,5 @@ public class ReferencesSyncResponses {
List modesAcquisitionTypePersonneSyncResponses;
List caracteristiquesSyncResponses;
List typeCaracteristiquesSyncResponses;
+ List zoneRfuSyncResponses;
}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/SecteurEnqResponse.java b/src/main/java/io/gmss/fiscad/paylaods/response/SecteurEnqResponse.java
new file mode 100644
index 0000000..7a4d664
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/paylaods/response/SecteurEnqResponse.java
@@ -0,0 +1,14 @@
+package io.gmss.fiscad.paylaods.response;
+
+public interface SecteurEnqResponse {
+ Long getId();
+
+ String getCode();
+
+ String getNom();
+
+ Long getStructureId();
+
+ Long getnombreEnquete();
+
+}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/StatEnqueteAdminDecoupageResponse.java b/src/main/java/io/gmss/fiscad/paylaods/response/StatEnqueteAdminDecoupageResponse.java
index fed0957..2d26dca 100644
--- a/src/main/java/io/gmss/fiscad/paylaods/response/StatEnqueteAdminDecoupageResponse.java
+++ b/src/main/java/io/gmss/fiscad/paylaods/response/StatEnqueteAdminDecoupageResponse.java
@@ -9,5 +9,5 @@ public interface StatEnqueteAdminDecoupageResponse {
public Long getRejet();
- public Long getSynchronise();
+ public Long getFinalise();
}
\ No newline at end of file
diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/StatEnqueteAdminStructureResponse.java b/src/main/java/io/gmss/fiscad/paylaods/response/StatEnqueteAdminStructureResponse.java
index 741eb60..960e42b 100644
--- a/src/main/java/io/gmss/fiscad/paylaods/response/StatEnqueteAdminStructureResponse.java
+++ b/src/main/java/io/gmss/fiscad/paylaods/response/StatEnqueteAdminStructureResponse.java
@@ -9,5 +9,5 @@ public interface StatEnqueteAdminStructureResponse {
public Long getRejet();
- public Long getSynchronise();
+ public Long getFinalise();
}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/StatEnqueteParBlocResponse.java b/src/main/java/io/gmss/fiscad/paylaods/response/StatEnqueteParBlocResponse.java
index c03765d..85c29be 100644
--- a/src/main/java/io/gmss/fiscad/paylaods/response/StatEnqueteParBlocResponse.java
+++ b/src/main/java/io/gmss/fiscad/paylaods/response/StatEnqueteParBlocResponse.java
@@ -7,5 +7,5 @@ public interface StatEnqueteParBlocResponse {
public Long getRejet();
- public Long getSynchronise();
+ public Long getFinalise();
}
\ No newline at end of file
diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/StructureEnqResponse.java b/src/main/java/io/gmss/fiscad/paylaods/response/StructureEnqResponse.java
new file mode 100644
index 0000000..19fba9b
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/paylaods/response/StructureEnqResponse.java
@@ -0,0 +1,13 @@
+package io.gmss.fiscad.paylaods.response;
+
+public interface StructureEnqResponse {
+ public Long getId();
+
+ public String getCode();
+
+ public String getNom();
+
+ public Long getCommuneId();
+
+ public Long getNombreEnquete();
+}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/UserDecoupageEnqResponses.java b/src/main/java/io/gmss/fiscad/paylaods/response/UserDecoupageEnqResponses.java
index 232e31e..c1c37e5 100644
--- a/src/main/java/io/gmss/fiscad/paylaods/response/UserDecoupageEnqResponses.java
+++ b/src/main/java/io/gmss/fiscad/paylaods/response/UserDecoupageEnqResponses.java
@@ -10,5 +10,7 @@ public class UserDecoupageEnqResponses {
public List communes;
public List arrondissements;
public List blocs;
+ List structureEnqResponses;
+ List secteurEnqResponses ;
}
diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/ZoneRfuSyncResponse.java b/src/main/java/io/gmss/fiscad/paylaods/response/ZoneRfuSyncResponse.java
new file mode 100644
index 0000000..6198009
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/paylaods/response/ZoneRfuSyncResponse.java
@@ -0,0 +1,7 @@
+package io.gmss.fiscad.paylaods.response;
+
+public interface ZoneRfuSyncResponse {
+ Long getId();
+ String getCode();
+ String getNom();
+}
\ No newline at end of file
diff --git a/src/main/java/io/gmss/fiscad/repositories/decoupage/ArrondissementRepository.java b/src/main/java/io/gmss/fiscad/repositories/decoupage/ArrondissementRepository.java
index 4e96e85..9a5011a 100755
--- a/src/main/java/io/gmss/fiscad/repositories/decoupage/ArrondissementRepository.java
+++ b/src/main/java/io/gmss/fiscad/repositories/decoupage/ArrondissementRepository.java
@@ -20,7 +20,7 @@ public interface ArrondissementRepository extends JpaRepository getAdminArrondissementEnqResponse();
@@ -29,7 +29,7 @@ public interface ArrondissementRepository extends JpaRepository getArrondissementEnqResponse(Long structure_id);
diff --git a/src/main/java/io/gmss/fiscad/repositories/decoupage/CommuneRepository.java b/src/main/java/io/gmss/fiscad/repositories/decoupage/CommuneRepository.java
index 999d376..001f9d8 100755
--- a/src/main/java/io/gmss/fiscad/repositories/decoupage/CommuneRepository.java
+++ b/src/main/java/io/gmss/fiscad/repositories/decoupage/CommuneRepository.java
@@ -11,28 +11,30 @@ import java.util.List;
public interface CommuneRepository extends JpaRepository {
- @Query(value = "select id, code, nom,longitude,latitude, departement_id as departementid from commune ", nativeQuery = true)
+ @Query(value = "select id, code, nom, departement_id as departementid from commune where deleted is false",nativeQuery = true)
List getCommuneResponse();
+
List findAllByDepartement(Departement departement);
@Query(value = " Select T.id,T.code, T.libelle,T.longitude,T.latitude, sum(case when T.enqueteId is null then 0 else 1 end) as nombreEnquete " +
- " From (select distinct c.id as id,c.code as code, c.nom as libelle,c.longitude,c.latitude, e.id as enqueteId from arrondissement a" +
+ " From (select distinct c.id as id,c.code as code, c.nom as libelle, c.longitude,c.latitude, e.id as enqueteId from arrondissement a" +
" inner join arrondissements_structures sa on sa.arrondissement_id=a.id " +
" inner join commune c on c.id= a.commune_id " +
" left join bloc b on b.arrondissement_id=a.id " +
" left join enquete e on e.bloc_id=b.id " +
" where sa.structure_id = ?1 )T" +
- " group by T.id,T.code, T.libelle,T.longitude,T.latitude", nativeQuery = true)
+ " group by T.id,T.code, T.libelle,T.longitude,T.latitude",nativeQuery = true)
List getCommuneEnqResponse(Long structure_id);
+
@Query(value = " Select T.id,T.code, T.libelle,T.longitude,T.latitude, sum(case when T.enqueteId is null then 0 else 1 end) as nombreEnquete " +
- " From (select distinct c.id as id,c.code as code,c.longitude,c.latitude, c.nom as libelle, e.id as enqueteId from arrondissement a" +
+ " From (select distinct c.id as id,c.code as code, c.nom as libelle,c.longitude,c.latitude, e.id as enqueteId from arrondissement a" +
" left join arrondissements_structures sa on sa.arrondissement_id=a.id " +
" left join commune c on c.id= a.commune_id " +
" left join bloc b on b.arrondissement_id=a.id " +
" left join enquete e on e.bloc_id=b.id)T " +
- " group by T.id,T.code, T.libelle,T.longitude,T.latitude", nativeQuery = true)
+ " group by T.id,T.code, T.libelle,T.longitude,T.latitude",nativeQuery = true)
List