EN · DE · RU · FR · ES

#548: TaskTree.kt

projectforge-business/src/main/java/org/projectforge/business/task/TaskTree.kt Тип: класс Kotlin · Пакет: org.projectforge.business.task · Исходный код: projectforge-business/src/main/java/org/projectforge/business/task/TaskTree.kt 934 строки · 657 кода · 205 комментариев · 72 пустых
Класс Kotlin, реализующий TaskTree.

Аннотации

@Service

Свойства

СвойствоОбъявление
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)

Функции

ФункцияПараметрыВозврат
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

Анализ архитектуры

Находится в projectforge-business, основном модуле, содержащем доменную логику, сервисы и персистентность. Обычно аннотируется @Service или @Component, управляется контейнером Spring IoC с внедрением зависимостей.

История Git

КоммитЧто изменилось
01d4805fdfРефакторинг: улучшение конкурентности и защитных проверок для иерархии задач
868d6abb752025 -> 2026
6a32032d65Hibernate.isInitialized(obj) -> HibernateUtils.isFullyInitialized(obj). Некоторые ленивые объекты, например, колонки ManyToOne, загружены не полностью, но Hibernate.isInitialized() возвращает true.
63081666f6Заголовки исходных файлов: 2024-> 2025.
5f9bbfbd37Исправление опечаток в каталоге projectforge-business
9625305236TaskTree: исправлены циклические зависимости. JacksonConfiguration: исправлены ошибки десериализации java.util.Date (UTC).
50c3b7b46eМиграция в процессе... (все тесты всех пакетов: OK).
4942c854d9Миграция в процессе...
ae2c04ee02Миграция в процессе... (все тесты всех пакетов: OK).
b810d1c781Миграция в процессе... (все тесты всех пакетов: OK).
567ca70cd5Миграция в процессе... spring.datasource.hikari.auto-commit=false
f31e8064eaМиграция в процессе...
cb5cd5d3d9Миграция в процессе...
2e98398916Миграция в процессе...
ba2479571aМиграция в процессе...
b3293f0cc0PersistenceService/Context: улучшена обработка статистики.
87dd5b87c3AuftragsCache рефакторинг, миграция... (все тесты OK)
1b50060c3aBaseDao: переименовано: get -> find, save -> insert, getList -> select, load -> select
87aaf6a5a5Миграция в процессе... BaseDao рефакторинг (ещё не завершён) переименованы внутренние методы.
9408b59d72Миграция в процессе...
a6edf511e4Миграция в процессе... PersistenceThreadLocalStats
3aeda5ef5aБольшое изменение: все save|update|...InTrans переименованы (InTrans удалён). PfPesistenceContext как параметр больше не нужен (используется ThreadLocal). (все тесты всех пакетов: OK).
1564553d80Миграция в процессе...
c7b6e72ad6Миграция в процессе... (все тесты всех пакетов: OK).
e66d5f5f7cМиграция в процессе... TaskTree -> Kotlin и теперь работает в изолированном менеджере сущностей