From b593f28381f6d06051d9b6b3b55c2ffcecc3f181 Mon Sep 17 00:00:00 2001 From: Saurav Mishra <80103738+SauravBizbRolly@users.noreply.github.com> Date: Thu, 5 Nov 2026 18:39:41 +0530 Subject: [PATCH 1/8] incentive hot fixes --- src/main/java/com/iemr/flw/domain/iemr/AHDForm.java | 6 ++---- src/main/java/com/iemr/flw/domain/iemr/DewormingForm.java | 6 ++---- src/main/java/com/iemr/flw/domain/iemr/PHCReviewForm.java | 6 ++---- src/main/java/com/iemr/flw/domain/iemr/VHNDForm.java | 6 ++---- src/main/java/com/iemr/flw/domain/iemr/VhncForm.java | 6 ++---- .../java/com/iemr/flw/dto/iemr/AhDMeetingFormDTO.java | 4 ++-- src/main/java/com/iemr/flw/dto/iemr/DewormingFormDTO.java | 4 ++-- .../com/iemr/flw/dto/iemr/PhcReviewMeetingFormDTO.java | 4 ++-- src/main/java/com/iemr/flw/dto/iemr/VHNDFormDTO.java | 4 ++-- src/main/java/com/iemr/flw/dto/iemr/VhncFormDTO.java | 4 ++-- .../com/iemr/flw/service/impl/ChildCareServiceImpl.java | 8 ++++---- .../java/com/iemr/flw/service/impl/CoupleServiceImpl.java | 8 ++++---- 12 files changed, 28 insertions(+), 38 deletions(-) diff --git a/src/main/java/com/iemr/flw/domain/iemr/AHDForm.java b/src/main/java/com/iemr/flw/domain/iemr/AHDForm.java index f5565b3d6..808ba7827 100644 --- a/src/main/java/com/iemr/flw/domain/iemr/AHDForm.java +++ b/src/main/java/com/iemr/flw/domain/iemr/AHDForm.java @@ -26,13 +26,11 @@ public class AHDForm { @Column(name = "ahd_date") private String ahdDate; - @Lob @Column(name = "image1") - private byte[] image1; + private String image1; - @Lob @Column(name = "image2") - private byte[] image2; + private String image2; @Column(name = "user_id") private Long userId; diff --git a/src/main/java/com/iemr/flw/domain/iemr/DewormingForm.java b/src/main/java/com/iemr/flw/domain/iemr/DewormingForm.java index 3df5156b2..1638e52e5 100644 --- a/src/main/java/com/iemr/flw/domain/iemr/DewormingForm.java +++ b/src/main/java/com/iemr/flw/domain/iemr/DewormingForm.java @@ -29,13 +29,11 @@ public class DewormingForm { @Column(name = "age_group") private Integer ageGroup; - @Lob @Column(name = "image1") - private byte[] image1; + private String image1; - @Lob @Column(name = "image2") - private byte[] image2; + private String image2; @Column(name = "user_id") private Long userId; diff --git a/src/main/java/com/iemr/flw/domain/iemr/PHCReviewForm.java b/src/main/java/com/iemr/flw/domain/iemr/PHCReviewForm.java index 9670f08f1..42665c94c 100644 --- a/src/main/java/com/iemr/flw/domain/iemr/PHCReviewForm.java +++ b/src/main/java/com/iemr/flw/domain/iemr/PHCReviewForm.java @@ -26,13 +26,11 @@ public class PHCReviewForm { @Column(name = "no_of_beneficiaries_attended") private Integer noOfBeneficiariesAttended; - @Lob @Column(name = "image1") - private byte[] image1; + private String image1; - @Lob @Column(name = "image2") - private byte[] image2; + private String image2; @Column(name = "user_id") private Long userId; diff --git a/src/main/java/com/iemr/flw/domain/iemr/VHNDForm.java b/src/main/java/com/iemr/flw/domain/iemr/VHNDForm.java index c940e8ea3..2de5f6062 100644 --- a/src/main/java/com/iemr/flw/domain/iemr/VHNDForm.java +++ b/src/main/java/com/iemr/flw/domain/iemr/VHNDForm.java @@ -28,13 +28,11 @@ public class VHNDForm { @Column(name = "no_of_beneficiaries_attended") private Integer noOfBeneficiariesAttended; - @Lob @Column(name = "image1") - private byte[] image1; + private String image1; - @Lob @Column(name = "image2") - private byte[] image2; + private String image2; @Column(name = "form_type") private String formType; diff --git a/src/main/java/com/iemr/flw/domain/iemr/VhncForm.java b/src/main/java/com/iemr/flw/domain/iemr/VhncForm.java index 25bec9354..2e6360701 100644 --- a/src/main/java/com/iemr/flw/domain/iemr/VhncForm.java +++ b/src/main/java/com/iemr/flw/domain/iemr/VhncForm.java @@ -26,13 +26,11 @@ public class VhncForm { @Column(name = "no_of_beneficiaries_attended") private Integer noOfBeneficiariesAttended; - @Lob @Column(name = "image1") - private byte[] image1; + private String image1; - @Lob @Column(name = "image2") - private byte[] image2; + private String image2; @Column(name = "user_id") private Long userId; diff --git a/src/main/java/com/iemr/flw/dto/iemr/AhDMeetingFormDTO.java b/src/main/java/com/iemr/flw/dto/iemr/AhDMeetingFormDTO.java index fdb6b9bbf..0ecc31be8 100644 --- a/src/main/java/com/iemr/flw/dto/iemr/AhDMeetingFormDTO.java +++ b/src/main/java/com/iemr/flw/dto/iemr/AhDMeetingFormDTO.java @@ -8,6 +8,6 @@ public class AhDMeetingFormDTO { private String mobilizedForAHD; private String ahdPlace; private String ahdDate; - private byte[] image1; - private byte[] image2; + private String image1; + private String image2; } \ No newline at end of file diff --git a/src/main/java/com/iemr/flw/dto/iemr/DewormingFormDTO.java b/src/main/java/com/iemr/flw/dto/iemr/DewormingFormDTO.java index f7d6fa2bb..3c3feb613 100644 --- a/src/main/java/com/iemr/flw/dto/iemr/DewormingFormDTO.java +++ b/src/main/java/com/iemr/flw/dto/iemr/DewormingFormDTO.java @@ -12,6 +12,6 @@ public class DewormingFormDTO { private String dewormingDate; private String dewormingLocation; private Integer ageGroup; - private byte[] image1; - private byte[] image2; + private String image1; + private String image2; } \ No newline at end of file diff --git a/src/main/java/com/iemr/flw/dto/iemr/PhcReviewMeetingFormDTO.java b/src/main/java/com/iemr/flw/dto/iemr/PhcReviewMeetingFormDTO.java index 4a88d0bd4..b08386c6e 100644 --- a/src/main/java/com/iemr/flw/dto/iemr/PhcReviewMeetingFormDTO.java +++ b/src/main/java/com/iemr/flw/dto/iemr/PhcReviewMeetingFormDTO.java @@ -13,8 +13,8 @@ public class PhcReviewMeetingFormDTO { private String mitaninHistory; private String mitaninActivityCheckList; private Integer placeId; - private byte[] image1; - private byte[] image2; + private String image1; + private String image2; diff --git a/src/main/java/com/iemr/flw/dto/iemr/VHNDFormDTO.java b/src/main/java/com/iemr/flw/dto/iemr/VHNDFormDTO.java index 3ab437857..aa99186a1 100644 --- a/src/main/java/com/iemr/flw/dto/iemr/VHNDFormDTO.java +++ b/src/main/java/com/iemr/flw/dto/iemr/VHNDFormDTO.java @@ -35,8 +35,8 @@ public class VHNDFormDTO { private String vhndDate; private String place; private Integer noOfBeneficiariesAttended; - private byte[] image1; - private byte[] image2; + private String image1; + private String image2; private Integer vhndPlaceId; private String pregnantWomenAnc; private String lactatingMothersPnc; diff --git a/src/main/java/com/iemr/flw/dto/iemr/VhncFormDTO.java b/src/main/java/com/iemr/flw/dto/iemr/VhncFormDTO.java index 45f159689..a2515b421 100644 --- a/src/main/java/com/iemr/flw/dto/iemr/VhncFormDTO.java +++ b/src/main/java/com/iemr/flw/dto/iemr/VhncFormDTO.java @@ -32,8 +32,8 @@ public class VhncFormDTO { private String vhncDate; private String place; private Integer noOfBeneficiariesAttended; - private byte[] image1; - private byte[] image2; + private String image1; + private String image2; private String villageName; private Integer anm; private Integer aww; diff --git a/src/main/java/com/iemr/flw/service/impl/ChildCareServiceImpl.java b/src/main/java/com/iemr/flw/service/impl/ChildCareServiceImpl.java index adf47563a..482006f69 100644 --- a/src/main/java/com/iemr/flw/service/impl/ChildCareServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/ChildCareServiceImpl.java @@ -1301,11 +1301,11 @@ private void createIncentiveRecord(ChildVaccination vaccination, Long benId, Int if (record == null) { record = new IncentiveActivityRecord(); record.setActivityId(immunizationActivity.getId()); - record.setCreatedDate(vaccination.getCreatedDate()); + record.setCreatedDate(vaccination.getReceivedDate()); record.setCreatedBy(vaccination.getCreatedBy()); - record.setStartDate(vaccination.getCreatedDate()); - record.setEndDate(vaccination.getCreatedDate()); - record.setUpdatedDate(vaccination.getCreatedDate()); + record.setStartDate(vaccination.getReceivedDate()); + record.setEndDate(vaccination.getReceivedDate()); + record.setUpdatedDate(vaccination.getReceivedDate()); record.setUpdatedBy(vaccination.getCreatedBy()); record.setBenId(benId); record.setAshaId(userId); diff --git a/src/main/java/com/iemr/flw/service/impl/CoupleServiceImpl.java b/src/main/java/com/iemr/flw/service/impl/CoupleServiceImpl.java index e12a1c87c..b40dddfb4 100644 --- a/src/main/java/com/iemr/flw/service/impl/CoupleServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/CoupleServiceImpl.java @@ -382,11 +382,11 @@ private void createIncentiveRecord(EligibleCoupleRegister eligibleCoupleDTO, Inc if (record == null) { record = new IncentiveActivityRecord(); record.setActivityId(activity.getId()); - record.setCreatedDate(eligibleCoupleDTO.getCreatedDate()); + record.setCreatedDate(eligibleCoupleDTO.getRegistrationDate()); record.setCreatedBy(eligibleCoupleDTO.getCreatedBy()); - record.setStartDate(eligibleCoupleDTO.getCreatedDate()); - record.setEndDate(eligibleCoupleDTO.getCreatedDate()); - record.setUpdatedDate(eligibleCoupleDTO.getCreatedDate()); + record.setStartDate(eligibleCoupleDTO.getRegistrationDate()); + record.setEndDate(eligibleCoupleDTO.getRegistrationDate()); + record.setUpdatedDate(eligibleCoupleDTO.getRegistrationDate()); record.setUpdatedBy(eligibleCoupleDTO.getCreatedBy()); record.setBenId(eligibleCoupleDTO.getBenId()); record.setAshaId(userId); From 9a4e7518f1993a26193d4fa5d15ee4dbf0a77a44 Mon Sep 17 00:00:00 2001 From: Saurav Mishra <80103738+SauravBizbRolly@users.noreply.github.com> Date: Thu, 5 Nov 2026 19:00:47 +0530 Subject: [PATCH 2/8] incentive hot fixes --- .../java/com/iemr/flw/service/impl/ChildCareServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/iemr/flw/service/impl/ChildCareServiceImpl.java b/src/main/java/com/iemr/flw/service/impl/ChildCareServiceImpl.java index 482006f69..970a3013e 100644 --- a/src/main/java/com/iemr/flw/service/impl/ChildCareServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/ChildCareServiceImpl.java @@ -1296,7 +1296,7 @@ private void checkAndAddIncentives(List vaccinationList) { private void createIncentiveRecord(ChildVaccination vaccination, Long benId, Integer userId, IncentiveActivity immunizationActivity) { IncentiveActivityRecord record = recordRepo - .findRecordByActivityIdCreatedDateBenId(immunizationActivity.getId(), vaccination.getCreatedDate(), benId,userId); + .findRecordByActivityIdCreatedDateBenId(immunizationActivity.getId(), vaccination.getReceivedDate(), benId,userId); if (record == null) { record = new IncentiveActivityRecord(); From defce815598107c83124659d7a8a4a9a66459f34 Mon Sep 17 00:00:00 2001 From: Saurav Mishra <80103738+SauravBizbRolly@users.noreply.github.com> Date: Thu, 5 Nov 2026 19:01:27 +0530 Subject: [PATCH 3/8] incentive hot fixes --- src/main/java/com/iemr/flw/service/impl/CoupleServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/iemr/flw/service/impl/CoupleServiceImpl.java b/src/main/java/com/iemr/flw/service/impl/CoupleServiceImpl.java index b40dddfb4..6054b1b9c 100644 --- a/src/main/java/com/iemr/flw/service/impl/CoupleServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/CoupleServiceImpl.java @@ -378,7 +378,7 @@ private void createIncentiveRecord(EligibleCoupleRegister eligibleCoupleDTO, Inc Integer userId = userRepo.getUserIdByName(eligibleCoupleDTO.getCreatedBy()); IncentiveActivityRecord record = recordRepo - .findRecordByActivityIdCreatedDateBenId(activity.getId(), eligibleCoupleDTO.getCreatedDate(), eligibleCoupleDTO.getBenId(),userId); + .findRecordByActivityIdCreatedDateBenId(activity.getId(), eligibleCoupleDTO.getRegistrationDate(), eligibleCoupleDTO.getBenId(),userId); if (record == null) { record = new IncentiveActivityRecord(); record.setActivityId(activity.getId()); From 205d23447d06b898ec585be2ffbc493e0a8f766c Mon Sep 17 00:00:00 2001 From: Saurav Mishra <80103738+SauravBizbRolly@users.noreply.github.com> Date: Thu, 5 Nov 2026 19:28:42 +0530 Subject: [PATCH 4/8] incentive hot fixes --- .../java/com/iemr/flw/service/impl/ChildCareServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/iemr/flw/service/impl/ChildCareServiceImpl.java b/src/main/java/com/iemr/flw/service/impl/ChildCareServiceImpl.java index 970a3013e..a7ff3e3a0 100644 --- a/src/main/java/com/iemr/flw/service/impl/ChildCareServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/ChildCareServiceImpl.java @@ -959,7 +959,7 @@ private void checkAndAddHbyncIncentives(List hbycList) { } if(hbyc.getIfa_given() && eligibleHbycVisits.contains(hbyc.getVisit_day())){ if(hbyncLactatingIronPacketActivityCH!=null){ - createIncentiveRecordforHbyncVisit(hbyc, hbyc.getBeneficiaryId(), hbyncLactatingIronPacketActivityCH, hbyc.getCreated_by()); + createIncentiveRecordforHbyncVisit(hbyc, 0L, hbyncLactatingIronPacketActivityCH, hbyc.getCreated_by()); } From be46233911c4b1ed198013dd1ec579a6b4ef9664 Mon Sep 17 00:00:00 2001 From: Saurav Mishra <80103738+SauravBizbRolly@users.noreply.github.com> Date: Thu, 5 Nov 2026 19:45:06 +0530 Subject: [PATCH 5/8] incentive hot fixes --- .../iemr/flw/repo/iemr/BenReferDetailsRepo.java | 16 ++++++++++++++++ .../flw/service/impl/IncentiveServiceImpl.java | 3 ++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/iemr/flw/repo/iemr/BenReferDetailsRepo.java b/src/main/java/com/iemr/flw/repo/iemr/BenReferDetailsRepo.java index a475476ae..ca6749767 100644 --- a/src/main/java/com/iemr/flw/repo/iemr/BenReferDetailsRepo.java +++ b/src/main/java/com/iemr/flw/repo/iemr/BenReferDetailsRepo.java @@ -30,6 +30,7 @@ import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; +import java.sql.Timestamp; import java.util.List; import java.util.Optional; @@ -53,6 +54,21 @@ public interface BenReferDetailsRepo extends JpaRepository= :startDate + AND revisitDate < :endDate + ORDER BY revisitDate ASC + LIMIT 1 OFFSET 9 + """, nativeQuery = true) + Timestamp findTenthReferralDate( + @Param("userName") String userName, + @Param("startDate") Timestamp startDate, + @Param("endDate") Timestamp endDate + ); + @Query(value = """ SELECT COUNT(*) FROM db_iemr.t_benreferdetails 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 0108957cf..74420b334 100644 --- a/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java @@ -1071,11 +1071,12 @@ private void incentiveOfNcdReferal(Integer ashaId, Integer stateId, GetBenReques reqStart, reqEnd ); + Timestamp timestamp = benReferDetailsRepo.findTenthReferralDate(userName,reqStart,reqEnd); + logger.info("referralCount: {}", referralCount); if (referralCount != null && referralCount >= 10) { - Timestamp timestamp = Timestamp.valueOf(LocalDateTime.now()); IncentiveActivityRecord record = new IncentiveActivityRecord(); record.setActivityId(hwcReferralEnumeration.getId()); record.setCreatedDate(timestamp); From 69fd4cf82c47849439eafd935bcd34957d32f56f Mon Sep 17 00:00:00 2001 From: Saurav Mishra <80103738+SauravBizbRolly@users.noreply.github.com> Date: Thu, 5 Nov 2026 19:58:17 +0530 Subject: [PATCH 6/8] incentive hot fixes --- .../com/iemr/flw/service/impl/MaternalHealthServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/iemr/flw/service/impl/MaternalHealthServiceImpl.java b/src/main/java/com/iemr/flw/service/impl/MaternalHealthServiceImpl.java index 62534f071..62f0a0025 100644 --- a/src/main/java/com/iemr/flw/service/impl/MaternalHealthServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/MaternalHealthServiceImpl.java @@ -355,7 +355,7 @@ private void checkAndAddHighRisk(List pmsmaList) { private void addIncentiveForHighRisk(IncentiveActivity incentiveActivity, PMSMA pmsma) { IncentiveActivityRecord record = recordRepo - .findRecordByActivityIdCreatedDateBenId(incentiveActivity.getId(), pmsma.getCreatedDate(), pmsma.getBenId(),userRepo.getUserIdByName(pmsma.getCreatedBy())); + .findRecordByActivityIdCreatedDateBenId(incentiveActivity.getId(), pmsma.getVisitDate(), pmsma.getBenId(),userRepo.getUserIdByName(pmsma.getCreatedBy())); // get bene details if (record == null) { @@ -968,7 +968,7 @@ private void checkAndAddIncentives(List ancList, Integer userId) { if (identifiedHrpActivityCH != null && ancVisit.getIsHrpConfirmed() != null - && ancVisit.getIsHrpConfirmed()) { + && ancVisit.getIsHrpConfirmed() && ancVisit.getPlaceOfAnc().equals("PMSMA Visit") ) { recordAncRelatedIncentive(identifiedHrpActivityCH, ancVisit); } }); From c110035ac90b411a0bf4bf7ef6ef933b4ee18cd1 Mon Sep 17 00:00:00 2001 From: Saurav Mishra <80103738+SauravBizbRolly@users.noreply.github.com> Date: Fri, 6 Nov 2026 07:25:10 +0530 Subject: [PATCH 7/8] fix hwc referal incentive issue --- .../service/impl/IncentiveServiceImpl.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 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 74420b334..dd48f05d4 100644 --- a/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java @@ -1046,25 +1046,28 @@ private void incentiveOfNcdReferal(Integer ashaId, Integer stateId, GetBenReques // 2. Optimize HWC_REFERRAL_10_CASES: check if monthly incentive already exists FIRST, // and use index-friendly date range query instead of MONTH()/YEAR() functions. if (hwcReferralEnumeration != null) { + LocalDate now = LocalDate.now(); Timestamp startOfMonth = Timestamp.valueOf(now.withDayOfMonth(1).atStartOfDay()); Timestamp endOfMonth = Timestamp.valueOf(now.withDayOfMonth(now.lengthOfMonth()).atTime(23, 59, 59)); + LocalDate requestDate = (request != null && request.getFromDate() != null) + ? request.getFromDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate() + : now; + LocalDate reqMonthFirst = requestDate.withDayOfMonth(1); + Timestamp reqStart = Timestamp.valueOf(reqMonthFirst.atStartOfDay()); + Timestamp reqEnd = Timestamp.valueOf(reqMonthFirst.plusMonths(1).atStartOfDay()); + IncentiveActivityRecord existingHwcRecord = recordRepo.findRecordByActivityIdCreatedDateBenId( hwcReferralEnumeration.getId(), 0L, ashaId, - startOfMonth, - endOfMonth + reqStart, + reqEnd ); if (existingHwcRecord == null) { - LocalDate requestDate = (request != null && request.getFromDate() != null) - ? request.getFromDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate() - : now; - LocalDate reqMonthFirst = requestDate.withDayOfMonth(1); - Timestamp reqStart = Timestamp.valueOf(reqMonthFirst.atStartOfDay()); - Timestamp reqEnd = Timestamp.valueOf(reqMonthFirst.plusMonths(1).atStartOfDay()); + Long referralCount = benReferDetailsRepo.countMonthlyReferralsByDateRange( userName, From 579e7f52411de35ad61b654f8f3d41817eb89534 Mon Sep 17 00:00:00 2001 From: Saurav Mishra <80103738+SauravBizbRolly@users.noreply.github.com> Date: Fri, 6 Nov 2026 08:54:02 +0530 Subject: [PATCH 8/8] fix hwc referal incentive issue --- .../java/com/iemr/flw/service/impl/IncentiveServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) 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 dd48f05d4..016deaabe 100644 --- a/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java +++ b/src/main/java/com/iemr/flw/service/impl/IncentiveServiceImpl.java @@ -1066,6 +1066,9 @@ private void incentiveOfNcdReferal(Integer ashaId, Integer stateId, GetBenReques reqEnd ); + logger.info("HWC Incentive Request Start Date: {}", reqStart); + logger.info("HWC Incentive Request End Date: {}", reqEnd); + if (existingHwcRecord == null) {