Skip to content

Commit

Permalink
feat(monitoraggio-caricamenti): aggiunta paginazione risultati tabell…
Browse files Browse the repository at this point in the history
…a 20241008
  • Loading branch information
federico-tocci-dxc committed Oct 8, 2024
1 parent fa704f2 commit 7418a32
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 17 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package it.pa.repdgt.shared.entity;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
Expand All @@ -18,9 +19,11 @@
@Table(name = "v_monitoraggio_caricamenti")
@Setter
@Getter
public class VMonitoraggioCaricamentiEntity {
public class VMonitoraggioCaricamentiEntity implements Serializable{

@Id
private Long id;

@Column(name = "id_programma", nullable = false)
private Long idProgramma;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import java.util.List;


import it.pa.repdgt.shared.entity.VMonitoraggioCaricamentiEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
Expand All @@ -23,5 +24,9 @@ public class MonitoraggioCaricamentiDTO {
private Long serviziCaricati;

private Long cittadiniCaricati;

private Integer numeroPagine;

private Long numeroTotaleElementi;

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package it.pa.repdgt.surveymgmt.repository;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
Expand All @@ -13,15 +15,15 @@
@Repository
public interface VMonitoraggioCaricamentiRepository extends JpaRepository<VMonitoraggioCaricamentiEntity, Long> {

@Query(value = "SELECT * FROM v_monitoraggio_caricamenti\n" +
"WHERE (:intervento IS NULL OR intervento = :intervento)\n" +
"AND (:idProgetto IS NULL OR id_progetto = :idProgetto)\n" +
"AND (:idProgramma IS NULL OR id_programma = :idProgramma)\n" +
"AND (COALESCE(:idEnti) IS NULL OR id_ente IN (:idEnti))\n" +
"AND (:dataInizio IS NULL OR data_caricamenti >= :dataInizio)\n" +
"AND (:dataFine IS NULL OR data_caricamenti <= :dataFine)\n", nativeQuery = true)
public List<VMonitoraggioCaricamentiEntity> findAll(@Param("intervento") String intervento, @Param("idProgetto") Long idProgetto,
@Param("idProgramma") Long idProgramma, @Param("idEnti") List<Long> idEnti, @Param("dataInizio") Date dataInizio,
@Param("dataFine") Date dataFine);
@Query(value = "SELECT * FROM v_monitoraggio_caricamenti\n" +
"WHERE (:intervento IS NULL OR intervento = :intervento)\n" +
"AND (:idProgetto IS NULL OR id_progetto = :idProgetto)\n" +
"AND (:idProgramma IS NULL OR id_programma = :idProgramma)\n" +
"AND (COALESCE(:idEnti) IS NULL OR id_ente IN (:idEnti))\n" +
"AND (:dataInizio IS NULL OR data_caricamenti >= :dataInizio)\n" +
"AND (:dataFine IS NULL OR data_caricamenti <= :dataFine)\n", nativeQuery = true)
public Page<VMonitoraggioCaricamentiEntity> findAll(@Param("intervento") String intervento, @Param("idProgetto") Long idProgetto,
@Param("idProgramma") Long idProgramma, @Param("idEnti") List<Long> idEnti, @Param("dataInizio") Date dataInizio,
@Param("dataFine") Date dataFine, Pageable pageable);

}
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,10 @@ public class MonitoraggioCaricamentiRequest {

@JsonProperty("dataFine")
private Date dataFine;

@JsonProperty("currPage")
private Integer currPage;

@JsonProperty("pageSize")
private Integer pageSize;
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package it.pa.repdgt.surveymgmt.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;

import it.pa.repdgt.shared.entity.VMonitoraggioCaricamentiEntity;
Expand All @@ -18,16 +19,18 @@ public class VMonitoraggioCaricamentiService {

public MonitoraggioCaricamentiDTO findAllByFilters(MonitoraggioCaricamentiRequest request) {

List<VMonitoraggioCaricamentiEntity> result = this.vMonitoraggioCaricamentiRepository.findAll(request.getIntervento(), request.getIdProgetto(),
request.getIdProgramma(), request.getIdEnti(), request.getDataInizio(), request.getDataFine());
Pageable paginazione = PageRequest.of(request.getCurrPage(), request.getPageSize());
Page<VMonitoraggioCaricamentiEntity> result = this.vMonitoraggioCaricamentiRepository.findAll(request.getIntervento(), request.getIdProgetto(),
request.getIdProgramma(), request.getIdEnti(), request.getDataInizio(), request.getDataFine(), paginazione);

MonitoraggioCaricamentiDTO monitoraggioCaricamentiDTO = new MonitoraggioCaricamentiDTO();
monitoraggioCaricamentiDTO.setMonitoraggioCaricamentiEntity(result);
monitoraggioCaricamentiDTO.setMonitoraggioCaricamentiEntity(result.getContent());
monitoraggioCaricamentiDTO.setNumeroEnti(result.stream().map(VMonitoraggioCaricamentiEntity::getIdEnte).distinct().count());
monitoraggioCaricamentiDTO.setNumeroCaricamenti(result.stream().mapToLong(VMonitoraggioCaricamentiEntity::getNumCaricamenti).sum());
monitoraggioCaricamentiDTO.setServiziCaricati(result.stream().mapToLong(VMonitoraggioCaricamentiEntity::getServiziAggiunti).sum());
monitoraggioCaricamentiDTO.setCittadiniCaricati(result.stream().mapToLong(VMonitoraggioCaricamentiEntity::getCittadiniAssociati).sum());

monitoraggioCaricamentiDTO.setNumeroPagine(result.getTotalPages());
monitoraggioCaricamentiDTO.setNumeroTotaleElementi(result.getTotalElements());

return monitoraggioCaricamentiDTO;
}
Expand Down

0 comments on commit 7418a32

Please sign in to comment.