Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/main/java/com/iemr/flw/repo/iemr/IncentiveRecordRepo.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ public interface IncentiveRecordRepo extends JpaRepository<IncentiveActivityReco
@Query("select record from IncentiveActivityRecord record where record.activityId = :id and record.createdDate = :createdDate and record.benId = :benId")
IncentiveActivityRecord findRecordByActivityIdCreatedDateBenId(@Param("id") Long id, @Param("createdDate") Timestamp createdDate, @Param("benId") Long benId);

IncentiveActivityRecord findRecordById(@Param("id") Long id);


@Query("select record from IncentiveActivityRecord record where record.activityId = :id and record.createdDate = :createdDate and record.benId = :benId and record.ashaId = :ashaId")
IncentiveActivityRecord findRecordByActivityIdCreatedDateBenId(@Param("id") Long id, @Param("createdDate") Timestamp createdDate, @Param("benId") Long benId,@Param("ashaId") Integer ashaId);
Expand Down
53 changes: 39 additions & 14 deletions src/main/java/com/iemr/flw/service/MaaMeetingService.java
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,42 @@ public MaaMeeting updateMeeting(MaaMeetingRequestDTO req) throws JsonProcessingE
}

checkAndAddIncentive(existingMeeting);

return repository.save(existingMeeting);
}

public MaaMeeting updateMeetingFromFileUpload(MaaMeetingRequestDTO req,Long incentiveRecordId) throws JsonProcessingException {
MaaMeeting existingMeeting = repository.findById(req.getId())
.orElseThrow(() -> new EntityNotFoundException("Meeting not found: " + req.getId()));

// โœ… NULL CHECK
if (req.getMeetingDate() != null) {
existingMeeting.setMeetingDate(req.getMeetingDate());
}
if (req.getPlace() != null) {
existingMeeting.setPlace(req.getPlace());
}
if (req.getParticipants() != null) {
existingMeeting.setParticipants(req.getParticipants());
}
if (req.getAshaId() != null) {
existingMeeting.setAshaId(req.getAshaId());
}
if (req.getCreatedBY() != null) { // โœ… Typo fixed: CreatedBY โ†’ CreatedBy
existingMeeting.setCreatedBy(req.getCreatedBY());
}

// Images - only if provided
if (req.getMeetingImages() != null && req.getMeetingImages().length > 0) {
List<String> base64Images = Arrays.stream(req.getMeetingImages())
.filter(file -> file != null && !file.isEmpty())
.map(this::convertToBase64)
.collect(Collectors.toList());
existingMeeting.setMeetingImagesJson(objectMapper.writeValueAsString(base64Images));
}

if (existingMeeting.getMeetingImagesJson() != null) {
checkAndUpdateIncentive(existingMeeting);
checkAndUpdateIncentive(incentiveRecordId);

}
return repository.save(existingMeeting);
Expand Down Expand Up @@ -172,17 +206,8 @@ private void updatePendingActivity(Integer userId, Long recordId, Long activityI

}

private void checkAndUpdateIncentive(MaaMeeting meeting) {
IncentiveActivity incentiveActivityAM = incentivesRepo.findIncentiveMasterByNameAndGroup("MAA_QUARTERLY_MEETING", GroupName.CHILD_HEALTH.getDisplayName());
IncentiveActivity incentiveActivityCH = incentivesRepo.findIncentiveMasterByNameAndGroup("MAA_QUARTERLY_MEETING", GroupName.ACTIVITY.getDisplayName());
if (incentiveActivityAM != null) {
updateIncentive(incentiveActivityAM, meeting);
}
if (incentiveActivityCH != null) {
updateIncentive(incentiveActivityCH, meeting);

}

private void checkAndUpdateIncentive(Long incentiveId) {
updateIncentive(incentiveId);
}

private void checkAndAddIncentive(MaaMeeting meeting) {
Expand Down Expand Up @@ -226,9 +251,9 @@ record = new IncentiveActivityRecord();

}

private void updateIncentive(IncentiveActivity incentiveActivity, MaaMeeting meeting) {
private void updateIncentive(Long id ) {
IncentiveActivityRecord record = recordRepo
.findRecordByActivityIdCreatedDateBenId(incentiveActivity.getId(), Timestamp.valueOf(meeting.getMeetingDate().atStartOfDay()), 0L, meeting.getAshaId());
.findRecordById(id);

if (record != null) {
record = new IncentiveActivityRecord();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -205,8 +205,8 @@ public String updateIncentive(PendingActivityDTO pendingActivityDTO) {
try {
MaaMeetingRequestDTO maaMeetingRequestDTO = new MaaMeetingRequestDTO();
maaMeetingRequestDTO.setMeetingImages(pendingActivityDTO.getImages().toArray(new MultipartFile[0]));
maaMeetingRequestDTO.setId(1L);
maaMeetingService.updateMeeting(maaMeetingRequestDTO);
maaMeetingRequestDTO.setId(existingIncentivePendingActivity.getRecordId());
maaMeetingService.updateMeetingFromFileUpload(maaMeetingRequestDTO,pendingActivityDTO.getId());

}catch (Exception e){
return e.getMessage();
Expand Down