EN · DE · RU · FR · ES

#994: Kost1Dao.kt

projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt Clase Kotlin, projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt 144 líneas · 101 código · 28 comentarios · 15 en blanco
Propósito: Archivo fuente: business/fibu/kost/Kost1Dao.kt. Kost1Dao.kt es parte de la aplicación de gestión de proyectos de código abierto ProjectForge.

Fuente (primeras 100 líneas)

/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge tiene doble licencia.
//
// Esta edición comunitaria es software libre; puedes redistribuirla y/o
// modificarla bajo los términos de la Licencia Pública General GNU según lo publicado
// por la Free Software Foundation; versión 3 de la Licencia.
//
// Esta edición comunitaria se distribuye con la esperanza de que sea útil,
// pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de
// COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la Licencia General
// Pública de GNU para más detalles.
//
// Deberías haber recibido una copia de la Licencia Pública General GNU junto con
// este programa; si no, visita http://www.gnu.org/licenses/.
//
/////////////////////////////////////////////////////////////////////////////

package org.projectforge.business.fibu.kost

import org.projectforge.business.fibu.kost.KostHelper.parseKostString
import org.projectforge.business.user.UserRightId
import org.projectforge.common.i18n.UserException
import org.projectforge.framework.access.OperationType
import org.projectforge.framework.persistence.api.BaseDao
import org.projectforge.framework.persistence.api.BaseSearchFilter
import org.projectforge.framework.persistence.api.QueryFilter
import org.projectforge.framework.persistence.api.QueryFilter.Companion.eq
import org.projectforge.framework.persistence.api.QueryFilter.Companion.isNull
import org.projectforge.framework.persistence.api.QueryFilter.Companion.ne
import org.projectforge.framework.persistence.api.QueryFilter.Companion.or
import org.projectforge.framework.persistence.api.SortProperty.Companion.asc
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Service

@Service
class Kost1Dao : BaseDao<Kost1DO>(Kost1DO::class.java) {
    @Autowired
    private lateinit var kostCache: KostCache

    init {
        userRightId = USER_RIGHT_ID
    }

    /**
     * @param kostString Se admite formato ######## o #.###.##.##.
     * @see .getKost1
     */
    fun getKost1(kostString: String?): Kost1DO? {
        val kost = parseKostString(kostString) ?: return null
        return getKost1(kost[0], kost[1], kost[2], kost[3])
    }

    fun getKost1(
        nummernkreis: Int,
        bereich: Int,
        teilbereich: Int,
        endziffer: Int,
    ): Kost1DO? {
        return persistenceService.selectNamedSingleResult(
            Kost1DO.FIND_BY_NK_BEREICH_TEILBEREICH_ENDZIFFER,
            Kost1DO::class.java,
            Pair("nummernkreis", nummernkreis),
            Pair("bereich", bereich),
            Pair("teilbereich", teilbereich),
            Pair("endziffer", endziffer)
        )
    }

