Skip to content

Commit

Permalink
feat(upgrade-caricamento-massivo): upgrade caricamento massivo 20240913
Browse files Browse the repository at this point in the history
  • Loading branch information
federico-tocci-dxc committed Sep 13, 2024
1 parent 3ab551c commit 09c8b6f
Show file tree
Hide file tree
Showing 17 changed files with 168 additions and 46 deletions.
4 changes: 4 additions & 0 deletions fe-piattaforma/public/assets/errors/errors.json
Original file line number Diff line number Diff line change
Expand Up @@ -459,6 +459,10 @@
"A06": {
"titolo": "ERRORE DATA SERVIZIO",
"descrizione": "Inserisci una data compresa fra le date di inizio e fine progetto"
},
"CM01" : {
"titolo": "IMPOSSIBILE AVVIARE INSERIMENTO DATI",
"descrizione": "E' già in corso un inserimento dati"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -68,4 +68,7 @@ public class CittadinoEntity implements Serializable {

@Column(name = "PROVINCIA_DI_DOMICILIO")
private String provinciaDiDomicilio;

@Column(name = "COD_INSERIMENTO")
private String codInserimento;
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,7 @@ public class QuestionarioCompilatoEntity implements Serializable {
@LastModifiedDate
@Column(name = "DATA_ORA_AGGIORNAMENTO")
private Date dataOraAggiornamento;

@Column(name = "COD_INSERIMENTO")
private String codInserimento;
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,11 @@ public class RegistroAttivitaEntity {
private Long id;
@NotEmpty
private String operatore;
@CreatedDate
@JsonFormat(pattern = "dd/MM/yyyy HH:mm:ss", timezone = "Europe/Rome")
private Date dataFineInserimento;
@CreatedDate
@JsonFormat(pattern = "dd/MM/yyyy HH:mm:ss", timezone = "Europe/Rome")
private Date dataInizioInserimento;
@JsonIgnore
private String codiceFiscale;
@NotNull
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,7 @@ public class ServizioEntity implements Serializable {
@LastModifiedDate
@Column(name = "DATA_ORA_AGGIORNAMENTO")
private Date dataOraAggiornamento;

@Column(name = "COD_INSERIMENTO")
private String codInserimento;
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,7 @@ public class ServizioXCittadinoEntity implements Serializable {
@LastModifiedDate
@Column(name = "DATA_ORA_AGGIORNAMENTO")
private Date dataOraAggiornamento;

@Column(name = "COD_INSERIMENTO")
private String codInserimento;
}
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,8 @@ public enum CodiceErroreEnum {
,A04("Sezionario q4 completamente mancante, almeno una risposta deve essere selezionata")
,A05("La sezione q4 e' stata compilata ma nessuna risposta e' stata selezionata")
,A06("La data del servizio non rientra all’interno delle date di progetto")

,CM01("E' già in corso un inserimento dati")
;

private String descrizioneErrore;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package it.pa.repdgt.surveymgmt.exception;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;

import it.pa.repdgt.shared.exception.BaseException;
import it.pa.repdgt.shared.exception.CodiceErroreEnum;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@ResponseStatus(code = HttpStatus.INTERNAL_SERVER_ERROR)
public class ValidationException extends BaseException {

public ValidationException(String messageException, Exception ex, CodiceErroreEnum codiceErroreEnum) {
super(messageException, ex);
this.codiceErroreEnum = codiceErroreEnum;
}

public ValidationException(String messageException, CodiceErroreEnum codiceErroreEnum) {
super(messageException, codiceErroreEnum);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
import org.springframework.stereotype.Repository;

import java.util.Optional;
import java.util.List;


@Repository
public interface RegistroAttivitaRepository extends JpaRepository<RegistroAttivitaEntity, Long> {
Expand All @@ -26,4 +28,7 @@ Page<RegistroAttivitaEntity> findAllByCodiceFiscaleAndJobStatus(Pageable pageabl
Optional<RegistroAttivitaEntity> findByJobUUIDAndJobStatus(String jobUUID, JobStatusEnum success);

Optional<RegistroAttivitaEntity> findByJobUUID(String jobUUID);

List<RegistroAttivitaEntity> findByIdEnteAndIdProgettoAndJobStatus(Long idEnte, Long idProgetto,
JobStatusEnum jobStatusEnum);
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,6 @@ public class QuestionarioCompilatoRequest extends SceltaProfiloParam implements
private String titoloDiStudioDaAggiornare;
private String occupazioneDaAggiornare;
private String cittadinanzaDaAggiornare;

private String codInserimento;
}
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,7 @@ public class ServizioRequest extends SceltaProfiloParam implements Serializable
@NotBlank
@JsonString
private String sezioneQuestionarioCompilatoQ3;

@JsonProperty(value = "codInserimento")
private String codInserimento;
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Set;
import java.util.UUID;

Expand All @@ -40,6 +41,12 @@ public ResponseEntity<String> importCsvData(@RequestBody ImportCsvInputData inpu
String csvRequestString = decompressGzip(inputData.getFileData());
ElaboratoCSVRequest csvRequest = objectMapper.readValue(csvRequestString, ElaboratoCSVRequest.class);
String uuid = UUID.randomUUID().toString();
List<ServiziElaboratiDTO> servizi = !csvRequest.getServiziValidati().isEmpty()
? csvRequest.getServiziValidati()
: csvRequest.getServiziScartati();
Long idEnte = servizi.get(0).getNuovoCittadinoServizioRequest().getIdEnte();
Long idProgetto = servizi.get(0).getNuovoCittadinoServizioRequest().getIdProgetto();
importMassivoCSVService.checkPreliminareCaricamentoMassivo(idEnte, idProgetto);
for (int i = csvRequest.getServiziValidati().size() - 1; i >= 0; i--) {
ServiziElaboratiDTO servizioValidato = csvRequest.getServiziValidati().get(i);
if (valida(servizioValidato)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ public CittadinoEntity creaNuovoCittadino(
cittadino.setDataOraAggiornamento(new Date());
cittadino = cittadinoRepository.save(cittadino);
// associo il cittadino al servizio
this.associaCittadinoAServizio(idServizio, cittadino);
this.associaCittadinoAServizio(idServizio, cittadino, null);

// recupero il servizio
ServizioEntity servizioDBFetch = servizioSqlService.getServizioById(idServizio);
Expand All @@ -309,7 +309,7 @@ public CittadinoEntity creaNuovoCittadino(
@LogExecutionTime
public NuovoCittadinoDTO creaNuovoCittadinoImportCsv(
@NotNull final Long idServizio,
@NotNull final NuovoCittadinoServizioRequest nuovoCittadinoRequest) {
@NotNull final NuovoCittadinoServizioRequest nuovoCittadinoRequest, String idRegistroAttivita) {
String codiceFiscaleDecrypted;
boolean nuovoCittadino = true;
// Verifico se il facilitatore è il creatore di quel servizio
Expand Down Expand Up @@ -362,9 +362,10 @@ public NuovoCittadinoDTO creaNuovoCittadinoImportCsv(
throw new CittadinoException(messaggioErrore, CodiceErroreEnum.U23);
}
cittadino.setDataOraAggiornamento(new Date());
cittadino.setCodInserimento(idRegistroAttivita);
cittadino = cittadinoRepository.save(cittadino);
// associo il cittadino al servizio
this.associaCittadinoAServizio(idServizio, cittadino);
this.associaCittadinoAServizio(idServizio, cittadino, idRegistroAttivita);

// recupero il servizio
ServizioEntity servizioDBFetch = servizioSqlService.getServizioById(idServizio);
Expand Down Expand Up @@ -450,12 +451,14 @@ public boolean esisteCittadinoByIdServizioAndCodiceFiscale(@NotNull final Long i

@LogMethod
@LogExecutionTime
public void associaCittadinoAServizio(@NotNull final Long idServizio, @NotNull final CittadinoEntity cittadino) {
public void associaCittadinoAServizio(@NotNull final Long idServizio, @NotNull final CittadinoEntity cittadino, String idRegistroAttivita) {
ServizioXCittadinoEntity servizioXCittadino = new ServizioXCittadinoEntity();
ServizioCittadinoKey key = new ServizioCittadinoKey(cittadino.getId(), idServizio);
servizioXCittadino.setId(key);
servizioXCittadino.setDataOraAggiornamento(new Date());
servizioXCittadino.setDataOraCreazione(new Date());
if(idRegistroAttivita != null)
servizioXCittadino.setCodInserimento(idRegistroAttivita);
servizioXCittadinoRepository.save(servizioXCittadino);
}

Expand Down Expand Up @@ -768,7 +771,7 @@ public void inserisciCittadino(CittadinoEntity cittadino, Long idServizio) {
cittadino = cittadinoRepository.save(cittadino);

// associo il cittadino al servizio
this.associaCittadinoAServizio(idServizio, cittadino);
this.associaCittadinoAServizio(idServizio, cittadino, null);

// recupero il servizio
ServizioEntity servizioDBFetch = servizioSqlService.getServizioById(idServizio);
Expand Down
Loading

0 comments on commit 09c8b6f

Please sign in to comment.