22
33import lombok .RequiredArgsConstructor ;
44import lombok .extern .slf4j .Slf4j ;
5- import no .nav .dolly .domain .dto .DashboardDTO ;
5+ import no .nav .dolly .domain .dto .DashboardPersonerDTO ;
6+ import no .nav .dolly .domain .dto .DashboardTeamsDTO ;
67import no .nav .dolly .domain .projection .BestillingerFragment ;
8+ import no .nav .dolly .domain .projection .TeamFragment ;
79import no .nav .dolly .repository .BestillingRepository ;
810import org .springframework .stereotype .Service ;
911import reactor .core .publisher .Flux ;
1012
1113import java .util .Comparator ;
1214
15+ import static org .apache .commons .lang3 .StringUtils .isNotBlank ;
16+
1317@ Slf4j
1418@ Service
1519@ RequiredArgsConstructor
1620public class DashboardService {
1721
1822 private final BestillingRepository bestillingRepository ;
1923
20- public Flux <DashboardDTO > getBestillingStatus () {
24+ public Flux <DashboardPersonerDTO > getPersonerStatus () {
2125
2226 return bestillingRepository .findBestillingerOrderBySistOppdatert ()
2327 .groupBy (BestillingerFragment ::getDato )
2428 .flatMap (Flux ::collectList )
2529 .map (fragmentliste ->
26- DashboardDTO .builder ()
30+ DashboardPersonerDTO .builder ()
2731 .dato (fragmentliste .stream ()
2832 .map (BestillingerFragment ::getDato )
2933 .findAny ().orElse (null ))
@@ -43,12 +47,33 @@ public Flux<DashboardDTO> getBestillingStatus() {
4347 "FEIL" .equals (fragment .getPdlstatus ()))
4448 .map (BestillingerFragment ::getPersoner )
4549 .reduce (0L , Long ::sum ))
46- .annenFeil (fragmentliste .stream ()
50+ .andreFeil (fragmentliste .stream ()
4751 .filter (fragment ->
4852 "FEIL" .equals (fragment .getAnnenstatus ()))
4953 .map (BestillingerFragment ::getPersoner )
5054 .reduce (0L , Long ::sum ))
5155 .build ())
52- .sort (Comparator .comparing (DashboardDTO ::getDato ).reversed ());
56+ .sort (Comparator .comparing (DashboardPersonerDTO ::getDato ).reversed ());
57+ }
58+
59+
60+ public Flux <DashboardTeamsDTO > getTeamsStatus () {
61+
62+ return bestillingRepository .findBestillingerForTeamsOrderBySistOppdatert ()
63+ .groupBy (TeamFragment ::getDato )
64+ .flatMap (Flux ::collectList )
65+ .map (fragmentliste ->
66+ DashboardTeamsDTO .builder ()
67+ .dato (fragmentliste .stream ()
68+ .map (TeamFragment ::getDato )
69+ .findAny ().orElse (null ))
70+ .entries (fragmentliste .stream ()
71+ .filter (fragment -> isNotBlank (fragment .getEpost ()))
72+ .map (fragment -> new DashboardTeamsDTO .Entry (
73+ fragment .getEpost (),
74+ fragment .getAntall ()))
75+ .toList ())
76+ .build ())
77+ .sort (Comparator .comparing (DashboardTeamsDTO ::getDato ).reversed ());
5378 }
5479}
0 commit comments