From ab301b4a7ee84591a5bdcc687cc2becc452d0b09 Mon Sep 17 00:00:00 2001 From: Darshan Nagesh <darshan.nagesh@tarento.com> Date: Mon, 11 Apr 2022 13:04:52 +0530 Subject: [PATCH] Adding Average Days taken Visualization --- .../analytics/handler/IResponseHandler.java | 2 ++ .../service/impl/QueryServiceImpl.java | 8 ++++- .../resources/schema/SMF_ChartApiConfig.json | 30 +++++++++++++++++++ .../schema/SMF_MasterDashboardConfig.json | 9 ++++++ 4 files changed, 48 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/tarento/analytics/handler/IResponseHandler.java b/src/main/java/com/tarento/analytics/handler/IResponseHandler.java index d299aaa..d5d8768 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 6ece414..f674f85 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 4bc1987..61283d9 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 7f96693..1de3959 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": [ -- GitLab