Skip to content

Commit 0b9c9f3

Browse files
committed
feature: Implement DollyTeams status retrieval in DashboardService and refactor related methods for improved clarity
1 parent 16d3053 commit 0b9c9f3

3 files changed

Lines changed: 30 additions & 26 deletions

File tree

apps/dolly-backend/src/main/java/no/nav/dolly/repository/BestillingRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ select count(*) antall, to_char(b.sist_oppdatert, 'YYYY-MM') interval, br.bruker
194194

195195
@Query("""
196196
select count(*) antall, to_char(b.sist_oppdatert, 'YYYY-MM') interval,
197-
t.navn || '|' || t.beskrivelse || '|' || t.bruker_id informasjon
197+
t.navn || '|' || coalesce(t.beskrivelse, '') || '|' || t.bruker_id informasjon
198198
from bestilling b
199199
join bruker br on br.id = b.bruker_id
200200
join team t on t.bruker_id = br.id

apps/dolly-backend/src/main/java/no/nav/dolly/service/DashboardService.java

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,30 @@ public Flux<DashboardOrganisasjonerDTO> getOrganisasjonerStatus() {
126126
.sort(Comparator.comparing(DashboardOrganisasjonerDTO::getInterval).reversed());
127127
}
128128

129+
public Flux<DashboardDollyTeamsDTO> getDollyTeamsStatus() {
130+
131+
return teamRepository.findAllTeamBrukere()
132+
.collect(Collectors.toMap(DollyTeam2Fragment::getBrukerid, DollyTeam2Fragment::getAntall))
133+
.flatMapMany(oppslag -> bestillingRepository.findBestillingerForDollyTeamsOrderBySistOppdatert()
134+
.groupBy(DollyTeamFragment::getInterval)
135+
.flatMap(Flux::collectList)
136+
.map(fragments -> {
137+
var teams = fragments.stream()
138+
.map(fragment -> toDollyTeamEntry(fragment, oppslag))
139+
.sorted(Comparator.comparing(DashboardDollyTeamsDTO.Entry::getNavn))
140+
.toList();
141+
return DashboardDollyTeamsDTO.builder()
142+
.interval(fragments.getFirst().getInterval())
143+
.teams(teams)
144+
.totaltAntallTeams(teams.size())
145+
.totaltAntallMedlemmer(teams.stream()
146+
.mapToInt(DashboardDollyTeamsDTO.Entry::getAntallMedlemmer)
147+
.sum())
148+
.build();
149+
}))
150+
.sort(Comparator.comparing(DashboardDollyTeamsDTO::getInterval).reversed());
151+
}
152+
129153
private static long sumByStatus(List<BestillingerFragment> fragments,
130154
Function<BestillingerFragment, String> statusGetter,
131155
String value) {
@@ -170,30 +194,10 @@ private static DashboardOrganisasjonerDTO.Entry toOrganisasjonEntry(String orgNu
170194
return new DashboardOrganisasjonerDTO.Entry(orgNummer, info.getNavn(), info.getOrganisasjonsform(), brukere.size());
171195
}
172196

173-
public Flux<DashboardDollyTeamsDTO> getDollyTeamsStatus() {
197+
private static DashboardDollyTeamsDTO.Entry toDollyTeamEntry(DollyTeamFragment fragment,
198+
Map<String, Long> oppslag) {
174199

175-
return teamRepository.findAllTeamBrukere()
176-
.collect(Collectors.toMap(DollyTeam2Fragment::getBrukerid, DollyTeam2Fragment::getAntall))
177-
.flatMapMany(oppslag -> bestillingRepository.findBestillingerForDollyTeamsOrderBySistOppdatert()
178-
.groupBy(DollyTeamFragment::getInterval)
179-
.flatMap(Flux::collectList)
180-
.map(fragments -> DashboardDollyTeamsDTO.builder()
181-
.interval(fragments.getFirst().getInterval())
182-
.teams(fragments.stream()
183-
.map(fragment -> {
184-
var info = fragment.getInformasjon().split("\\|");
185-
return new DashboardDollyTeamsDTO.Entry(info[0], info[1],
186-
toIntExact(oppslag.get(info[2])));
187-
})
188-
.sorted(Comparator.comparing(DashboardDollyTeamsDTO.Entry::getNavn))
189-
.toList())
190-
.totaltAntallTeams(fragments.size())
191-
.totaltAntallMedlemmer(fragments.stream()
192-
.map(fragment -> fragment.getInformasjon().split("\\|")[2])
193-
.map(oppslag::get)
194-
.map(Math::toIntExact)
195-
.reduce(0, Integer::sum))
196-
.build()))
197-
.sort(Comparator.comparing(DashboardDollyTeamsDTO::getInterval).reversed());
200+
var info = fragment.getInformasjon().split("\\|");
201+
return new DashboardDollyTeamsDTO.Entry(info[0], info[1], toIntExact(oppslag.get(info[2])));
198202
}
199203
}

apps/dolly-backend/src/main/resources/application.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,6 @@ consumers:
153153
altinn3-tilgang-service:
154154
name: testnav-altinn3-tilgang-service-prod
155155
namespace: dolly
156-
url: https://testnav-altinn3-tilgang-service.nav.no/
156+
url: https://testnav-altinn3-tilgang-service.nav.no
157157
cluster: prod-gcp
158158

0 commit comments

Comments
 (0)