Skip to content

Commit f9e639b

Browse files
committed
Merge remote-tracking branch 'origin/testing-SVB' into testing-SVB
2 parents 7b789ac + e4bdd70 commit f9e639b

9 files changed

+68
-66
lines changed

NMSReportingSuite/src/main/java/com/beehyv/nmsreporting/controller/UserController.java

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,9 @@ public class UserController {
128128
@Autowired
129129
private DownloadReportActivityService downloadReportActivityService;
130130

131+
@Autowired
132+
private KilkariCallReportDao kilkariCallReportDao;
133+
131134
private final CacheManager cacheManager = CacheManager.create();
132135
private final Cache etlNotificationCache = cacheManager.getCache("etlNotificationCache");
133136

@@ -1157,18 +1160,10 @@ public Object getReport(@RequestBody ReportRequest reportRequest/*,HttpServletRe
11571160
MAPerformanceCountsDto MAperformanceCounts = performanceCounts.get(cumulativesummaryReportEnd.get(i).getLocationId());
11581161
if (MAperformanceCounts != null) {
11591162
summaryDto1.setAshasFailed(MAperformanceCounts.getAshasFailed() != null ? MAperformanceCounts.getAshasFailed() : 0);
1160-
int ashasStartedDifference = a.getAshasStarted() - b.getAshasStarted();
1161-
int ashasCompletedDifference = a.getAshasCompleted() - b.getAshasCompleted();
1162-
long ashaDeactivatedStartedCourseInBetweenCount = MAperformanceCounts.getAshaDeactivatedStartedCourseInBetweenCount() != null ? MAperformanceCounts.getAshaDeactivatedStartedCourseInBetweenCount() : 0L;
1163-
long ashaDeactivatedCompletedCourseInBetweenCount = MAperformanceCounts.getAshaDeactivatedCompletedCourseInBetweenCount() != null ? MAperformanceCounts.getAshaDeactivatedCompletedCourseInBetweenCount() : 0L;
1164-
long totalashasDeactivated = MAperformanceCounts.getAshasDeactivatedInBetween() != null ? MAperformanceCounts.getAshasDeactivatedInBetween() : 0L;
1165-
LOGGER.debug("ashasStartedDifference: {}, ashasCompletedDifference: {}, totalashasDeactivated: {}, ashaDeactivatedStartedCourseInBetweenCount: {},ashaDeactivatedCompletedCourseInBetweenCount: {}",ashasStartedDifference,ashasCompletedDifference,totalashasDeactivated,ashaDeactivatedStartedCourseInBetweenCount,ashaDeactivatedCompletedCourseInBetweenCount);
11661163
summaryDto1.setAshasCompleted((int) (MAperformanceCounts.getAshasCompleted()!=null ? MAperformanceCounts.getAshasCompleted() : 0L));
11671164
summaryDto1.setAshasStarted((int) (MAperformanceCounts.getAshasStarted()!=null ? MAperformanceCounts.getAshasStarted() : 0L));
1168-
summaryDto1.setAshasRegistered((int) (a.getAshasRegistered() - b.getAshasRegistered() + totalashasDeactivated));
1169-
summaryDto1.setRecordsReceived((int) ((a.getAshasRegistered() + a.getAshasRejected()) - (b.getAshasRejected() + b.getAshasRegistered()) + totalashasDeactivated));
1170-
LOGGER.debug("this is recordes received value: {}",(a.getAshasRegistered() + a.getAshasRejected()) - (b.getAshasRejected() + b.getAshasRegistered()));
1171-
1165+
summaryDto1.setAshasRegistered((int)(MAperformanceCounts.getAshasActivatedInBetween()!=null ? MAperformanceCounts.getAshasActivatedInBetween() : 0L) );
1166+
summaryDto1.setRecordsReceived((int) (MAperformanceCounts.getAshasActivatedInBetween()!=null ? MAperformanceCounts.getAshasActivatedInBetween() : 0L) + a.getAshasRejected() - b.getAshasRejected());
11721167
}
11731168
else {
11741169
summaryDto1.setAshasCompleted(a.getAshasCompleted() - b.getAshasCompleted());
@@ -1440,7 +1435,7 @@ public ResponseEntity<Long> getCumulativeBeneficiaries(){
14401435
}
14411436

14421437

1443-
Long cumulativeJoinedSubscription = aggregateCumulativeBeneficiaryDao.getCumulativeJoinedSubscription(locationId, locationType, toDate);
1438+
Long cumulativeJoinedSubscription = kilkariCallReportDao.getCumulativeJoinedSubscription(locationId, locationType, toDate);
14441439
return ResponseEntity.ok(cumulativeJoinedSubscription);
14451440
// Long ashaStarted = 0L;
14461441
// Long ashaCompleted = 0L;

NMSReportingSuite/src/main/java/com/beehyv/nmsreporting/dao/AggregateCumulativeBeneficiaryDao.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,4 @@ public interface AggregateCumulativeBeneficiaryDao {
2424
Map<Integer,Long> getTotalDeactivationSum(List<Integer> locationId, String locationType, Date fromDate, Date toDate, String periodType);
2525

2626
Long getJoinedSubscriptionSumTillDate(Integer locationId, String locationType, Date toDate);
27-
28-
Long getCumulativeJoinedSubscription(Long locationId, String locationType, Date toDate);
2927
}

NMSReportingSuite/src/main/java/com/beehyv/nmsreporting/dao/KilkariCallReportDao.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,7 @@
99
*/
1010
public interface KilkariCallReportDao {
1111
KilkariCalls getKilkariCallreport(Integer locationId, String locationType, Date toDate);
12+
13+
Long getCumulativeJoinedSubscription(Long locationId, String locationType, Date toDate);
14+
1215
}

NMSReportingSuite/src/main/java/com/beehyv/nmsreporting/dao/impl/AggregateCumulativeBeneficiaryDaoImpl.java

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -53,28 +53,6 @@ public AggregateCumulativeBeneficiary getCumulativeBeneficiary(Long locationId,
5353
return aggregateCumulativeBeneficiary;
5454
}
5555

56-
public Long getCumulativeJoinedSubscription(Long locationId, String locationType, Date toDate) {
57-
String hql;
58-
Query query;
59-
60-
if (locationId == 0 && "State".equalsIgnoreCase(locationType)) {
61-
hql = "SELECT COALESCE(SUM(CAST(total_beneficiaries AS SIGNED)), 0) FROM agg_kilkari_call_report WHERE location_type = :locationType AND date = :toDate";
62-
query = getSession().createQuery(hql);
63-
query.setParameter("locationType", "State");
64-
} else {
65-
hql = "SELECT COALESCE(SUM(CAST(total_beneficiaries AS SIGNED)), 0) FROM agg_kilkari_call_report WHERE locationId = :locationId AND location_type = :locationType AND date = :toDate";
66-
query = getSession().createQuery(hql);
67-
query.setParameter("locationId", locationId);
68-
query.setParameter("locationType", locationType);
69-
}
70-
71-
query.setParameter("toDate", toDate);
72-
73-
Long result = (Long) query.uniqueResult();
74-
return result != null ? result : 0L;
75-
}
76-
77-
7856

7957

8058
@Override

NMSReportingSuite/src/main/java/com/beehyv/nmsreporting/dao/impl/BeneficiaryWithRegistrationDateBlockDaoImpl.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,8 @@ public List<KilkariSubscriberRegistrationDateDto> allCountOffReports(Integer dis
5656
"COUNT(DISTINCT CASE WHEN s.subscriptionPack_id = 1 AND DATEDIFF(registrationDate, s.start_date) BETWEEN -90 AND 168 THEN s.subscription_id ELSE NULL END) AS Subscriptions_Received_for_PW , "+
5757
"COUNT(DISTINCT CASE WHEN s.subscriptionPack_id = 2 OR DATEDIFF(registrationDate, s.start_date) BETWEEN 169 AND 504 THEN s.subscription_id ELSE NULL END) AS Subscriptions_Received_for_Child , "+
5858
"COUNT(DISTINCT CASE WHEN s.subscriptionPack_id = 1 AND DATEDIFF(registrationDate, s.start_date) < -90 THEN s.subscription_id ELSE NULL END) AS Subscriptions_Ineligible "+
59-
"FROM Beneficiary b INNER JOIN ( SELECT beneficiary_id, MAX(subscription_id) as max_id " +
60-
"FROM subscriptions s GROUP BY beneficiary_id ) max_ids ON b.id = max_ids.beneficiary_id " +
61-
"INNER JOIN subscriptions s ON max_ids.max_id = s.subscription_id " +
59+
"FROM Beneficiary b " +
60+
" INNER JOIN subscriptions s ON b.id = s.beneficiary_id AND s.subscription_id = (SELECT MAX(subscription_id) FROM subscriptions WHERE beneficiary_id = b.id) " +
6261
"WHERE registrationDate >= :fromDate AND registrationDate < :toDate " +
6362
"AND b.district_id = :districtId GROUP BY b.healthBlock_id "+
6463

@@ -140,16 +139,19 @@ public List<KilkariSubscriberRegistrationDateRejectedCountDto> duplicateRejected
140139
" COUNT(DISTINCT CASE WHEN date_diff + 90 >= 169 THEN mir.registration_no ELSE NULL END) AS duplicate_subscribers_Child, " +
141140
" COUNT(DISTINCT CASE WHEN date_diff + 90 < -90 THEN mir.registration_no ELSE NULL END) AS duplicate_subscribers_Ineligible " +
142141
"FROM ( " +
143-
" SELECT mir.*, " +
142+
" SELECT mir.health_block_id, " +
143+
" mir.registration_no, " +
144144
" DATEDIFF(mir.registration_date, STR_TO_DATE(SUBSTRING_INDEX(mir.lmp_date, '.', 1), '%Y-%m-%dT%H:%i:%s')) AS date_diff " +
145145
" FROM mother_import_rejection mir " +
146146
" INNER JOIN ( " +
147-
" SELECT MAX(id) AS id " +
147+
" SELECT registration_no, MAX(id) AS max_id " +
148148
" FROM mother_import_rejection " +
149+
" WHERE registration_date >= :fromDate " +
150+
" AND registration_date < :toDate " +
151+
" AND district_id = :districtId " +
149152
" GROUP BY registration_no " +
150-
" ) mir_latest ON mir.id = mir_latest.id " +
151-
" WHERE mir.district_id = :districtId " +
152-
" AND (mir.registration_date >= :fromDate AND mir.registration_date < :toDate) " +
153+
" ) latest ON mir.registration_no = latest.registration_no AND mir.id = latest.max_id " +
154+
" INNER JOIN Beneficiary b ON b.rch_id = mir.registration_no " +
153155
") mir " +
154156
"INNER JOIN Beneficiary b ON b.rch_id = mir.registration_no " +
155157
"GROUP BY mir.health_block_id " +

NMSReportingSuite/src/main/java/com/beehyv/nmsreporting/dao/impl/BeneficiaryWithRegistrationDateDistrictDaoImpl.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,8 @@ public List<KilkariSubscriberRegistrationDateDto> allCountOffReports(Integer sta
5858
"COUNT(DISTINCT CASE WHEN s.subscriptionPack_id = 1 AND DATEDIFF(registrationDate, s.start_date) BETWEEN -90 AND 168 THEN s.subscription_id ELSE NULL END) AS Subscriptions_Received_for_PW , "+
5959
"COUNT(DISTINCT CASE WHEN s.subscriptionPack_id = 2 OR DATEDIFF(registrationDate, s.start_date) BETWEEN 169 AND 504 THEN s.subscription_id ELSE NULL END) AS Subscriptions_Received_for_Child , "+
6060
"COUNT(DISTINCT CASE WHEN s.subscriptionPack_id = 1 AND DATEDIFF(registrationDate, s.start_date) < -90 THEN s.subscription_id ELSE NULL END) AS Subscriptions_Ineligible "+
61-
"FROM Beneficiary b INNER JOIN ( SELECT beneficiary_id, MAX(subscription_id) as max_id " +
62-
"FROM subscriptions s group by beneficiary_id ) max_ids ON b.id = max_ids.beneficiary_id " +
63-
"INNER JOIN subscriptions s ON max_ids.max_id = s.subscription_id " +
61+
"FROM Beneficiary b " +
62+
" INNER JOIN subscriptions s ON b.id = s.beneficiary_id AND s.subscription_id = (SELECT MAX(subscription_id) FROM subscriptions WHERE beneficiary_id = b.id) " +
6463
"WHERE registrationDate >= :fromDate AND registrationDate < :toDate " +
6564
"AND b.state_id = :stateId GROUP BY b.district_id "+
6665

@@ -142,16 +141,19 @@ public List<KilkariSubscriberRegistrationDateRejectedCountDto> duplicateRejected
142141
" COUNT(DISTINCT CASE WHEN date_diff + 90 >= 169 THEN mir.registration_no ELSE NULL END) AS duplicate_subscribers_Child, " +
143142
" COUNT(DISTINCT CASE WHEN date_diff + 90 < -90 THEN mir.registration_no ELSE NULL END) AS duplicate_subscribers_Ineligible " +
144143
"FROM ( " +
145-
" SELECT mir.*, " +
144+
" SELECT mir.district_id, " +
145+
" mir.registration_no, " +
146146
" DATEDIFF(mir.registration_date, STR_TO_DATE(SUBSTRING_INDEX(mir.lmp_date, '.', 1), '%Y-%m-%dT%H:%i:%s')) AS date_diff " +
147147
" FROM mother_import_rejection mir " +
148148
" INNER JOIN ( " +
149-
" SELECT MAX(id) AS id " +
149+
" SELECT registration_no, MAX(id) AS max_id " +
150150
" FROM mother_import_rejection " +
151+
" WHERE registration_date >= :fromDate " +
152+
" AND registration_date < :toDate " +
153+
" AND state_id = :stateId " +
151154
" GROUP BY registration_no " +
152-
" ) mir_latest ON mir.id = mir_latest.id " +
153-
" WHERE mir.state_id = :stateId " +
154-
" AND (mir.registration_date >= :fromDate AND mir.registration_date < :toDate) " +
155+
" ) latest ON mir.registration_no = latest.registration_no AND mir.id = latest.max_id " +
156+
" INNER JOIN Beneficiary b ON b.rch_id = mir.registration_no " +
155157
") mir " +
156158
"INNER JOIN Beneficiary b ON b.rch_id = mir.registration_no " +
157159
"GROUP BY mir.district_id " +

NMSReportingSuite/src/main/java/com/beehyv/nmsreporting/dao/impl/BeneficiaryWithRegistrationDateStateDaoImpl.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,8 @@ public List<KilkariSubscriberRegistrationDateDto> allCountOffReports(Date fromDa
5656
"COUNT(DISTINCT CASE WHEN s.subscriptionPack_id = 1 AND DATEDIFF(registrationDate, s.start_date) BETWEEN -90 AND 168 THEN s.subscription_id ELSE NULL END) AS Subscriptions_Received_for_PW , "+
5757
"COUNT(DISTINCT CASE WHEN s.subscriptionPack_id = 2 OR DATEDIFF(registrationDate, s.start_date) BETWEEN 169 AND 504 THEN s.subscription_id ELSE NULL END) AS Subscriptions_Received_for_Child, "+
5858
"COUNT(DISTINCT CASE WHEN s.subscriptionPack_id = 1 AND DATEDIFF(registrationDate, s.start_date) < -90 THEN s.subscription_id ELSE NULL END) AS Subscriptions_Ineligible "+
59-
"FROM Beneficiary b INNER JOIN ( SELECT beneficiary_id, MAX(subscription_id) as max_id " +
60-
"FROM subscriptions s group by beneficiary_id ) max_ids ON b.id = max_ids.beneficiary_id " +
61-
"INNER JOIN subscriptions s ON max_ids.max_id = s.subscription_id " +
59+
"FROM Beneficiary b " +
60+
" INNER JOIN subscriptions s ON b.id = s.beneficiary_id AND s.subscription_id = (SELECT MAX(subscription_id) FROM subscriptions WHERE beneficiary_id = b.id) " +
6261
"WHERE registrationDate >= :fromDate AND registrationDate < :toDate " +
6362
" AND b.state_id NOT IN (43, 42) " + //removing Kerala and TamilNadu
6463
"GROUP BY b.state_id "+
@@ -142,15 +141,19 @@ public List<KilkariSubscriberRegistrationDateRejectedCountDto> duplicateRejected
142141
" COUNT(DISTINCT CASE WHEN date_diff + 90 >= 169 THEN mir.registration_no ELSE NULL END) AS duplicate_subscribers_Child, " +
143142
" COUNT(DISTINCT CASE WHEN date_diff + 90 < -90 THEN mir.registration_no ELSE NULL END) AS duplicate_subscribers_Ineligible " +
144143
"FROM ( " +
145-
" SELECT mir.*, " +
144+
" SELECT mir.state_id, " +
145+
" mir.registration_no, " +
146146
" DATEDIFF(mir.registration_date, STR_TO_DATE(SUBSTRING_INDEX(mir.lmp_date, '.', 1), '%Y-%m-%dT%H:%i:%s')) AS date_diff " +
147147
" FROM mother_import_rejection mir " +
148148
" INNER JOIN ( " +
149-
" SELECT MAX(id) AS id " +
149+
" SELECT registration_no, MAX(id) AS max_id " +
150150
" FROM mother_import_rejection " +
151+
" WHERE registration_date >= :fromDate " +
152+
" AND registration_date < :toDate " +
153+
" AND state_id NOT IN (43, 42) " +
151154
" GROUP BY registration_no " +
152-
" ) mir_latest ON mir.id = mir_latest.id " +
153-
" WHERE (mir.registration_date >= :fromDate AND mir.registration_date < :toDate) AND mir.state_id NOT IN (43, 42) " +
155+
" ) latest ON mir.registration_no = latest.registration_no AND mir.id = latest.max_id " +
156+
" INNER JOIN Beneficiary b ON b.rch_id = mir.registration_no " +
154157
") mir " +
155158
"INNER JOIN Beneficiary b ON b.rch_id = mir.registration_no " +
156159
"GROUP BY mir.state_id " +

NMSReportingSuite/src/main/java/com/beehyv/nmsreporting/dao/impl/BeneficiaryWithRegistrationDateSubCentreDaoImpl.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,8 @@ public List<KilkariSubscriberRegistrationDateDto> allCountOffReports(Integer blo
5858
"COUNT(DISTINCT CASE WHEN s.subscriptionPack_id = 1 AND DATEDIFF(registrationDate, s.start_date) BETWEEN -90 AND 168 THEN s.subscription_id ELSE NULL END) AS Subscriptions_Received_for_PW , "+
5959
"COUNT(DISTINCT CASE WHEN s.subscriptionPack_id = 2 OR DATEDIFF(registrationDate, s.start_date) BETWEEN 169 AND 504 THEN s.subscription_id ELSE NULL END) AS Subscriptions_Received_for_Child , "+
6060
"COUNT(DISTINCT CASE WHEN s.subscriptionPack_id = 1 AND DATEDIFF(registrationDate, s.start_date) < -90 THEN s.subscription_id ELSE NULL END) AS Subscriptions_Ineligible "+
61-
"FROM Beneficiary b INNER JOIN ( SELECT beneficiary_id, MAX(subscription_id) as max_id " +
62-
"FROM subscriptions s group by beneficiary_id ) max_ids ON b.id = max_ids.beneficiary_id " +
63-
"INNER JOIN subscriptions s ON max_ids.max_id = s.subscription_id "+
61+
"FROM Beneficiary b " +
62+
" INNER JOIN subscriptions s ON b.id = s.beneficiary_id AND s.subscription_id = (SELECT MAX(subscription_id) FROM subscriptions WHERE beneficiary_id = b.id) "+
6463
"WHERE registrationDate >= :fromDate AND registrationDate < :toDate " +
6564
"AND b.healthBlock_id = :blockId GROUP BY b.healthSubFacility_id " +
6665

@@ -142,16 +141,19 @@ public List<KilkariSubscriberRegistrationDateRejectedCountDto> duplicateRejected
142141
" COUNT(DISTINCT CASE WHEN date_diff + 90 >= 169 THEN mir.registration_no ELSE NULL END) AS duplicate_subscribers_Child, " +
143142
" COUNT(DISTINCT CASE WHEN date_diff + 90 < -90 THEN mir.registration_no ELSE NULL END) AS duplicate_subscribers_Ineligible " +
144143
"FROM ( " +
145-
" SELECT mir.*, " +
144+
" SELECT mir.subcentre_id, " +
145+
" mir.registration_no, " +
146146
" DATEDIFF(mir.registration_date, STR_TO_DATE(SUBSTRING_INDEX(mir.lmp_date, '.', 1), '%Y-%m-%dT%H:%i:%s')) AS date_diff " +
147147
" FROM mother_import_rejection mir " +
148148
" INNER JOIN ( " +
149-
" SELECT MAX(id) AS id " +
149+
" SELECT registration_no, MAX(id) AS max_id " +
150150
" FROM mother_import_rejection " +
151+
" WHERE registration_date >= :fromDate " +
152+
" AND registration_date < :toDate " +
153+
" AND health_block_id = :blockId " +
151154
" GROUP BY registration_no " +
152-
" ) mir_latest ON mir.id = mir_latest.id " +
153-
" WHERE mir.health_block_id = :blockId " +
154-
" AND (mir.registration_date >= :fromDate AND mir.registration_date < :toDate) " +
155+
" ) latest ON mir.registration_no = latest.registration_no AND mir.id = latest.max_id " +
156+
" INNER JOIN Beneficiary b ON b.rch_id = mir.registration_no " +
155157
") mir " +
156158
"INNER JOIN Beneficiary b ON b.rch_id = mir.registration_no " +
157159
"GROUP BY mir.subcentre_id " +

NMSReportingSuite/src/main/java/com/beehyv/nmsreporting/dao/impl/KilkariCallReportDaoImpl.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.beehyv.nmsreporting.model.KilkariCalls;
66
import org.hibernate.Criteria;
77
import org.hibernate.criterion.Order;
8+
import org.hibernate.criterion.Projections;
89
import org.hibernate.criterion.Restrictions;
910
import org.springframework.stereotype.Repository;
1011

@@ -47,5 +48,23 @@ public KilkariCalls getKilkariCallreport(Integer locationId, String locationTyp
4748
kilkariCalls.setUniqueBeneficiaries(kilkariCalls.getUniqueBeneficiaries()== null? 0 : kilkariCalls.getUniqueBeneficiaries());
4849
return kilkariCalls;
4950
}
51+
52+
@Override
53+
public Long getCumulativeJoinedSubscription(Long locationId, String locationType, Date toDate) {
54+
Criteria criteria = createEntityCriteria();
55+
56+
if (locationId == 0 && "State".equalsIgnoreCase(locationType)) {
57+
criteria.add(Restrictions.eq("locationType", locationType));
58+
} else {
59+
criteria.add(Restrictions.eq("locationId", locationId));
60+
criteria.add(Restrictions.eq("locationType", locationType));
61+
}
62+
criteria.add(Restrictions.eq("date", toDate));
63+
64+
criteria.setProjection(Projections.sum("uniqueBeneficiaries"));
65+
66+
Long result = (Long) criteria.uniqueResult();
67+
return result != null ? result : 0L;
68+
}
5069
}
5170

0 commit comments

Comments
 (0)