EN · DE · RU · FR · ES

#548 : TaskTree.kt

projectforge-business/src/main/java/org/projectforge/business/task/TaskTree.kt Type : Classe Kotlin · Package : org.projectforge.business.task · Source : projectforge-business/src/main/java/org/projectforge/business/task/TaskTree.kt 934 lignes · 657 code · 205 commentaires · 72 vides
Classe Kotlin implémentant TaskTree.

Annotations

@Service

Propriétés

PropriétéDéclaration
accessDaoAccessDao
auftragsCacheAuftragsCache
auftragDaoAuftragDao
kostCacheKostCache
persistenceServicePfPersistenceService
projektDaoProjektDao
taskDaoTaskDao
timesheetDaoTimesheetDao
timeOfLastModificationLong = 0
taskMapmutableMapOf()
rootTaskNode? = null
orderPositionReferencesMap>? = null
orderPositionReferencesDirtytrue
rootTaskNodeTaskNode
nodeTaskNode()
parentgetTaskNodeById(task.parentTaskId)
timesheetTimesheetDO()
bookabletimesheetDao.checkTaskBookable(
taskNodegetTaskNodeById(taskId) ?: return EMPTY_LIST
resultListgetPathToRoot(taskId)

Fonctions

FonctionParamètresRetour
postConstructUnit
addTaskNodenode: TaskNode, parent: TaskNode?TaskNode
addTaskNodetask: TaskDOTaskNode
getPathtaskId: Long?, ancestorTaskId: Long?List
getPathToRoottaskId: Long?List
getAncestorTaskIstaskId: Long?MutableList
getAncestorAndDescendantTaskIstaskId: Long?, includeSelf: BooleanList
getDescendantTaskIdstaskId: Long?, includeSelf: BooleanList
getDescendantstaskId: Long?, includeSelf: BooleanList
addDescendantsresultList: MutableList, node: TaskNodeUnit
getTaskNodeByIdtaskId: Long?, checkRefresh: Boolean = trueTaskNode?
getTaskByIdid: Long?TaskDO?
getTaskIfNotInitializedtask: TaskDO?TaskDO?
getProjekttaskId: Long?ProjektDO?
internalSetProjecttaskId: Long, projekt: ProjektDO?Unit

Analyse d'architecture

Réside dans projectforge-business, le module central contenant la logique métier, les services et la persistance. Généralement annoté avec @Service ou @Component, géré par le conteneur Spring IoC avec injection de dépendances.

Historique Git

CommitCe qui a changé
01d4805fdfRefactor : amélioration de la concurrence et des vérifications défensives pour la hiérarchie des tâches
868d6abb752025 -> 2026
6a32032d65Hibernate.isInitialized(obj) -> HibernateUtils.isFullyInitialized(obj). Certains objets lazy (ex. colonnes ManyToOne) ne sont pas complètement chargés mais Hibernate.isInitialized() retourne true.
63081666f6En-têtes des fichiers source : 2024 -> 2025.
5f9bbfbd37Correction de fautes dans le répertoire projectforge-business
9625305236TaskTree : dépendances circulaires corrigées. JacksonConfiguration : erreurs de désérialisation sur java.util.Date corrigées (UTC).
50c3b7b46eTravail de migration en cours... (tous les tests de tous les packages : OK).
4942c854d9Travail de migration en cours...
ae2c04ee02Travail de migration en cours... (tous les tests de tous les packages : OK).
b810d1c781Travail de migration en cours... (tous les tests de tous les packages : OK).
567ca70cd5Migration en cours... spring.datasource.hikari.auto-commit=false
f31e8064eaTravail de migration en cours...
cb5cd5d3d9Travail de migration en cours...
2e98398916Travail de migration en cours...
ba2479571aTravail de migration en cours...
b3293f0cc0PersistenceService/Context : gestion des statistiques améliorée.
87dd5b87c3AuftragsCache refactorisé, travail de migration... (tous les tests OK)
1b50060c3aBaseDao : renommé : get -> find, save -> insert, getList -> select, load -> select
87aaf6a5a5Travail de migration en cours... BaseDao refactorisé (pas encore terminé) méthodes internal* renommées.
9408b59d72Travail de migration en cours...
a6edf511e4Travail de migration en cours... PersistenceThreadLocalStats
3aeda5ef5aGrand changement : tous les save|update|...InTrans renommés (InTrans supprimé). PfPesistenceContext comme paramètre n'est plus nécessaire (ThreadLocal est utilisé à la place). (tous les tests de tous les packages : OK).
1564553d80Travail de migration en cours...
c7b6e72ad6Travail de migration en cours... (tous les tests de tous les packages : OK).
e66d5f5f7cTravail de migration en cours... TaskTree -> Kotlin et s'exécute désormais dans un gestionnaire d'entités isolé