diff --git a/src/main/java/com/iemr/common/identity/controller/familyTagging/FamilyTaggingController.java b/src/main/java/com/iemr/common/identity/controller/familyTagging/FamilyTaggingController.java index 19323611..b347bd50 100644 --- a/src/main/java/com/iemr/common/identity/controller/familyTagging/FamilyTaggingController.java +++ b/src/main/java/com/iemr/common/identity/controller/familyTagging/FamilyTaggingController.java @@ -116,6 +116,20 @@ public String untagFamily(@RequestBody String comingReq) { return response.toString(); } + @Operation(summary = "Get family tagging details by beneficiary ID") + @PostMapping(value = { "/getBenFamilyDetails" }, consumes = "application/json", produces = "application/json") + public String getFamilyDetailsByBeneficiaryId(@RequestBody String comingReq) { + OutputResponse response = new OutputResponse(); + try { + String s = familyTagService.getFamilyDetailsByBeneficiaryId(comingReq); + response.setResponse(s); + } catch (Exception e) { + logger.error("Error in fetching family details by beneficiary ID : " + e); + response.setError(5000, "Error in fetching family details by beneficiary ID : " + e.getLocalizedMessage()); + } + return response.toString(); + } + @Operation(summary = "Edit beneficiary family details") @PostMapping(value = { "/editFamilyTagging" }, consumes = "application/json", produces = "application/json") public String editFamilyDetails(@RequestBody String comingReq) { diff --git a/src/main/java/com/iemr/common/identity/repo/familyTag/FamilyTagRepo.java b/src/main/java/com/iemr/common/identity/repo/familyTag/FamilyTagRepo.java index 4451fd37..88d05388 100644 --- a/src/main/java/com/iemr/common/identity/repo/familyTag/FamilyTagRepo.java +++ b/src/main/java/com/iemr/common/identity/repo/familyTag/FamilyTagRepo.java @@ -42,12 +42,10 @@ public interface FamilyTagRepo extends CrudRepository { public int untagFamily(@Param("benFamilyTagId") List benFamilyTagId,@Param("modifiedBy") String modifiedBy); - @Query("SELECT obj FROM BenFamilyMapping obj WHERE obj.familyName =:familyName AND obj.villageId =:villageId AND (obj.noOfmembers is not null " - + " AND obj.noOfmembers >0)") + @Query("SELECT obj FROM BenFamilyMapping obj WHERE obj.familyName LIKE CONCAT(:familyName, '%') AND (:villageId IS NULL OR obj.villageId =:villageId) AND (obj.deleted IS NULL OR obj.deleted = false)") List searchFamily(@Param("familyName") String familyName,@Param("villageId") Integer villageId); - - @Query("SELECT obj FROM BenFamilyMapping obj WHERE obj.familyName =:familyName AND obj.villageId =:villageId AND obj.familyId =:familyId AND (obj.noOfmembers is not null " - + " AND obj.noOfmembers >0)") + + @Query("SELECT obj FROM BenFamilyMapping obj WHERE obj.familyName LIKE CONCAT(:familyName, '%') AND (:villageId IS NULL OR obj.villageId =:villageId) AND obj.familyId =:familyId AND (obj.deleted IS NULL OR obj.deleted = false)") List searchFamilyWithFamilyId(@Param("familyName") String familyName,@Param("villageId") Integer villageId,@Param("familyId") String familyId); @Query("SELECT obj FROM BenFamilyMapping obj WHERE obj.familyId =:familyId") diff --git a/src/main/java/com/iemr/common/identity/service/IdentityService.java b/src/main/java/com/iemr/common/identity/service/IdentityService.java index 08b9fbbe..a6655b78 100644 --- a/src/main/java/com/iemr/common/identity/service/IdentityService.java +++ b/src/main/java/com/iemr/common/identity/service/IdentityService.java @@ -1337,6 +1337,8 @@ private MBeneficiarydetail convertIdentityEditDTOToMBeneficiarydetail(IdentityEd if (dto.getOtherFields() != null) { beneficiarydetail.setOtherFields(dto.getOtherFields()); } + beneficiarydetail.setSexualOrientationID(dto.getSexualOrientationID()); + beneficiarydetail.setSexualOrientationType(dto.getSexualOrientationType()); return beneficiarydetail; } diff --git a/src/main/java/com/iemr/common/identity/service/familyTagging/FamilyTagService.java b/src/main/java/com/iemr/common/identity/service/familyTagging/FamilyTagService.java index 85e8cfba..5bf22b36 100644 --- a/src/main/java/com/iemr/common/identity/service/familyTagging/FamilyTagService.java +++ b/src/main/java/com/iemr/common/identity/service/familyTagging/FamilyTagService.java @@ -36,4 +36,6 @@ public interface FamilyTagService { public String searchFamily(String request) throws IEMRException; public String editFamilyDetails(String request) throws IEMRException; + + public String getFamilyDetailsByBeneficiaryId(String request) throws IEMRException; } diff --git a/src/main/java/com/iemr/common/identity/service/familyTagging/FamilyTagServiceImpl.java b/src/main/java/com/iemr/common/identity/service/familyTagging/FamilyTagServiceImpl.java index 2a60571b..1d8ab4e3 100644 --- a/src/main/java/com/iemr/common/identity/service/familyTagging/FamilyTagServiceImpl.java +++ b/src/main/java/com/iemr/common/identity/service/familyTagging/FamilyTagServiceImpl.java @@ -37,6 +37,7 @@ import com.google.gson.JsonParser; import com.iemr.common.identity.data.familyTagging.BenFamilyMapping; import com.iemr.common.identity.data.familyTagging.FamilyMembers; +import com.iemr.common.identity.data.familyTagging.FamilySearchResponse; import com.iemr.common.identity.domain.MBeneficiarydetail; import com.iemr.common.identity.domain.MBeneficiarymapping; import com.iemr.common.identity.exception.IEMRException; @@ -264,6 +265,46 @@ public String getFamilyDetails(String request) throws IEMRException { throw new IEMRException("Error while fetching family member details :" + e.getLocalizedMessage()); } } + @Override + public String getFamilyDetailsByBeneficiaryId(String request) throws IEMRException { + try { + BenFamilyMapping reqObj = InputMapper.gson().fromJson(request, BenFamilyMapping.class); + if (reqObj.getBeneficiaryRegId() == null) + throw new IEMRException("beneficiaryRegId is required"); + + MBeneficiarymapping mapping = benMappingRepo + .getBenDetailsId(BigInteger.valueOf(reqObj.getBeneficiaryRegId())); + if (mapping == null || mapping.getBenDetailsId() == null) + throw new IEMRException("Beneficiary not found"); + + List benDetails = benDetailRepo + .findByBeneficiaryDetailsIdOrderByBeneficiaryDetailsIdAsc(mapping.getBenDetailsId()); + if (benDetails == null || benDetails.isEmpty() || benDetails.get(0).getFamilyId() == null) + return "No family tagged to this beneficiary"; + + String familyId = benDetails.get(0).getFamilyId(); + + BenFamilyMapping familyMaster = familyTagRepo.searchFamilyByFamilyId(familyId); + List memberList = benDetailRepo.getFamilyDetails(familyId); + + FamilySearchResponse resp = new FamilySearchResponse(); + if (familyMaster != null) { + resp.setFamilyId(familyMaster.getFamilyId()); + resp.setFamilyName(familyMaster.getFamilyName()); + resp.setHeadOfTheFamily(familyMaster.getFamilyHeadName()); + resp.setNoOfMembers(familyMaster.getNoOfmembers()); + } + List memberResponseList = new ArrayList<>(); + addFamilyMembersToList(memberList, memberResponseList); + resp.setFamilyMembers(memberResponseList); + + return new Gson().toJson(resp); + } catch (Exception e) { + throw new IEMRException( + "Error while fetching family details by beneficiary ID : " + e.getLocalizedMessage()); + } + } + private void addFamilyMembersToList(List list, List responseList) { StringBuilder name = new StringBuilder(""); for (MBeneficiarydetail obj : list) { diff --git a/src/main/java/com/iemr/common/identity/utils/JwtUserIdValidationFilter.java b/src/main/java/com/iemr/common/identity/utils/JwtUserIdValidationFilter.java index 172ac007..cf959aa6 100644 --- a/src/main/java/com/iemr/common/identity/utils/JwtUserIdValidationFilter.java +++ b/src/main/java/com/iemr/common/identity/utils/JwtUserIdValidationFilter.java @@ -43,6 +43,7 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo return; } String path = request.getRequestURI(); + String servletPath = request.getServletPath(); logger.info("JwtUserIdValidationFilter invoked for requestURI: {}, servletPath: {}", path, servletPath);