23 Commits

Author SHA1 Message Date
87b3bfbe83 Merge pull request 'correction docker composer avec les secrets' (#20) from features/crud_entites into develop
Reviewed-on: #20
2025-12-17 16:49:15 +00:00
e27ec7a268 correction docker composer avec les secrets
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 28s
2025-12-17 17:47:21 +01:00
62f25ea726 Merge pull request 'correction docker composer avec les secrets' (#18) from features/crud_entites into develop
Reviewed-on: #18
2025-12-17 16:41:46 +00:00
6c92d06c50 correction docker composer avec les secrets
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 27s
2025-12-17 17:40:58 +01:00
6125fcbd0b Merge pull request 'correction docker composer' (#16) from features/crud_entites into develop
Reviewed-on: #16
2025-12-17 16:26:17 +00:00
9336715c18 correction docker composer
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 28s
2025-12-17 17:23:32 +01:00
211af6103a Merge pull request 'features/crud_entites' (#14) from features/crud_entites into develop
Reviewed-on: #14
2025-12-17 14:12:53 +00:00
4075fba99b revu des secrets et .env pour différencier
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 32s
2025-12-17 15:11:49 +01:00
c34334376a revu des secrets et .env pour différencier 2025-12-17 15:10:27 +01:00
d27b622db8 Merge pull request 'Changement en DB du nom de la colonne personne_id en proprietaire_id dans la table enquete' (#12) from features/crud_entites into develop
All checks were successful
CD - Deploy on main / deploy (pull_request) Successful in 35s
Reviewed-on: #12
2025-12-16 18:22:48 +00:00
98d0187df4 Changement en DB du nom de la colonne personne_id en proprietaire_id dans la table enquete
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 32s
2025-12-16 19:21:55 +01:00
c80b40082c Merge pull request 'Changement en DB du nom de la colonne personne_id en proprietaire_id dans la table enquete' (#10) from features/crud_entites into develop
All checks were successful
CD - Deploy on main / deploy (pull_request) Successful in 44s
Reviewed-on: #10
2025-12-16 18:06:52 +00:00
1d4a1f61c9 Changement en DB du nom de la colonne personne_id en proprietaire_id dans la table enquete
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 32s
2025-12-16 19:01:07 +01:00
4a88af6487 Merge pull request 'Changement en DB du nom de la colonne personne_id en proprietaire_id dans la table enquete' (#8) from features/crud_entites into develop
All checks were successful
CD - Deploy on main / deploy (pull_request) Successful in 34s
Reviewed-on: #8
2025-12-05 19:24:00 +00:00
bc31074a24 Changement en DB du nom de la colonne personne_id en proprietaire_id dans la table enquete
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 29s
2025-12-05 20:23:36 +01:00
966b0af1c2 Merge pull request 'Changement en DB du nom de la colonne personne_id en proprietaire_id dans la table enquete' (#6) from features/crud_entites into develop
All checks were successful
CD - Deploy on main / deploy (pull_request) Successful in 36s
Reviewed-on: #6
2025-12-05 19:20:57 +00:00
ad2c3c70b2 Changement en DB du nom de la colonne personne_id en proprietaire_id dans la table enquete
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 28s
2025-12-05 20:19:58 +01:00
58aa088ac3 Merge pull request 'ajout de ci-cd' (#4) from features/crud_entites into develop
All checks were successful
CD - Deploy on main / deploy (pull_request) Successful in 39s
Reviewed-on: #4
2025-12-05 19:10:37 +00:00
ac624a62fb ajout de ci-cd
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 29s
2025-12-05 20:09:45 +01:00
033b430051 Merge pull request 'ajout de ci-cd' (#2) from features/crud_entites into develop
Some checks failed
CD - Deploy on main / deploy (pull_request) Failing after 39s
Reviewed-on: #2
2025-12-05 19:06:43 +00:00
87615f210b ajout de ci-cd
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 29s
2025-12-05 20:05:52 +01:00
b8dbc7f625 Merge pull request 'ajout de ci-cd' (#1) from features/crud_entites into develop
Reviewed-on: #1
2025-12-05 17:53:30 +00:00
de2f149cf7 ajout de ci-cd
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 49s
2025-12-05 18:39:21 +01:00
432 changed files with 34007 additions and 850 deletions

3
.env
View File

@@ -1,3 +1,2 @@
POSTGRES_DB=abomey_db
POSTGRES_USER=infocad_user
POSTGRES_PASSWORD=W5fwD({9*q53
POSTGRES_USER=infocad_user

View File

@@ -0,0 +1,129 @@
name: CD - Deploy on main
on:
push:
branches:
- main
jobs:
deploy:
runs-on: self-hosted
steps:
# 1) S'assurer que Node.js est installé
- name: Ensure Node.js is installed
shell: sh
run: |
if command -v node >/dev/null 2>&1; then
echo "Node.js already installed: $(node -v)"
else
apk update && apk add --no-cache nodejs
echo "Node.js installed: $(node -v)"
fi
# 2) S'assurer que Java 17 & Maven sont installés
- name: Ensure Java & Maven are installed
shell: sh
run: |
if ! command -v java >/dev/null 2>&1; then
apk update && apk add --no-cache openjdk17-jdk
fi
java -version
if ! command -v mvn >/dev/null 2>&1; then
apk update && apk add --no-cache maven
fi
mvn -version
# 3) Détecter JAVA_HOME dynamiquement
- name: Detect JAVA_HOME dynamically
shell: sh
run: |
JAVA_BIN=$(readlink -f "$(command -v java)")
JAVA_HOME=$(dirname "$(dirname "$JAVA_BIN")")
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
# 4) Checkout du dépôt
- name: Checkout repository
uses: actions/checkout@v4
# 5) Informations de contexte (sans secrets)
- name: Show context information
shell: sh
run: |
echo "Commit:"
git rev-parse HEAD
echo "JAVA_HOME=$JAVA_HOME"
java -version
mvn -version
# 6) S'assurer que Docker CLI & docker-compose sont installés
- name: Ensure Docker & docker-compose are installed
shell: sh
run: |
if command -v docker >/dev/null 2>&1; then
docker version || true
else
apk update && apk add --no-cache docker docker-compose
docker version || true
fi
# 7) Fournir la configuration NON sensible
- name: Export database configuration
shell: sh
run: |
echo "POSTGRES_DB_FISCAD=fiscad_db" >> "$GITHUB_ENV"
echo "POSTGRES_USER_FISCAD=fiscad_user" >> "$GITHUB_ENV"
# 8) Création des secrets runtime (PRODUCTION)
- name: Create runtime secrets
shell: sh
run: |
mkdir -p secrets
echo "${{ secrets.DEFAULT_USER_NAME }}" > secrets/defaultUserName.txt
echo "${{ secrets.DEFAULT_USER_PASSWORD }}" > secrets/defaultUserPassword.txt
echo "${{ secrets.POSTGRES_PASSWORD_FISCAD }}" > secrets/postgresPassword.txt
chmod 600 secrets/*
# 9) Build Maven (jar final)
- name: Build backend with Maven
shell: sh
run: mvn -B clean package -DskipTests
# 10) Déploiement avec docker-compose (prod)
- name: Deploy using docker-compose (prod)
shell: sh
run: |
export COMPOSE_PROJECT_NAME=fiscad
docker-compose -f docker-compose-prod.yml pull || true
docker-compose -f docker-compose-prod.yml down --remove-orphans
docker-compose -f docker-compose-prod.yml up -d --build
# 11) ✅ TEST BLOQUANT : connexion PostgreSQL
- name: Test database connection
shell: sh
run: |
echo "⏳ Waiting for PostgreSQL to be ready..."
sleep 10
echo "🔍 Testing database connection..."
docker exec fiscad-db sh -c "
export PGPASSWORD=\$(cat /run/secrets/postgresPassword) &&
psql -h localhost \
-U ${POSTGRES_USER_FISCAD} \
-d ${POSTGRES_DB_FISCAD} \
-c 'SELECT 1;'
"
# 12) Nettoyage des secrets (OBLIGATOIRE)
- name: Cleanup secrets
if: always()
shell: sh
run: rm -rf secrets
# 13) Nettoyage des images Docker inutilisées
- name: Cleanup unused Docker images
shell: sh
run: docker image prune -f || true

View File

@@ -0,0 +1,78 @@
name: CI - Build & Test (develop)
on:
pull_request:
branches:
- develop
jobs:
build-and-test:
runs-on: self-hosted
steps:
# 1) Node.js
- name: Ensure Node.js is installed
shell: sh
run: |
if command -v node >/dev/null 2>&1; then
echo "Node.js already installed: $(node -v)"
else
apk update && apk add --no-cache nodejs
echo "Node.js installed: $(node -v)"
fi
# 2) Java & Maven
- name: Ensure Java & Maven are installed
shell: sh
run: |
if ! command -v java >/dev/null 2>&1; then
apk update && apk add --no-cache openjdk17-jdk
fi
java -version
if ! command -v mvn >/dev/null 2>&1; then
apk update && apk add --no-cache maven
fi
mvn -version
# 3) JAVA_HOME
- name: Detect JAVA_HOME dynamically
shell: sh
run: |
JAVA_BIN=$(readlink -f "$(command -v java)")
JAVA_HOME=$(dirname "$(dirname "$JAVA_BIN")")
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
# 4) Checkout
- name: Checkout repository
uses: actions/checkout@v4
# 5) Secrets runtime (CI)
- name: Create runtime secrets
shell: sh
run: |
mkdir -p secrets
echo "${{ secrets.DEFAULT_USER_NAME }}" > secrets/defaultUserName.txt
echo "${{ secrets.DEFAULT_USER_PASSWORD }}" > secrets/defaultUserPassword.txt
echo "${{ secrets.POSTGRES_PASSWORD_FISCAD }}" > secrets/postgresPassword.txt
chmod 600 secrets/*
# 6) Vérification outils
- name: Show Java & Maven versions
shell: sh
run: |
echo "JAVA_HOME=$JAVA_HOME"
java -version
mvn -version
# 7) Build & tests
- name: Build with Maven
shell: sh
run: mvn -B clean verify
# 8) Nettoyage
- name: Cleanup secrets
if: always()
shell: sh
run: rm -rf secrets

2
.gitignore vendored
View File

@@ -3,3 +3,5 @@ fiscad.log*
.DS_Store
target/*
ansible
secrets/
.env

View File

@@ -1,5 +1,5 @@
# Étape 1 : Build avec Maven et Java 17
FROM openjdk:17-jdk-slim
FROM eclipse-temurin:17-jdk-jammy
WORKDIR /app

16598
dgi_zone_pilote.geojson Normal file

File diff suppressed because it is too large Load Diff

74
docker-compose-prod.yml Normal file
View File

@@ -0,0 +1,74 @@
services:
db:
image: postgres:15
container_name: fiscad-db
restart: always
environment:
POSTGRES_DB: ${POSTGRES_DB_FISCAD}
POSTGRES_USER: ${POSTGRES_USER_FISCAD}
POSTGRES_PASSWORD_FILE: /run/secrets/postgresPassword
secrets:
- postgresPassword
ports:
- "5432:5432"
volumes:
- db-data-fiscad:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER_FISCAD}"]
interval: 10s
timeout: 5s
retries: 5
app:
build:
context: .
dockerfile: Dockerfile
container_name: fiscad-app
restart: on-failure
depends_on:
- db
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/${POSTGRES_DB_FISCAD}
SPRING_DATASOURCE_USERNAME: ${POSTGRES_USER_FISCAD}
SPRING_DATASOURCE_PASSWORD_FILE: /run/secrets/postgresPassword
SERVER_PORT: 8282
IO_GMSS_FISCAD_PROFILE: abomey
SPRING_PROFILES_ACTIVE: abomey
DEFAULT_USER_NAME_FILE: /run/secrets/defaultUserName
DEFAULT_USER_PASSWORD_FILE: /run/secrets/defaultUserPassword
secrets:
- postgresPassword
- defaultUserName
- defaultUserPassword
ports:
- "8282:8282"
volumes:
- /fiscad/uploads:/app/uploads
- /fiscad/jasperReport:/app/jasperReport
- /fiscad/logs:/app/logs
volumes:
db-data-fiscad:
secrets:
postgresPassword:
file: ${GITHUB_WORKSPACE}/secrets/postgresPassword.txt
defaultUserName:
file: ${GITHUB_WORKSPACE}/secrets/defaultUserName.txt
defaultUserPassword:
file: ${GITHUB_WORKSPACE}/secrets/defaultUserPassword.txt

View File

@@ -1,4 +1,4 @@
version: '3.9'
#version: '3.9'
services:
@@ -6,41 +6,73 @@ services:
image: postgres:15
container_name: fiscad-db
restart: always
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB_FISCAD}
POSTGRES_USER: ${POSTGRES_USER_FISCAD}
POSTGRES_PASSWORD_FILE: /run/secrets/postgresPassword
secrets:
- postgresPassword
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
restart: on-failure
depends_on:
- db
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/${POSTGRES_DB}
SPRING_DATASOURCE_USERNAME: ${POSTGRES_USER}
SPRING_DATASOURCE_PASSWORD: ${POSTGRES_PASSWORD}
SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/${POSTGRES_DB_FISCAD}
SPRING_DATASOURCE_USERNAME: ${POSTGRES_USER_FISCAD}
SPRING_DATASOURCE_PASSWORD_FILE: /run/secrets/postgresPassword
SERVER_PORT: 8282
IO_GMSS_FISCAD_PROFILE: abomey
SPRING_PROFILES_ACTIVE: abomey
IO_GMSS_FISCAD_PROFILE: dgi
SPRING_PROFILES_ACTIVE: dgi
# 🔐 Secrets Spring (fichiers)
DEFAULT_USER_NAME_FILE: /run/secrets/defaultUserName
DEFAULT_USER_PASSWORD_FILE: /run/secrets/defaultUserPassword
secrets:
- defaultUserName
- defaultUserPassword
- postgresPassword
ports:
- "8282:8282"
volumes:
- ./uploads:/app/uploads
- ./jasperReport:/app/jasperReport
- ./logs:/app/logs
restart: on-failure
volumes:
db-data:
db-data:
secrets:
defaultUserName:
file: ${GITHUB_WORKSPACE}/secrets/defaultUserName.txt
defaultUserPassword:
file: ${GITHUB_WORKSPACE}/secrets/defaultUserPassword.txt
postgresPassword:
file: ${GITHUB_WORKSPACE}/secrets/postgresPassword.txt

View File

@@ -0,0 +1 @@
infocad_admin

View File

@@ -0,0 +1 @@
admin@123

View File

@@ -1 +0,0 @@
W5fwD({9*q53

View File

@@ -20,8 +20,11 @@ public class DataLoadConfig {
private final UserRepository userRepository;
private final PasswordEncoder passwordEncoder;
@Value("${app.sourcemind.env.defaultpassword}")
private String defaultPassword;
@Value("${DEFAULT_USER_NAME_FILE}")
private String usernameFile;
@Value("${DEFAULT_USER_PASSWORD_FILE}")
private String passwordFile;
public DataLoadConfig(RoleRepository roleRepository, UserRepository userRepository, PasswordEncoder passwordEncoder) {
this.roleRepository = roleRepository;
@@ -52,14 +55,14 @@ public class DataLoadConfig {
}
public void loadUsers() {
if (userRepository.countAllByUsernameIsNotNull() == 0) {
if (userRepository.existsByUsername(usernameFile) ) {
User admin = new User();
admin.setUsername("administrateur@infocad.bj");
admin.setUsername(usernameFile);
admin.setEmail("administrateur@infocad.bj");
admin.setTel("N/A");
admin.setNom("Administrateur");
admin.setPrenom("Principal");
admin.setPassword(passwordEncoder.encode(defaultPassword));
admin.setPassword(passwordEncoder.encode(passwordFile));
admin.setActive(true);
Set<Role> roles = new HashSet<>();
roles.add(roleRepository.findRoleByNom(UserRole.ROLE_ADMIN).get());

View File

@@ -13,16 +13,16 @@ import io.swagger.v3.oas.annotations.servers.Server;
@OpenAPIDefinition(
info = @Info(
contact = @Contact(
name = "Novatic",
email = "contact@novatic.org",
url = "https://novatic.org"
name = "ABS Company Bénin",
email = "contact@abs.org",
url = "https://abs.org"
),
description = "Cette page présente toutes les ressources API pour la gestion des données socio-foncières et fiscales",
title = "FISCAD",
version = "1.0",
license = @License(
name = "Licence name",
url = "https://novatic.org"
url = "https://abs.org"
),
termsOfService = "Terms of service"
),
@@ -33,7 +33,7 @@ import io.swagger.v3.oas.annotations.servers.Server;
),
@Server(
description = "TEST ENV (http)",
url = "http://novatic.vps.webdock.cloud:8282"
url = "https://backend.fiscad-test.novatic.org"
),
@Server(
description = "PROD ENV (https)",

View File

@@ -56,13 +56,21 @@ public class ParcelleGeomController {
}
@GetMapping("/by-quartier/{codeQuartier}")
public ResponseEntity<?> getAllTpeList(@PathVariable String codeQuartier) {
public ResponseEntity<?> getParcellesGeomsByQuartier(@PathVariable String codeQuartier) {
return new ResponseEntity<>(
new ApiResponse<>(true, parcelleGeomService.getParcelleGeomListUnQuatier(codeQuartier), "Liste des parcelle chargée avec succès."),
HttpStatus.OK
);
}
@GetMapping("/by-arrondissement/{codeArrondissement}")
public ResponseEntity<?> getParcellesGeomsByArrondissement(@PathVariable String codeArrondissement) {
return new ResponseEntity<>(
new ApiResponse<>(true, parcelleGeomService.getParcelleGeomListUnArrondissement(codeArrondissement), "Liste des parcelle chargée avec succès."),
HttpStatus.OK
);
}
@GetMapping("/all-paged")
public ResponseEntity<?> getAllTpePaged(@RequestParam int pageNo, @RequestParam int pageSize) {

View File

@@ -26,7 +26,7 @@ import org.springframework.web.client.HttpClientErrorException;
@SecurityRequirement(name = "bearer")
@Tag(name = "Tpe")
@CrossOrigin(origins = "*")
//@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
public class TpeController {
private final TpeService tpeService;

View File

@@ -14,8 +14,6 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
import java.util.List;
@RestController
@RequestMapping(value = "api/restauration", produces = MediaType.APPLICATION_JSON_VALUE)
@SecurityRequirement(name = "bearer")
@@ -31,11 +29,11 @@ public class RestaurationController {
this.restaurationService = restaurationService;
}
@GetMapping(path = "/enquete")
public ResponseEntity<?> getEnquetes(@RequestParam Long terminalId,@RequestParam Long limit, @RequestParam Long offset) {
@GetMapping(path = "/enquete/{terminalId}")
public ResponseEntity<?> getEnquetes(@PathVariable Long terminalId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, restaurationService.getEnquete(terminalId,limit,offset), "liste des enquetes avec succès."),
new ApiResponse<>(true, restaurationService.getEnquete(terminalId), "liste des enquetes avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -54,11 +52,11 @@ public class RestaurationController {
}
}
@GetMapping(path = "/acteur-concerne")
public ResponseEntity<?> getActeurConcerne(@RequestParam Long terminalId,@RequestParam Long limit, @RequestParam Long offset) {
@GetMapping(path = "/acteur-concerne/{terminalId}")
public ResponseEntity<?> getActeurConcerne(@PathVariable Long terminalId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, restaurationService.getActeurConcernes(terminalId,limit,offset), "liste des acteurs concernés avec succès."),
new ApiResponse<>(true, restaurationService.getActeurConcernes(terminalId), "liste des acteurs concernés avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -77,11 +75,11 @@ public class RestaurationController {
}
}
@GetMapping(path = "/personne") // ok
public ResponseEntity<?> getPersonnes(@RequestParam Long terminalId,@RequestParam Long limit, @RequestParam Long offset) {
@GetMapping(path = "/personne/{terminalId}") // ok
public ResponseEntity<?> getPersonnes(@PathVariable Long terminalId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, restaurationService.getPersonne(terminalId,limit,offset), "liste des personnes avec succès."),
new ApiResponse<>(true, restaurationService.getPersonne(terminalId), "liste des personnes avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -100,11 +98,11 @@ public class RestaurationController {
}
}
@GetMapping(path = "/membre-groupe")
public ResponseEntity<?> getMembrePersonnes(@RequestParam Long terminalId,@RequestParam Long limit, @RequestParam Long offset) {
@GetMapping(path = "/membre-groupe/{terminalId}")
public ResponseEntity<?> getMembrePersonnes(@PathVariable Long terminalId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, restaurationService.getMembreGroupe(terminalId,limit,offset), "liste des membres groupe avec succès."),
new ApiResponse<>(true, restaurationService.getMembreGroupe(terminalId), "liste des membres groupe avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -123,11 +121,11 @@ public class RestaurationController {
}
}
@GetMapping(path = "/parcelle")
public ResponseEntity<?> getParcelle(@RequestParam Long terminalId,@RequestParam Long limit, @RequestParam Long offset) {
@GetMapping(path = "/parcelle/{terminalId}")
public ResponseEntity<?> getParcelle(@PathVariable Long terminalId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, restaurationService.getParcelle(terminalId,limit,offset), "liste des parcelle avec succès."),
new ApiResponse<>(true, restaurationService.getParcelle(terminalId), "liste des parcelle avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -146,11 +144,11 @@ public class RestaurationController {
}
}
@GetMapping(path = "/caracteristique-parcelle")
public ResponseEntity<?> getCaracteristiqueParcelle(@RequestParam Long terminalId,@RequestParam Long limit, @RequestParam Long offset) {
@GetMapping(path = "/piece/{terminalId}")
public ResponseEntity<?> getPieces(@PathVariable Long terminalId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, restaurationService.getCaracateristiqueParcelle(terminalId,limit,offset), "liste des caractéristiques des unités de logement avec succès."),
new ApiResponse<>(true, restaurationService.getPieces(terminalId), "liste des enquetes avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -169,34 +167,11 @@ public class RestaurationController {
}
}
@GetMapping(path = "/piece")
public ResponseEntity<?> getPieces(@RequestParam Long terminalId,@RequestParam Long limit, @RequestParam Long offset) {
@GetMapping(path = "/upload/{terminalId}")
public ResponseEntity<?> getUpload(@PathVariable Long terminalId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, restaurationService.getPieces(terminalId,limit,offset), "liste des enquetes 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(path = "/upload")
public ResponseEntity<?> getUpload(@RequestParam Long terminalId,@RequestParam Long limit, @RequestParam Long offset) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, restaurationService.getUploads(terminalId,limit,offset), "liste des enquetes avec succès."),
new ApiResponse<>(true, restaurationService.getUpload(terminalId), "liste des enquetes avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -238,18 +213,12 @@ public class RestaurationController {
}
}
@PostMapping(path = "/files/{terminalId}")
public ResponseEntity<?> getCurrentUserTpe(@RequestBody List<Long> ids, @PathVariable Long terminalId) {
return new ResponseEntity<>(
new ApiResponse<>(true, restaurationService.getFiles(terminalId, ids), "liste des enquetes avec succès."),
HttpStatus.OK
);
}
@GetMapping(path = "/batiment")
public ResponseEntity<?> getBatiments(@RequestParam Long terminalId,@RequestParam Long limit, @RequestParam Long offset) {
@GetMapping(path = "/batiment/{terminalId}")
public ResponseEntity<?> getBatiments(@PathVariable Long terminalId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, restaurationService.getBatiment(terminalId,limit,offset), "liste des batiments avec succès."),
new ApiResponse<>(true, restaurationService.getBatiment(terminalId), "liste des batiments avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -269,11 +238,11 @@ public class RestaurationController {
}
@GetMapping(path = "/enquete-batiment")
public ResponseEntity<?> getEnqueteBatiment(@RequestParam Long terminalId,@RequestParam Long limit, @RequestParam Long offset) {
@GetMapping(path = "/enquete-batiment/{terminalId}")
public ResponseEntity<?> getEnqueteBatiment(@PathVariable Long terminalId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, restaurationService.getEnqueteBatiment(terminalId,limit,offset), "liste des enquetes batiments avec succès."),
new ApiResponse<>(true, restaurationService.getEnqueteBatiment(terminalId), "liste des enquetes batiments avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -293,11 +262,11 @@ public class RestaurationController {
}
@GetMapping(path = "/caracteristique-batiment")
public ResponseEntity<?> getCaracteristiqueBatiment(@RequestParam Long terminalId,@RequestParam Long limit, @RequestParam Long offset) {
@GetMapping(path = "/caracteristique-batiment/{terminalId}")
public ResponseEntity<?> getCaracteristiqueBatiment(@PathVariable Long terminalId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, restaurationService.getCaracateristiqueBatiment(terminalId,limit,offset), "liste des caractéristiques batiments avec succès."),
new ApiResponse<>(true, restaurationService.getCaracateristiqueBatiment(terminalId), "liste des caractéristiques batiments avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -316,82 +285,11 @@ public class RestaurationController {
}
}
@GetMapping(path = "/unite-logement")
public ResponseEntity<?> getUniteLogement(@RequestParam Long terminalId,@RequestParam Long limit, @RequestParam Long offset) {
@GetMapping(path = "/caracteristique-unite-logement/{terminalId}")
public ResponseEntity<?> getCaracteristiqueUniteLogement(@PathVariable Long terminalId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, restaurationService.getUniteLogement(terminalId, limit, offset), "liste des unités de logement 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(path = "/enquete-unite-logement")
public ResponseEntity<?> getEnqueteEnqueteUniteLogement(@RequestParam Long terminalId,@RequestParam Long limit, @RequestParam Long offset) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, restaurationService.getEnqueteUniteLogement(terminalId,limit,offset), "liste des enquetes d'unité de logement 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(path = "/caracteristique-unite-logement")
public ResponseEntity<?> getCaracteristiqueUniteLogement(@RequestParam Long terminalId,@RequestParam Long limit, @RequestParam Long offset) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, restaurationService.getCaracateristiqueUniteLogement(terminalId,limit,offset), "liste des caractéristiques des unités de logement 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(path = "/taille-objet")
public ResponseEntity<?> getTailleObjet(@RequestParam Long terminalId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, restaurationService.getTailleObjetByTerminalId(terminalId), "liste des tailles des objets chargée avec succès."),
new ApiResponse<>(true, restaurationService.getCaracateristiqueUniteLogement(terminalId), "liste des caractéristiques des unités de logement avec succès."),
HttpStatus.OK
);
} catch (HttpClientErrorException.MethodNotAllowed e) {

View File

@@ -18,6 +18,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@@ -442,11 +443,11 @@ public class SynchronisationController {
@PostMapping(path = "/unite-logement")
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
public ResponseEntity<?> syncUniteLogement(@RequestBody List<UniteLogementPayload> uniteLogementPayloads) {
public ResponseEntity<?> syncUniteLogement(@RequestBody List<UniteLogementPaylaod> 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(uniteLogementPayloads), "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
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -467,11 +468,11 @@ public class SynchronisationController {
@PostMapping(path = "/caracteristique-batiment")
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
public ResponseEntity<?> syncCaracteristiqueBatiment(@RequestBody List<CaracteristiqueBatimentPayload> caracteristiqueBatimentPayloads) {
public ResponseEntity<?> syncCaracteristiqueBatiment(@RequestBody List<CaracteristiqueBatimentPaylod> 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(caracteristiqueBatimentPayloads), "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
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -492,11 +493,11 @@ public class SynchronisationController {
@PostMapping(path = "/caracteristique-parcelle")
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
public ResponseEntity<?> syncCaracteristiqueParcelle(@RequestBody List<CaracteristiqueParcellePayload> caracteristiqueParcellePayloads) {
public ResponseEntity<?> syncCaracteristiqueParcelle(@RequestBody List<CaracteristiqueParcellePaylod> 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(caracteristiqueParcellePayloads), "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
);
} catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -517,11 +518,11 @@ public class SynchronisationController {
@PostMapping(path = "/caracteristique-unite-logement")
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
public ResponseEntity<?> syncCaracteristiqueUniteLogement(@RequestBody List<CaracteristiqueUniteLogementPayload> caracteristiqueUniteLogementPayloads) {
public ResponseEntity<?> syncCaracteristiqueUniteLogement(@RequestBody List<CaracteristiqueUniteLogementPaylod> 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(caracteristiqueUniteLogementPayloads), "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
);
} catch (HttpClientErrorException.MethodNotAllowed e) {

View File

@@ -50,27 +50,35 @@ public class Enquete extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateEnquete;
private boolean litige;
@JsonIgnore
@ManyToOne
private User user;
private Long mobileDataId;
@JsonIgnore
@OneToMany(mappedBy = "enquete")
private List<ActeurConcerne> acteurConcernes;
@JsonIgnore
@ManyToOne
private Parcelle parcelle;
private Long parcelleExternalKey;
@JsonIgnore
@ManyToOne
private Bloc bloc;
@ManyToOne
private Campagne campagne;
@@ -80,15 +88,14 @@ public class Enquete extends BaseEntity implements Serializable {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "proprietaire_id")
private Personne personne ;
@JsonIgnore
@ManyToOne
private ZoneRfu zoneRfu;
private String autreNumeroTitreFoncier;
// private Long personneId;
private Long personneId;
@Enumerated(EnumType.STRING)
private StatusEnquete statusEnquete;
@JsonFormat(pattern = "dd-MM-yyyy")
@@ -152,17 +159,19 @@ public class Enquete extends BaseEntity implements Serializable {
private String numRue;
private String nomRue;
private String emplacement;
private Float altitude;
private Float precision;
private Integer nbreCoProprietaire;
private Integer nbreIndivisiaire;
private float altitude;
private float precision;
private int nbreCoProprietaire;
private int nbreIndivisiaire;
private String autreAdresse;
private String surface;
private Integer nbreBatiment;
private Integer nbrePiscine;
private int nbreBatiment;
private int nbrePiscine;
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateDebutExcemption;
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateFinExcemption;

View File

@@ -54,7 +54,7 @@ public class Parcelle extends BaseEntity implements Serializable {
private String autreNumeroTitreFoncier;
private Long typeDomaineId;
private String numeroProvisoire;
private Long numeroProvisoire;
private Long blocId;
@ColumnDefault("false")
private boolean synchronise;

View File

@@ -5,6 +5,9 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
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.decoupage.Departement;
import io.gmss.fiscad.entities.decoupage.Quartier;
import io.gmss.fiscad.enums.StatutParcelle;
import jakarta.persistence.*;
@@ -26,16 +29,20 @@ import java.io.Serializable;
@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 ParcelleGeom extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String NomDepartement;
private String NomCommune;
private String NomArrondissement;
private String NomVillageQuartier;
private String codeBloc;
private String q;
private String ilot;
private String zone;
@@ -47,60 +54,51 @@ public class ParcelleGeom extends BaseEntity implements Serializable {
private String longitude;
private String latitude;
private String pointsPolygone;
//////////
private String departement;
private String commune;
private String arrondissement;
private String villageQuartier;
private String codeBloc;
//private String codeParcelle;
private String codeEquipe;
private Integer superficie;
private String elNumeroEtatLieux;
private String elLot;
private String elLettreParcelle;
private String rfuQuartierOuZone;
private String rfuIlot;
private String rfuLettreParcelle;
private String dateCollecte;
private String nomLotissement;
private String nomEtPrenoms;
private String sourceCollecte;
private String dateCollecte;
private String sourceDonnees;
private String observations;
@Enumerated(EnumType.STRING)
private StatutParcelle statutParcelle;
// @JsonIgnore
// @ManyToOne
// private Upload upload;
private Long uploadId;
@ManyToOne
private Departement departement;
@ManyToOne
private Commune commune;
@ManyToOne
private Arrondissement arrondissement;
@ManyToOne
private Quartier quartier ;
@ColumnDefault("0")
private int geomSrid;
@JsonSerialize(using = GeometrySerializer.class)
@JsonDeserialize(contentUsing = GeometryDeserializer.class)
@Column(name = "geometry",columnDefinition = "geometry(Polygon,32631)")
private Polygon geometry;
@Column(columnDefinition = "TEXT")
private String geometryString;
private String codeInsae;
private String numeroEtatLieux;
private String numeroTitreFoncier;
private String telephone;
//private String codeParcelle;
//private String codeEquipe;
//private String elLot;
//private String elLettreParcelle;
//private String rfuQuartierOuZone;
//private String rfuIlot;
//private String rfuLettreParcelle;
//private String nomLotissement;
////////////
// @JsonIgnore
// @OneToOne
// private Parcelle parcelle;
@ManyToOne
private Quartier quartier;
@ColumnDefault("0")
private int geomSrid;
// @JsonSerialize(using = GeometrySerializer.class)
// @JsonDeserialize(contentUsing = GeometryDeserializer.class)
// @Column(name = "geom",columnDefinition = "geometry(Polygon,4326)")
// private Polygon geometry ;
@JsonSerialize(using = GeometrySerializer.class)
@JsonDeserialize(contentUsing = GeometryDeserializer.class)
@Column(name = "geometry",columnDefinition = "geometry(Polygon,32631)")
private Polygon geometry;
@Column(columnDefinition = "TEXT")
private String geometryString;
}

View File

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

View File

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

View File

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

View File

@@ -15,7 +15,7 @@ import java.io.Serializable;
@Setter
@Table(
indexes = {
@Index(name = "idx_terminal_external_declarationNc", columnList = "terminalId, externalKey")
@Index(name = "idx_terminal_external_dnc", columnList = "terminalId, externalKey")
}
)
public class MobileDataDeclarationNc extends BaseEntity implements Serializable {

View File

@@ -16,7 +16,7 @@ import java.io.Serializable;
@Setter
@Table(
indexes = {
@Index(name = "idx_terminal_external_EnqActivite", columnList = "terminalId, externalKey")
@Index(name = "idx_terminal_external_activite", columnList = "terminalId, externalKey")
}
)
public class MobileDataEnqueteActivite extends BaseEntity implements Serializable {

View File

@@ -2,7 +2,8 @@ package io.gmss.fiscad.entities.metadata;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.paylaods.request.UniteLogementPayload;
import io.gmss.fiscad.paylaods.request.ParcellePayLoad;
import io.gmss.fiscad.paylaods.request.UniteLogementPaylaod;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
@@ -26,7 +27,7 @@ public class MobileDataUniteLogement extends BaseEntity implements Serializable
private Long externalKey;
@Type(JsonBinaryType.class)
@Column(columnDefinition = "jsonb")
private UniteLogementPayload uniteLogementPayload ;
private UniteLogementPaylaod uniteLogementPaylaod ;
@Column(columnDefinition = "boolean default false")
private boolean traiter;
}

View File

@@ -49,8 +49,9 @@ public class EnqueteActivite extends BaseEntity implements Serializable {
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateEnquete;
//@Column(columnDefinition = "false")
private Boolean estDeclarer;
@Column(columnDefinition = "boolean default false", nullable = false)
private boolean estDeclarer;
private String nc;
private Long ChiffreAffaire;
private String NumeroRccm;

View File

@@ -41,20 +41,20 @@ public class EnqueteBatiment extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Float surfaceAuSol;
private float surfaceAuSol;
private String autreMenuisierie;
private String autreMur;
private Boolean sbee;
private boolean sbee;
private String numCompteurSbee;
private Boolean soneb;
private boolean soneb;
private String numCompteurSoneb;
private Integer nbreLotUnite;
private Integer nbreUniteLocation;
private Float surfaceLouee;
private Integer nbreMenage;
private Integer nbreHabitant;
private Float valeurMensuelleLocation;
private Integer nbreMoisLocation;
private int nbreLotUnite;
private int nbreUniteLocation;
private float surfaceLouee;
private int nbreMenage;
private int nbreHabitant;
private float valeurMensuelleLocation;
private int nbreMoisLocation;
private String autreCaracteristiquePhysique;
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)

View File

@@ -40,17 +40,17 @@ public class EnqueteUniteLogement extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Float surface;
private Integer nbrePiece;
private Integer nbreHabitant;
private Integer nbreMenage;
private float surface;
private int nbrePiece;
private int nbreHabitant;
private int nbreMenage;
private boolean enLocation;
private Float montantMensuelLoyer;
private Integer nbreMoisEnLocation;
private Float montantLocatifAnnuelDeclare;
private Float surfaceLouee;
private Boolean sbee;
private Boolean soneb;
private float montantMensuelLoyer;
private int nbreMoisEnLocation;
private float montantLocatifAnnuelDeclare;
private float surfaceLouee;
private boolean sbee;
private boolean soneb;
private String numCompteurSbee;
private String numCompteurSoneb;
@JsonFormat(pattern = "dd-MM-yyyy")

View File

@@ -120,28 +120,28 @@ public class ParcelleGeomServiceImpl implements ParcelleGeomService {
}
parcelleGeom.setUploadId(upload.getId());
parcelleGeom.setDepartement(propertiesNode.get("DEPARTEMENT").textValue());
parcelleGeom.setCommune(propertiesNode.get("COMMUNE").textValue());
parcelleGeom.setArrondissement(propertiesNode.get("ARRONDISSEMENT").textValue());
parcelleGeom.setVillageQuartier(propertiesNode.get("VILLAGE_QUARTIER").textValue());
parcelleGeom.setCodeBloc(propertiesNode.get("CODE_BLOC").textValue());
parcelleGeom.setNupProvisoire(propertiesNode.get("CODE_PARCELLE").textValue());
parcelleGeom.setCodeEquipe(propertiesNode.get("CODE_EQUIPE").textValue());
try {
parcelleGeom.setSuperficie(Integer.parseInt(propertiesNode.get("SUPERFICIE").textValue()));
}catch (Exception e){
}
parcelleGeom.setElNumeroEtatLieux(propertiesNode.get("EL_NUMERO_ETAT_LIEUX").textValue());
parcelleGeom.setElLot(propertiesNode.get("EL_LOT").textValue());
parcelleGeom.setRfuQuartierOuZone(propertiesNode.get("RFU_QUARTIER_OU_ZONE").textValue());
parcelleGeom.setElLettreParcelle(propertiesNode.get("EL_LETTRE_PARCELLE").textValue());
parcelleGeom.setRfuIlot(propertiesNode.get("RFU_ILOT").textValue());
parcelleGeom.setRfuLettreParcelle(propertiesNode.get("RFU_LETTRE_PARCELLE").textValue());
parcelleGeom.setDateCollecte(propertiesNode.get("DATE_COLLECTE").textValue());
parcelleGeom.setNomLotissement(propertiesNode.get("NOM_LOTISSEMENT").textValue());
parcelleGeom.setNomEtPrenoms(propertiesNode.get("NOM_ET_PRENOMS").textValue());
parcelleGeom.setSourceCollecte(propertiesNode.get("SOURCE_COLLECTE").textValue());
parcelleGeom.setObservations(propertiesNode.get("OBSERVATIONS").textValue());
// parcelleGeom.setDepartement(propertiesNode.get("DEPARTEMENT").textValue());
// parcelleGeom.setCommune(propertiesNode.get("COMMUNE").textValue());
// parcelleGeom.setArrondissement(propertiesNode.get("ARRONDISSEMENT").textValue());
// parcelleGeom.setVillageQuartier(propertiesNode.get("VILLAGE_QUARTIER").textValue());
// parcelleGeom.setCodeBloc(propertiesNode.get("CODE_BLOC").textValue());
// parcelleGeom.setNupProvisoire(propertiesNode.get("CODE_PARCELLE").textValue());
// parcelleGeom.setCodeEquipe(propertiesNode.get("CODE_EQUIPE").textValue());
// try {
// parcelleGeom.setSuperficie(Integer.parseInt(propertiesNode.get("SUPERFICIE").textValue()));
// }catch (Exception e){
// }
// parcelleGeom.setElNumeroEtatLieux(propertiesNode.get("EL_NUMERO_ETAT_LIEUX").textValue());
// parcelleGeom.setElLot(propertiesNode.get("EL_LOT").textValue());
// parcelleGeom.setRfuQuartierOuZone(propertiesNode.get("RFU_QUARTIER_OU_ZONE").textValue());
// parcelleGeom.setElLettreParcelle(propertiesNode.get("EL_LETTRE_PARCELLE").textValue());
// parcelleGeom.setRfuIlot(propertiesNode.get("RFU_ILOT").textValue());
// parcelleGeom.setRfuLettreParcelle(propertiesNode.get("RFU_LETTRE_PARCELLE").textValue());
// parcelleGeom.setDateCollecte(propertiesNode.get("DATE_COLLECTE").textValue());
// parcelleGeom.setNomLotissement(propertiesNode.get("NOM_LOTISSEMENT").textValue());
// parcelleGeom.setNomEtPrenoms(propertiesNode.get("NOM_ET_PRENOMS").textValue());
// parcelleGeom.setSourceCollecte(propertiesNode.get("SOURCE_COLLECTE").textValue());
// parcelleGeom.setObservations(propertiesNode.get("OBSERVATIONS").textValue());
parcelleGeom= parcelleGeomRepository.save(parcelleGeom);
try {
setStatutParcelleGeomFromGeoJson(parcelleGeom);
@@ -180,6 +180,11 @@ public class ParcelleGeomServiceImpl implements ParcelleGeomService {
return parcelleGeomRepository.findAllByQuartier_Code(codeQuartier);
}
@Override
public List<ParcelleGeom> getParcelleGeomListUnArrondissement(String codeArrondissement) {
return parcelleGeomRepository.findAllByQuartier_Arrondissement_Code(codeArrondissement);
}
@Override

View File

@@ -127,7 +127,6 @@ public class TpeServiceImpl implements TpeService {
public List<Tpe> getTpeListByUserId(Long userId) {
return tpeRepository.getTpeByUserId(userId);
}
@Override
public Tpe reCreateExistTpe(Tpe tpe) throws BadRequestException {

View File

@@ -1,15 +1,10 @@
package io.gmss.fiscad.implementations.synchronisation;
import io.gmss.fiscad.entities.infocad.metier.Tpe;
import io.gmss.fiscad.entities.metadata.*;
import io.gmss.fiscad.entities.user.User;
import io.gmss.fiscad.paylaods.request.*;
//import io.gmss.fiscad.paylaods.response.restoration.BatimentPayload;
import io.gmss.fiscad.paylaods.response.restoration.TailleObjet;
import io.gmss.fiscad.repositories.metadata.*;
import io.gmss.fiscad.interfaces.synchronisation.RestaurationService;
import io.gmss.fiscad.interfaces.user.UserService;
//import io.gmss.fiscad.paylaods.response.restoration.*;
import io.gmss.fiscad.paylaods.response.restoration.*;
import io.gmss.fiscad.repositories.infocad.metier.*;
import io.gmss.fiscad.repositories.infocad.parametre.PersonneRepository;
import io.gmss.fiscad.repositories.rfu.metier.*;
@@ -20,8 +15,9 @@ import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
@Service
@RequiredArgsConstructor
@@ -36,7 +32,6 @@ public class RestaurationServiceImpl implements RestaurationService {
private final FileStorageService fileStorageService;
private final TpeRepository tpeRepository;
private final UserService userService;
private final MobileDataEnqueteRepository mobileDataEnqueteRepository;
private Authentication authentication;
private final BatimentRepository batimentRepository;
private final EnqueteBatimentRepository enqueteBatimentRepository;
@@ -45,223 +40,109 @@ public class RestaurationServiceImpl implements RestaurationService {
private final CaracteristiqueParcelleRepository caracteristiqueParcelleRepository;
private final EnqueteUniteLogementRepository enqueteUniteLogementRepository;
private final UniteLogementRepository uniteLogementRepository;
private final MobileDataActeurConcerneRepository mobileDataActeurConcerneRepository;
private final MobileDataPersonneRepository mobileDataPersonneRepository;
private final MobileDataMembreGroupeRepository mobileDataMembreGroupeRepository;
private final MobileDataParcelleRepository mobileDataParcelleRepository;
private final MobileDataPieceRepository mobileDataPieceRepository;
private final MobileDataUploadRepository mobileDataUploadRepository;
private final MobileDataBatimentRepository mobileDataBatimentRepository;
private final MobileDataEnqueteBatimentRepository mobileDataEnqueteBatimentRepository;
private final MobileDataCaracteristiqueParcelleRepository mobileDataCaracteristiqueParcelleRepository;
private final MobileDataCaracteristiqueBatimentRepository mobileDataCaracteristiqueBatimentRepository;
private final MobileDataEnqueteUniteLogementRepository mobileDataEnqueteUniteLogementRepository;
private final MobileDataCaracteristiqueUniteLogementRepository mobileDataCaracteristiqueUniteLogementRepository;
private final MobileDataUniteLogementRepository mobileDataUniteLogementRepository;
// @Override
// public List<ActeurConcernePayLoad> getActeurConcernes(Long terminaleId) {
// return acteurConcerneRepository.getActeurConcerneByTerminalId(terminaleId);
// }
// @Override
// public List<EnquetePayLoad> getEnquete(Long terminaleId) {
// return enqueteRepository.getEnqueteByTerminalId(terminaleId);
// }
@Override
public List<ActeurConcernePayLoad> getActeurConcernes(Long terminaleId, Long limit, Long offset) {
return mobileDataActeurConcerneRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataActeurConcerne::getActeurConcernePayLoad)
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
@Override
public List<EnquetePayLoad> getEnquete(Long terminaleId, Long limit, Long offset) {
return mobileDataEnqueteRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataEnquete::getEnquetePayLoad)
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
// @Override
// public List<PersonnePayLoad> getPersonne(Long terminaleId) {
// return personneRepository.getPersonnesByTerminalId(terminaleId);
// }
@Override
public List<PersonnePayLoad> getPersonne(Long terminaleId, Long limit, Long offset) {
return mobileDataPersonneRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataPersonne::getPersonnePayLoad)
.filter(Objects::nonNull)
.collect(Collectors.toList());
public List<ActeurConcernePayLoad> getActeurConcernes(Long terminaleId) {
return acteurConcerneRepository.getActeurConcerneByTerminalId(terminaleId);
}
@Override
public List<MembreGroupePayLoad> getMembreGroupe(Long terminaleId, Long limit, Long offset) {
public List<EnquetePayLoad> getEnquete(Long terminaleId) {
return mobileDataMembreGroupeRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataMembreGroupe::getMembreGroupePayLoad)
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
// @Override
// public List<ParcellePayLoad> getParcelle(Long terminaleId) {
//
// return parcelleRepository.getParcellesByTerminalId(terminaleId);
// }
@Override
public List<ParcellePayLoad> getParcelle(Long terminaleId, Long limit, Long offset) {
return mobileDataParcelleRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataParcelle::getParcellePayLoad)
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
// @Override
// public List<PiecePayLoad> getPieces(Long terminaleId) {
// return pieceRepository.getPiecesByTerminalId(terminaleId);
// }
@Override
public List<PiecePayLoad> getPieces(Long terminaleId, Long limit, Long offset) {
return mobileDataPieceRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataPiece::getPiecePayLoad)
.filter(Objects::nonNull)
.collect(Collectors.toList());
return enqueteRepository.getEnqueteByTerminalId(terminaleId);
}
@Override
public List<UploadPayLoad> getUploads(Long terminaleId, Long limit, Long offset) {
List<MobileDataUpload> mobileDataUploads = mobileDataUploadRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset);
return getUploadPayLoads(mobileDataUploads);
public List<PersonnePayLoad> getPersonne(Long terminaleId) {
return personneRepository.getPersonnesByTerminalId(terminaleId);
}
// @Override
// public List<BatimentPaylaod> getBatiment(Long terminalId) {
// return batimentRepository.getBatimentByTerminalId(terminalId);
// }
@Override
public List<io.gmss.fiscad.paylaods.request.BatimentPaylaod> getBatiment(Long terminaleId, Long limit, Long offset) {
public List<ParcellePayLoad> getParcelle(Long terminaleId) {
return mobileDataBatimentRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataBatiment::getBatimentPaylaod)
.filter(Objects::nonNull)
.collect(Collectors.toList());
return parcelleRepository.getParcellesByTerminalId(terminaleId);
}
// @Override
// public List<EnqueteBatimentPayLoad> getEnqueteBatiment(Long terminalId) {
// return enqueteBatimentRepository.getEnqueteBatimentByTerminalId(terminalId);
// }
@Override
public List<EnqueteBatimentPayload> getEnqueteBatiment(Long terminaleId, Long limit, Long offset) {
public List<PiecePayLoad> getPieces(Long terminaleId) {
return mobileDataEnqueteBatimentRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataEnqueteBatiment::getEnqueteBatimentPayload)
.filter(Objects::nonNull)
.collect(Collectors.toList());
return pieceRepository.getPiecesByTerminalId(terminaleId);
}
// @Override
// public List<CaracateristiqueParcellePayLoads> getCaracateristiqueParcelle(Long terminalId) {
// return caracteristiqueParcelleRepository.getCaracteristiqueParcelleByTerminalId(terminalId);
// }
@Override
public List<CaracteristiqueParcellePayload> getCaracateristiqueParcelle(Long terminaleId, Long limit, Long offset) {
public List<MembreGroupePayLoad> getMembreGroupe(Long terminaleId) {
return mobileDataCaracteristiqueParcelleRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataCaracteristiqueParcelle::getCaracteristiqueParcellePayload)
.filter(Objects::nonNull)
.collect(Collectors.toList());
return membreGroupeRepository.getMembreGroupeByTerminalId(terminaleId);
}
// @Override
// public List<CaracateristiqueBatimentPayLoads> getCaracateristiqueBatiment(Long terminalId) {
// return caracteristiqueBatimentRepository.getCaracteristiqueBatimentByTerminalId(terminalId);
// }
@Override
public List<CaracteristiqueBatimentPayload> getCaracateristiqueBatiment(Long terminaleId, Long limit, Long offset) {
public List<io.gmss.fiscad.paylaods.request.UploadPayLoad> getUpload(Long terminaleId) {
List<UploadPayLoad> uploadPayLoads = uploadRepository.getUploadByTerminalId(terminaleId);
return mobileDataCaracteristiqueBatimentRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataCaracteristiqueBatiment::getCaracteristiqueBatimentPayload)
.filter(Objects::nonNull)
.collect(Collectors.toList());
List<io.gmss.fiscad.paylaods.request.UploadPayLoad> uploadPayLoadsOut = new ArrayList<>();
uploadPayLoads.forEach(uploadPayLoad -> {
io.gmss.fiscad.paylaods.request.UploadPayLoad uploadPayLoadLocal = new io.gmss.fiscad.paylaods.request.UploadPayLoad();
uploadPayLoadLocal.setTerminalId(uploadPayLoad.getTerminalId());
String inputStream = getUploadFile(uploadPayLoad);
uploadPayLoadLocal.setFileBase64(inputStream);
uploadPayLoadLocal.setIdBackend(uploadPayLoad.getIdBackend());
uploadPayLoadLocal.setPieceId(uploadPayLoad.getPieceId());
uploadPayLoadLocal.setSynchronise(uploadPayLoad.getSynchronise());
uploadPayLoadLocal.setMembreGroupeId(uploadPayLoad.getMembreGroupeId());
uploadPayLoadLocal.setExternalKey(uploadPayLoad.getExternalKey());
uploadPayLoadLocal.setBlocId(uploadPayLoad.getBlocId());
uploadPayLoadLocal.setFilePath(uploadPayLoad.getFilePath());
uploadPayLoadLocal.setEnqueteId(uploadPayLoad.getEnqueteId());
uploadPayLoadLocal.setMax_numero_acteur_concerne_id(uploadPayLoad.getMax_numero_acteur_concerne_id());
uploadPayLoadLocal.setMax_numero_piece_id(uploadPayLoad.getMax_numero_piece_id());
uploadPayLoadLocal.setMax_numero_upload_id(uploadPayLoad.getMax_numero_upload_id());
uploadPayLoadLocal.setName(uploadPayLoad.getName());
uploadPayLoadLocal.setObservation(uploadPayLoad.getObservation());
uploadPayLoadsOut.add(uploadPayLoadLocal);
});
return uploadPayLoadsOut;
}
// @Override
// public List<CaracteristiqueUniteLogementPayLoad> getCaracateristiqueUniteLogement(Long terminalId) {
// return caracteristiqueUniteLogementRepository.getCaracteristiqueUniteLogementByTerminalId(terminalId);
// }
@Override
public List<CaracteristiqueUniteLogementPayload> getCaracateristiqueUniteLogement(Long terminaleId, Long limit, Long offset) {
return mobileDataCaracteristiqueUniteLogementRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataCaracteristiqueUniteLogement::getCaracteristiqueUniteLogementPayload)
.filter(Objects::nonNull)
.collect(Collectors.toList());
public List<BatimentPayload> getBatiment(Long terminalId) {
return batimentRepository.getBatimentByTerminalId(terminalId);
}
// @Override
// public List<EnqueteUniteLogementPayLoad> getEnqueteUniteLogement(Long terminalId) {
// return enqueteUniteLogementRepository.getEnqueteUniteLogementByTerminalId(terminalId);
// }
@Override
public List<EnqueteUniteLogementPayload> getEnqueteUniteLogement(Long terminaleId, Long limit, Long offset) {
return mobileDataEnqueteUniteLogementRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataEnqueteUniteLogement::getEnqueteUniteLogementPayload)
.filter(Objects::nonNull)
.collect(Collectors.toList());
public List<EnqueteBatimentPayLoad> getEnqueteBatiment(Long terminalId) {
return enqueteBatimentRepository.getEnqueteBatimentByTerminalId(terminalId);
}
// @Override
// public List<UniteLogementPayLoad> getUniteLogement(Long terminalId) {
// return uniteLogementRepository.getUniteLogementByTerminalId(terminalId);
// }
@Override
public List<CaracateristiqueParcellePayLoads> getCaracateristiqueParcelle(Long terminalId) {
return caracteristiqueParcelleRepository.getCaracteristiqueParcelleByTerminalId(terminalId);
}
@Override
public List<UniteLogementPayload> getUniteLogement(Long terminaleId, Long limit, Long offset) {
public List<CaracateristiqueBatimentPayLoads> getCaracateristiqueBatiment(Long terminalId) {
return caracteristiqueBatimentRepository.getCaracteristiqueBatimentByTerminalId(terminalId);
}
return mobileDataUniteLogementRepository.findAllByTerminalIdIgnoreIfTreatedPaged(terminaleId, limit, offset)
.stream()
.map(MobileDataUniteLogement::getUniteLogementPayload)
.filter(Objects::nonNull)
.collect(Collectors.toList());
@Override
public List<CaracteristiqueUniteLogementPayLoad> getCaracateristiqueUniteLogement(Long terminalId) {
return caracteristiqueUniteLogementRepository.getCaracteristiqueUniteLogementByTerminalId(terminalId);
}
@Override
public List<EnqueteUniteLogementPayLoad> getEnqueteUniteLogement(Long terminalId) {
return enqueteUniteLogementRepository.getEnqueteUniteLogementByTerminalId(terminalId);
}
@Override
public List<UniteLogementPayLoad> getUniteLogement(Long terminalId) {
return uniteLogementRepository.getUniteLogementByTerminalId(terminalId);
}
private String getUploadFile(UploadPayLoad uploadPayLoad) {
try {
Resource resource = fileStorageService.loadFileAsResource("",uploadPayLoad.getRename());
Resource resource = fileStorageService.loadFileAsResource(uploadPayLoad.getFileBackendName());
final var bytes = resource.getInputStream().readAllBytes();
return Base64.getEncoder().encodeToString(bytes);
} catch (Exception e) {
@@ -272,7 +153,6 @@ public List<ParcellePayLoad> getParcelle(Long terminaleId, Long limit, Long offs
}
public List<Tpe> getTpeListByCurrentUser() {
try {
authentication = SecurityContextHolder.getContext().getAuthentication();
@@ -284,49 +164,4 @@ public List<ParcellePayLoad> getParcelle(Long terminaleId, Long limit, Long offs
}
}
@Override
public TailleObjet getTailleObjetByTerminalId(Long terminalId) {
return mobileDataEnqueteRepository.calculateTailleEnqueteData(terminalId);
}
private List<UploadPayLoad> getUploadPayLoads(List<MobileDataUpload> mobileDataUploads) {
return mobileDataUploads
.stream()
.map(mobileDataUpload -> {
UploadPayLoad uploadPayLoad = mobileDataUpload.getUploadPayLoad();
String fileData = getUploadFile(uploadPayLoad);
uploadPayLoad.setFileBase64(fileData);
return uploadPayLoad;
})
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
@Override
public List<UploadPayLoad> getFiles(Long terminaleId, List<Long> ids) {
List<UploadPayLoad> uploadPayLoads = new ArrayList<>();
if(ids == null || ids.isEmpty()){
for(Long id : ids){
uploadPayLoads.add(getUpload(terminaleId, id));
}
}
return uploadPayLoads;
}
@Override
public UploadPayLoad getUpload(Long terminaleId, Long externalKey) {
Optional<MobileDataUpload> optionalMobileDataUpload = mobileDataUploadRepository.findOneByTerminalIdAndExternalKey(terminaleId, externalKey);
if(optionalMobileDataUpload.isPresent()){
MobileDataUpload mobileDataUpload = optionalMobileDataUpload.get();
UploadPayLoad uploadPayLoad = mobileDataUpload.getUploadPayLoad();
String fileData = getUploadFile(uploadPayLoad);
uploadPayLoad.setFileBase64(fileData);
return uploadPayLoad;
}else{
return null;
}
}
}

View File

@@ -1,13 +1,18 @@
package io.gmss.fiscad.implementations.synchronisation;
import io.gmss.fiscad.entities.decoupage.Commune;
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.*;
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.*;
import io.gmss.fiscad.interfaces.infocad.metier.ParcelleGeomService;
import io.gmss.fiscad.interfaces.synchronisation.SynchronisationService;
import io.gmss.fiscad.interfaces.user.UserService;
import io.gmss.fiscad.paylaods.request.*;
@@ -16,24 +21,30 @@ 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.*;
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 io.gmss.fiscad.service.worker.*;
import jakarta.transaction.Transactional;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.scheduling.annotation.Async;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.function.ToDoubleBiFunction;
@Service
@RequiredArgsConstructor
@@ -404,53 +415,53 @@ public class SynchronisationServiceImpl implements SynchronisationService {
return syncResponses;
}
@Override
public List<SyncResponse> syncUniteLogement(List<UniteLogementPayload> uniteLogementPayloads) {
public List<SyncResponse> syncUniteLogement(List<UniteLogementPaylaod> uniteLogementPaylaods) {
List<SyncResponse> syncResponses = new ArrayList<>();
if (uniteLogementPayloads == null) {
if (uniteLogementPaylaods == null) {
SyncResponse syncResponse = new SyncResponse(null,
null, false, "Aucune unité de logement à synchroniser");
syncResponses.add(syncResponse);
return syncResponses;
}
syncResponses = saveMobileData(uniteLogementPayloads, TypeObjet.UNITELOGEMENT);
syncResponses = saveMobileData(uniteLogementPaylaods, TypeObjet.UNITELOGEMENT);
return syncResponses;
}
@Override
public List<SyncResponse> syncCaracteristiqueBatiment(List<CaracteristiqueBatimentPayload> caracteristiqueBatimentPayloads) {
public List<SyncResponse> syncCaracteristiqueBatiment(List<CaracteristiqueBatimentPaylod> caracteristiqueBatimentPaylods) {
List<SyncResponse> syncResponses = new ArrayList<>();
if (caracteristiqueBatimentPayloads == null) {
if (caracteristiqueBatimentPaylods == null) {
SyncResponse syncResponse = new SyncResponse(null,
null, false, "Aucune caracteristique de bâtiment à synchroniser");
syncResponses.add(syncResponse);
return syncResponses;
}
syncResponses = saveMobileData(caracteristiqueBatimentPayloads, TypeObjet.CARACTERISTIQUEBATIMENT);
syncResponses = saveMobileData(caracteristiqueBatimentPaylods, TypeObjet.CARACTERISTIQUEBATIMENT);
return syncResponses;
}
@Override
public List<SyncResponse> syncCaracteristiqueUniteLogement(List<CaracteristiqueUniteLogementPayload> caracteristiqueUniteLogementPayloads) {
public List<SyncResponse> syncCaracteristiqueUniteLogement(List<CaracteristiqueUniteLogementPaylod> caracteristiqueUniteLogementPaylods) {
List<SyncResponse> syncResponses = new ArrayList<>();
if (caracteristiqueUniteLogementPayloads == null) {
if (caracteristiqueUniteLogementPaylods == null) {
SyncResponse syncResponse = new SyncResponse(null,
null, false, "Aucune caracteristique d'unité de logement à synchroniser");
syncResponses.add(syncResponse);
return syncResponses;
}
syncResponses = saveMobileData(caracteristiqueUniteLogementPayloads, TypeObjet.CARACTERISTIQUEUNITELOGEMENT);
syncResponses = saveMobileData(caracteristiqueUniteLogementPaylods, TypeObjet.CARACTERISTIQUEUNITELOGEMENT);
return syncResponses;
}
@Override
public List<SyncResponse> syncCaracteristiqueParcelle(List<CaracteristiqueParcellePayload> caracteristiqueParcellePayloads) {
public List<SyncResponse> syncCaracteristiqueParcelle(List<CaracteristiqueParcellePaylod> caracteristiqueParcellePaylods) {
List<SyncResponse> syncResponses = new ArrayList<>();
if (caracteristiqueParcellePayloads == null) {
if (caracteristiqueParcellePaylods == null) {
SyncResponse syncResponse = new SyncResponse(null,
null, false, "Aucune caracteristique de parcelle à synchroniser");
syncResponses.add(syncResponse);
return syncResponses;
}
syncResponses = saveMobileData(caracteristiqueParcellePayloads, TypeObjet.CARACTERISTIQUEPARCELLE);
syncResponses = saveMobileData(caracteristiqueParcellePaylods, TypeObjet.CARACTERISTIQUEPARCELLE);
return syncResponses;
}
@Override
@@ -748,32 +759,32 @@ public class SynchronisationServiceImpl implements SynchronisationService {
}
case UNITELOGEMENT -> {
payloads.forEach(payLoad -> {
UniteLogementPayload uniteLogementPayload = (UniteLogementPayload) payLoad;
//uniteLogementPayload.setIdBackend(null);
UniteLogementPaylaod uniteLogementPaylaod = (UniteLogementPaylaod) payLoad;
//uniteLogementPaylaod.setIdBackend(null);
try {
MobileDataUniteLogement mobileDataUniteLogement = new MobileDataUniteLogement();
Optional<MobileDataUniteLogement> optionalMobileDataUniteLogement = Optional.empty();
if (uniteLogementPayload.getIdBackend() != null) {
optionalMobileDataUniteLogement = mobileDataUniteLogementRepository.findById(uniteLogementPayload.getIdBackend());
if (uniteLogementPaylaod.getIdBackend() != null) {
optionalMobileDataUniteLogement = mobileDataUniteLogementRepository.findById(uniteLogementPaylaod.getIdBackend());
if (optionalMobileDataUniteLogement.isPresent()) {
mobileDataUniteLogement = optionalMobileDataUniteLogement.get();
}
} else {
optionalMobileDataUniteLogement = mobileDataUniteLogementRepository.findFirstByTerminalIdAndExternalKey(uniteLogementPayload.getTerminalId(), uniteLogementPayload.getExternalKey());
optionalMobileDataUniteLogement = mobileDataUniteLogementRepository.findFirstByTerminalIdAndExternalKey(uniteLogementPaylaod.getTerminalId(), uniteLogementPaylaod.getExternalKey());
if (optionalMobileDataUniteLogement.isPresent()) {
mobileDataUniteLogement = optionalMobileDataUniteLogement.get();
}
}
mobileDataUniteLogement.setTerminalId(uniteLogementPayload.getTerminalId());
mobileDataUniteLogement.setExternalKey(uniteLogementPayload.getExternalKey());
mobileDataUniteLogement.setTerminalId(uniteLogementPaylaod.getTerminalId());
mobileDataUniteLogement.setExternalKey(uniteLogementPaylaod.getExternalKey());
mobileDataUniteLogement.setTraiter(false);
mobileDataUniteLogement.setUniteLogementPayload(uniteLogementPayload);
mobileDataUniteLogement.setUniteLogementPaylaod(uniteLogementPaylaod);
mobileDataUniteLogement = mobileDataUniteLogementRepository.save(mobileDataUniteLogement);
SyncResponse syncResponse = new SyncResponse();
syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.UNITELOGEMENT.toString());
syncResponse.setExternalKey(uniteLogementPayload.getExternalKey());
syncResponse.setExternalKey(uniteLogementPaylaod.getExternalKey());
syncResponse.setSynchronise(true);
syncResponse.setIdBackend(mobileDataUniteLogement.getId());
syncResponses.add(syncResponse);
@@ -781,9 +792,9 @@ public class SynchronisationServiceImpl implements SynchronisationService {
e.printStackTrace();
SyncResponse syncResponse = new SyncResponse();
syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.PIECE.toString());
syncResponse.setExternalKey(uniteLogementPayload.getExternalKey());
syncResponse.setExternalKey(uniteLogementPaylaod.getExternalKey());
syncResponse.setSynchronise(false);
syncResponse.setIdBackend(uniteLogementPayload.getIdBackend());
syncResponse.setIdBackend(uniteLogementPaylaod.getIdBackend());
syncResponses.add(syncResponse);
}
});
@@ -874,32 +885,32 @@ public class SynchronisationServiceImpl implements SynchronisationService {
}
case CARACTERISTIQUEPARCELLE -> {
payloads.forEach(payLoad -> {
CaracteristiqueParcellePayload caracteristiqueParcellePayload = (CaracteristiqueParcellePayload) payLoad;
//caracteristiqueParcellePayload.setIdBackend(null);
CaracteristiqueParcellePaylod caracteristiqueParcellePaylod = (CaracteristiqueParcellePaylod) payLoad;
//caracteristiqueParcellePaylod.setIdBackend(null);
try {
MobileDataCaracteristiqueParcelle mobileDataCaracteristiqueParcelle = new MobileDataCaracteristiqueParcelle();
Optional<MobileDataCaracteristiqueParcelle> optionalMobileDataCaracteristiqueParcelle = Optional.empty();
if (caracteristiqueParcellePayload.getIdBackend() != null) {
optionalMobileDataCaracteristiqueParcelle = mobileDataCaracteristiqueParcelleRepository.findById(caracteristiqueParcellePayload.getIdBackend());
if (caracteristiqueParcellePaylod.getIdBackend() != null) {
optionalMobileDataCaracteristiqueParcelle = mobileDataCaracteristiqueParcelleRepository.findById(caracteristiqueParcellePaylod.getIdBackend());
if (optionalMobileDataCaracteristiqueParcelle.isPresent()) {
mobileDataCaracteristiqueParcelle = optionalMobileDataCaracteristiqueParcelle.get();
}
} else {
optionalMobileDataCaracteristiqueParcelle = mobileDataCaracteristiqueParcelleRepository.findFirstByTerminalIdAndExternalKey(caracteristiqueParcellePayload.getTerminalId(), caracteristiqueParcellePayload.getExternalKey());
optionalMobileDataCaracteristiqueParcelle = mobileDataCaracteristiqueParcelleRepository.findFirstByTerminalIdAndExternalKey(caracteristiqueParcellePaylod.getTerminalId(), caracteristiqueParcellePaylod.getExternalKey());
if (optionalMobileDataCaracteristiqueParcelle.isPresent()) {
mobileDataCaracteristiqueParcelle = optionalMobileDataCaracteristiqueParcelle.get();
}
}
mobileDataCaracteristiqueParcelle.setTerminalId(caracteristiqueParcellePayload.getTerminalId());
mobileDataCaracteristiqueParcelle.setExternalKey(caracteristiqueParcellePayload.getExternalKey());
mobileDataCaracteristiqueParcelle.setTerminalId(caracteristiqueParcellePaylod.getTerminalId());
mobileDataCaracteristiqueParcelle.setExternalKey(caracteristiqueParcellePaylod.getExternalKey());
mobileDataCaracteristiqueParcelle.setTraiter(false);
mobileDataCaracteristiqueParcelle.setCaracteristiqueParcellePayload(caracteristiqueParcellePayload);
mobileDataCaracteristiqueParcelle.setCaracteristiqueParcellePaylod(caracteristiqueParcellePaylod);
mobileDataCaracteristiqueParcelle = mobileDataCaracteristiqueParcelleRepository.save(mobileDataCaracteristiqueParcelle);
SyncResponse syncResponse = new SyncResponse();
syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.CARACTERISTIQUEPARCELLE.toString());
syncResponse.setExternalKey(caracteristiqueParcellePayload.getExternalKey());
syncResponse.setExternalKey(caracteristiqueParcellePaylod.getExternalKey());
syncResponse.setSynchronise(true);
syncResponse.setIdBackend(mobileDataCaracteristiqueParcelle.getId());
syncResponses.add(syncResponse);
@@ -907,9 +918,9 @@ public class SynchronisationServiceImpl implements SynchronisationService {
e.printStackTrace();
SyncResponse syncResponse = new SyncResponse();
syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.CARACTERISTIQUEPARCELLE.toString());
syncResponse.setExternalKey(caracteristiqueParcellePayload.getExternalKey());
syncResponse.setExternalKey(caracteristiqueParcellePaylod.getExternalKey());
syncResponse.setSynchronise(false);
syncResponse.setIdBackend(caracteristiqueParcellePayload.getIdBackend());
syncResponse.setIdBackend(caracteristiqueParcellePaylod.getIdBackend());
syncResponses.add(syncResponse);
}
});
@@ -917,33 +928,33 @@ public class SynchronisationServiceImpl implements SynchronisationService {
case CARACTERISTIQUEBATIMENT -> {
payloads.forEach(payLoad -> {
CaracteristiqueBatimentPayload caracteristiqueBatimentPayload = (CaracteristiqueBatimentPayload) payLoad;
//caracteristiqueBatimentPayload.setIdBackend(null);
CaracteristiqueBatimentPaylod caracteristiqueBatimentPaylod = (CaracteristiqueBatimentPaylod) payLoad;
//caracteristiqueBatimentPaylod.setIdBackend(null);
try {
MobileDataCaracteristiqueBatiment mobileDataCaracteristiqueBatiment = new MobileDataCaracteristiqueBatiment();
Optional<MobileDataCaracteristiqueBatiment> optionalMobileDataCaracteristiqueBatiment = Optional.empty();
if (caracteristiqueBatimentPayload.getIdBackend() != null) {
optionalMobileDataCaracteristiqueBatiment = mobileDataCaracteristiqueBatimentRepository.findById(caracteristiqueBatimentPayload.getIdBackend());
if (caracteristiqueBatimentPaylod.getIdBackend() != null) {
optionalMobileDataCaracteristiqueBatiment = mobileDataCaracteristiqueBatimentRepository.findById(caracteristiqueBatimentPaylod.getIdBackend());
if (optionalMobileDataCaracteristiqueBatiment.isPresent()) {
mobileDataCaracteristiqueBatiment = optionalMobileDataCaracteristiqueBatiment.get();
}
} else {
optionalMobileDataCaracteristiqueBatiment = mobileDataCaracteristiqueBatimentRepository.findFirstByTerminalIdAndExternalKey(caracteristiqueBatimentPayload.getTerminalId(), caracteristiqueBatimentPayload.getExternalKey());
optionalMobileDataCaracteristiqueBatiment = mobileDataCaracteristiqueBatimentRepository.findFirstByTerminalIdAndExternalKey(caracteristiqueBatimentPaylod.getTerminalId(), caracteristiqueBatimentPaylod.getExternalKey());
if (optionalMobileDataCaracteristiqueBatiment.isPresent()) {
mobileDataCaracteristiqueBatiment = optionalMobileDataCaracteristiqueBatiment.get();
}
}
mobileDataCaracteristiqueBatiment.setTerminalId(caracteristiqueBatimentPayload.getTerminalId());
mobileDataCaracteristiqueBatiment.setExternalKey(caracteristiqueBatimentPayload.getExternalKey());
mobileDataCaracteristiqueBatiment.setTerminalId(caracteristiqueBatimentPaylod.getTerminalId());
mobileDataCaracteristiqueBatiment.setExternalKey(caracteristiqueBatimentPaylod.getExternalKey());
mobileDataCaracteristiqueBatiment.setTraiter(false);
mobileDataCaracteristiqueBatiment.setCaracteristiqueBatimentPayload(caracteristiqueBatimentPayload);
mobileDataCaracteristiqueBatiment.setCaracteristiqueBatimentPaylod(caracteristiqueBatimentPaylod);
mobileDataCaracteristiqueBatiment = mobileDataCaracteristiqueBatimentRepository.save(mobileDataCaracteristiqueBatiment);
SyncResponse syncResponse = new SyncResponse();
syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.CARACTERISTIQUEBATIMENT.toString());
syncResponse.setExternalKey(caracteristiqueBatimentPayload.getExternalKey());
syncResponse.setExternalKey(caracteristiqueBatimentPaylod.getExternalKey());
syncResponse.setSynchronise(true);
syncResponse.setIdBackend(mobileDataCaracteristiqueBatiment.getId());
syncResponses.add(syncResponse);
@@ -951,41 +962,41 @@ public class SynchronisationServiceImpl implements SynchronisationService {
e.printStackTrace();
SyncResponse syncResponse = new SyncResponse();
syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.CARACTERISTIQUEBATIMENT.toString());
syncResponse.setExternalKey(caracteristiqueBatimentPayload.getExternalKey());
syncResponse.setExternalKey(caracteristiqueBatimentPaylod.getExternalKey());
syncResponse.setSynchronise(false);
syncResponse.setIdBackend(caracteristiqueBatimentPayload.getIdBackend());
syncResponse.setIdBackend(caracteristiqueBatimentPaylod.getIdBackend());
syncResponses.add(syncResponse);
}
});
}
case CARACTERISTIQUEUNITELOGEMENT -> {
payloads.forEach(payLoad -> {
CaracteristiqueUniteLogementPayload caracteristiqueUniteLogementPayload = (CaracteristiqueUniteLogementPayload) payLoad;
//caracteristiqueUniteLogementPayload.setIdBackend(null);
CaracteristiqueUniteLogementPaylod caracteristiqueUniteLogementPaylod = (CaracteristiqueUniteLogementPaylod) payLoad;
//caracteristiqueUniteLogementPaylod.setIdBackend(null);
try {
MobileDataCaracteristiqueUniteLogement mobileDataCaracteristiqueUniteLogement = new MobileDataCaracteristiqueUniteLogement();
Optional<MobileDataCaracteristiqueUniteLogement> optionalMobileDataCaracteristiqueUniteLogement = Optional.empty();
if (caracteristiqueUniteLogementPayload.getIdBackend() != null) {
optionalMobileDataCaracteristiqueUniteLogement = mobileDataCaracteristiqueUniteLogementRepository.findById(caracteristiqueUniteLogementPayload.getIdBackend());
if (caracteristiqueUniteLogementPaylod.getIdBackend() != null) {
optionalMobileDataCaracteristiqueUniteLogement = mobileDataCaracteristiqueUniteLogementRepository.findById(caracteristiqueUniteLogementPaylod.getIdBackend());
if (optionalMobileDataCaracteristiqueUniteLogement.isPresent()) {
mobileDataCaracteristiqueUniteLogement = optionalMobileDataCaracteristiqueUniteLogement.get();
}
} else {
optionalMobileDataCaracteristiqueUniteLogement = mobileDataCaracteristiqueUniteLogementRepository.findFirstByTerminalIdAndExternalKey(caracteristiqueUniteLogementPayload.getTerminalId(), caracteristiqueUniteLogementPayload.getExternalKey());
optionalMobileDataCaracteristiqueUniteLogement = mobileDataCaracteristiqueUniteLogementRepository.findFirstByTerminalIdAndExternalKey(caracteristiqueUniteLogementPaylod.getTerminalId(), caracteristiqueUniteLogementPaylod.getExternalKey());
if (optionalMobileDataCaracteristiqueUniteLogement.isPresent()) {
mobileDataCaracteristiqueUniteLogement = optionalMobileDataCaracteristiqueUniteLogement.get();
}
}
mobileDataCaracteristiqueUniteLogement.setTerminalId(caracteristiqueUniteLogementPayload.getTerminalId());
mobileDataCaracteristiqueUniteLogement.setExternalKey(caracteristiqueUniteLogementPayload.getExternalKey());
mobileDataCaracteristiqueUniteLogement.setTerminalId(caracteristiqueUniteLogementPaylod.getTerminalId());
mobileDataCaracteristiqueUniteLogement.setExternalKey(caracteristiqueUniteLogementPaylod.getExternalKey());
mobileDataCaracteristiqueUniteLogement.setTraiter(false);
mobileDataCaracteristiqueUniteLogement.setCaracteristiqueUniteLogementPayload(caracteristiqueUniteLogementPayload);
mobileDataCaracteristiqueUniteLogement.setCaracteristiqueUniteLogementPaylod(caracteristiqueUniteLogementPaylod);
mobileDataCaracteristiqueUniteLogement = mobileDataCaracteristiqueUniteLogementRepository.save(mobileDataCaracteristiqueUniteLogement);
SyncResponse syncResponse = new SyncResponse();
syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.CARACTERISTIQUEUNITELOGEMENT.toString());
syncResponse.setExternalKey(caracteristiqueUniteLogementPayload.getExternalKey());
syncResponse.setExternalKey(caracteristiqueUniteLogementPaylod.getExternalKey());
syncResponse.setSynchronise(true);
syncResponse.setIdBackend(mobileDataCaracteristiqueUniteLogement.getId());
syncResponses.add(syncResponse);
@@ -993,9 +1004,9 @@ public class SynchronisationServiceImpl implements SynchronisationService {
e.printStackTrace();
SyncResponse syncResponse = new SyncResponse();
syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.CARACTERISTIQUEUNITELOGEMENT.toString());
syncResponse.setExternalKey(caracteristiqueUniteLogementPayload.getExternalKey());
syncResponse.setExternalKey(caracteristiqueUniteLogementPaylod.getExternalKey());
syncResponse.setSynchronise(false);
syncResponse.setIdBackend(caracteristiqueUniteLogementPayload.getIdBackend());
syncResponse.setIdBackend(caracteristiqueUniteLogementPaylod.getIdBackend());
syncResponses.add(syncResponse);
}
});

View File

@@ -21,6 +21,7 @@ public interface ParcelleGeomService {
Page<ParcelleGeom> getParcelleGeomList(Pageable pageable);
List<ParcelleGeom> getParcelleGeomList();
List<ParcelleGeom> getParcelleGeomListUnQuatier(String codeQuartier);
public List<ParcelleGeom> getParcelleGeomListUnArrondissement(String codeArrondissement);
Optional<ParcelleGeom> getParcelleGeomById(Long id);

View File

@@ -1,74 +1,40 @@
package io.gmss.fiscad.interfaces.synchronisation;
import io.gmss.fiscad.entities.infocad.metier.Tpe;
import io.gmss.fiscad.paylaods.request.*;
import io.gmss.fiscad.paylaods.response.restoration.TailleObjet;
//import io.gmss.fiscad.paylaods.response.restoration.*;
import io.gmss.fiscad.paylaods.response.restoration.*;
import java.util.List;
public interface RestaurationService {
//List<ActeurConcernePayLoad> getActeurConcernes(Long terminaleId);
List<EnquetePayLoad> getEnquete(Long terminaleId, Long limit, Long offset) ;
List<ActeurConcernePayLoad> getActeurConcernes(Long terminaleId);
List<ActeurConcernePayLoad> getActeurConcernes(Long terminaleId, Long limit, Long offset) ;
List<EnquetePayLoad> getEnquete(Long terminaleId);
//List<EnquetePayLoad> getEnquete(Long terminaleId);
List<PersonnePayLoad> getPersonne(Long terminaleId, Long limit, Long offset) ;
List<PersonnePayLoad> getPersonne(Long terminaleId);
List<MembreGroupePayLoad> getMembreGroupe(Long terminaleId, Long limit, Long offset) ;
List<ParcellePayLoad> getParcelle(Long terminaleId);
List<PiecePayLoad> getPieces(Long terminaleId);
//List<PersonnePayLoad> getPersonne(Long terminaleId);
List<MembreGroupePayLoad> getMembreGroupe(Long terminaleId);
//List<ParcellePayLoad> getParcelle(Long terminaleId);
List<ParcellePayLoad> getParcelle(Long terminaleId, Long limit, Long offset) ;
List<io.gmss.fiscad.paylaods.request.UploadPayLoad> getUpload(Long terminaleId);
List<BatimentPayload> getBatiment(Long terminalId);
//List<PiecePayLoad> getPieces(Long terminaleId);
List<PiecePayLoad> getPieces(Long terminaleId, Long limit, Long offset) ;
List<EnqueteBatimentPayLoad> getEnqueteBatiment(Long terminalId);
List<CaracateristiqueParcellePayLoads> getCaracateristiqueParcelle(Long terminalId);
List<CaracateristiqueBatimentPayLoads> getCaracateristiqueBatiment(Long terminalId);
//List<MembreGroupePayLoad> getMembreGroupe(Long terminaleId);
List<CaracteristiqueUniteLogementPayLoad> getCaracateristiqueUniteLogement(Long terminalId);
// List<io.gmss.fiscad.paylaods.request.UploadPayLoad> getUpload(Long terminaleId);
List<UploadPayLoad> getUploads(Long terminaleId, Long limit, Long offset) ;
//List<BatimentPayload> getBatiment(Long terminalId);
public List<BatimentPaylaod> getBatiment(Long terminaleId, Long limit, Long offset);
//List<EnqueteBatimentPayLoad> getEnqueteBatiment(Long terminalId);
public List<EnqueteBatimentPayload> getEnqueteBatiment(Long terminaleId, Long limit, Long offset);
//List<CaracateristiqueParcellePayLoads> getCaracateristiqueParcelle(Long terminalId);
public List<CaracteristiqueParcellePayload> getCaracateristiqueParcelle(Long terminaleId, Long limit, Long offset);
//List<CaracateristiqueBatimentPayLoads> getCaracateristiqueBatiment(Long terminalId);
public List<CaracteristiqueBatimentPayload> getCaracateristiqueBatiment(Long terminaleId, Long limit, Long offset);
//List<CaracteristiqueUniteLogementPayLoad> getCaracateristiqueUniteLogement(Long terminalId);
public List<CaracteristiqueUniteLogementPayload> getCaracateristiqueUniteLogement(Long terminaleId, Long limit, Long offset);
//List<EnqueteUniteLogementPayLoad> getEnqueteUniteLogement(Long terminalId);
public List<EnqueteUniteLogementPayload> getEnqueteUniteLogement(Long terminaleId, Long limit, Long offset);
//List<UniteLogementPayLoad> getUniteLogement(Long terminalId);
public List<UniteLogementPayload> getUniteLogement(Long terminaleId, Long limit, Long offset);
List<EnqueteUniteLogementPayLoad> getEnqueteUniteLogement(Long terminalId);
List<UniteLogementPayLoad> getUniteLogement(Long terminalId);
public List<Tpe> getTpeListByCurrentUser();
TailleObjet getTailleObjetByTerminalId(Long terminalId);
List<UploadPayLoad> getFiles(Long terminaleId, List<Long> ids);
UploadPayLoad getUpload(Long terminaleId, Long externalKey);
}

View File

@@ -1,5 +1,7 @@
package io.gmss.fiscad.interfaces.synchronisation;
import io.gmss.fiscad.entities.infocad.metier.Upload;
import io.gmss.fiscad.entities.metadata.MobileDataUpload;
import io.gmss.fiscad.paylaods.request.*;
import io.gmss.fiscad.paylaods.response.ReferencesSyncResponses;
import io.gmss.fiscad.paylaods.response.SyncEnqueteAllDataResponse;
@@ -21,13 +23,13 @@ public interface SynchronisationService {
public List<SyncResponse> syncBatiment(List<BatimentPaylaod> batimentPaylaods);
public List<SyncResponse> syncUniteLogement(List<UniteLogementPayload> uniteLogementPayloads);
public List<SyncResponse> syncUniteLogement(List<UniteLogementPaylaod> uniteLogementPaylaods);
public List<SyncResponse> syncCaracteristiqueBatiment(List<CaracteristiqueBatimentPayload> caracteristiqueBatimentPayloads);
public List<SyncResponse> syncCaracteristiqueBatiment(List<CaracteristiqueBatimentPaylod> caracteristiqueBatimentPaylods);
public List<SyncResponse> syncCaracteristiqueParcelle(List<CaracteristiqueParcellePayload> caracteristiqueParcellePayloads);
public List<SyncResponse> syncCaracteristiqueParcelle(List<CaracteristiqueParcellePaylod> caracteristiqueParcellePaylods);
public List<SyncResponse> syncCaracteristiqueUniteLogement(List<CaracteristiqueUniteLogementPayload> caracteristiqueUniteLogementPayloads);
public List<SyncResponse> syncCaracteristiqueUniteLogement(List<CaracteristiqueUniteLogementPaylod> caracteristiqueUniteLogementPaylods);
public List<SyncResponse> syncMembreGroupe(List<MembreGroupePayLoad> membreGroupePayLoads);

View File

@@ -3,7 +3,7 @@ package io.gmss.fiscad.paylaods.request;
import lombok.Data;
@Data
public class CaracteristiqueBatimentPayload {
public class CaracteristiqueBatimentPaylod {
private Long idBackend;
private Long externalKey;
private boolean synchronise;
@@ -18,7 +18,7 @@ public class CaracteristiqueBatimentPayload {
@Override
public String toString() {
return "CaracteristiqueBatimentPayload{" +
return "CaracteristiqueBatimentPaylod{" +
"idBackend=" + idBackend +
", externalKey=" + externalKey +
", synchronise=" + synchronise +

View File

@@ -3,7 +3,7 @@ package io.gmss.fiscad.paylaods.request;
import lombok.Data;
@Data
public class CaracteristiqueParcellePayload {
public class CaracteristiqueParcellePaylod {
private Long idBackend;
private Long externalKey;
private Long terminalId;

View File

@@ -3,7 +3,7 @@ package io.gmss.fiscad.paylaods.request;
import lombok.Data;
@Data
public class CaracteristiqueUniteLogementPayload {
public class CaracteristiqueUniteLogementPaylod {
private Long idBackend;
private Long externalKey;
private Long terminalId;

View File

@@ -24,7 +24,7 @@ public class EnqueteActivitePayload {
private Long idBackend;
private Long externalKey;
private Long terminalId;
private Long ChiffreAffaire;
private Long ChiffreAffaire; // Todo : Revoir le nom de la variable 15/12/2015
private String NumeroRccm;
private boolean synchronise;
private String observation;

View File

@@ -25,7 +25,7 @@ public class ParcellePayLoad {
/////////////////////////////////
private Long typeDomaineId;
private String numeroProvisoire;
private Long numeroProvisoire;
private Long blocId;
private String situationGeographique;
private String autreNumeroTitreFoncier;

View File

@@ -3,7 +3,7 @@ package io.gmss.fiscad.paylaods.request;
import lombok.Data;
@Data
public class UniteLogementPayload {
public class UniteLogementPaylaod {
private Long idBackend;
private Long externalKey;
private Long terminalId;

View File

@@ -1,19 +0,0 @@
package io.gmss.fiscad.paylaods.response.restoration;
public interface TailleObjet {
public int getParcelle();
public int getEnquete();
public int getPiece();
public int getPersonne();
public int getMembregroupe();
public int getActeurconcerne();
public int getEnquetebatiment();
public int getBatiment();
public int getUnitelogement();
public int getEnqueteunitelogement();
public int getCaracteristiqueparcelle();
public int getCaracteristiquebatiment();
public int getCaracteristiqueunitelogement();
public int getUpload();
}

View File

@@ -12,6 +12,7 @@ import java.util.Optional;
public interface ParcelleGeomRepository extends JpaRepository<ParcelleGeom, Long> {
List<ParcelleGeom> findAllByQuartier_Code(String code);
List<ParcelleGeom> findAllByQuartier_Arrondissement_Code(String code);
Optional<ParcelleGeom> findFirstByNupProvisoire(String numProvisoir);
@Modifying

View File

@@ -4,8 +4,6 @@ import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne;
import io.gmss.fiscad.entities.metadata.MobileDataPersonne;
import io.gmss.fiscad.entities.metadata.MobileDataUpload;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
@@ -14,7 +12,4 @@ public interface MobileDataActeurConcerneRepository extends JpaRepository<Mobile
//Optional<MobileDataActeurConcerne> findByActeurConcernePayLoad_TerminalIdAndActeurConcernePayLoad_ExternalKey(Long terminalId,Long ExternalKey);
Optional<MobileDataActeurConcerne> findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataActeurConcerne> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
@Query(value = "SELECT * FROM mobile_data_acteur_concerne WHERE CAST(acteur_concerne_pay_load->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataActeurConcerne> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -2,10 +2,7 @@ package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne;
import io.gmss.fiscad.entities.metadata.MobileDataBatiment;
import io.gmss.fiscad.entities.metadata.MobileDataPiece;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
@@ -14,8 +11,4 @@ public interface MobileDataBatimentRepository extends JpaRepository<MobileDataBa
//Optional<MobileDataBatiment> findMobileDataBatimentByBatimentPaylaod_TerminalIdAndBatimentPaylaod_ExternalKey(Long terminalId, Long externalKey);
Optional<MobileDataBatiment> findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataBatiment> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
@Query(value = "SELECT * FROM mobile_data_batiment WHERE CAST(batiment_payload ->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataBatiment> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -2,11 +2,8 @@ package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataBatiment;
import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueBatiment;
import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueParcelle;
import io.gmss.fiscad.entities.metadata.MobileDataUpload;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
@@ -16,8 +13,4 @@ public interface MobileDataCaracteristiqueBatimentRepository extends JpaReposito
Optional<MobileDataCaracteristiqueBatiment> findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataCaracteristiqueBatiment> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
@Query(value = "SELECT * FROM mobile_data_caracteristique_batiment WHERE CAST(caracteristique_batiment_payload ->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataCaracteristiqueBatiment> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -2,11 +2,8 @@ package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueBatiment;
import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueParcelle;
import io.gmss.fiscad.entities.metadata.MobileDataEnqueteBatiment;
import io.gmss.fiscad.entities.metadata.MobileDataUpload;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
@@ -16,7 +13,4 @@ public interface MobileDataCaracteristiqueParcelleRepository extends JpaReposito
Optional<MobileDataCaracteristiqueParcelle> findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataCaracteristiqueParcelle> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
@Query(value = "SELECT * FROM mobile_data_caracteristique_parcelle WHERE CAST(caracteristique_parcelle_payload ->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataCaracteristiqueParcelle> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -1,12 +1,9 @@
package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueBatiment;
import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueParcelle;
import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueUniteLogement;
import io.gmss.fiscad.entities.metadata.MobileDataUpload;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
@@ -16,7 +13,4 @@ public interface MobileDataCaracteristiqueUniteLogementRepository extends JpaRep
Optional<MobileDataCaracteristiqueUniteLogement> findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataCaracteristiqueUniteLogement> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
@Query(value = "SELECT * FROM mobile_data_caracteristique_unite_logement WHERE CAST(caracteristique_unite_logement_payload ->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataCaracteristiqueUniteLogement> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -1,12 +1,9 @@
package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne;
import io.gmss.fiscad.entities.metadata.MobileDataBatiment;
import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueUniteLogement;
import io.gmss.fiscad.entities.metadata.MobileDataEnqueteBatiment;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
@@ -16,7 +13,4 @@ public interface MobileDataEnqueteBatimentRepository extends JpaRepository<Mobil
Optional<MobileDataEnqueteBatiment> findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataEnqueteBatiment> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
@Query(value = "SELECT * FROM mobile_data_enquete_batiment WHERE CAST(enquete_batiment_payload ->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataEnqueteBatiment> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -1,14 +1,9 @@
package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne;
import io.gmss.fiscad.entities.metadata.MobileDataEnquete;
import io.gmss.fiscad.entities.metadata.MobileDataEnqueteBatiment;
import io.gmss.fiscad.entities.metadata.MobileDataUpload;
import io.gmss.fiscad.paylaods.response.restoration.EnquetePayLoad;
import io.gmss.fiscad.paylaods.response.restoration.TailleObjet;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
@@ -18,26 +13,4 @@ public interface MobileDataEnqueteRepository extends JpaRepository<MobileDataEnq
Optional<MobileDataEnquete> findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataEnquete> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
@Query(value = "SELECT * FROM mobile_data_enquete WHERE CAST(enquete_pay_load->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataEnquete> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
@Query(value = "SELECT" +
" (SELECT count(*) FROM mobile_data_enquete WHERE CAST(enquete_pay_load->>'terminalId' AS BIGINT) = :terminalId) as enquete," +
" (SELECT count(*) FROM mobile_data_parcelle WHERE CAST(parcelle_pay_load->>'terminalId' AS BIGINT) = :terminalId) as parcelle," +
" (SELECT count(*) FROM mobile_data_personne WHERE CAST(personne_pay_load->>'terminalId' AS BIGINT) = :terminalId) as personne," +
" (SELECT count(*) FROM mobile_data_acteur_concerne WHERE CAST(acteur_concerne_pay_load->>'terminalId' AS BIGINT) = :terminalId) as acteurconcerne," +
" (SELECT count(*) FROM mobile_data_membre_groupe WHERE CAST(membre_groupe_pay_load->>'terminalId' AS BIGINT) = :terminalId) as membregroupe," +
" (SELECT count(*) FROM mobile_data_piece WHERE CAST(piece_pay_load->>'terminalId' AS BIGINT) = :terminalId) as piece," +
" (SELECT count(*) FROM mobile_data_batiment WHERE CAST(batiment_payload->>'terminalId' AS BIGINT) = :terminalId) as batiment," +
" (SELECT count(*) FROM mobile_data_enquete_batiment WHERE CAST(enquete_batiment_payload->>'terminalId' AS BIGINT) = :terminalId) as enquetebatiment," +
" (SELECT count(*) FROM mobile_data_enquete_unite_logement WHERE CAST(enquete_unite_logement_payload->>'terminalId' AS BIGINT) = :terminalId) as enqueteunitelogement," +
" (SELECT count(*) FROM mobile_data_unite_logement WHERE CAST(unite_logement_payload->>'terminalId' AS BIGINT) = :terminalId) as unitelogement," +
" (SELECT count(*) FROM mobile_data_caracteristique_unite_logement WHERE CAST(caracteristique_unite_logement_payload->>'terminalId' AS BIGINT) = :terminalId) as caracteristiqueunitelogement," +
" (SELECT count(*) FROM mobile_data_caracteristique_batiment WHERE CAST(caracteristique_batiment_payload->>'terminalId' AS BIGINT) = :terminalId) as caracteristiquebatiment," +
" (SELECT count(*) FROM mobile_data_caracteristique_parcelle WHERE CAST(caracteristique_parcelle_payload->>'terminalId' AS BIGINT) = :terminalId) as caracteristiqueparcelle," +
" (SELECT count(*) FROM mobile_data_upload WHERE CAST(upload_pay_load->>'terminalId' AS BIGINT) = :terminalId) as upload", nativeQuery = true)
TailleObjet calculateTailleEnqueteData(@Param("terminalId") Long terminalId);
}

View File

@@ -1,12 +1,9 @@
package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne;
import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueUniteLogement;
import io.gmss.fiscad.entities.metadata.MobileDataEnquete;
import io.gmss.fiscad.entities.metadata.MobileDataEnqueteUniteLogement;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
@@ -16,7 +13,4 @@ public interface MobileDataEnqueteUniteLogementRepository extends JpaRepository<
Optional<MobileDataEnqueteUniteLogement> findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataEnqueteUniteLogement> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
@Query(value = "SELECT * FROM public.mobile_data_enquete_unite_logement WHERE CAST(enquete_unite_logement_payload ->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataEnqueteUniteLogement> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -4,8 +4,6 @@ import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne;
import io.gmss.fiscad.entities.metadata.MobileDataEnqueteUniteLogement;
import io.gmss.fiscad.entities.metadata.MobileDataMembreGroupe;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
@@ -15,6 +13,4 @@ public interface MobileDataMembreGroupeRepository extends JpaRepository<MobileDa
Optional<MobileDataMembreGroupe> findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataMembreGroupe> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
@Query(value = "SELECT * FROM mobile_data_membre_groupe WHERE CAST(membre_groupe_pay_load->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataMembreGroupe> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -5,8 +5,6 @@ import io.gmss.fiscad.entities.metadata.MobileDataParcelle;
import io.gmss.fiscad.entities.metadata.MobileDataUpload;
import org.modelmapper.internal.bytebuddy.dynamic.DynamicType;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
@@ -16,7 +14,4 @@ public interface MobileDataParcelleRepository extends JpaRepository<MobileDataPa
Optional<MobileDataParcelle> findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataParcelle> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
@Query(value = "SELECT * FROM mobile_data_parcelle WHERE CAST(parcelle_pay_load->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataParcelle> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -5,8 +5,6 @@ import io.gmss.fiscad.entities.metadata.MobileDataParcelle;
import io.gmss.fiscad.entities.metadata.MobileDataPersonne;
import org.modelmapper.internal.bytebuddy.dynamic.DynamicType;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
@@ -16,6 +14,4 @@ public interface MobileDataPersonneRepository extends JpaRepository<MobileDataPe
List<MobileDataPersonne> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
Optional<MobileDataPersonne> findFirstByTerminalIdAndExternalKey(Long terminalId, Long ExternalKey);
@Query(value = "SELECT * FROM mobile_data_personne WHERE CAST(personne_pay_load->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataPersonne> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -5,8 +5,6 @@ import io.gmss.fiscad.entities.metadata.MobileDataParcelle;
import io.gmss.fiscad.entities.metadata.MobileDataPersonne;
import io.gmss.fiscad.entities.metadata.MobileDataPiece;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
@@ -16,6 +14,4 @@ public interface MobileDataPieceRepository extends JpaRepository<MobileDataPiece
List<MobileDataPiece> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
Optional<MobileDataPiece> findFirstByTerminalIdAndExternalKey(Long terminalId, Long ExternalKey);
@Query(value = "SELECT * FROM mobile_data_piece WHERE CAST(piece_pay_load->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataPiece> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -1,12 +1,9 @@
package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne;
import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueUniteLogement;
import io.gmss.fiscad.entities.metadata.MobileDataPiece;
import io.gmss.fiscad.entities.metadata.MobileDataUniteLogement;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
@@ -15,7 +12,5 @@ public interface MobileDataUniteLogementRepository extends JpaRepository<MobileD
//Optional<MobileDataUniteLogement> findByUniteLogementPaylaod_TerminalIdAndUniteLogementPaylaod_ExternalKey(Long terminalId,Long externalKey);
List<MobileDataUniteLogement> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
Optional<MobileDataUniteLogement> findFirstByTerminalIdAndExternalKey(Long terminalId, Long ExternalKey);
@Query(value = "SELECT * FROM mobile_data_unite_logement WHERE CAST(unite_logement_payload ->>'terminalId' AS BIGINT) = :terminalId limit :limit offset :offset", nativeQuery = true)
List<MobileDataUniteLogement> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
}

View File

@@ -3,8 +3,6 @@ package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataUniteLogement;
import io.gmss.fiscad.entities.metadata.MobileDataUpload;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
@@ -14,8 +12,4 @@ public interface MobileDataUploadRepository extends JpaRepository<MobileDataUplo
List<MobileDataUpload> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
Optional<MobileDataUpload> findFirstByTerminalIdAndExternalKey(Long terminalId, Long ExternalKey);
@Query(value = "SELECT * FROM mobile_data_upload WHERE CAST(upload_pay_load->>'terminalId' AS BIGINT) = :terminalId order by id limit :limit offset :offset", nativeQuery = true)
List<MobileDataUpload> findAllByTerminalIdIgnoreIfTreatedPaged(@Param("terminalId") Long terminalId, @Param("limit") Long limit, @Param("offset") Long offset);
Optional<MobileDataUpload> findOneByTerminalIdAndExternalKey(Long terminaleId, Long externalKey);
}

View File

@@ -14,6 +14,8 @@ public interface UserRepository extends JpaRepository<User, Long> {
Optional<User> findByUsername(String username);
boolean existsByUsername(String username);
long countAllByUsernameIsNotNull();
List<User> findAllByStructureAndRolesIn(Structure structure, Set<Role> roleSet);

View File

@@ -100,26 +100,4 @@ public class FileStorageService {
}
}
public Resource loadFileAsResource(String subDir, String fileName) {
try {
Path targetDir = this.fileStorageLocation.resolve(subDir).normalize();
Path filePath = targetDir.resolve(fileName).normalize();
// 🔐 Sécurité : interdit les accès en dehors du dossier cible
if (!filePath.startsWith(targetDir)) {
throw new SecurityException("Tentative d'accès non autorisée : " + fileName);
}
Resource resource = new UrlResource(filePath.toUri());
if (resource.exists() && resource.isReadable()) {
return resource;
} else {
throw new MyFileNotFoundException("Fichier introuvable : " + fileName);
}
} catch (MalformedURLException e) {
throw new MyFileNotFoundException("Fichier introuvable : " + fileName, e);
}
}
}

View File

@@ -1,19 +1,30 @@
package io.gmss.fiscad.service.worker;
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 io.gmss.fiscad.entities.infocad.parametre.Bloc;
import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueBatiment;
import io.gmss.fiscad.entities.metadata.MobileDataEnquete;
import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueBatiment;
import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
import io.gmss.fiscad.entities.rfu.parametre.Caracteristique;
import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu;
import io.gmss.fiscad.entities.user.User;
import io.gmss.fiscad.enums.TypeObjet;
import io.gmss.fiscad.paylaods.request.CaracteristiqueBatimentPayload;
import io.gmss.fiscad.paylaods.request.CaracteristiqueBatimentPaylod;
import io.gmss.fiscad.paylaods.request.EnquetePayLoad;
import io.gmss.fiscad.repositories.infocad.metier.*;
import io.gmss.fiscad.repositories.infocad.parametre.BlocRepository;
import io.gmss.fiscad.repositories.metadata.MobileDataCaracteristiqueBatimentRepository;
import io.gmss.fiscad.repositories.metadata.MobileDataEnqueteRepository;
import io.gmss.fiscad.repositories.rfu.metier.*;
import io.gmss.fiscad.repositories.rfu.parametre.CaracteristiqueRepository;
import io.gmss.fiscad.repositories.rfu.parametre.ZoneRfuRepository;
import io.gmss.fiscad.repositories.user.UserRepository;
import io.gmss.fiscad.service.LogService;
import lombok.RequiredArgsConstructor;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.Optional;
@@ -30,24 +41,24 @@ public class CaracteristiqueBatimentAsyncWorker {
private final LogService logService;
// @Async("caracteristiqueBatimentExecutor")
public void traitementAsyncCaracteristiqueBatiment(MobileDataCaracteristiqueBatiment mobileDataCaracteristiqueBatiment) {
CaracteristiqueBatimentPayload caracteristiqueBatimentPayload = mobileDataCaracteristiqueBatiment.getCaracteristiqueBatimentPayload();
CaracteristiqueBatimentPaylod caracteristiqueBatimentPaylod = mobileDataCaracteristiqueBatiment.getCaracteristiqueBatimentPaylod();
try {
if (caracteristiqueBatimentPayload.getTerminalId() == null) {
if (caracteristiqueBatimentPaylod.getTerminalId() == null) {
logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEBATIMENT, "Problème de terminal", "terminal non fourni : ", mobileDataCaracteristiqueBatiment.getId());
return;
} else {
Optional<Tpe> optionalTpe = tpeRepository.findById(caracteristiqueBatimentPayload.getTerminalId());
Optional<Tpe> optionalTpe = tpeRepository.findById(caracteristiqueBatimentPaylod.getTerminalId());
if (optionalTpe.isEmpty()) {
logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEBATIMENT, "Problème de terminal", "terminal inexistant : ", mobileDataCaracteristiqueBatiment.getId());
return;
}
}
if (caracteristiqueBatimentPayload.getEnqueteBatimentId() == null) {
if (caracteristiqueBatimentPaylod.getEnqueteBatimentId() == null) {
logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEBATIMENT, "Problème de enquete batiment", "enquete non fourni : ", mobileDataCaracteristiqueBatiment.getId());
return;
} else {
Optional<EnqueteBatiment> optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueBatimentPayload.getEnqueteBatimentId(), caracteristiqueBatimentPayload.getTerminalId());
Optional<EnqueteBatiment> optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueBatimentPaylod.getEnqueteBatimentId(), caracteristiqueBatimentPaylod.getTerminalId());
if (optionalEnqueteBatiment.isEmpty()) {
logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEBATIMENT, "Problème de enquete batiment", "L'enquete précisée n'existe pas : ", mobileDataCaracteristiqueBatiment.getId());
return;
@@ -55,7 +66,7 @@ public class CaracteristiqueBatimentAsyncWorker {
}
CaracteristiqueBatiment caracteristiqueBatiment = new CaracteristiqueBatiment();
caracteristiqueBatiment.setMobileDataId(mobileDataCaracteristiqueBatiment.getId());
caracteristiqueBatiment = getCaracteristiqueBatimentFromCaracteristiqueBatimentPayLoad(caracteristiqueBatiment, caracteristiqueBatimentPayload);
caracteristiqueBatiment = getCaracteristiqueBatimentFromCaracteristiqueBatimentPayLoad(caracteristiqueBatiment, caracteristiqueBatimentPaylod);
caracteristiqueBatimentRepository.save(caracteristiqueBatiment);
mobileDataCaracteristiqueBatiment.setTraiter(true);
mobileDataCaracteristiqueBatimentRepository.save(mobileDataCaracteristiqueBatiment);
@@ -64,35 +75,35 @@ public class CaracteristiqueBatimentAsyncWorker {
}
}
private CaracteristiqueBatiment getCaracteristiqueBatimentFromCaracteristiqueBatimentPayLoad(CaracteristiqueBatiment caracteristiqueBatiment, CaracteristiqueBatimentPayload caracteristiqueBatimentPayload) {
private CaracteristiqueBatiment getCaracteristiqueBatimentFromCaracteristiqueBatimentPayLoad(CaracteristiqueBatiment caracteristiqueBatiment, CaracteristiqueBatimentPaylod caracteristiqueBatimentPaylod) {
if (caracteristiqueBatimentPayload.getEnqueteBatimentId() != null) {
Optional<EnqueteBatiment> optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueBatimentPayload.getEnqueteBatimentId(), caracteristiqueBatimentPayload.getTerminalId());
if (caracteristiqueBatimentPaylod.getEnqueteBatimentId() != null) {
Optional<EnqueteBatiment> optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueBatimentPaylod.getEnqueteBatimentId(), caracteristiqueBatimentPaylod.getTerminalId());
caracteristiqueBatiment.setEnqueteBatiment(optionalEnqueteBatiment.orElse(null));
}
if (caracteristiqueBatimentPayload.getCaracteristiqueId() != null) {
Optional<Caracteristique> optionalCaracteristique = caracteristiqueRepository.findById(caracteristiqueBatimentPayload.getCaracteristiqueId());
if (caracteristiqueBatimentPaylod.getCaracteristiqueId() != null) {
Optional<Caracteristique> optionalCaracteristique = caracteristiqueRepository.findById(caracteristiqueBatimentPaylod.getCaracteristiqueId());
caracteristiqueBatiment.setCaracteristique(optionalCaracteristique.orElse(null));
}
if (caracteristiqueBatimentPayload.getTerminalId() != null) {
Optional<Tpe> optionalTpe = tpeRepository.findById(caracteristiqueBatimentPayload.getTerminalId());
if (caracteristiqueBatimentPaylod.getTerminalId() != null) {
Optional<Tpe> optionalTpe = tpeRepository.findById(caracteristiqueBatimentPaylod.getTerminalId());
caracteristiqueBatiment.setTerminal(optionalTpe.orElse(null));
}
if (caracteristiqueBatimentPayload.getTerminalId() != null && caracteristiqueBatimentPayload.getEnqueteId() != null) {
Optional<Enquete> optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueBatimentPayload.getEnqueteId(), caracteristiqueBatimentPayload.getTerminalId());
if (caracteristiqueBatimentPaylod.getTerminalId() != null && caracteristiqueBatimentPaylod.getEnqueteId() != null) {
Optional<Enquete> optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueBatimentPaylod.getEnqueteId(), caracteristiqueBatimentPaylod.getTerminalId());
if (optionalEnquete.isPresent()) {
caracteristiqueBatiment.setEnqueteId(optionalEnquete.get().getId());
}
}
caracteristiqueBatiment.setEnqueteBatimentExternalKey(caracteristiqueBatimentPayload.getEnqueteBatimentId());
caracteristiqueBatiment.setEnqueteExternalKey(caracteristiqueBatimentPayload.getEnqueteId());
caracteristiqueBatiment.setValeur(caracteristiqueBatimentPayload.getValeur());
caracteristiqueBatiment.setExternalKey(caracteristiqueBatimentPayload.getExternalKey());
caracteristiqueBatiment.setEnqueteBatimentExternalKey(caracteristiqueBatimentPaylod.getEnqueteBatimentId());
caracteristiqueBatiment.setEnqueteExternalKey(caracteristiqueBatimentPaylod.getEnqueteId());
caracteristiqueBatiment.setValeur(caracteristiqueBatimentPaylod.getValeur());
caracteristiqueBatiment.setExternalKey(caracteristiqueBatimentPaylod.getExternalKey());
return caracteristiqueBatiment;
}

View File

@@ -1,18 +1,29 @@
package io.gmss.fiscad.service.worker;
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 io.gmss.fiscad.entities.infocad.parametre.Bloc;
import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueParcelle;
import io.gmss.fiscad.entities.metadata.MobileDataEnquete;
import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueParcelle;
import io.gmss.fiscad.entities.rfu.parametre.Caracteristique;
import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu;
import io.gmss.fiscad.entities.user.User;
import io.gmss.fiscad.enums.TypeObjet;
import io.gmss.fiscad.paylaods.request.CaracteristiqueParcellePayload;
import io.gmss.fiscad.paylaods.request.CaracteristiqueParcellePaylod;
import io.gmss.fiscad.paylaods.request.EnquetePayLoad;
import io.gmss.fiscad.repositories.infocad.metier.*;
import io.gmss.fiscad.repositories.infocad.parametre.BlocRepository;
import io.gmss.fiscad.repositories.metadata.MobileDataCaracteristiqueParcelleRepository;
import io.gmss.fiscad.repositories.metadata.MobileDataEnqueteRepository;
import io.gmss.fiscad.repositories.rfu.metier.*;
import io.gmss.fiscad.repositories.rfu.parametre.CaracteristiqueRepository;
import io.gmss.fiscad.repositories.rfu.parametre.ZoneRfuRepository;
import io.gmss.fiscad.repositories.user.UserRepository;
import io.gmss.fiscad.service.LogService;
import lombok.RequiredArgsConstructor;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.Optional;
@@ -28,25 +39,25 @@ public class CaracteristiqueParcelleAsyncWorker {
private final LogService logService;
//@Async("caracteristiqueParcelleExecutor")
public void traitementAsyncCaracteristiqueParcelle(MobileDataCaracteristiqueParcelle mobileDataCaracteristiqueParcelle) {
CaracteristiqueParcellePayload caracteristiqueParcellePayload = mobileDataCaracteristiqueParcelle.getCaracteristiqueParcellePayload();
CaracteristiqueParcellePaylod caracteristiqueParcellePaylod = mobileDataCaracteristiqueParcelle.getCaracteristiqueParcellePaylod();
try {
if (caracteristiqueParcellePayload.getTerminalId() == null) {
if (caracteristiqueParcellePaylod.getTerminalId() == null) {
logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEPARCELLE, "Problème de terminal", "terminal non fourni : ", mobileDataCaracteristiqueParcelle.getId());
return;
} else {
Optional<Tpe> optionalTpe = tpeRepository.findById(caracteristiqueParcellePayload.getTerminalId());
Optional<Tpe> optionalTpe = tpeRepository.findById(caracteristiqueParcellePaylod.getTerminalId());
if (optionalTpe.isEmpty()) {
logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEPARCELLE, "Problème de terminal", "terminal inexistant : ", mobileDataCaracteristiqueParcelle.getId());
return;
}
}
if (caracteristiqueParcellePayload.getEnqueteId() == null) {
if (caracteristiqueParcellePaylod.getEnqueteId() == null) {
logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEPARCELLE, "Problème de enquete", "enquete non fourni : ", mobileDataCaracteristiqueParcelle.getId());
return;
} else {
Optional<Enquete> optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueParcellePayload.getEnqueteId(), caracteristiqueParcellePayload.getTerminalId());
Optional<Enquete> optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueParcellePaylod.getEnqueteId(), caracteristiqueParcellePaylod.getTerminalId());
if (optionalEnquete.isEmpty()) {
logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEPARCELLE, "Problème de enquete", "L'enquete précisée n'existe pas : ", mobileDataCaracteristiqueParcelle.getId());
return;
@@ -54,7 +65,7 @@ public class CaracteristiqueParcelleAsyncWorker {
}
CaracteristiqueParcelle caracteristiqueParcelle = new CaracteristiqueParcelle();
caracteristiqueParcelle.setMobileDataId(mobileDataCaracteristiqueParcelle.getId());
caracteristiqueParcelle = getCaracteristiqueParcelleFromCaracteristiqueParcellePayLoad(caracteristiqueParcelle, caracteristiqueParcellePayload);
caracteristiqueParcelle = getCaracteristiqueParcelleFromCaracteristiqueParcellePayLoad(caracteristiqueParcelle, caracteristiqueParcellePaylod);
caracteristiqueParcelleRepository.save(caracteristiqueParcelle);
mobileDataCaracteristiqueParcelle.setTraiter(true);
mobileDataCaracteristiqueParcelleRepository.save(mobileDataCaracteristiqueParcelle);
@@ -63,27 +74,27 @@ public class CaracteristiqueParcelleAsyncWorker {
}
}
private CaracteristiqueParcelle getCaracteristiqueParcelleFromCaracteristiqueParcellePayLoad(CaracteristiqueParcelle caracteristiqueParcelle, CaracteristiqueParcellePayload caracteristiqueParcellePayload) {
private CaracteristiqueParcelle getCaracteristiqueParcelleFromCaracteristiqueParcellePayLoad(CaracteristiqueParcelle caracteristiqueParcelle, CaracteristiqueParcellePaylod caracteristiqueParcellePaylod) {
if (caracteristiqueParcellePayload.getEnqueteId() != null) {
Optional<Enquete> optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueParcellePayload.getEnqueteId(), caracteristiqueParcellePayload.getTerminalId());
if (caracteristiqueParcellePaylod.getEnqueteId() != null) {
Optional<Enquete> optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueParcellePaylod.getEnqueteId(), caracteristiqueParcellePaylod.getTerminalId());
caracteristiqueParcelle.setEnquete(optionalEnquete.orElse(null));
}
if (caracteristiqueParcellePayload.getCaracteristiqueId() != null) {
Optional<Caracteristique> optionalCaracteristique = caracteristiqueRepository.findById(caracteristiqueParcellePayload.getCaracteristiqueId());
if (caracteristiqueParcellePaylod.getCaracteristiqueId() != null) {
Optional<Caracteristique> optionalCaracteristique = caracteristiqueRepository.findById(caracteristiqueParcellePaylod.getCaracteristiqueId());
caracteristiqueParcelle.setCaracteristique(optionalCaracteristique.orElse(null));
}
if (caracteristiqueParcellePayload.getTerminalId() != null) {
Optional<Tpe> optionalTpe = tpeRepository.findById(caracteristiqueParcellePayload.getTerminalId());
if (caracteristiqueParcellePaylod.getTerminalId() != null) {
Optional<Tpe> optionalTpe = tpeRepository.findById(caracteristiqueParcellePaylod.getTerminalId());
caracteristiqueParcelle.setTerminal(optionalTpe.orElse(null));
}
caracteristiqueParcelle.setEnqueteExternalKey(caracteristiqueParcellePayload.getEnqueteId());
caracteristiqueParcelle.setValeur(caracteristiqueParcellePayload.getValeur());
caracteristiqueParcelle.setExternalKey(caracteristiqueParcellePayload.getExternalKey());
caracteristiqueParcelle.setEnqueteExternalKey(caracteristiqueParcellePaylod.getEnqueteId());
caracteristiqueParcelle.setValeur(caracteristiqueParcellePaylod.getValeur());
caracteristiqueParcelle.setExternalKey(caracteristiqueParcellePaylod.getExternalKey());
return caracteristiqueParcelle;
}

View File

@@ -2,21 +2,28 @@ package io.gmss.fiscad.service.worker;
import io.gmss.fiscad.entities.infocad.metier.Enquete;
import io.gmss.fiscad.entities.infocad.metier.Tpe;
import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueBatiment;
import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueUniteLogement;
import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueBatiment;
import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueUniteLogement;
import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement;
import io.gmss.fiscad.entities.rfu.parametre.Caracteristique;
import io.gmss.fiscad.enums.TypeObjet;
import io.gmss.fiscad.paylaods.request.CaracteristiqueUniteLogementPayload;
import io.gmss.fiscad.paylaods.request.CaracteristiqueBatimentPaylod;
import io.gmss.fiscad.paylaods.request.CaracteristiqueUniteLogementPaylod;
import io.gmss.fiscad.repositories.infocad.metier.EnqueteRepository;
import io.gmss.fiscad.repositories.infocad.metier.TpeRepository;
import io.gmss.fiscad.repositories.metadata.MobileDataCaracteristiqueBatimentRepository;
import io.gmss.fiscad.repositories.metadata.MobileDataCaracteristiqueUniteLogementRepository;
import io.gmss.fiscad.repositories.rfu.metier.CaracteristiqueBatimentRepository;
import io.gmss.fiscad.repositories.rfu.metier.CaracteristiqueUniteLogementRepository;
import io.gmss.fiscad.repositories.rfu.metier.EnqueteBatimentRepository;
import io.gmss.fiscad.repositories.rfu.metier.EnqueteUniteLogementRepository;
import io.gmss.fiscad.repositories.rfu.parametre.CaracteristiqueRepository;
import io.gmss.fiscad.service.LogService;
import lombok.RequiredArgsConstructor;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.Optional;
@@ -34,24 +41,24 @@ public class CaracteristiqueUniteLogementAsyncWorker {
private final LogService logService;
//@Async("caracteristiqueUniteLogementExecutor")
public void traitementAsyncCaracteristiqueUniteLogement(MobileDataCaracteristiqueUniteLogement mobileDataCaracteristiqueUniteLogement) {
CaracteristiqueUniteLogementPayload caracteristiqueUniteLogementPayload = mobileDataCaracteristiqueUniteLogement.getCaracteristiqueUniteLogementPayload();
CaracteristiqueUniteLogementPaylod caracteristiqueUniteLogementPaylod = mobileDataCaracteristiqueUniteLogement.getCaracteristiqueUniteLogementPaylod();
try {
if (caracteristiqueUniteLogementPayload.getTerminalId() == null) {
if (caracteristiqueUniteLogementPaylod.getTerminalId() == null) {
logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEUNITELOGEMENT, "Problème de terminal", "terminal non fourni : ", mobileDataCaracteristiqueUniteLogement.getId());
return;
} else {
Optional<Tpe> optionalTpe = tpeRepository.findById(caracteristiqueUniteLogementPayload.getTerminalId());
Optional<Tpe> optionalTpe = tpeRepository.findById(caracteristiqueUniteLogementPaylod.getTerminalId());
if (optionalTpe.isEmpty()) {
logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEUNITELOGEMENT, "Problème de terminal", "terminal inexistant : ", mobileDataCaracteristiqueUniteLogement.getId());
return;
}
}
if (caracteristiqueUniteLogementPayload.getEnqueteUniteLogementId() == null) {
if (caracteristiqueUniteLogementPaylod.getEnqueteUniteLogementId() == null) {
logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEUNITELOGEMENT, "Problème de enquete unite logement", "enquete non fourni : ", mobileDataCaracteristiqueUniteLogement.getId());
return;
} else {
Optional<EnqueteUniteLogement> optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueUniteLogementPayload.getEnqueteUniteLogementId(), caracteristiqueUniteLogementPayload.getTerminalId());
Optional<EnqueteUniteLogement> optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueUniteLogementPaylod.getEnqueteUniteLogementId(), caracteristiqueUniteLogementPaylod.getTerminalId());
if (optionalEnqueteUniteLogement.isEmpty()) {
logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEUNITELOGEMENT, "Problème de enquete unite logement", "L'enquete précisée n'existe pas : ", mobileDataCaracteristiqueUniteLogement.getId());
return;
@@ -59,7 +66,7 @@ public class CaracteristiqueUniteLogementAsyncWorker {
}
CaracteristiqueUniteLogement caracteristiqueUniteLogement = new CaracteristiqueUniteLogement();
caracteristiqueUniteLogement.setMobileDataId(mobileDataCaracteristiqueUniteLogement.getId());
caracteristiqueUniteLogement = getCaracteristiqueUniteLogementFromCaracteristiqueUniteLogementPayLoad(caracteristiqueUniteLogement, caracteristiqueUniteLogementPayload);
caracteristiqueUniteLogement = getCaracteristiqueUniteLogementFromCaracteristiqueUniteLogementPayLoad(caracteristiqueUniteLogement, caracteristiqueUniteLogementPaylod);
caracteristiqueUniteLogementRepository.save(caracteristiqueUniteLogement);
mobileDataCaracteristiqueUniteLogement.setTraiter(true);
mobileDataCaracteristiqueUniteLogementRepository.save(mobileDataCaracteristiqueUniteLogement);
@@ -68,32 +75,32 @@ public class CaracteristiqueUniteLogementAsyncWorker {
}
}
private CaracteristiqueUniteLogement getCaracteristiqueUniteLogementFromCaracteristiqueUniteLogementPayLoad(CaracteristiqueUniteLogement caracteristiqueUniteLogement, CaracteristiqueUniteLogementPayload caracteristiqueUniteLogementPayload) {
private CaracteristiqueUniteLogement getCaracteristiqueUniteLogementFromCaracteristiqueUniteLogementPayLoad(CaracteristiqueUniteLogement caracteristiqueUniteLogement, CaracteristiqueUniteLogementPaylod caracteristiqueUniteLogementPaylod) {
if (caracteristiqueUniteLogementPayload.getEnqueteUniteLogementId() != null) {
Optional<EnqueteUniteLogement> optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueUniteLogementPayload.getEnqueteUniteLogementId(), caracteristiqueUniteLogementPayload.getTerminalId());
if (caracteristiqueUniteLogementPaylod.getEnqueteUniteLogementId() != null) {
Optional<EnqueteUniteLogement> optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueUniteLogementPaylod.getEnqueteUniteLogementId(), caracteristiqueUniteLogementPaylod.getTerminalId());
caracteristiqueUniteLogement.setEnqueteUniteLogement(optionalEnqueteUniteLogement.orElse(null));
}
if (caracteristiqueUniteLogementPayload.getCaracteristiqueId() != null) {
Optional<Caracteristique> optionalCaracteristique = caracteristiqueRepository.findById(caracteristiqueUniteLogementPayload.getCaracteristiqueId());
if (caracteristiqueUniteLogementPaylod.getCaracteristiqueId() != null) {
Optional<Caracteristique> optionalCaracteristique = caracteristiqueRepository.findById(caracteristiqueUniteLogementPaylod.getCaracteristiqueId());
caracteristiqueUniteLogement.setCaracteristique(optionalCaracteristique.orElse(null));
}
if (caracteristiqueUniteLogementPayload.getTerminalId() != null) {
Optional<Tpe> optionalTpe = tpeRepository.findById(caracteristiqueUniteLogementPayload.getTerminalId());
if (caracteristiqueUniteLogementPaylod.getTerminalId() != null) {
Optional<Tpe> optionalTpe = tpeRepository.findById(caracteristiqueUniteLogementPaylod.getTerminalId());
caracteristiqueUniteLogement.setTerminal(optionalTpe.orElse(null));
}
if (caracteristiqueUniteLogementPayload.getTerminalId() != null && caracteristiqueUniteLogementPayload.getEnqueteId() != null) {
Optional<Enquete> optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueUniteLogementPayload.getEnqueteId(), caracteristiqueUniteLogementPayload.getTerminalId());
if (caracteristiqueUniteLogementPaylod.getTerminalId() != null && caracteristiqueUniteLogementPaylod.getEnqueteId() != null) {
Optional<Enquete> optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueUniteLogementPaylod.getEnqueteId(), caracteristiqueUniteLogementPaylod.getTerminalId());
if (optionalEnquete.isPresent()) {
caracteristiqueUniteLogement.setEnqueteId(optionalEnquete.get().getId());
}
}
caracteristiqueUniteLogement.setEnqueteExternalKey(caracteristiqueUniteLogementPayload.getEnqueteId());
caracteristiqueUniteLogement.setEnqueteUniteLogementExternalKey(caracteristiqueUniteLogementPayload.getEnqueteUniteLogementId());
caracteristiqueUniteLogement.setValeur(caracteristiqueUniteLogementPayload.getValeur());
caracteristiqueUniteLogement.setExternalKey(caracteristiqueUniteLogementPayload.getExternalKey());
caracteristiqueUniteLogement.setEnqueteExternalKey(caracteristiqueUniteLogementPaylod.getEnqueteId());
caracteristiqueUniteLogement.setEnqueteUniteLogementExternalKey(caracteristiqueUniteLogementPaylod.getEnqueteUniteLogementId());
caracteristiqueUniteLogement.setValeur(caracteristiqueUniteLogementPaylod.getValeur());
caracteristiqueUniteLogement.setExternalKey(caracteristiqueUniteLogementPaylod.getExternalKey());
return caracteristiqueUniteLogement;
}
}

View File

@@ -200,7 +200,7 @@ public class EnqueteAsyncWorker {
enquete.setNbrePiscine(enquetePayLoad.getNbrePiscine());
enquete.setDateDebutExcemption(enquetePayLoad.getDateDebutExcemption());
enquete.setDateFinExcemption(enquetePayLoad.getDateFinExcemption());
//enquete.setPersonneId(enquetePayLoad.getPersonneId());
enquete.setPersonneId(enquetePayLoad.getPersonneId());
enquete.setAutreNumeroTitreFoncier(enquete.getAutreNumeroTitreFoncier());
return enquete;
}

View File

@@ -1,12 +1,18 @@
package io.gmss.fiscad.service.worker;
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 io.gmss.fiscad.entities.infocad.parametre.Bloc;
import io.gmss.fiscad.entities.metadata.MobileDataEnquete;
import io.gmss.fiscad.entities.metadata.MobileDataUniteLogement;
import io.gmss.fiscad.entities.rfu.metier.Batiment;
import io.gmss.fiscad.entities.rfu.metier.UniteLogement;
import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu;
import io.gmss.fiscad.entities.user.User;
import io.gmss.fiscad.enums.TypeObjet;
import io.gmss.fiscad.paylaods.request.UniteLogementPayload;
import io.gmss.fiscad.paylaods.request.EnquetePayLoad;
import io.gmss.fiscad.paylaods.request.UniteLogementPaylaod;
import io.gmss.fiscad.repositories.infocad.metier.*;
import io.gmss.fiscad.repositories.infocad.parametre.BlocRepository;
import io.gmss.fiscad.repositories.metadata.MobileDataEnqueteRepository;
@@ -16,6 +22,7 @@ import io.gmss.fiscad.repositories.rfu.parametre.ZoneRfuRepository;
import io.gmss.fiscad.repositories.user.UserRepository;
import io.gmss.fiscad.service.LogService;
import lombok.RequiredArgsConstructor;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.Optional;
@@ -43,25 +50,25 @@ public class UniteLogementAsyncWorker {
private final LogService logService;
//@Async("uniteLogementExecutor")
public void traitementAsyncUniteLogement(MobileDataUniteLogement mobileDataUniteLogement) {
UniteLogementPayload uniteLogementPayload = mobileDataUniteLogement.getUniteLogementPayload();
UniteLogementPaylaod uniteLogementPaylaod = mobileDataUniteLogement.getUniteLogementPaylaod();
try {
if (uniteLogementPayload.getTerminalId() == null) {
if (uniteLogementPaylaod.getTerminalId() == null) {
logService.logTraiementAsync(TypeObjet.UNITELOGEMENT, "Problème de terminal", "terminal non fourni : ", mobileDataUniteLogement.getId());
return;
} else {
Optional<Tpe> optionalTpe = tpeRepository.findById(uniteLogementPayload.getTerminalId());
Optional<Tpe> optionalTpe = tpeRepository.findById(uniteLogementPaylaod.getTerminalId());
if (optionalTpe.isEmpty()) {
logService.logTraiementAsync(TypeObjet.UNITELOGEMENT, "Problème de terminal", "terminal inexistant : ", mobileDataUniteLogement.getId());
return;
}
}
if (uniteLogementPayload.getBatimentId() == null) {
if (uniteLogementPaylaod.getBatimentId() == null) {
logService.logTraiementAsync(TypeObjet.UNITELOGEMENT, "Problème de batiment", "batiment non fourni : ", mobileDataUniteLogement.getId());
return;
} else {
Optional<Batiment> optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPayload.getBatimentId(), uniteLogementPayload.getTerminalId());
Optional<Batiment> optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPaylaod.getBatimentId(), uniteLogementPaylaod.getTerminalId());
if (optionalBatiment.isEmpty()) {
logService.logTraiementAsync(TypeObjet.UNITELOGEMENT, "Problème de batiment", "Le batiment précisée n'existe pas : ", mobileDataUniteLogement.getId());
return;
@@ -74,13 +81,13 @@ public class UniteLogementAsyncWorker {
if (optionalUniteLogement.isPresent()) {
uniteLogement = optionalUniteLogement.get();
}else {
optionalUniteLogement = uniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPayload.getExternalKey(), uniteLogementPayload.getTerminalId());
optionalUniteLogement = uniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPaylaod.getExternalKey(),uniteLogementPaylaod.getTerminalId());
if (optionalUniteLogement.isPresent()) {
uniteLogement = optionalUniteLogement.get();
}
}
uniteLogement.setMobileDataId(mobileDataUniteLogement.getId());
uniteLogement = getUniteLogementFromUniteLogementPayLoad(uniteLogement, uniteLogementPayload);
uniteLogement = getUniteLogementFromUniteLogementPayLoad(uniteLogement, uniteLogementPaylaod);
uniteLogementRepository.save(uniteLogement);
mobileDataUniteLogement.setTraiter(true);
mobileDataUniteLogementRepository.save(mobileDataUniteLogement);
@@ -90,29 +97,29 @@ public class UniteLogementAsyncWorker {
}
private UniteLogement getUniteLogementFromUniteLogementPayLoad(UniteLogement uniteLogement, UniteLogementPayload uniteLogementPayload) {
private UniteLogement getUniteLogementFromUniteLogementPayLoad(UniteLogement uniteLogement, UniteLogementPaylaod uniteLogementPaylaod) {
if (uniteLogementPayload.getBatimentId() != null) {
Optional<Batiment> optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPayload.getBatimentId(), uniteLogementPayload.getTerminalId());
if (uniteLogementPaylaod.getBatimentId() != null) {
Optional<Batiment> optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPaylaod.getBatimentId(), uniteLogementPaylaod.getTerminalId());
uniteLogement.setBatiment(optionalBatiment.orElse(null));
}
if (uniteLogementPayload.getTerminalId() != null) {
Optional<Tpe> optionalTpe = tpeRepository.findById(uniteLogementPayload.getTerminalId());
if (uniteLogementPaylaod.getTerminalId() != null) {
Optional<Tpe> optionalTpe = tpeRepository.findById(uniteLogementPaylaod.getTerminalId());
uniteLogement.setTerminal(optionalTpe.orElse(null));
}
if (uniteLogementPayload.getTerminalId() != null && uniteLogementPayload.getEnqueteId() != null) {
Optional<Enquete> optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPayload.getEnqueteId(), uniteLogementPayload.getTerminalId());
if (uniteLogementPaylaod.getTerminalId() != null && uniteLogementPaylaod.getEnqueteId() != null) {
Optional<Enquete> optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPaylaod.getEnqueteId(), uniteLogementPaylaod.getTerminalId());
if (optionalEnquete.isPresent()) {
uniteLogement.setEnqueteId(optionalEnquete.get().getId());
}
}
uniteLogement.setEnqueteExternalKey(uniteLogementPayload.getEnqueteId());
uniteLogement.setNul(uniteLogementPayload.getNul());
uniteLogement.setNumeroEtage(uniteLogementPayload.getNumeroEtage());
uniteLogement.setCode(uniteLogementPayload.getCode());
uniteLogement.setExternalKey(uniteLogementPayload.getExternalKey());
uniteLogement.setBatimentExternalKey(uniteLogementPayload.getBatimentId());
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;
}
}

View File

@@ -6,6 +6,7 @@ io.gmss.fiscad.profile=dgi
#spring.datasource.username=infocad_user
#spring.datasource.password=W5fwD({9*q53
# LOCAL ENV
spring.datasource.url=jdbc:postgresql://localhost:5432/fiscad_dgi
spring.datasource.username=infocad_user
spring.datasource.password=W5fwD({9*q53

View File

@@ -1,6 +1,6 @@
spring.profiles.active=${SPRING_PROFILES_ACTIVE}
#spring.profiles.active=${SPRING_PROFILES_ACTIVE}
#spring.profiles.active=abomey
#spring.profiles.active=dgi
spring.profiles.active=dgi
spring.jpa.properties.hibernate.id.new_generator_mappings=false
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
spring.jpa.open-in-view=false
@@ -11,7 +11,7 @@ jwt.jwtExpirationInMs=7776000000
spring.application.name=infocad
#logging.file.name=fiscad.log
logging.level.org.springframework.security=DEBUG
app.sourcemind.env.defaultpassword=1234567890
app.sourcemind.env.resetlink=http://localhost:4200/reset-password/
spring.mail.host=sandbox.smtp.mailtrap.io
spring.mail.port=587
@@ -42,6 +42,13 @@ file.upload_dir=./uploads
file.jasper-reports=./jasperReport
logging.file.name=/app/logs/fiscad.log
#app.abs.env.defaultpassword = 1234567890
#app.abs.env.defaultuser = infocad_admin
app.default-user.username=${DEFAULT_USER_NAME:}
app.default-user.password=${DEFAULT_USER_PASSWORD:}
app.upload.root=${file.upload_dir}
app.upload.zips.received=${app.upload.root}/zips/received
app.upload.zips.done=${app.upload.root}/zips/done

Binary file not shown.

Before

Width:  |  Height:  |  Size: 297 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 489 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 489 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 352 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 352 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

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