@@ -323,9 +323,10 @@ public List<CampaignDiagramDataDto> getDiagramData(List<CampaignDiagramSeries> d
323323 final String districtFilter = district != null ? " AND " + CampaignFormData .DISTRICT + "." + District .UUID + " = '" + district .getUuid () + "'" : "" ;
324324 final String campaignFilter = campaign != null ? " AND " + Campaign .TABLE_NAME + "." + Campaign .UUID + " = '" + campaign .getUuid () + "'" : "" ;
325325 final String jurisdictionGrouping =
326- (district != null ? ", " + Community .TABLE_NAME + "." + Community .UUID + ", " + Community .TABLE_NAME + "." + Community .NAME :
327- region != null ? ", " + District .TABLE_NAME + "." + District .UUID + ", " + District .TABLE_NAME + "." + District .NAME : "" )
328- + ", " + Region .TABLE_NAME + "." + Region .UUID + ", " + Region .TABLE_NAME + "." + Region .NAME ;
326+ district != null ? ", " + Community .TABLE_NAME + "." + Community .UUID + ", " + Community .TABLE_NAME + "." + Community .NAME :
327+ region != null ? ", " + District .TABLE_NAME + "." + District .UUID + ", " + District .TABLE_NAME + "." + District .NAME :
328+ area != null ? ", " + Region .TABLE_NAME + "." + Region .UUID + ", " + Region .TABLE_NAME + "." + Region .NAME :
329+ ", " + Area .TABLE_NAME + "." + Area .UUID + ", " + Area .TABLE_NAME + "." + Area .NAME ;
329330 //@formatter:on
330331
331332 // SELECT
@@ -359,13 +360,15 @@ public List<CampaignDiagramDataDto> getDiagramData(List<CampaignDiagramSeries> d
359360 selectBuilder .append (", null as fieldId, null as fieldCaption, count(formId) as sumValue," );
360361 }
361362
362- selectBuilder .append (Region .TABLE_NAME )
363- .append ("." )
364- .append (Region .UUID )
365- .append (", " )
366- .append (Region .TABLE_NAME )
367- .append ("." )
368- .append (Region .NAME );
363+ if (district != null ) {
364+ appendInfrastructureSelection (selectBuilder , Community .TABLE_NAME , Community .NAME );
365+ } else if (region != null ) {
366+ appendInfrastructureSelection (selectBuilder , District .TABLE_NAME , District .NAME );
367+ } else if (area != null ) {
368+ appendInfrastructureSelection (selectBuilder , Region .TABLE_NAME , Region .NAME );
369+ } else {
370+ appendInfrastructureSelection (selectBuilder , Area .TABLE_NAME , Area .NAME );
371+ }
369372
370373 // JOINS
371374 StringBuilder joinBuilder = new StringBuilder (" LEFT JOIN " ).append (CampaignFormMeta .TABLE_NAME )
@@ -495,6 +498,10 @@ public List<CampaignDiagramDataDto> getDiagramData(List<CampaignDiagramSeries> d
495498 return resultData ;
496499 }
497500
501+ private void appendInfrastructureSelection (StringBuilder sb , String tableNameField , String nameField ) {
502+ sb .append (tableNameField ).append ("." ).append (AbstractDomainObject .UUID ).append (", " ).append (tableNameField ).append ("." ).append (nameField );
503+ }
504+
498505 @ Override
499506 public long count (CampaignFormDataCriteria criteria ) {
500507 CriteriaBuilder cb = em .getCriteriaBuilder ();
0 commit comments