Class TaskService

java.lang.Object
com.modulink.Model.Task.TaskService

@Service public class TaskService extends Object
Service per la gestione della logica di business relativa ai Task.

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 Details

  • Constructor Details

    • TaskService

      public TaskService(TaskRepository taskRepository, AssegnazioneService assegnazioneService)
      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

      @Transactional public void save(TaskEntity taskEntity)
      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

      public List<TaskEntity> findByCreatore(UtenteEntity utente)
      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

      public TaskEntity findById(TaskID id)
      Cerca un task tramite la sua chiave primaria composta.
      Parameters:
      id - La chiave primaria composta TaskID.
      Returns:
      Il task trovato o null se non esiste.
    • classicUpdate

      @Transactional public void classicUpdate(TaskEntity taskEntity)
      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

      @Transactional public void deleteAllByAzienda(AziendaEntity azienda)
      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.