@@ -53,30 +53,43 @@ protected void refreshDiagramsData(String tabId, String subTabId) {
5353 campaignDiagramDefinitionsMap .get (campaign ).forEach (campaignDashboardDiagramDto -> {
5454 final CampaignDashboardElement campaignDashboardElement = campaignDashboardDiagramDto .getCampaignDashboardElement ();
5555 if (campaignDashboardElement .getTabId ().equals (tabId ) && (subTabId == null || campaignDashboardElement .getSubTabId ().equals (subTabId ))) {
56- List <CampaignDiagramSeries > campaignSeriesTotal = campaignDashboardDiagramDto .getCampaignDiagramDefinitionDto ().getCampaignSeriesTotal ();
57- if (Objects .nonNull (campaignSeriesTotal )) {
58- Optional populationGroup = campaignSeriesTotal .stream ().filter (e -> Objects .nonNull (e .getPopulationGroup ())).findFirst ();
59- Optional formIdOptional = campaignSeriesTotal .stream ().filter (e -> Objects .nonNull (e .getFormId ())).findFirst ();
56+ List <CampaignDiagramDataDto > diagramData = FacadeProvider .getCampaignFormDataFacade ()
57+ .getDiagramData (
58+ campaignDashboardDiagramDto .getCampaignDiagramDefinitionDto ().getCampaignDiagramSeries (),
59+ new CampaignDiagramCriteria (campaign , area , region , district ));
60+ campaignFormDataMap .put (campaignDashboardDiagramDto , diagramData );
61+ List <CampaignDiagramSeries > campaignSeriesTotal =
62+ campaignDashboardDiagramDto .getCampaignDiagramDefinitionDto ().getCampaignSeriesTotal ();
63+
64+ List <CampaignDiagramDataDto > percentageDiagramData = null ;
65+ if (campaignDashboardDiagramDto .getCampaignDiagramDefinitionDto ().getCampaignSeriesTotal () != null ) {
66+ Optional populationGroup = campaignSeriesTotal .stream ().filter (e -> Objects .nonNull (e .getPopulationGroup ())).findFirst ();
67+ Optional formIdOptional = campaignSeriesTotal .stream ().filter (e -> Objects .nonNull (e .getFormId ())).findFirst ();
68+ if (populationGroup .isPresent () && formIdOptional .isPresent ()) {
69+ Notification .show (String .format (I18nProperties .getString (Strings .errorFormIdPopulationAgeGroup )), ERROR_MESSAGE );
70+ } else {
6071 if (populationGroup .isPresent ()) {
61- if (formIdOptional .isPresent ()) {
62- Notification .show (String .format (I18nProperties .getString (Strings .errorFormIdPopulationAgeGroup )), ERROR_MESSAGE );
63- } else {
64- List <CampaignDiagramDataDto > diagramData = FacadeProvider .getCampaignFormDataFacade ()
65- .getDiagramDataByAgeGroup (
66- (CampaignDiagramSeries ) populationGroup .get (),
67- campaignDashboardDiagramDto .getCampaignDiagramDefinitionDto ().getCampaignDiagramSeries ().get (0 ),
68- new CampaignDiagramCriteria (campaign , area , region , district ));
69- if (diagramData .isEmpty ()) {
70- Notification .show (String .format (I18nProperties .getString (Strings .errorNoPopulationDataFound )), ERROR_MESSAGE );
71- buildCampaignFormTotalsMap (campaignDashboardDiagramDto );
72- } else {
73- campaignFormDataMap .put (campaignDashboardDiagramDto , diagramData );
74- }
75- }
72+ percentageDiagramData = FacadeProvider .getCampaignFormDataFacade ()
73+ .getDiagramDataByAgeGroup (
74+ (CampaignDiagramSeries ) populationGroup .get (),
75+ campaignDashboardDiagramDto .getCampaignDiagramDefinitionDto ().getCampaignDiagramSeries ().get (0 ),
76+ new CampaignDiagramCriteria (campaign , area , region , district ));
77+ } else {
78+ percentageDiagramData = FacadeProvider .getCampaignFormDataFacade ()
79+ .getDiagramData (
80+ campaignDashboardDiagramDto .getCampaignDiagramDefinitionDto ().getCampaignSeriesTotal (),
81+ new CampaignDiagramCriteria (campaign , area , region , district ));
7682 }
77- } else {
78- buildCampaignFormTotalsMap (campaignDashboardDiagramDto );
83+ Map <CampaignDashboardTotalsReference , Double > percentageMap = new HashMap <>();
84+ for (CampaignDiagramDataDto data : percentageDiagramData ) {
85+ CampaignDashboardTotalsReference totals = new CampaignDashboardTotalsReference (data .getGroupingKey (), data .getStack ());
86+ Double value = percentageMap .getOrDefault (totals , 0D );
87+ value += data .getValueSum ().doubleValue ();
88+ percentageMap .put (totals , value );
89+ }
90+ campaignFormTotalsMap .put (campaignDashboardDiagramDto , percentageMap );
7991 }
92+ }
8093 }
8194 });
8295 }
@@ -87,21 +100,37 @@ private void buildCampaignFormTotalsMap(CampaignDashboardDiagramDto campaignDash
87100 campaignDashboardDiagramDto .getCampaignDiagramDefinitionDto ().getCampaignDiagramSeries (),
88101 new CampaignDiagramCriteria (campaign , area , region , district ));
89102 campaignFormDataMap .put (campaignDashboardDiagramDto , diagramData );
90-
91- if (campaignDashboardDiagramDto .getCampaignDiagramDefinitionDto ().getCampaignSeriesTotal () != null ) {
92- List <CampaignDiagramDataDto > percentageDiagramData = FacadeProvider .getCampaignFormDataFacade ()
93- .getDiagramData (
94- campaignDashboardDiagramDto .getCampaignDiagramDefinitionDto ().getCampaignSeriesTotal (),
95- new CampaignDiagramCriteria (campaign , area , region , district ));
96-
97- Map <CampaignDashboardTotalsReference , Double > percentageMap = new HashMap <>();
98- for (CampaignDiagramDataDto data : percentageDiagramData ) {
99- CampaignDashboardTotalsReference totals = new CampaignDashboardTotalsReference (data .getGroupingKey (), data .getStack ());
100- Double value = percentageMap .getOrDefault (totals , 0D );
101- value += data .getValueSum ().doubleValue ();
102- percentageMap .put (totals , value );
103+ List <CampaignDiagramSeries > campaignSeriesTotal = campaignDashboardDiagramDto .getCampaignDiagramDefinitionDto ().getCampaignSeriesTotal ();
104+ List <CampaignDiagramDataDto > percentageDiagramData = null ;
105+ if (campaignSeriesTotal != null ) {
106+ if (Objects .nonNull (campaignSeriesTotal )) {
107+ Optional populationGroup = campaignSeriesTotal .stream ().filter (e -> Objects .nonNull (e .getPopulationGroup ())).findFirst ();
108+ Optional formIdOptional = campaignSeriesTotal .stream ().filter (e -> Objects .nonNull (e .getFormId ())).findFirst ();
109+ if (populationGroup .isPresent ()) {
110+ if (formIdOptional .isPresent ()) {
111+ Notification .show (String .format (I18nProperties .getString (Strings .errorFormIdPopulationAgeGroup )), ERROR_MESSAGE );
112+ } else {
113+ percentageDiagramData = FacadeProvider .getCampaignFormDataFacade ()
114+ .getDiagramDataByAgeGroup (
115+ (CampaignDiagramSeries ) populationGroup .get (),
116+ campaignDashboardDiagramDto .getCampaignDiagramDefinitionDto ().getCampaignDiagramSeries ().get (0 ),
117+ new CampaignDiagramCriteria (campaign , area , region , district ));
118+ }
119+ } else {
120+ percentageDiagramData = FacadeProvider .getCampaignFormDataFacade ()
121+ .getDiagramData (
122+ campaignDashboardDiagramDto .getCampaignDiagramDefinitionDto ().getCampaignSeriesTotal (),
123+ new CampaignDiagramCriteria (campaign , area , region , district ));
124+ }
125+ Map <CampaignDashboardTotalsReference , Double > percentageMap = new HashMap <>();
126+ for (CampaignDiagramDataDto data : percentageDiagramData ) {
127+ CampaignDashboardTotalsReference totals = new CampaignDashboardTotalsReference (data .getGroupingKey (), data .getStack ());
128+ Double value = percentageMap .getOrDefault (totals , 0D );
129+ value += data .getValueSum ().doubleValue ();
130+ percentageMap .put (totals , value );
131+ }
132+ campaignFormTotalsMap .put (campaignDashboardDiagramDto , percentageMap );
103133 }
104- campaignFormTotalsMap .put (campaignDashboardDiagramDto , percentageMap );
105134 }
106135 }
107136
0 commit comments