public static void addValues( List<List<String>> ids, Grid grid, Grid outputGrid ) { Map<String, Object> valueMap = getAggregatedEventDataMapping( grid ); boolean hasValues = false; for ( List<String> idList : ids ) { Collections.sort( idList ); String key = StringUtils.join( idList, DIMENSION_SEP ); Object value = valueMap.get( key ); hasValues = hasValues || value != null; outputGrid.addValue( value ); } if ( !hasValues ) { outputGrid.removeCurrentWriteRow(); } } }
/** * Fill grid with aggregated data map with key and value * * @param params the {@link DataQueryParams}. * @param grid the grid * @param aggregatedDataMap the aggregated data map */ private void fillGridWithAggregatedDataMap( DataQueryParams params, Grid grid, Map<String, Double> aggregatedDataMap) { for ( Map.Entry<String, Double> entry : aggregatedDataMap.entrySet() ) { Double value = params.isSkipRounding() ? entry.getValue() : MathUtils.getRounded( entry.getValue() ); grid.addRow() .addValues( entry.getKey().split( DIMENSION_SEP ) ) .addValue( value ); if ( params.isIncludeNumDen() ) { grid.addNullValues( 3 ); } } }
@Override public Grid getEventClusters( EventQueryParams params, Grid grid, int maxLimit ) { String clusterField = params.getCoordinateField(); String quotedClusterField = quoteAlias( clusterField ); List<String> columns = Lists.newArrayList( "count(psi) as count", "ST_AsText(ST_Centroid(ST_Collect(" + quotedClusterField + "))) as center", "ST_Extent(" + quotedClusterField + ") as extent" ); columns.add( params.isIncludeClusterPoints() ? "array_to_string(array_agg(psi), ',') as points" : "case when count(psi) = 1 then array_to_string(array_agg(psi), ',') end as points" ); String sql = "select " + StringUtils.join( columns, "," ) + " "; sql += getFromClause( params ); sql += getWhereClause( params ); sql += "group by ST_SnapToGrid(ST_Transform(" + quotedClusterField + ", 3785), " + params.getClusterSize() + ") "; log.debug( String.format( "Analytics event cluster SQL: %s", sql ) ); SqlRowSet rowSet = jdbcTemplate.queryForRowSet( sql ); while ( rowSet.next() ) { grid.addRow() .addValue( rowSet.getLong( "count" ) ) .addValue( rowSet.getString( "center" ) ) .addValue( rowSet.getString( "extent" ) ) .addValue( rowSet.getString( "points" ) ); } return grid; }
/** * Adds data element values to the given grid based on the given data query * parameters. * * @param params the {@link DataQueryParams}. * @param grid the grid. */ private void addDataElementValues( DataQueryParams params, Grid grid ) { if ( !params.getAllDataElements().isEmpty() && !params.isSkipData() ) { DataQueryParams dataSourceParams = DataQueryParams.newBuilder( params ) .retainDataDimension( DataDimensionItemType.DATA_ELEMENT ) .withIncludeNumDen( false ).build(); Map<String, Object> aggregatedDataMap = getAggregatedDataValueMapObjectTyped( dataSourceParams ); for ( Map.Entry<String, Object> entry : aggregatedDataMap.entrySet() ) { Object value = AnalyticsUtils.getRoundedValueObject( params, entry.getValue() ); grid.addRow() .addValues( entry.getKey().split( DIMENSION_SEP ) ) .addValue( value ); if ( params.isIncludeNumDen() ) { grid.addNullValues( 5 ); } } } }
private void getEvents( EventQueryParams params, Grid grid, String sql ) { log.debug( String.format( "Analytics event query SQL: %s", sql ) ); SqlRowSet rowSet = jdbcTemplate.queryForRowSet( sql ); while ( rowSet.next() ) { grid.addRow(); int index = 1; for ( GridHeader header : grid.getHeaders() ) { if ( ITEM_LONGITUDE.equals( header.getName() ) || ITEM_LATITUDE.equals( header.getName() ) ) { double val = rowSet.getDouble( index ); grid.addValue( Precision.round( val, COORD_DEC ) ); } else if ( Double.class.getName().equals( header.getType() ) && !header.hasLegendSet() ) { double val = rowSet.getDouble( index ); grid.addValue( params.isSkipRounding() ? val : MathUtils.getRounded( val ) ); } else { grid.addValue( rowSet.getString( index ) ); } index++; } } }
.addValue( value );
@Override public Grid getRawDataValues( DataQueryParams params, Grid grid ) { Assert.isTrue( params.hasStartEndDate(), "Start and end dates must be specified" ); List<DimensionalObject> dimensions = new ArrayList<>(); dimensions.addAll( params.getDimensions() ); dimensions.addAll( params.getOrgUnitLevelsAsDimensions() ); if ( params.isIncludePeriodStartEndDates() ) { dimensions.add( new BaseDimensionalObject( PERIOD_START_DATE_ID, DimensionType.STATIC, PERIOD_START_DATE_NAME, Lists.newArrayList() ) ); dimensions.add( new BaseDimensionalObject( PERIOD_END_DATE_ID, DimensionType.STATIC, PERIOD_END_DATE_NAME, Lists.newArrayList() ) ); } String sql = getSelectStatement( params, dimensions ); log.debug( "Get raw data SQL: " + sql ); SqlRowSet rowSet = jdbcTemplate.queryForRowSet( sql ); while ( rowSet.next() ) { grid.addRow(); for ( DimensionalObject dim : dimensions ) { grid.addValue( rowSet.getString( dim.getDimensionName() ) ); } grid.addValue( rowSet.getDouble( "value" ) ); } return grid; }
.addValue( AnalyticsUtils.getRoundedValue( dataSourceParams, indicator.getDecimals(), value.getValue() ) ); grid.addValue( AnalyticsUtils.getRoundedValue( dataSourceParams, indicator.getDecimals(), value.getNumeratorValue() ) ) .addValue( AnalyticsUtils.getRoundedValue( dataSourceParams, indicator.getDecimals(), value.getDenominatorValue() ) ) .addValue( AnalyticsUtils.getRoundedValue( dataSourceParams, indicator.getDecimals(), value.getFactor() ) ) .addValue( value.getMultiplier() ) .addValue( value.getDivisor() );
.addValue( displayObjects.get( dimension ).getDisplayProperty( params.getDisplayProperty() ) ) );
/** * Writes all rows in the SqlRowSet to the given Grid. */ public static void addRows( Grid grid, SqlRowSet rs ) { int cols = rs.getMetaData().getColumnCount(); while ( rs.next() ) { grid.addRow(); for ( int i = 1; i <= cols; i++ ) { grid.addValue( rs.getObject( i ) ); } } }
grid.addValue( object.getDimensionItem() ); grid.addValue( object.getDisplayProperty( displayProperty ) ); grid.addValue( object.getCode() ); grid.addValue( object.getDisplayDescription() ); grid.addValue( reportingPeriodName ); grid.addValue( getParentOrganisationUnitName() ); grid.addValue( isCurrentParent( row ) ? "Yes" : "No" ); grid.addValue( value );
grid.addValue( itemId ); grid.addValue( params.getProgramIndicator().getUid() ); grid.addValue( gridValue ); grid.addValue( dimensionValue ); grid.addValue( params.isSkipRounding() ? value : getRounded( value ) ); grid.addValue( AnalyticsUtils.getRoundedValue( params, indicator.getDecimals(), value ) ); grid.addValue( value );
grid.addValue( entity.get( TRACKED_ENTITY_INSTANCE_ID ) ); grid.addValue( entity.get( CREATED_ID ) ); grid.addValue( entity.get( LAST_UPDATED_ID ) ); grid.addValue( entity.get( ORG_UNIT_ID ) ); grid.addValue( entity.get( ORG_UNIT_NAME ) ); grid.addValue( entity.get( TRACKED_ENTITY_ID ) ); grid.addValue( entity.get( INACTIVE_ID ) ); grid.addValue( entity.get( DELETED ) ); grid.addValue( entity.get( item.getItemId() ) );
grid.addValue( getValue( cell ) );