    override fun select(filter: BaseSearchFilter): List<Kost1DO> {
        val myFilter = if (filter is KostFilter) {
            filter
        } else {
            KostFilter(filter)
        }
        val queryFilter = QueryFilter(myFilter)
        if (myFilter.isActive) {
            queryFilter.add(eq("kostentraegerStatus", KostentraegerStatus.ACTIVE))
        } else if (myFilter.isNonActive) {
            queryFilter.add(eq("kostentraegerStatus", KostentraegerStatus.NONACTIVE))
        } else if (myFilter.isEnded) {
            queryFilter.add(eq("kostentraegerStatus", KostentraegerStatus.ENDED))
        } else if (myFilter.isNotEnded) {
            queryFilter.add(
                or(
                    ne("kostentraegerStatus", KostentraegerStatus.ENDED),
                    isNull("kostentraegerStatus")
                )
            )
        }
        queryFilter.addOrder(asc("nummernkreis")).addOrder(asc("bereich")).addOrder(asc("teilbereich"))
            .addOrder(asc("endziffer"))
        return select(queryFilter)
    }

Historial Git

868d6abb7 2025 -> 2026
63081666f Encabezados de archivos fuente: 2024 -> 2025.
5989b32fd BaseDao: mecanismo de onChangeLister refactorizado.
1b50060c3 BaseDao: renombrado: get -> find, save -> insert, getList -> select, load -> select
3aeda5ef5 Cambio grande: todos los save|update|...InTrans renombrados (InTrans eliminado). PfPesistenceContext como parámetro ya no es necesario (se usa ThreadLocal en su lugar). (todas las pruebas de todos los paquetes: OK).

868d6abb7

2025 -> 2026
868d6abb75cd191a892911ac8e45058932cf9074
diff --git a/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt b/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt
index fce1ee11f..aa10de90c 100644
--- a/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt
+++ b/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge is dual-licensed.
 //

63081666f

Encabezados de archivos fuente: 2024 -> 2025.
63081666f620fb87315f01b817e560e0b2f6a33a
diff --git a/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt b/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt
index 43e80a4a5..fce1ee11f 100644
--- a/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt
+++ b/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2024 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge is dual-licensed.
 //

5989b32fd

BaseDao: mecanismo de onChangeLister refactorizado.
5989b32fdbe63a7ade7eabba11a8c2b042ecd66b
diff --git a/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt b/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt
index 4847407b5..43e80a4a5 100644
--- a/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt
+++ b/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt
@@ -26,6 +26,7 @@ package org.projectforge.business.fibu.kost
 import org.projectforge.business.fibu.kost.KostHelper.parseKostString
 import org.projectforge.business.user.UserRightId
 import org.projectforge.common.i18n.UserException
+import org.projectforge.framework.access.OperationType
 import org.projectforge.framework.persistence.api.BaseDao
 import org.projectforge.framework.persistence.api.BaseSearchFilter
 import org.projectforge.framework.persistence.api.QueryFilter
@@ -40,7 +41,7 @@ import org.springframework.stereotype.Service
 @Service
 class Kost1Dao : BaseDao<Kost1DO>(Kost1DO::class.java) {
     @Autowired
-    private val kostCache: KostCache? = null
+    private lateinit var kostCache: KostCache
 
