Class TaskService
Questa classe fornisce metodi per creare, aggiornare, eliminare e recuperare task,
gestendo anche le relazioni complesse come le assegnazioni agli utenti e la generazione
degli identificativi incrementali per azienda. Interagisce con TaskRepository
e AssegnazioneService.
- Version:
- 1.5.7
- Author:
- Modulink Team
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionTaskService(TaskRepository taskRepository, AssegnazioneService assegnazioneService) Costruttore per l'iniezione delle dipendenze. -
Method Summary
Modifier and TypeMethodDescriptionvoidclassicUpdate(TaskEntity taskEntity) Esegue un aggiornamento standard dell'entità task.voiddelete(int idTask, int idAzienda) Elimina un task e tutte le sue assegnazioni correlate.voiddeleteAllByAzienda(AziendaEntity azienda) Elimina tutti i task e le relative assegnazioni per un'intera azienda.findByCreatore(UtenteEntity utente) Trova tutti i task creati da un determinato utente.Cerca un task tramite la sua chiave primaria composta.voidsave(TaskEntity taskEntity) Salva un nuovo task nel database.voidupdate(int taskId, TaskEntity updateData, List<AssegnazioneEntity> newAssignments) Aggiorna un task esistente e le relative assegnazioni.
-
Field Details
-
taskRepository
-
assegnazioneService
-
-
Constructor Details
-
TaskService
Costruttore per l'iniezione delle dipendenze.- Parameters:
taskRepository- Il repository per le operazioni sui dati dei task.assegnazioneService- Il service per gestire le assegnazioni dei task agli utenti.
-
-
Method Details
-
save
Salva un nuovo task nel database.Questo metodo calcola automaticamente il prossimo ID task disponibile per l'azienda specificata (logica di auto-incremento per azienda). Inoltre, gestisce il salvataggio separato delle assegnazioni associate al task.
- Parameters:
taskEntity- L'entità task da salvare.
-
update
@Transactional public void update(int taskId, TaskEntity updateData, List<AssegnazioneEntity> newAssignments) Aggiorna un task esistente e le relative assegnazioni.Questo metodo aggiorna i dettagli del task (titolo, priorità, scadenze, ecc.) ed elimina tutte le assegnazioni precedenti per sostituirle con quelle nuove fornite.
- Parameters:
taskId- L'ID del task da aggiornare.updateData- Oggetto contenente i nuovi dati del task.newAssignments- La nuova lista di assegnazioni per il task.
-
delete
@Transactional public void delete(int idTask, int idAzienda) Elimina un task e tutte le sue assegnazioni correlate.L'eliminazione avviene prima sulle assegnazioni e poi sul task stesso utilizzando query native per garantire la pulizia completa dei dati.
- Parameters:
idTask- L'ID del task da eliminare.idAzienda- L'ID dell'azienda associata al task.
-
findByCreatore
Trova tutti i task creati da un determinato utente.- Parameters:
utente- L'utente creatore dei task.- Returns:
- Una lista di task creati dall'utente.
-
findById
Cerca un task tramite la sua chiave primaria composta.- Parameters:
id- La chiave primaria compostaTaskID.- Returns:
- Il task trovato o null se non esiste.
-
classicUpdate
Esegue un aggiornamento standard dell'entità task.A differenza del metodo
update, questo metodo utilizza il salvataggio standard di JPA senza gestire manualmente le assegnazioni.- Parameters:
taskEntity- L'entità task da aggiornare.
-
deleteAllByAzienda
Elimina tutti i task e le relative assegnazioni per un'intera azienda.Utilizza query native per prestazioni ottimali ed evitare il caricamento in memoria di grandi quantità di dati.
- Parameters:
azienda- L'azienda di cui cancellare tutti i task.
-