@@ -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}
0 commit comments