All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 33s
102 lines
4.8 KiB
Java
102 lines
4.8 KiB
Java
package io.gmss.fiscad.implementations.statistiques;
|
|
|
|
import io.gmss.fiscad.entities.user.User;
|
|
import io.gmss.fiscad.interfaces.statistique.StatistiquesService;
|
|
import io.gmss.fiscad.interfaces.user.UserService;
|
|
import io.gmss.fiscad.paylaods.response.statistique.*;
|
|
import io.gmss.fiscad.persistence.repositories.infocad.metier.EnqueteRepository;
|
|
import io.gmss.fiscad.persistence.repositories.infocad.metier.ParcelleRepository;
|
|
import io.gmss.fiscad.persistence.repositories.infocad.parametre.PersonneRepository;
|
|
import io.gmss.fiscad.persistence.repositories.rfu.metier.BatimentRepository;
|
|
import io.gmss.fiscad.persistence.repositories.rfu.metier.UniteLogementRepository;
|
|
import org.springframework.security.core.Authentication;
|
|
import org.springframework.security.core.context.SecurityContextHolder;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
@Service
|
|
public class StatistiquesServiceImpl implements StatistiquesService {
|
|
private Authentication authentication;
|
|
private final UserService userService;
|
|
private final EnqueteRepository enqueteRepository;
|
|
private final ParcelleRepository parcelleRepository;
|
|
private final BatimentRepository batimentRepository;
|
|
private final UniteLogementRepository uniteLogementRepository;
|
|
private final PersonneRepository personneRepository;
|
|
|
|
public StatistiquesServiceImpl(UserService userService, EnqueteRepository enqueteRepository, ParcelleRepository parcelleRepository, BatimentRepository batimentRepository, UniteLogementRepository uniteLogementRepository, PersonneRepository personneRepository) {
|
|
this.userService = userService;
|
|
this.enqueteRepository = enqueteRepository;
|
|
this.parcelleRepository = parcelleRepository;
|
|
this.batimentRepository = batimentRepository;
|
|
this.uniteLogementRepository = uniteLogementRepository;
|
|
this.personneRepository = personneRepository;
|
|
}
|
|
|
|
|
|
@Override
|
|
public List<StatEnqueteParStatutResponse> getStatEnqueteParStatut() {
|
|
String userName = "";
|
|
List<StatEnqueteParStatutResponse> statEnqueteParStatutResponse = new ArrayList<>();
|
|
try {
|
|
authentication = SecurityContextHolder.getContext().getAuthentication();
|
|
userName = authentication.getName();
|
|
User user = userService.getUserByUsername(userName);
|
|
statEnqueteParStatutResponse = user.isAdmin() ? enqueteRepository.getStatEnqueteParStatut() : enqueteRepository.getStatEnqueteParStatut(user.getId());
|
|
return statEnqueteParStatutResponse;
|
|
} catch (Exception e) {
|
|
return new ArrayList<>();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public List<StatEnqueteAdminDecoupageResponse> getStatEnqueteAdminDecoupage(Long idCommune) {
|
|
return enqueteRepository.getStatEnqueteParDecoupage(idCommune);
|
|
}
|
|
|
|
@Override
|
|
public List<StatEnqueteAdminStructureResponse> getStatEnqueteAdminStructure() {
|
|
return enqueteRepository.getStatEnqueteParStructure();
|
|
}
|
|
|
|
@Override
|
|
public List<StatEnqueteParBlocResponse> getStatBloc() {
|
|
String userName = "";
|
|
try {
|
|
authentication = SecurityContextHolder.getContext().getAuthentication();
|
|
userName = authentication.getName();
|
|
User user = userService.getUserByUsername(userName);
|
|
return enqueteRepository.getStatEnqueteParBloc(user.getId());
|
|
} catch (Exception e) {
|
|
return new ArrayList<>();
|
|
}
|
|
|
|
}
|
|
|
|
@Override
|
|
public StatNombreTotalObjet getStatNombreTotalObjet(String codeDecoupageAdmin) {
|
|
StatNombreTotalObjet statNombreTotalObjet = new StatNombreTotalObjet();
|
|
List<StatistiqueTypeNombreResponse> statistiqueTypeNombreRespons = parcelleRepository.getParcelleBatieResponse(codeDecoupageAdmin);
|
|
Long nombreBatiment= batimentRepository.countByParcelle_Quartier_CodeLike(codeDecoupageAdmin+"%");
|
|
Long nombreUniteLogement= uniteLogementRepository.countByBatiment_Parcelle_Quartier_CodeLike(codeDecoupageAdmin+"%");
|
|
statistiqueTypeNombreRespons.forEach(statistiqueTypeNombreResponse -> {
|
|
if(statistiqueTypeNombreResponse.getType().equals("BATIES")){
|
|
statNombreTotalObjet.setNombreParcelleBatie(statistiqueTypeNombreResponse.getNombre());
|
|
}
|
|
if(statistiqueTypeNombreResponse.getType().equals("NON BATIES")){
|
|
statNombreTotalObjet.setNombreParcelleNonBatie(statistiqueTypeNombreResponse.getNombre());
|
|
}
|
|
});
|
|
statNombreTotalObjet.setNombreBatiments(nombreBatiment);
|
|
statNombreTotalObjet.setNombreUniteLogement(nombreUniteLogement);
|
|
return statNombreTotalObjet;
|
|
}
|
|
|
|
@Override
|
|
public List<StatistiqueTypeNombreResponse> getStatNombrePersonneParCategorie() {
|
|
return personneRepository.getNombrePersonnesResponse();
|
|
}
|
|
}
|