From c4eddfb156aa634aed692d254824876ebf1cca36 Mon Sep 17 00:00:00 2001 From: ashish-egov <137176738+ashish-egov@users.noreply.github.com> Date: Wed, 29 Jan 2025 17:48:41 +0530 Subject: [PATCH 1/5] Update InboxServiceV2.java --- .../egov/inbox/service/V2/InboxServiceV2.java | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/accelerators/inbox/src/main/java/org/egov/inbox/service/V2/InboxServiceV2.java b/accelerators/inbox/src/main/java/org/egov/inbox/service/V2/InboxServiceV2.java index fd553a34c4e..2a95d1aca7f 100644 --- a/accelerators/inbox/src/main/java/org/egov/inbox/service/V2/InboxServiceV2.java +++ b/accelerators/inbox/src/main/java/org/egov/inbox/service/V2/InboxServiceV2.java @@ -73,11 +73,9 @@ public InboxResponse getInboxResponse(InboxRequest inboxRequest) { inboxQueryConfiguration); List items = getInboxItems(inboxRequest, inboxQueryConfiguration.getIndex()); enrichProcessInstanceInInboxItems(items); - Integer totalCount = CollectionUtils.isEmpty(inboxRequest.getInbox().getProcessSearchCriteria().getStatus()) ? 0 - : getTotalApplicationCount(inboxRequest, inboxQueryConfiguration.getIndex()); - List> statusCountMap = CollectionUtils - .isEmpty(inboxRequest.getInbox().getProcessSearchCriteria().getStatus()) ? new ArrayList<>() - : getStatusCountMap(inboxRequest, inboxQueryConfiguration.getIndex()); + Integer totalCount = getTotalApplicationCount(inboxRequest, inboxQueryConfiguration.getIndex()); + List> statusCountMap = getStatusCountMap(inboxRequest, + inboxQueryConfiguration.getIndex()); Integer nearingSlaCount = CollectionUtils .isEmpty(inboxRequest.getInbox().getProcessSearchCriteria().getStatus()) ? 0 : getApplicationsNearingSlaCount(inboxRequest, inboxQueryConfiguration.getIndex()); @@ -194,12 +192,22 @@ public Integer getTotalApplicationCount(InboxRequest inboxRequest, String indexN } public List> getStatusCountMap(InboxRequest inboxRequest, String indexName) { + List businessServices = workflowService.getBusinessServices(inboxRequest); + + HashMap StatusIdNameMap = workflowService.getActionableStatusesForRole( + inboxRequest.getRequestInfo(), businessServices, + inboxRequest.getInbox().getProcessSearchCriteria()); + log.info(StatusIdNameMap.toString()); + List actionableStatus = new ArrayList<>(); + // add keys + StatusIdNameMap.keySet().forEach(actionableStatus::add); Map finalQueryBody = queryBuilder.getStatusCountQuery(inboxRequest); + log.info("Query for status count: " + finalQueryBody.toString()); StringBuilder uri = getURI(indexName, SEARCH_PATH); Map response = (Map) serviceRequestRepository.fetchResult(uri, finalQueryBody); - Set actionableStatuses = new HashSet<>(inboxRequest.getInbox().getProcessSearchCriteria().getStatus()); + Set actionableStatusHSet = new HashSet<>(actionableStatus); HashMap statusCountMap = parseStatusCountMapFromAggregationResponse(response, - actionableStatuses); + actionableStatusHSet); List> transformedStatusMap = transformStatusMap(inboxRequest, statusCountMap); return transformedStatusMap; } @@ -295,9 +303,11 @@ private HashMap parseStatusCountMapFromAggregationResponse(Map> statusCountBuckets = JsonPath.read(response, STATUS_COUNT_AGGREGATIONS_BUCKETS_PATH); HashMap statusCountMap = new HashMap<>(); + actionableStatuses.forEach(status -> { + statusCountMap.put(status, 0); + }); statusCountBuckets.forEach(bucket -> { - if (actionableStatuses.contains(bucket.get(KEY))) - statusCountMap.put((String) bucket.get(KEY), bucket.get(DOC_COUNT_KEY)); + statusCountMap.put((String) bucket.get(KEY), bucket.get(DOC_COUNT_KEY)); }); statusCountResponse.add(statusCountMap); } From c8a3ac0182c2583411a51cf1b393f65de3ac01ee Mon Sep 17 00:00:00 2001 From: ashish-egov <137176738+ashish-egov@users.noreply.github.com> Date: Wed, 29 Jan 2025 17:54:55 +0530 Subject: [PATCH 2/5] Update InboxServiceV2.java --- .../egov/inbox/service/V2/InboxServiceV2.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/accelerators/inbox/src/main/java/org/egov/inbox/service/V2/InboxServiceV2.java b/accelerators/inbox/src/main/java/org/egov/inbox/service/V2/InboxServiceV2.java index 2a95d1aca7f..441548164bd 100644 --- a/accelerators/inbox/src/main/java/org/egov/inbox/service/V2/InboxServiceV2.java +++ b/accelerators/inbox/src/main/java/org/egov/inbox/service/V2/InboxServiceV2.java @@ -285,13 +285,15 @@ private List> transformStatusMap(InboxRequest request, for (Map.Entry entry : statusCountMap.entrySet()) { String statusId = entry.getKey(); Integer count = (Integer) entry.getValue(); - HashMap map = new HashMap<>(); - map.put(COUNT_CONSTANT, count); - map.put(APPLICATION_STATUS_KEY, statusIdToApplicationStatusMap.get(statusId)); - map.put(BUSINESSSERVICE_KEY, statusIdToBusinessServiceMap.get(statusId)); - map.put(STATUSID_KEY, statusId); - map.put(STATE_KEY, statusIdToStateMap.get(statusId)); - statusCountMapTransformed.add(map); + if (statusIdToStateMap.get(statusId) != null) { + HashMap map = new HashMap<>(); + map.put(COUNT_CONSTANT, count); + map.put(APPLICATION_STATUS_KEY, statusIdToApplicationStatusMap.get(statusId)); + map.put(BUSINESSSERVICE_KEY, statusIdToBusinessServiceMap.get(statusId)); + map.put(STATUSID_KEY, statusId); + map.put(STATE_KEY, statusIdToStateMap.get(statusId)); + statusCountMapTransformed.add(map); + } } return statusCountMapTransformed; } From 6e22b7ac0171c40968a562018cd66a51f23d854d Mon Sep 17 00:00:00 2001 From: ashish-egov <137176738+ashish-egov@users.noreply.github.com> Date: Wed, 29 Jan 2025 17:55:37 +0530 Subject: [PATCH 3/5] Update WorkflowService.java From 611d14ebf48b972875a4ce127df8ed6b98163ee5 Mon Sep 17 00:00:00 2001 From: ashish-egov <137176738+ashish-egov@users.noreply.github.com> Date: Wed, 29 Jan 2025 17:56:22 +0530 Subject: [PATCH 4/5] Update InboxQueryBuilder.java From 29741e0c9488ddb8c41222a67a95a1788d736ead Mon Sep 17 00:00:00 2001 From: ashish-egov <137176738+ashish-egov@users.noreply.github.com> Date: Wed, 29 Jan 2025 17:56:40 +0530 Subject: [PATCH 5/5] Update InboxQueryBuilder.java