     init {
         userRightId = USER_RIGHT_ID
@@ -97,7 +98,7 @@ class Kost1Dao : BaseDao<Kost1DO>(Kost1DO::class.java) {
         return select(queryFilter)
     }
 
-    override fun onInsertOrModify(obj: Kost1DO) {
+    override fun onInsertOrModify(obj: Kost1DO, operationType: OperationType) {
         verifyKost(obj)
         val other = if (obj.id == null) {
             // New entry
@@ -129,9 +130,8 @@ class Kost1Dao : BaseDao<Kost1DO>(Kost1DO::class.java) {
         if (obj.endziffer < 0 || obj.endziffer > 99) throw UserException("fibu.kost.error.invalidKost")
     }
 
-    override fun afterInsertOrModify(kost1: Kost1DO) {
-        super.afterInsertOrModify(kost1)
-        kostCache!!.updateKost1(kost1)
+    override fun afterInsertOrModify(obj: Kost1DO, operationType: OperationType) {
+        kostCache.updateKost1(obj)
     }
 
     override fun newInstance(): Kost1DO {

1b50060c3

BaseDao: renombrado: get -> find, save -> insert, getList -> select, load -> select
1b50060c3a4b099ec07fd85d28f514b101da4d29
diff --git a/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt b/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt
index d74b3ab1b..4847407b5 100644
--- a/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt
+++ b/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt
@@ -71,7 +71,7 @@ class Kost1Dao : BaseDao<Kost1DO>(Kost1DO::class.java) {
         )
     }
 
-    override fun getList(filter: BaseSearchFilter): List<Kost1DO> {
+    override fun select(filter: BaseSearchFilter): List<Kost1DO> {
         val myFilter = if (filter is KostFilter) {
             filter
         } else {
@@ -94,10 +94,10 @@ class Kost1Dao : BaseDao<Kost1DO>(Kost1DO::class.java) {
         }
         queryFilter.addOrder(asc("nummernkreis")).addOrder(asc("bereich")).addOrder(asc("teilbereich"))
             .addOrder(asc("endziffer"))
-        return getList(queryFilter)
+        return select(queryFilter)
     }
 
-    override fun onSaveOrModify(obj: Kost1DO) {
+    override fun onInsertOrModify(obj: Kost1DO) {
         verifyKost(obj)
         val other = if (obj.id == null) {
             // New entry
@@ -129,8 +129,8 @@ class Kost1Dao : BaseDao<Kost1DO>(Kost1DO::class.java) {
         if (obj.endziffer < 0 || obj.endziffer > 99) throw UserException("fibu.kost.error.invalidKost")
     }
 
-    override fun afterSaveOrModify(kost1: Kost1DO) {
-        super.afterSaveOrModify(kost1)
+    override fun afterInsertOrModify(kost1: Kost1DO) {
+        super.afterInsertOrModify(kost1)
         kostCache!!.updateKost1(kost1)
     }
 

3aeda5ef5

Cambio grande: todos los save|update|...InTrans renombrados (InTrans eliminado). PfPesistenceContext como parámetro ya no es necesario (se usa ThreadLocal en su lugar). (todas las pruebas de todos los paquetes: OK).
3aeda5ef5aaaa8a4d627d7f2e771ef0516001a52
diff --git a/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt b/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt
index fc94b3948..d74b3ab1b 100644
--- a/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt
+++ b/projectforge-business/src/main/kotlin/org/projectforge/business/fibu/kost/Kost1Dao.kt
@@ -34,7 +34,6 @@ import org.projectforge.framework.persistence.api.QueryFilter.Companion.isNull
 import org.projectforge.framework.persistence.api.QueryFilter.Companion.ne
 import org.projectforge.framework.persistence.api.QueryFilter.Companion.or
 import org.projectforge.framework.persistence.api.SortProperty.Companion.asc
-import org.projectforge.framework.persistence.jpa.PfPersistenceContext
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.stereotype.Service
 
@@ -52,18 +51,8 @@ class Kost1Dao : BaseDao<Kost1DO>(Kost1DO::class.java) {
      * @see .getKost1
      */
     fun getKost1(kostString: String?): Kost1DO? {
-        return persistenceService.runReadOnly { context ->
-            getKost1(kostString, context)
-        }
-    }
-
-    /**
-     * @param kostString Se admite formato ######## o #.###.##.##.
-     * @see .getKost1
-     */
-    fun getKost1(kostString: String?, context: PfPersistenceContext): Kost1DO? {
         val kost = parseKostString(kostString) ?: return null
-        return getKost1(kost[0], kost[1], kost[2], kost[3], context)
+        return getKost1(kost[0], kost[1], kost[2], kost[3])
     }
 
     fun getKost1(
@@ -71,9 +60,8 @@ class Kost1Dao : BaseDao<Kost1DO>(Kost1DO::class.java) {
         bereich: Int,
         teilbereich: Int,
         endziffer: Int,
-        context: PfPersistenceContext
     ): Kost1DO? {
-        return context.selectNamedSingleResult(
+        return persistenceService.selectNamedSingleResult(
             Kost1DO.FIND_BY_NK_BEREICH_TEILBEREICH_ENDZIFFER,
             Kost1DO::class.java,
             Pair("nummernkreis", nummernkreis),
@@ -83,7 +71,7 @@ class Kost1Dao : BaseDao<Kost1DO>(Kost1DO::class.java) {
         )
     }
 
-    override fun getList(filter: BaseSearchFilter, context: PfPersistenceContext): List<Kost1DO> {
+    override fun getList(filter: BaseSearchFilter): List<Kost1DO> {
         val myFilter = if (filter is KostFilter) {
             filter
         } else {
@@ -106,17 +94,17 @@ class Kost1Dao : BaseDao<Kost1DO>(Kost1DO::class.java) {
         }
         queryFilter.addOrder(asc("nummernkreis")).addOrder(asc("bereich")).addOrder(asc("teilbereich"))
             .addOrder(asc("endziffer"))
-        return getList(queryFilter, context)
+        return getList(queryFilter)
     }