diff --git a/src/main/java/com/tarento/analytics/handler/IResponseHandler.java b/src/main/java/com/tarento/analytics/handler/IResponseHandler.java index d299aaa54afbaa7ade812ab68f1ab322226f4e71..d5d876861d99132dcc5ebea399cdc286d751588d 100644 --- a/src/main/java/com/tarento/analytics/handler/IResponseHandler.java +++ b/src/main/java/com/tarento/analytics/handler/IResponseHandler.java @@ -217,6 +217,8 @@ public interface IResponseHandler { sortedMap.get(plKey).setValue(value); } } + + logger.info("after appending missing plots : "+ sortedMap); data.setPlots(sortedMap.values().stream().collect(Collectors.toList())); } diff --git a/src/main/java/com/tarento/analytics/service/impl/QueryServiceImpl.java b/src/main/java/com/tarento/analytics/service/impl/QueryServiceImpl.java index 6ece4141626df6fdfff756bdb85d523a8f1e19c5..f674f85fd0288f57a64a8384228bcb2c39cd0d94 100644 --- a/src/main/java/com/tarento/analytics/service/impl/QueryServiceImpl.java +++ b/src/main/java/com/tarento/analytics/service/impl/QueryServiceImpl.java @@ -416,7 +416,13 @@ public class QueryServiceImpl implements QueryService { @Override public ObjectNode getChartConfigurationQuery(AggregateRequestDto request, JsonNode query, String indexName, String interval) { - String aggrQuery = query.get(Constants.JsonPaths.AGGREGATION_QUERY).asText(); + String visualizationCode = request.getVisualizationCode(); + String aggrQuery = null; + if("averageDaysTakenToCompleteInspection".equals(visualizationCode)) { + aggrQuery = "{\"aggs\":{\"Filters\":{\"filter\":{\"exists\":{\"field\":\"createdDate\"}},\"aggs\":{\"Filters2\":{\"filter\":{\"exists\":{\"field\":\"inspection.inspectionCompletedDate\"}},\"aggs\":{\"Average Response Days\":{\"avg\":{\"script\":\"(doc['inspection.inspectionCompletedDate'].value.toInstant().toEpochMilli()- doc['createdDate'].value.toInstant().toEpochMilli())/1000/86400\"}}}}}}}}"; + } else { + aggrQuery = query.get(Constants.JsonPaths.AGGREGATION_QUERY).asText(); + } if (interval != null && !interval.isEmpty()) aggrQuery = aggrQuery.replace(Constants.JsonPaths.INTERVAL_VAL, interval); String rqMs = query.get(Constants.JsonPaths.REQUEST_QUERY_MAP).asText(); diff --git a/src/main/resources/schema/SMF_ChartApiConfig.json b/src/main/resources/schema/SMF_ChartApiConfig.json index 4bc1987a494a4300cc4d019839d4a0e3dd46c52d..61283d983781dedf533fb76973d314249d4ca834 100644 --- a/src/main/resources/schema/SMF_ChartApiConfig.json +++ b/src/main/resources/schema/SMF_ChartApiConfig.json @@ -168,6 +168,36 @@ "Application Inspection Trend", "Application Submission Trend" + ], + "isCumulative": true, + "interval": "day", + "alwaysView": "", + "insight": {}, + "_comment": " " + }, + "averageDaysTakenToCompleteInspection": { + "chartName": "Average Days Taken to Complete Inspection", + "queries": [ + { + "module": "COMMON", + "requestQueryMap": "{\r\n \"ts\" : \"timestamp\"}", + "dateRefField": "timestamp", + "indexName": "fs-forms-data", + "esInstance": "QUADNARY", + "aggrQuery": "" + } + ], + "chartType": "metric", + "resultType": "value", + "valueType": "number", + "isDecimal": true, + "action": "", + "filter": "", + "drillChart": "none", + "documentType": "_doc", + "aggregationPaths": [ + "Average Response Days" + ], "isCumulative": true, "interval": "day", diff --git a/src/main/resources/schema/SMF_MasterDashboardConfig.json b/src/main/resources/schema/SMF_MasterDashboardConfig.json index 7f96693a3a28ef2a498e81acf0988f0f6b410bf1..1de395987424265e9cab971d3dc52edb362ddf38 100644 --- a/src/main/resources/schema/SMF_MasterDashboardConfig.json +++ b/src/main/resources/schema/SMF_MasterDashboardConfig.json @@ -28,6 +28,15 @@ "order": 1, "filter": "", "headers": [] + }, + { + "id": "averageDaysTakenToCompleteInspection", + "name": "Average Days Taken to Complete Inspection", + "code": "", + "chartType": "metric", + "order": 1, + "filter": "", + "headers": [] } ], "visualizations": [