From aacf8e0d918432c8e0801bd012d4a2f65a4610f2 Mon Sep 17 00:00:00 2001 From: Saurav Mishra Date: Mon, 13 Apr 2026 14:07:20 +0530 Subject: [PATCH 1/3] enhance welcome sms code --- .../RegisterBenificiaryServiceImpl.java | 23 +++++- .../WelcomeBenificarySmsServiceImpl.java | 82 +++++++++---------- 2 files changed, 61 insertions(+), 44 deletions(-) diff --git a/src/main/java/com/iemr/common/service/beneficiary/RegisterBenificiaryServiceImpl.java b/src/main/java/com/iemr/common/service/beneficiary/RegisterBenificiaryServiceImpl.java index 7d5f1de0..d8475d3e 100644 --- a/src/main/java/com/iemr/common/service/beneficiary/RegisterBenificiaryServiceImpl.java +++ b/src/main/java/com/iemr/common/service/beneficiary/RegisterBenificiaryServiceImpl.java @@ -223,9 +223,26 @@ public String save(BeneficiaryModel beneficiaryModel, HttpServletRequest servlet } else { return response.toString(); } - if(beneficiary!=null){ - if(beneficiary.getBenPhoneMaps().get(0).getPhoneNo()!=null){ - welcomeBenificarySmsService.sendWelcomeSMStoBenificiary(beneficiary.getBenPhoneMaps().get(0).getPhoneNo(),beneficiary.getFirstName()+" "+beneficiary.getLastName(),beneficiary.getBeneficiaryID()); + if (beneficiary != null && beneficiary.getBenPhoneMaps() != null && !beneficiary.getBenPhoneMaps().isEmpty()) { + String phoneNo = beneficiary.getBenPhoneMaps().get(0).getPhoneNo(); + + if (phoneNo != null && !phoneNo.trim().isEmpty()) { + String beneficiaryName = (beneficiary.getFirstName() != null ? beneficiary.getFirstName() : "") + " " + + (beneficiary.getLastName() != null ? beneficiary.getLastName() : ""); + + try { + logger.info("[SMS] Attempting to send welcome SMS to: " + phoneNo); + String smsResult = welcomeBenificarySmsService.sendWelcomeSMStoBenificiary( + phoneNo, + beneficiaryName.trim(), + beneficiary.getBeneficiaryID() + ); + logger.info("[SMS] Result: " + smsResult); + } catch (Exception smsError) { + // SMS failed but beneficiary is already created - don't fail the request + logger.warn("[SMS] Failed to send SMS: " + smsError.getMessage() + + " - But beneficiary already created successfully"); + } } } diff --git a/src/main/java/com/iemr/common/service/welcomeSms/WelcomeBenificarySmsServiceImpl.java b/src/main/java/com/iemr/common/service/welcomeSms/WelcomeBenificarySmsServiceImpl.java index 67b642ab..fdffd22f 100644 --- a/src/main/java/com/iemr/common/service/welcomeSms/WelcomeBenificarySmsServiceImpl.java +++ b/src/main/java/com/iemr/common/service/welcomeSms/WelcomeBenificarySmsServiceImpl.java @@ -12,6 +12,7 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; @@ -46,58 +47,57 @@ public class WelcomeBenificarySmsServiceImpl implements WelcomeBenificarySmsServ private String smsTemplateName = "welcome_sms"; - private String smsTemplate; + private String smsTemplate =null; @Override + @Async public String sendWelcomeSMStoBenificiary(String contactNo, String beneficiaryName, String beneficiaryId) { - final RestTemplate restTemplate = new RestTemplate(); - - Optional smsTemplateData = smsTemplateRepository.findBySmsTemplateName(smsTemplateName); - if (smsTemplateData.isPresent()) { - smsTemplate = smsTemplateRepository.findBySmsTemplateID(smsTemplateData.get().getSmsTemplateID()).getSmsTemplate(); - - } - - logger.info("sms template" + smsTemplate); - - - String sendSMSAPI = SMS_GATEWAY_URL; try { + String sendSMSAPI = SMS_GATEWAY_URL; - String message = smsTemplate.replace("$$BENE_NAME$$", beneficiaryName).replace("$$BEN_ID$$", beneficiaryId); - // Build payload - Map payload = new HashMap<>(); - payload.put("customerId", smsUserName); - payload.put("destinationAddress", contactNo); - payload.put("message", message); - payload.put("sourceAddress", smsSourceAddress); - payload.put("messageType", "SERVICE_IMPLICIT"); - payload.put("dltTemplateId", smsTemplateData.get().getDltTemplateId()); - payload.put("entityId", smsEntityId); - // Set headers - HttpHeaders headers = new HttpHeaders(); - String auth = smsUserName + ":" + smsPassword; - headers.add("Authorization", - "Basic " + Base64.getEncoder().encodeToString(auth.getBytes())); - - headers.setContentType(MediaType.APPLICATION_JSON); - logger.info("payload: " + payload); - HttpEntity> request = new HttpEntity<>(payload, headers); - - // Call API - ResponseEntity response = restTemplate.postForEntity(sendSMSAPI, request, String.class); - logger.info("sms-response:" + response.getBody()); - if (response.getStatusCode().value() == 200) { - return "OTP sent successfully on register mobile number"; - } else { - return "Fail"; + final RestTemplate restTemplate = new RestTemplate(); + Optional smsTemplateData = smsTemplateRepository.findBySmsTemplateName(smsTemplateName); + if (smsTemplateData.isPresent()) { + smsTemplate = smsTemplateRepository.findBySmsTemplateID(smsTemplateData.get().getSmsTemplateID()).getSmsTemplate(); + } + if(smsTemplate!=null){ + String message = smsTemplate.replace("$$BENE_NAME$$", beneficiaryName).replace("$$BEN_ID$$", beneficiaryId); + // Build payload + Map payload = new HashMap<>(); + payload.put("customerId", smsUserName); + payload.put("destinationAddress", contactNo); + payload.put("message", message); + payload.put("sourceAddress", smsSourceAddress); + payload.put("messageType", "SERVICE_IMPLICIT"); + payload.put("dltTemplateId", smsTemplateData.get().getDltTemplateId()); + payload.put("entityId", smsEntityId); + // Set headers + HttpHeaders headers = new HttpHeaders(); + String auth = smsUserName + ":" + smsPassword; + headers.add("Authorization", + "Basic " + Base64.getEncoder().encodeToString(auth.getBytes())); + + headers.setContentType(MediaType.APPLICATION_JSON); + logger.info("payload: " + payload); + HttpEntity> request = new HttpEntity<>(payload, headers); + + // Call API + ResponseEntity response = restTemplate.postForEntity(sendSMSAPI, request, String.class); + logger.info("sms-response:" + response.getBody()); + if (response.getStatusCode().value() == 200) { + return "OTP sent successfully on register mobile number"; + } else { + return "Fail"; + + } } + } catch (Exception e) { return "Error sending SMS: " + e.getMessage().toString(); } - + return null; } } From bc5057221d3a852b40fc9acb35f6a1171d081e8e Mon Sep 17 00:00:00 2001 From: Saurav Mishra Date: Fri, 17 Apr 2026 16:59:07 +0530 Subject: [PATCH 2/3] fix double ben id issue on welcome sms --- .../beneficiary/BeneficiaryRepo.java | 28 + .../RegisterBenificiaryServiceImpl.java | 643 +++++++++--------- 2 files changed, 349 insertions(+), 322 deletions(-) create mode 100644 src/main/java/com/iemr/common/repository/beneficiary/BeneficiaryRepo.java diff --git a/src/main/java/com/iemr/common/repository/beneficiary/BeneficiaryRepo.java b/src/main/java/com/iemr/common/repository/beneficiary/BeneficiaryRepo.java new file mode 100644 index 00000000..0fc156c3 --- /dev/null +++ b/src/main/java/com/iemr/common/repository/beneficiary/BeneficiaryRepo.java @@ -0,0 +1,28 @@ +package com.iemr.common.repository.beneficiary; + + +import com.iemr.common.model.beneficiary.RMNCHBeneficiaryDetailsRmnch; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; + +import java.math.BigInteger; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Optional; + +@Repository +public interface BeneficiaryRepo extends JpaRepository { + + @Query(nativeQuery = true, value = " select UserName from db_iemr.m_user where UserID = :userId and deleted is false ") + String getUserName(@Param("userId") Integer userId); + + Optional findById(Long benID); + + +} diff --git a/src/main/java/com/iemr/common/service/beneficiary/RegisterBenificiaryServiceImpl.java b/src/main/java/com/iemr/common/service/beneficiary/RegisterBenificiaryServiceImpl.java index d8475d3e..bf3d410d 100644 --- a/src/main/java/com/iemr/common/service/beneficiary/RegisterBenificiaryServiceImpl.java +++ b/src/main/java/com/iemr/common/service/beneficiary/RegisterBenificiaryServiceImpl.java @@ -1,26 +1,26 @@ /* -* AMRIT – Accessible Medical Records via Integrated Technology -* Integrated EHR (Electronic Health Records) Solution -* -* Copyright (C) "Piramal Swasthya Management and Research Institute" -* -* This file is part of AMRIT. -* -* This program is free software: you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see https://www.gnu.org/licenses/. -*/ + * AMRIT – Accessible Medical Records via Integrated Technology + * Integrated EHR (Electronic Health Records) Solution + * + * Copyright (C) "Piramal Swasthya Management and Research Institute" + * + * This file is part of AMRIT. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see https://www.gnu.org/licenses/. + */ /** - * + * */ package com.iemr.common.service.beneficiary; @@ -29,8 +29,10 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import com.iemr.common.model.beneficiary.RMNCHBeneficiaryDetailsRmnch; +import com.iemr.common.repository.beneficiary.BeneficiaryRepo; import com.iemr.common.service.welcomeSms.WelcomeBenificarySmsService; import com.iemr.common.service.welcomeSms.WelcomeBenificarySmsServiceImpl; import org.json.JSONObject; @@ -68,306 +70,303 @@ @Service public class RegisterBenificiaryServiceImpl implements RegisterBenificiaryService { - @Autowired - CommonIdentityMapper identityMapper; - @Autowired - IdentityBeneficiaryService identityBeneficiaryService; - - @Autowired - IdentityBenEditMapper identityBenEditMapper; - - @Autowired - private WelcomeBenificarySmsService welcomeBenificarySmsService; - - @Autowired - Validator validator; - - - - - - - - @Autowired - OutboundHistoryRepository outboundHistoryRepository; - - /** - * IemrUserRegisterRepository declare - */ - // private BeneficiaryRepository benificiaryRepository; - - /** - * Inject IemrUserRegisterRepository - */ - - private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); - - @Override - public Beneficiary save(Beneficiary benificiaryDetails) { - - logger.info("benificiaryDetails: " + benificiaryDetails); - - return new Beneficiary(); // savedBenificiaryDetails; - } - - @Async - private void updateBeneficiaryID(String beneficiaryID, Long beneficiaryRegID) { - try { - // benificiaryRepository.addBeneficiaryID(beneficiaryID, beneficiaryRegID); - } catch (Exception e) { - logger.error("updateBeneficiaryID failed with error " + e.getMessage(), e); - } - } - - @Async - @Override - public Integer updateBenificiary(BeneficiaryModel benificiaryDetails, String auth) throws IEMRException { - Integer updatedRows = 0; - IdentityEditDTO identityEditDTO = identityBenEditMapper.BenToIdentityEditMapper(benificiaryDetails); - setDemographicDetails(identityEditDTO,benificiaryDetails); - - - - if (benificiaryDetails.getBeneficiaryIdentities() != null - && benificiaryDetails.getBeneficiaryIdentities().size() > 0) { - identityEditDTO.setIdentities(Identity.createIdentity(benificiaryDetails.getBeneficiaryIdentities(), - benificiaryDetails.getCreatedBy())); - } - identityEditDTO.setDob(benificiaryDetails.getDOB()); - updatedRows = identityBeneficiaryService.editIdentityEditDTO(identityEditDTO, auth, - benificiaryDetails.getIs1097()); - logger.info("updateBen"); - //updateDeathOfBenificiary(benificiaryDetails); - return updatedRows; - } - - - private void setDemographicDetails(IdentityEditDTO identityEditDTO, BeneficiaryModel benificiaryDetails) { - if(null != benificiaryDetails.getI_bendemographics()) { - identityEditDTO.setCommunity(benificiaryDetails.getI_bendemographics().getCommunityName()); - identityEditDTO.setCommunityName(benificiaryDetails.getI_bendemographics().getCommunityName()); - if(null != benificiaryDetails.getReligion()) - identityEditDTO.setReligion(benificiaryDetails.getReligion()); - else if(null != benificiaryDetails.getI_bendemographics().getReligion()) - identityEditDTO.setReligion(benificiaryDetails.getI_bendemographics().getReligion()); - else - identityEditDTO.setReligion(benificiaryDetails.getI_bendemographics().getReligionName()); - - if (null != benificiaryDetails.getOccupation()) { - identityEditDTO.setOccupationName(benificiaryDetails.getOccupation()); - } else if (null != benificiaryDetails.getI_bendemographics() && - null != benificiaryDetails.getI_bendemographics().getOccupation()) { - identityEditDTO.setOccupationName(benificiaryDetails.getI_bendemographics().getOccupation()); - } else { - identityEditDTO.setOccupationName(benificiaryDetails.getOccupationName()); - } - - if (null != benificiaryDetails.getEducation()) { - identityEditDTO.setEducation(benificiaryDetails.getEducation()); - } else if (null != benificiaryDetails.getI_bendemographics() && - null != benificiaryDetails.getI_bendemographics().getEducationName()) { - identityEditDTO.setEducation(benificiaryDetails.getI_bendemographics().getEducationName()); - } - if(null != benificiaryDetails.getIncomeStatus()) - identityEditDTO.setIncomeStatus(benificiaryDetails.getIncomeStatus()); - else - identityEditDTO.setIncomeStatus(benificiaryDetails.getI_bendemographics().getIncomeStatus()); - } - if(benificiaryDetails!=null){ - //updateDeathOfBenificiary(benificiaryDetails); - } - - } - - private int updateDemographics(BeneficiaryDemographicsModel i_BenDemographics) { - int updatedRows = 0; - System.out.println(i_BenDemographics); - - return updatedRows; - } - - @Override - public String save(BeneficiaryModel beneficiaryModel, HttpServletRequest servletRequest) throws Exception { - - logger.info("benificiaryDetails: " + beneficiaryModel); - - CommonIdentityDTO identityDTO = identityMapper.beneficiaryModelCommonIdentityDTO(beneficiaryModel); - - setSaveDemographicDetails(identityDTO,beneficiaryModel); + @Autowired + CommonIdentityMapper identityMapper; + @Autowired + IdentityBeneficiaryService identityBeneficiaryService; + + @Autowired + IdentityBenEditMapper identityBenEditMapper; + + @Autowired + private WelcomeBenificarySmsService welcomeBenificarySmsService; + + @Autowired + Validator validator; + + @Autowired + private BeneficiaryRepo beneficiaryRepo; + @Autowired + OutboundHistoryRepository outboundHistoryRepository; + + /** + * IemrUserRegisterRepository declare + */ + // private BeneficiaryRepository benificiaryRepository; + + /** + * Inject IemrUserRegisterRepository + */ + + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + + @Override + public Beneficiary save(Beneficiary benificiaryDetails) { + + logger.info("benificiaryDetails: " + benificiaryDetails); + + return new Beneficiary(); // savedBenificiaryDetails; + } + + @Async + private void updateBeneficiaryID(String beneficiaryID, Long beneficiaryRegID) { + try { + // benificiaryRepository.addBeneficiaryID(beneficiaryID, beneficiaryRegID); + } catch (Exception e) { + logger.error("updateBeneficiaryID failed with error " + e.getMessage(), e); + } + } + + @Async + @Override + public Integer updateBenificiary(BeneficiaryModel benificiaryDetails, String auth) throws IEMRException { + Integer updatedRows = 0; + IdentityEditDTO identityEditDTO = identityBenEditMapper.BenToIdentityEditMapper(benificiaryDetails); + setDemographicDetails(identityEditDTO, benificiaryDetails); + + + if (benificiaryDetails.getBeneficiaryIdentities() != null + && benificiaryDetails.getBeneficiaryIdentities().size() > 0) { + identityEditDTO.setIdentities(Identity.createIdentity(benificiaryDetails.getBeneficiaryIdentities(), + benificiaryDetails.getCreatedBy())); + } + identityEditDTO.setDob(benificiaryDetails.getDOB()); + updatedRows = identityBeneficiaryService.editIdentityEditDTO(identityEditDTO, auth, + benificiaryDetails.getIs1097()); + logger.info("updateBen"); + //updateDeathOfBenificiary(benificiaryDetails); + return updatedRows; + } + + + private void setDemographicDetails(IdentityEditDTO identityEditDTO, BeneficiaryModel benificiaryDetails) { + if (null != benificiaryDetails.getI_bendemographics()) { + identityEditDTO.setCommunity(benificiaryDetails.getI_bendemographics().getCommunityName()); + identityEditDTO.setCommunityName(benificiaryDetails.getI_bendemographics().getCommunityName()); + if (null != benificiaryDetails.getReligion()) + identityEditDTO.setReligion(benificiaryDetails.getReligion()); + else if (null != benificiaryDetails.getI_bendemographics().getReligion()) + identityEditDTO.setReligion(benificiaryDetails.getI_bendemographics().getReligion()); + else + identityEditDTO.setReligion(benificiaryDetails.getI_bendemographics().getReligionName()); + + if (null != benificiaryDetails.getOccupation()) { + identityEditDTO.setOccupationName(benificiaryDetails.getOccupation()); + } else if (null != benificiaryDetails.getI_bendemographics() && + null != benificiaryDetails.getI_bendemographics().getOccupation()) { + identityEditDTO.setOccupationName(benificiaryDetails.getI_bendemographics().getOccupation()); + } else { + identityEditDTO.setOccupationName(benificiaryDetails.getOccupationName()); + } + + if (null != benificiaryDetails.getEducation()) { + identityEditDTO.setEducation(benificiaryDetails.getEducation()); + } else if (null != benificiaryDetails.getI_bendemographics() && + null != benificiaryDetails.getI_bendemographics().getEducationName()) { + identityEditDTO.setEducation(benificiaryDetails.getI_bendemographics().getEducationName()); + } + if (null != benificiaryDetails.getIncomeStatus()) + identityEditDTO.setIncomeStatus(benificiaryDetails.getIncomeStatus()); + else + identityEditDTO.setIncomeStatus(benificiaryDetails.getI_bendemographics().getIncomeStatus()); + } + if (benificiaryDetails != null) { + //updateDeathOfBenificiary(benificiaryDetails); + } + + } + + private int updateDemographics(BeneficiaryDemographicsModel i_BenDemographics) { + int updatedRows = 0; + System.out.println(i_BenDemographics); + + return updatedRows; + } + + @Override + public String save(BeneficiaryModel beneficiaryModel, HttpServletRequest servletRequest) throws Exception { + + logger.info("benificiaryDetails: " + beneficiaryModel); + + CommonIdentityDTO identityDTO = identityMapper.beneficiaryModelCommonIdentityDTO(beneficiaryModel); + + setSaveDemographicDetails(identityDTO, beneficiaryModel); // identityDTO.setOtherFields(beneficiaryModel.getOtherFields()); - identityDTO.setIsConsent(beneficiaryModel.getIsConsent()); - - identityDTO.setFaceEmbedding(beneficiaryModel.getFaceEmbedding()); - identityDTO.setEmergencyRegistration(beneficiaryModel.isEmergencyRegistration()); - identityDTO - .setBenFamilyDTOs(identityMapper.benPhoneMapListToBenFamilyDTOList(beneficiaryModel.getBenPhoneMaps())); - String request = new Gson().toJson(identityDTO); - - - if (beneficiaryModel.getIs1097() == null) - beneficiaryModel.setIs1097(false); - - String identityResponse = identityBeneficiaryService.getIdentityResponse(request, - servletRequest.getHeader("authorization"), beneficiaryModel.getIs1097()); - JSONObject responseObj = new JSONObject(identityResponse); - BeneficiaryModel beneficiary = new BeneficiaryModel(); - if (responseObj.has("response")) { - OutputResponse response = InputMapper.getInstance() - .fromJson(responseObj.getJSONObject("response").toString(), OutputResponse.class); - if (response.isSuccess()) { - BeneficiariesDTO createdBen = InputMapper.getInstance().fromJson(response.getData(), - BeneficiariesDTO.class); - beneficiaryModel.setBeneficiaryRegID(Long.parseLong(createdBen.getBenRegId().toString())); - beneficiaryModel.setBeneficiaryID(createdBen.getBenId().toString()); - beneficiary = beneficiaryModel; - } else { - return response.toString(); - } - if (beneficiary != null && beneficiary.getBenPhoneMaps() != null && !beneficiary.getBenPhoneMaps().isEmpty()) { - String phoneNo = beneficiary.getBenPhoneMaps().get(0).getPhoneNo(); - - if (phoneNo != null && !phoneNo.trim().isEmpty()) { - String beneficiaryName = (beneficiary.getFirstName() != null ? beneficiary.getFirstName() : "") + " " + - (beneficiary.getLastName() != null ? beneficiary.getLastName() : ""); - - try { - logger.info("[SMS] Attempting to send welcome SMS to: " + phoneNo); - String smsResult = welcomeBenificarySmsService.sendWelcomeSMStoBenificiary( - phoneNo, - beneficiaryName.trim(), - beneficiary.getBeneficiaryID() - ); - logger.info("[SMS] Result: " + smsResult); - } catch (Exception smsError) { - // SMS failed but beneficiary is already created - don't fail the request - logger.warn("[SMS] Failed to send SMS: " + smsError.getMessage() + - " - But beneficiary already created successfully"); - } - } - } - - } - return OutputMapper.gson().toJson(beneficiary); - } - - - - private void setSaveDemographicDetails(CommonIdentityDTO identityDTO, BeneficiaryModel beneficiaryModel) { - if(null != beneficiaryModel.getI_bendemographics()) { - identityDTO.setCommunity(beneficiaryModel.getI_bendemographics().getCommunityName()); - if(null != beneficiaryModel.getReligion()) - identityDTO.setReligion(beneficiaryModel.getReligion()); - else if(null != beneficiaryModel.getI_bendemographics().getReligion()) - identityDTO.setReligion(beneficiaryModel.getI_bendemographics().getReligion()); - else - identityDTO.setReligion(beneficiaryModel.getI_bendemographics().getReligionName()); - - if (null != beneficiaryModel.getOccupation()) { - identityDTO.setOccupationName(beneficiaryModel.getOccupation()); - } else if (null != beneficiaryModel.getI_bendemographics() && - null != beneficiaryModel.getI_bendemographics().getOccupation()) { - identityDTO.setOccupationName(beneficiaryModel.getI_bendemographics().getOccupation()); - } else { - identityDTO.setOccupationName(beneficiaryModel.getOccupationName()); - } - - if (null != beneficiaryModel.getEducation()) { - identityDTO.setEducation(beneficiaryModel.getEducation()); - } else if (null != beneficiaryModel.getI_bendemographics() && - null != beneficiaryModel.getI_bendemographics().getEducationName()) { - identityDTO.setEducation(beneficiaryModel.getI_bendemographics().getEducationName()); - } - - - - if(null != beneficiaryModel.getIncomeStatus()) - identityDTO.setIncomeStatus(beneficiaryModel.getIncomeStatus()); - else - identityDTO.setIncomeStatus(beneficiaryModel.getI_bendemographics().getIncomeStatus()); - } - if(beneficiaryModel!=null){ - // updateDeathOfBenificiary(beneficiaryModel); - } - - } - - @Override - public Integer updateCommunityorEducation(BeneficiaryModel benificiaryDetails, String auth) throws IEMRException { - IdentityEditDTO identityEditDTO = new IdentityEditDTO(); - identityEditDTO.setBeneficiaryRegId(new BigInteger(benificiaryDetails.getBeneficiaryRegID() + "")); - if (benificiaryDetails.getI_bendemographics() != null) { - identityEditDTO.setCommunityId(benificiaryDetails.getI_bendemographics().getCommunityID()); - identityEditDTO.setEducationId(benificiaryDetails.getI_bendemographics().getEducationID()); - } - - Integer updatedRows = 0; - updatedRows = identityBeneficiaryService.editIdentityEditDTOCommunityorEducation(identityEditDTO, auth, - benificiaryDetails.getIs1097()); - // updateBeneficiaryPreferredLanguage(identityEditDTO, auth); - return updatedRows; - } - - private void updateMCTSRecord(BeneficiaryModel beneficiaryModel) { - List mctsOutboundCallDetails = new ArrayList(); - - try { - - mctsOutboundCallDetails = outboundHistoryRepository.checkBenExist(beneficiaryModel.getBeneficiaryRegID()); - - MctsOutboundCallDetail callDetail = mctsOutboundCallDetails.get(0); - - if (callDetail != null && callDetail.getIsMother() != null) { - - String firstName = beneficiaryModel.getFirstName(); - String lastName = beneficiaryModel.getLastName(); - String name = ""; - if (lastName != null && !lastName.equalsIgnoreCase("")) { - name = firstName + " " + lastName; - } else { - name = firstName; - } - - Integer age = beneficiaryModel.getAge(); - - String districtName = outboundHistoryRepository - .getDistrictName(beneficiaryModel.getI_bendemographics().getDistrictID()); - String talukaName = outboundHistoryRepository - .getBlockName(beneficiaryModel.getI_bendemographics().getBlockID()); - String villageName = outboundHistoryRepository - .getVillageName(beneficiaryModel.getI_bendemographics().getDistrictBranchID()); - - String gender = null; - if (beneficiaryModel.getGenderID() == 1) { - gender = "Male"; - } else if (beneficiaryModel.getGenderID() == 2) { - gender = "Female"; - } else { - gender = "Transgender"; - } - - Timestamp lastModDate = Timestamp.valueOf(LocalDateTime.now()); - if (callDetail.getIsMother() == true) { - int updateRow = outboundHistoryRepository.updateMotherData(name, age, districtName, talukaName, - villageName, lastModDate, beneficiaryModel.getBeneficiaryRegID()); - } else { - int updateRow = outboundHistoryRepository.updateChildData(name, gender, districtName, talukaName, - villageName, lastModDate, beneficiaryModel.getBeneficiaryRegID()); - - } - } - } catch (Exception e) { - - } - - } - - @Override - public String generateBeneficiaryIDs(String request, HttpServletRequest servletRequest) throws Exception { - - logger.info("request: " + request.toString()); - List listBen = identityBeneficiaryService.generateBeneficiaryIDs(request, - servletRequest.getHeader("authorization")); - - return listBen.toString(); - } + identityDTO.setIsConsent(beneficiaryModel.getIsConsent()); + + identityDTO.setFaceEmbedding(beneficiaryModel.getFaceEmbedding()); + identityDTO.setEmergencyRegistration(beneficiaryModel.isEmergencyRegistration()); + identityDTO + .setBenFamilyDTOs(identityMapper.benPhoneMapListToBenFamilyDTOList(beneficiaryModel.getBenPhoneMaps())); + String request = new Gson().toJson(identityDTO); + + + if (beneficiaryModel.getIs1097() == null) + beneficiaryModel.setIs1097(false); + + String identityResponse = identityBeneficiaryService.getIdentityResponse(request, + servletRequest.getHeader("authorization"), beneficiaryModel.getIs1097()); + JSONObject responseObj = new JSONObject(identityResponse); + BeneficiaryModel beneficiary = new BeneficiaryModel(); + if (responseObj.has("response")) { + OutputResponse response = InputMapper.getInstance() + .fromJson(responseObj.getJSONObject("response").toString(), OutputResponse.class); + if (response.isSuccess()) { + BeneficiariesDTO createdBen = InputMapper.getInstance().fromJson(response.getData(), + BeneficiariesDTO.class); + beneficiaryModel.setBeneficiaryRegID(Long.parseLong(createdBen.getBenRegId().toString())); + beneficiaryModel.setBeneficiaryID(createdBen.getBenId().toString()); + beneficiary = beneficiaryModel; + } else { + return response.toString(); + } + if (beneficiary != null && beneficiary.getBenPhoneMaps() != null && !beneficiary.getBenPhoneMaps().isEmpty()) { + String phoneNo = beneficiary.getBenPhoneMaps().get(0).getPhoneNo(); + + if (phoneNo != null && !phoneNo.trim().isEmpty()) { + String beneficiaryName = (beneficiary.getFirstName() != null ? beneficiary.getFirstName() : "") + " " + + (beneficiaryModel.getLastName() != null ? beneficiaryModel.getLastName() : ""); + + try { + logger.info("[SMS] Attempting to send welcome SMS to: " + phoneNo); + Optional rmnchBeneficiaryDetailsRmnch = beneficiaryRepo.findById(beneficiary.getBeneficiaryRegID()); + if (rmnchBeneficiaryDetailsRmnch.isPresent()) { + String smsResult = welcomeBenificarySmsService.sendWelcomeSMStoBenificiary( + phoneNo, + beneficiaryName.trim(), + beneficiary.getBeneficiaryID() + ); + logger.info("[SMS] Result: " + smsResult); + } + + } catch (Exception smsError) { + // SMS failed but beneficiary is already created - don't fail the request + logger.warn("[SMS] Failed to send SMS: " + smsError.getMessage() + + " - But beneficiary already created successfully"); + } + } + } + + } + return OutputMapper.gson().toJson(beneficiary); + } + + + private void setSaveDemographicDetails(CommonIdentityDTO identityDTO, BeneficiaryModel beneficiaryModel) { + if (null != beneficiaryModel.getI_bendemographics()) { + identityDTO.setCommunity(beneficiaryModel.getI_bendemographics().getCommunityName()); + if (null != beneficiaryModel.getReligion()) + identityDTO.setReligion(beneficiaryModel.getReligion()); + else if (null != beneficiaryModel.getI_bendemographics().getReligion()) + identityDTO.setReligion(beneficiaryModel.getI_bendemographics().getReligion()); + else + identityDTO.setReligion(beneficiaryModel.getI_bendemographics().getReligionName()); + + if (null != beneficiaryModel.getOccupation()) { + identityDTO.setOccupationName(beneficiaryModel.getOccupation()); + } else if (null != beneficiaryModel.getI_bendemographics() && + null != beneficiaryModel.getI_bendemographics().getOccupation()) { + identityDTO.setOccupationName(beneficiaryModel.getI_bendemographics().getOccupation()); + } else { + identityDTO.setOccupationName(beneficiaryModel.getOccupationName()); + } + + if (null != beneficiaryModel.getEducation()) { + identityDTO.setEducation(beneficiaryModel.getEducation()); + } else if (null != beneficiaryModel.getI_bendemographics() && + null != beneficiaryModel.getI_bendemographics().getEducationName()) { + identityDTO.setEducation(beneficiaryModel.getI_bendemographics().getEducationName()); + } + + + if (null != beneficiaryModel.getIncomeStatus()) + identityDTO.setIncomeStatus(beneficiaryModel.getIncomeStatus()); + else + identityDTO.setIncomeStatus(beneficiaryModel.getI_bendemographics().getIncomeStatus()); + } + if (beneficiaryModel != null) { + // updateDeathOfBenificiary(beneficiaryModel); + } + + } + + @Override + public Integer updateCommunityorEducation(BeneficiaryModel benificiaryDetails, String auth) throws IEMRException { + IdentityEditDTO identityEditDTO = new IdentityEditDTO(); + identityEditDTO.setBeneficiaryRegId(new BigInteger(benificiaryDetails.getBeneficiaryRegID() + "")); + if (benificiaryDetails.getI_bendemographics() != null) { + identityEditDTO.setCommunityId(benificiaryDetails.getI_bendemographics().getCommunityID()); + identityEditDTO.setEducationId(benificiaryDetails.getI_bendemographics().getEducationID()); + } + + Integer updatedRows = 0; + updatedRows = identityBeneficiaryService.editIdentityEditDTOCommunityorEducation(identityEditDTO, auth, + benificiaryDetails.getIs1097()); + // updateBeneficiaryPreferredLanguage(identityEditDTO, auth); + return updatedRows; + } + + private void updateMCTSRecord(BeneficiaryModel beneficiaryModel) { + List mctsOutboundCallDetails = new ArrayList(); + + try { + + mctsOutboundCallDetails = outboundHistoryRepository.checkBenExist(beneficiaryModel.getBeneficiaryRegID()); + + MctsOutboundCallDetail callDetail = mctsOutboundCallDetails.get(0); + + if (callDetail != null && callDetail.getIsMother() != null) { + + String firstName = beneficiaryModel.getFirstName(); + String lastName = beneficiaryModel.getLastName(); + String name = ""; + if (lastName != null && !lastName.equalsIgnoreCase("")) { + name = firstName + " " + lastName; + } else { + name = firstName; + } + + Integer age = beneficiaryModel.getAge(); + + String districtName = outboundHistoryRepository + .getDistrictName(beneficiaryModel.getI_bendemographics().getDistrictID()); + String talukaName = outboundHistoryRepository + .getBlockName(beneficiaryModel.getI_bendemographics().getBlockID()); + String villageName = outboundHistoryRepository + .getVillageName(beneficiaryModel.getI_bendemographics().getDistrictBranchID()); + + String gender = null; + if (beneficiaryModel.getGenderID() == 1) { + gender = "Male"; + } else if (beneficiaryModel.getGenderID() == 2) { + gender = "Female"; + } else { + gender = "Transgender"; + } + + Timestamp lastModDate = Timestamp.valueOf(LocalDateTime.now()); + if (callDetail.getIsMother() == true) { + int updateRow = outboundHistoryRepository.updateMotherData(name, age, districtName, talukaName, + villageName, lastModDate, beneficiaryModel.getBeneficiaryRegID()); + } else { + int updateRow = outboundHistoryRepository.updateChildData(name, gender, districtName, talukaName, + villageName, lastModDate, beneficiaryModel.getBeneficiaryRegID()); + + } + } + } catch (Exception e) { + + } + + } + + @Override + public String generateBeneficiaryIDs(String request, HttpServletRequest servletRequest) throws Exception { + + logger.info("request: " + request.toString()); + List listBen = identityBeneficiaryService.generateBeneficiaryIDs(request, + servletRequest.getHeader("authorization")); + + return listBen.toString(); + } } From 646b0d2630b70e962aca966bc202da1ba4cfa98d Mon Sep 17 00:00:00 2001 From: Saurav Mishra Date: Fri, 17 Apr 2026 17:07:12 +0530 Subject: [PATCH 3/3] fix double ben id issue on welcome sms --- .../beneficiary/BeneficiaryRepo.java | 28 ------------------- .../RegisterBenificiaryServiceImpl.java | 25 ++++++----------- 2 files changed, 8 insertions(+), 45 deletions(-) delete mode 100644 src/main/java/com/iemr/common/repository/beneficiary/BeneficiaryRepo.java diff --git a/src/main/java/com/iemr/common/repository/beneficiary/BeneficiaryRepo.java b/src/main/java/com/iemr/common/repository/beneficiary/BeneficiaryRepo.java deleted file mode 100644 index 0fc156c3..00000000 --- a/src/main/java/com/iemr/common/repository/beneficiary/BeneficiaryRepo.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.iemr.common.repository.beneficiary; - - -import com.iemr.common.model.beneficiary.RMNCHBeneficiaryDetailsRmnch; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.query.Param; -import org.springframework.stereotype.Repository; - -import java.math.BigInteger; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Optional; - -@Repository -public interface BeneficiaryRepo extends JpaRepository { - - @Query(nativeQuery = true, value = " select UserName from db_iemr.m_user where UserID = :userId and deleted is false ") - String getUserName(@Param("userId") Integer userId); - - Optional findById(Long benID); - - -} diff --git a/src/main/java/com/iemr/common/service/beneficiary/RegisterBenificiaryServiceImpl.java b/src/main/java/com/iemr/common/service/beneficiary/RegisterBenificiaryServiceImpl.java index bf3d410d..95b38c9f 100644 --- a/src/main/java/com/iemr/common/service/beneficiary/RegisterBenificiaryServiceImpl.java +++ b/src/main/java/com/iemr/common/service/beneficiary/RegisterBenificiaryServiceImpl.java @@ -32,9 +32,7 @@ import java.util.Optional; import com.iemr.common.model.beneficiary.RMNCHBeneficiaryDetailsRmnch; -import com.iemr.common.repository.beneficiary.BeneficiaryRepo; import com.iemr.common.service.welcomeSms.WelcomeBenificarySmsService; -import com.iemr.common.service.welcomeSms.WelcomeBenificarySmsServiceImpl; import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -84,8 +82,6 @@ public class RegisterBenificiaryServiceImpl implements RegisterBenificiaryServic @Autowired Validator validator; - @Autowired - private BeneficiaryRepo beneficiaryRepo; @Autowired OutboundHistoryRepository outboundHistoryRepository; @@ -134,7 +130,6 @@ public Integer updateBenificiary(BeneficiaryModel benificiaryDetails, String aut updatedRows = identityBeneficiaryService.editIdentityEditDTO(identityEditDTO, auth, benificiaryDetails.getIs1097()); logger.info("updateBen"); - //updateDeathOfBenificiary(benificiaryDetails); return updatedRows; } @@ -170,9 +165,7 @@ else if (null != benificiaryDetails.getI_bendemographics().getReligion()) else identityEditDTO.setIncomeStatus(benificiaryDetails.getI_bendemographics().getIncomeStatus()); } - if (benificiaryDetails != null) { - //updateDeathOfBenificiary(benificiaryDetails); - } + } @@ -229,15 +222,13 @@ public String save(BeneficiaryModel beneficiaryModel, HttpServletRequest servlet try { logger.info("[SMS] Attempting to send welcome SMS to: " + phoneNo); - Optional rmnchBeneficiaryDetailsRmnch = beneficiaryRepo.findById(beneficiary.getBeneficiaryRegID()); - if (rmnchBeneficiaryDetailsRmnch.isPresent()) { - String smsResult = welcomeBenificarySmsService.sendWelcomeSMStoBenificiary( - phoneNo, - beneficiaryName.trim(), - beneficiary.getBeneficiaryID() - ); - logger.info("[SMS] Result: " + smsResult); - } + String smsResult = welcomeBenificarySmsService.sendWelcomeSMStoBenificiary( + phoneNo, + beneficiaryName.trim(), + beneficiary.getBeneficiaryID() + + ); + logger.info("[SMS]: "+ smsResult); } catch (Exception smsError) { // SMS failed but beneficiary is already created - don't fail the request