@@ -17,18 +17,20 @@ import no.nav.k9.los.spi.felter.SqlMedParams
17
17
import no.nav.k9.los.spi.felter.TransientFeltutleder
18
18
import no.nav.k9.los.spi.felter.WhereInput
19
19
import org.slf4j.LoggerFactory
20
+ import java.time.LocalDate
20
21
import java.time.LocalDateTime
21
22
22
23
class PartisjonertOppgaveQuerySqlBuilder (
23
24
val felter : Map <Omr ådeOgKode, OppgavefeltMedMer >,
24
25
oppgavestatusFilter : List <Oppgavestatus >,
25
26
val now : LocalDateTime ,
26
- private val ferdigstiltDato : LocalDateTime ? = null ,
27
+ private val ferdigstiltDato : LocalDate ? = null ,
27
28
) : OppgaveQuerySqlBuilder {
28
29
private val log = LoggerFactory .getLogger(PartisjonertOppgaveQuerySqlBuilder ::class .java)
29
30
30
31
private val oppgavestatusPlaceholder: String = InClauseHjelper .tilParameternavn(oppgavestatusFilter, " status" )
31
- private val ferdigstiltDatoBetingelse = if (ferdigstiltDato != null ) " AND ov.ferdigstilt_dato = :ferdigstilt_dato " else " "
32
+ private val ferdigstiltDatoBetingelseOppgavefeltverdi = if (ferdigstiltDato != null ) " AND ov.ferdigstilt_dato = :ferdigstilt_dato " else " "
33
+ private val ferdigstiltDatoBetingelseOppgave = if (ferdigstiltDato != null ) " AND o.ferdigstilt_dato = :ferdigstilt_dato " else " "
32
34
33
35
private var selectPrefix = """
34
36
SELECT o.oppgave_ekstern_id, o.oppgave_ekstern_versjon
@@ -39,7 +41,7 @@ class PartisjonertOppgaveQuerySqlBuilder(
39
41
private var query = ("""
40
42
FROM oppgave_v3_part o
41
43
LEFT JOIN oppgave_pep_cache opc ON (opc.kildeomrade = 'K9' AND o.oppgave_ekstern_id = opc.ekstern_id)
42
- WHERE o.oppgavestatus in ($oppgavestatusPlaceholder ) $ferdigstiltDatoBetingelse
44
+ WHERE o.oppgavestatus in ($oppgavestatusPlaceholder ) $ferdigstiltDatoBetingelseOppgave
43
45
""" ).trimIndent()
44
46
45
47
private val filtrerReserverteOppgaver = """
@@ -82,6 +84,9 @@ class PartisjonertOppgaveQuerySqlBuilder(
82
84
putAll(queryParams)
83
85
putAll(orderByParams)
84
86
putAll(oppgavestatusParams)
87
+ if (ferdigstiltDato != null ) {
88
+ put(" ferdigstilt_dato" , ferdigstiltDato)
89
+ }
85
90
}
86
91
}
87
92
@@ -150,7 +155,11 @@ class PartisjonertOppgaveQuerySqlBuilder(
150
155
}
151
156
}
152
157
153
- else -> log.warn(" Håndterer ikke filter for $feltkode " )
158
+ " ferdigstiltDato" , " oppgavestatus" -> {
159
+ // Ignorerer felter, siden de er håndtert spesielt
160
+ }
161
+
162
+ else -> log.warn(" Håndterer ikke filter for $feltkode . Legg til i ignorering hvis feltet håndteres spesielt." )
154
163
}
155
164
}
156
165
@@ -190,7 +199,7 @@ class PartisjonertOppgaveQuerySqlBuilder(
190
199
${combineOperator.sql} ${if (operator .negasjonAv != null ) " NOT" else " " } EXISTS (
191
200
SELECT 1
192
201
FROM oppgavefelt_verdi_part ov
193
- WHERE ov.oppgavestatus in ($oppgavestatusPlaceholder ) $ferdigstiltDatoBetingelse
202
+ WHERE ov.oppgavestatus in ($oppgavestatusPlaceholder ) $ferdigstiltDatoBetingelseOppgavefeltverdi
194
203
AND ov.oppgave_ekstern_id = o.oppgave_ekstern_id
195
204
AND ov.oppgave_ekstern_versjon = o.oppgave_ekstern_versjon
196
205
AND ov.omrade_ekstern_id = :feltOmrade$index
@@ -247,7 +256,7 @@ class PartisjonertOppgaveQuerySqlBuilder(
247
256
${combineOperator.sql}$invertertOperator EXISTS (
248
257
SELECT 1
249
258
FROM oppgavefelt_verdi_part ov
250
- WHERE ov.oppgavestatus in ($oppgavestatusPlaceholder ) $ferdigstiltDatoBetingelse
259
+ WHERE ov.oppgavestatus in ($oppgavestatusPlaceholder ) $ferdigstiltDatoBetingelseOppgavefeltverdi
251
260
AND ov.oppgave_ekstern_id = o.oppgave_ekstern_id
252
261
AND ov.oppgave_ekstern_versjon = o.oppgave_ekstern_versjon
253
262
AND ov.omrade_ekstern_id = :feltOmrade$index
@@ -291,7 +300,6 @@ class PartisjonertOppgaveQuerySqlBuilder(
291
300
292
301
orderByParams.putAll(
293
302
mapOf (
294
- " ferdigstilt_dato" to ferdigstiltDato,
295
303
" orderByfeltOmrade$index " to feltområde,
296
304
" orderByfeltkode$index " to feltkode
297
305
)
@@ -303,7 +311,7 @@ class PartisjonertOppgaveQuerySqlBuilder(
303
311
, (
304
312
SELECT $verdifelt
305
313
FROM oppgavefelt_verdi_part ov
306
- WHERE ov.oppgavestatus in ($oppgavestatusPlaceholder ) $ferdigstiltDatoBetingelse
314
+ WHERE ov.oppgavestatus in ($oppgavestatusPlaceholder ) $ferdigstiltDatoBetingelseOppgavefeltverdi
307
315
AND ov.oppgave_ekstern_id = o.oppgave_ekstern_id
308
316
AND ov.oppgave_ekstern_versjon = o.oppgave_ekstern_versjon
309
317
AND ov.omrade_ekstern_id = :orderByfeltOmrade$index
0 commit comments