Skip to content

Commit

Permalink
Merge pull request #24 from consiglionazionaledellericerche/23-introd…
Browse files Browse the repository at this point in the history
…urre-una-cancellazione-configurabile-prima-della-sincronizzazione-completa

Inserita cancellazione di tutti i dettagli prima della syncAll.
  • Loading branch information
criluc authored Mar 14, 2024
2 parents d7d8ba1 + 8bd0930 commit 6d598b3
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 12 deletions.
24 changes: 13 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,29 @@

[![Supported JVM Versions](https://img.shields.io/badge/JVM-17-brightgreen.svg?style=for-the-badge&logo=Java)](https://openjdk.java.net/install/)

*ePAS - UGov PJ UWeb Timesheet* è il servizio che permette di esportare le informazioni presenti in ePAS
nelle modalità e formato previsti dal sistema di rendicontazione dei timesheet di Cineca denominato *UGov PJ UWeb Timesheet*.
In particolare permette di esportare le informazioni sul tempo a lavoro e le assenze del personale presente in ePAS in una
finestra di tempo configurabile.
Queste informazioni su tempo a lavoro e assenze sono poi utilizzate dall'applicativo Cineca per guidare gli utenti nella
compilazione dei timesheet tenendo in considerazione vincoli e suggerimenti che derivano da questi dati.
*ePAS - UGov PJ UWeb Timesheet* è il servizio che permette di esportare le informazioni presenti in
ePAS nelle modalità e formato previsti dal sistema di rendicontazione dei timesheet di Cineca
denominato *UGov PJ UWeb Timesheet*.
In particolare permette di esportare le informazioni sul tempo a lavoro e le assenze del personale
presente in ePAS in una finestra di tempo configurabile.
Queste informazioni su tempo a lavoro e assenze sono poi utilizzate dall'applicativo Cineca per
guidare gli utenti nella compilazione dei timesheet tenendo in considerazione vincoli e
suggerimenti che derivano da questi dati.

## Modalità di integrazione

UGov PJ UWeb Timesheet prevede la possibilità di inserire in una tabella di frontiera *Oracle* le informazioni relative a
tempo a lavoro e assenze che vengono prelevate via REST da un server ePAS.
UGov PJ UWeb Timesheet prevede la possibilità di inserire in una tabella di frontiera *Oracle* le
informazioni relative a tempo a lavoro e assenze che vengono prelevate via REST da un server ePAS.

## Endpoint REST del servizio

Questo servizio integra alcuni endpoint REST di amministrazione che permettono di lanciare su richiesta
nuova richieste di sincronizzazione dei dati, oltre a vari task di amministrazione.
Questo servizio integra alcuni endpoint REST di amministrazione che permettono di lanciare su
richiesta nuove richieste di sincronizzazione dei dati, oltre a vari task di amministrazione.
Gli endpoint REST sono protetti tramite Basic Auth, con utente e password configurato tramite
le application.properties del servizio, oppure tramite le variabili d'ambiente
security.username,security.password nel caso di avvio tramite docker/docker-compose.

# Visualizzazione task schedulati
## Visualizzazione task schedulati

È possibile visualizzare le informazioni dei task cron schedulati per la sincronizzazone
delle informazioni tra ePAS e le tabelle Oracle di UGOV PJ UWeb Timesheet.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,6 @@ public class TimesheetConfig {

private String stampingsType = "N";
private int daysInThePast = 90;
private boolean deleteBeforeSyncAll = true;

}
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,9 @@ public List<PersonTimeDetail> syncAll() {
long startTime = System.currentTimeMillis();
log.info("Starting synchronization since {}", startingDate);
YearMonth yearMonth = YearMonth.from(startingDate);
if (timesheetConfig.isDeleteBeforeSyncAll()) {
deleteAllPersonTimeDetails();
}
while (!yearMonth.isAfter(YearMonth.from(LocalDate.now()))) {
details.addAll(syncMonth(yearMonth, Optional.of(startingDate)));
yearMonth = yearMonth.plusMonths(1);
Expand All @@ -208,6 +211,7 @@ public List<PersonTimeDetail> syncAll() {

public void deleteAllPersonTimeDetails() {
repo.deleteAll();
log.info("Cancellati tutti i resoconti di tempo a lavoro e assenze dei dipendenti");
}

private Set<String> timeDetailTypes() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,8 @@ public ResponseEntity<Integer> syncAll() {

@DeleteMapping("/deleteAll")
public ResponseEntity<Void> deleteAll() {
log.debug("Richiesta eliminazione di tutti i dettagli del tempo a lavoro e assenze personale");
syncService.deleteAllPersonTimeDetails();
log.debug("Eliminati tutti i dettagli dettagli del tempo a lavoro e assenze personale.");
return ResponseEntity.ok().build();
}
}
1 change: 1 addition & 0 deletions src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ epas.password=timesheet
# Informazioni interne al servizio per la gestione dei dati delle presenze/assenze
timesheet.stampings-type=N
timesheet.days-in-the-past=90
timesheet.delete-before-sync-all=true

# Utilizzata per autenticare le chiamate REST a questo servizio
security.username=epas.timesheet
Expand Down

0 comments on commit 6d598b3

Please sign in to comment.