From d432b1c06bce642bbc3fc8e83b03bbf27349a595 Mon Sep 17 00:00:00 2001 From: Saurav Mishra Date: Tue, 13 Oct 2026 15:02:22 +0530 Subject: [PATCH 1/3] ben id incentive fix issue --- .../service/impl/IncentiveServiceImpl.java | 52 ++++++++++++++++++- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java b/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java index 5fb04d0b..3653f559 100644 --- a/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java @@ -267,16 +267,64 @@ public String getAllIncentivesByUserId(GetBenRequestHandler request) { .collect(Collectors.toList()); Map benIdToNameMap = new HashMap<>(); + if (!benIdsToFetch.isEmpty()) { - List benDetails = beneficiaryRepo.findBenNamesByBenIds(benIdsToFetch); + + // Step 1: Fetch names using BeneficiaryId + List benDetails = + beneficiaryRepo.findBenNamesByBenIds(benIdsToFetch); + + Set foundBenIds = new HashSet<>(); + for (Object[] row : benDetails) { Long benId = ((Number) row[0]).longValue(); + String first = row[1] != null ? (String) row[1] : ""; String last = row[2] != null ? (String) row[2] : ""; + benIdToNameMap.put(benId, (first + " " + last).trim()); + foundBenIds.add(benId); } - } + // Step 2: Identify IDs for which names were not found + List unresolvedIds = benIdsToFetch.stream() + .filter(id -> !foundBenIds.contains(id)) + .distinct() + .toList(); + + if (!unresolvedIds.isEmpty()) { + + // Step 3: Resolve unresolved IDs as BenRegId + List mappings = + beneficiaryRepo.getBenIdsFromRegIds(unresolvedIds); + + Set resolvedBenIds = new HashSet<>(); + + for (Object[] row : mappings) { + if (row[1] != null) { + resolvedBenIds.add(((Number) row[1]).longValue()); + } + } + + // Step 4: Fetch names using resolved BeneficiaryIds + if (!resolvedBenIds.isEmpty()) { + + List resolvedDetails = + beneficiaryRepo.findBenNamesByBenIds( + new ArrayList<>(resolvedBenIds)); + + for (Object[] row : resolvedDetails) { + Long benId = ((Number) row[0]).longValue(); + + String first = row[1] != null ? (String) row[1] : ""; + String last = row[2] != null ? (String) row[2] : ""; + + benIdToNameMap.put( + benId, (first + " " + last).trim()); + } + } + } + } // NEW: Bulk fetch verifier (supervisor) roles — replaces N+1 userRepo.getUserRole() calls // Bulk fetch verifier (supervisor) roles — replaces N+1 userRepo.getUserRole() calls List verifierIds = entities.stream() From 51f30f535b6f809d7d84b46189aa5b89ddd11883 Mon Sep 17 00:00:00 2001 From: Saurav Mishra Date: Tue, 13 Oct 2026 15:37:44 +0530 Subject: [PATCH 2/3] ben id incentive fix issue --- .../service/impl/IncentiveServiceImpl.java | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java b/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java index 3653f559..8e5ba07d 100644 --- a/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java @@ -267,10 +267,11 @@ public String getAllIncentivesByUserId(GetBenRequestHandler request) { .collect(Collectors.toList()); Map benIdToNameMap = new HashMap<>(); + Map regIdToBenIdMap = new HashMap<>(); - if (!benIdsToFetch.isEmpty()) { + if (benIdsToFetch != null && !benIdsToFetch.isEmpty()) { - // Step 1: Fetch names using BeneficiaryId + // First, fetch names using BeneficiaryId List benDetails = beneficiaryRepo.findBenNamesByBenIds(benIdsToFetch); @@ -279,36 +280,38 @@ public String getAllIncentivesByUserId(GetBenRequestHandler request) { for (Object[] row : benDetails) { Long benId = ((Number) row[0]).longValue(); - String first = row[1] != null ? (String) row[1] : ""; - String last = row[2] != null ? (String) row[2] : ""; + String first = row[1] != null ? row[1].toString() : ""; + String last = row[2] != null ? row[2].toString() : ""; benIdToNameMap.put(benId, (first + " " + last).trim()); foundBenIds.add(benId); } - // Step 2: Identify IDs for which names were not found + // IDs not found as BeneficiaryId List unresolvedIds = benIdsToFetch.stream() + .filter(Objects::nonNull) .filter(id -> !foundBenIds.contains(id)) .distinct() .toList(); if (!unresolvedIds.isEmpty()) { - // Step 3: Resolve unresolved IDs as BenRegId + // Resolve BenRegId -> BeneficiaryId List mappings = beneficiaryRepo.getBenIdsFromRegIds(unresolvedIds); Set resolvedBenIds = new HashSet<>(); for (Object[] row : mappings) { - if (row[1] != null) { - resolvedBenIds.add(((Number) row[1]).longValue()); - } + Long regId = ((Number) row[0]).longValue(); + Long benId = ((Number) row[1]).longValue(); + + regIdToBenIdMap.put(regId, benId); + resolvedBenIds.add(benId); } - // Step 4: Fetch names using resolved BeneficiaryIds + // Fetch names for resolved BeneficiaryIds if (!resolvedBenIds.isEmpty()) { - List resolvedDetails = beneficiaryRepo.findBenNamesByBenIds( new ArrayList<>(resolvedBenIds)); @@ -316,11 +319,10 @@ public String getAllIncentivesByUserId(GetBenRequestHandler request) { for (Object[] row : resolvedDetails) { Long benId = ((Number) row[0]).longValue(); - String first = row[1] != null ? (String) row[1] : ""; - String last = row[2] != null ? (String) row[2] : ""; + String first = row[1] != null ? row[1].toString() : ""; + String last = row[2] != null ? row[2].toString() : ""; - benIdToNameMap.put( - benId, (first + " " + last).trim()); + benIdToNameMap.put(benId, (first + " " + last).trim()); } } } From 0d7c1e2d2ce830c8cd6bfc1e5a8106f88b3236e5 Mon Sep 17 00:00:00 2001 From: Saurav Mishra Date: Tue, 13 Oct 2026 15:51:08 +0530 Subject: [PATCH 3/3] ben id incentive fix issue --- .../flw/service/impl/IncentiveServiceImpl.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java b/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java index 8e5ba07d..f8e72fdc 100644 --- a/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java @@ -346,12 +346,22 @@ public String getAllIncentivesByUserId(GetBenRequestHandler request) { // Map entities to DTOs List dtos = entities.stream().map(entry -> { if (entry.getName() == null) { - if (entry.getBenId() != null && entry.getBenId() > 0) { - String name = benIdToNameMap.getOrDefault(entry.getBenId(), ""); + Long originalId = entry.getBenId(); + + if (originalId != null && originalId > 0) { + + Long actualBenId = regIdToBenIdMap.getOrDefault( + originalId, originalId); + + String name = benIdToNameMap.getOrDefault(actualBenId, ""); + + entry.setBenId(actualBenId); entry.setName(name); + if (isCG) { entry.setIsEligible(true); } + } else { entry.setName(""); }