From 97ca0ee48974116436a573d98b45785a0873424e Mon Sep 17 00:00:00 2001 From: vishwab1 Date: Tue, 17 Feb 2026 12:26:24 +0530 Subject: [PATCH 1/7] fix:changed the pom xml --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e83f538..4e0bd3e 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.iemr.admin admin-api - 3.6.1 + 3.6.2 war Admin-API Admin Page From 01497626c3e8d54bb7d82fe84aacbf4811939c27 Mon Sep 17 00:00:00 2001 From: vishwab1 Date: Wed, 18 Feb 2026 15:02:15 +0530 Subject: [PATCH 2/7] fix: added facilty type master change --- .../facilitytype/FacilitytypeController.java | 32 ++++++++- .../data/facilitytype/M_facilitytype.java | 70 +++++++------------ .../facilitytype/M_facilitytypeRepo.java | 10 +-- .../facilitytype/M_facilitytypeInter.java | 3 + .../M_facilitytypeServiceImpl.java | 21 +++--- 5 files changed, 77 insertions(+), 59 deletions(-) diff --git a/src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java b/src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java index bf55ebe..9be5afe 100644 --- a/src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java +++ b/src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java @@ -28,10 +28,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; - +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.iemr.admin.data.facilitytype.M_facilitytype; @@ -41,7 +42,6 @@ import io.swagger.v3.oas.annotations.Operation; - @RestController public class FacilitytypeController { private Logger logger = LoggerFactory.getLogger(this.getClass().getSimpleName()); @@ -186,4 +186,32 @@ public String checkFacilityTypeCode(@RequestBody String deleteManufacturer) { return response.toString(); } + + @Operation(summary = "Get facility types by rural/urban") + @RequestMapping(value = "/getFacilityTypesByRuralUrban", headers = "Authorization", method = { + RequestMethod.POST }, produces = { "application/json" }) + public String getFacilityTypesByRuralUrban(@RequestBody String request) { + + OutputResponse response = new OutputResponse(); + + try { + + M_facilitytype facilityDetails = InputMapper.gson().fromJson(request, M_facilitytype.class); + + ArrayList facilityData = m_facilitytypeInter + .getFacilityTypesByRuralUrban(facilityDetails.getProviderServiceMapID(), + facilityDetails.getRuralUrban()); + + response.setResponse(facilityData.toString()); + + } catch (Exception e) { + + logger.error("Unexpected error:", e); + response.setError(e); + + } + + return response.toString(); + } + } diff --git a/src/main/java/com/iemr/admin/data/facilitytype/M_facilitytype.java b/src/main/java/com/iemr/admin/data/facilitytype/M_facilitytype.java index 2a14596..6cb0a73 100644 --- a/src/main/java/com/iemr/admin/data/facilitytype/M_facilitytype.java +++ b/src/main/java/com/iemr/admin/data/facilitytype/M_facilitytype.java @@ -35,7 +35,7 @@ import jakarta.persistence.Transient; @Entity -@Table(name="m_facilitytype") +@Table(name = "m_facilitytype") public class M_facilitytype { @Id @@ -43,59 +43,55 @@ public class M_facilitytype { @Column(name = "FacilityTypeID") @Expose private Integer facilityTypeID; - + @Column(name = "FacilityTypeName") @Expose private String facilityTypeName; - + @Column(name = "FacilityTypeDesc") @Expose private String facilityTypeDesc; - + @Column(name = "FacilityTypeCode") @Expose private String facilityTypeCode; - + @Column(name = "Status") @Expose private String status; - + @Column(name = "ProviderServiceMapID") @Expose private Integer providerServiceMapID; - + @Column(name = "Deleted", insertable = false, updatable = true) @Expose private Boolean deleted; - + @Column(name = "CreatedBy") @Expose private String createdBy; - + @Column(name = "CreatedDate", insertable = false, updatable = false) @Expose private Timestamp createdDate; - + @Column(name = "ModifiedBy") @Expose private String modifiedBy; - + @Column(name = "LastModDate", insertable = false, updatable = false) @Expose private Timestamp lastModDate; - - - + + @Expose + @Column(name = "RuralUrban") + private String ruralUrban; + public M_facilitytype() { // TODO Auto-generated constructor stub } - - - - - - - + public Integer getFacilityTypeID() { return facilityTypeID; } @@ -160,8 +156,6 @@ public void setCreatedBy(String createdBy) { this.createdBy = createdBy; } - - public String getModifiedBy() { return modifiedBy; } @@ -170,44 +164,22 @@ public void setModifiedBy(String modifiedBy) { this.modifiedBy = modifiedBy; } - - public Timestamp getCreatedDate() { return createdDate; } - - - - - - public void setCreatedDate(Timestamp createdDate) { this.createdDate = createdDate; } - - - - - - public Timestamp getLastModDate() { return lastModDate; } - - - - - - public void setLastModDate(Timestamp lastModDate) { this.lastModDate = lastModDate; } - - @Transient private OutputMapper outputMapper = new OutputMapper(); @@ -216,4 +188,12 @@ public String toString() { return outputMapper.gson().toJson(this); } + public String getRuralUrban() { + return ruralUrban; + } + + public void setRuralUrban(String ruralUrban) { + this.ruralUrban = ruralUrban; + } + } diff --git a/src/main/java/com/iemr/admin/repository/facilitytype/M_facilitytypeRepo.java b/src/main/java/com/iemr/admin/repository/facilitytype/M_facilitytypeRepo.java index f4a2155..78fcfaa 100644 --- a/src/main/java/com/iemr/admin/repository/facilitytype/M_facilitytypeRepo.java +++ b/src/main/java/com/iemr/admin/repository/facilitytype/M_facilitytypeRepo.java @@ -32,16 +32,18 @@ import com.iemr.admin.data.facilitytype.M_facilitytype; @Repository -public interface M_facilitytypeRepo extends CrudRepository{ +public interface M_facilitytypeRepo extends CrudRepository { - - @Query("SELECT u FROM M_facilitytype u WHERE u.providerServiceMapID=:providerServiceMapID order by u.facilityTypeName") ArrayList getAllFicilityData(@Param("providerServiceMapID") Integer providerServiceMapID); List findByFacilityTypeCodeAndProviderServiceMapID(String facilityTypeCode, Integer providerServiceMapID); - + M_facilitytype findByFacilityTypeID(Integer facilityTypeID); + @Query("SELECT f FROM M_facilitytype f WHERE f.providerServiceMapID=:psm AND f.ruralUrban=:ruralUrban ORDER BY f.facilityTypeName") + List findByProviderServiceMapIDAndRuralUrban(@Param("psm") Integer psm, + @Param("ruralUrban") String ruralUrban); + } diff --git a/src/main/java/com/iemr/admin/service/facilitytype/M_facilitytypeInter.java b/src/main/java/com/iemr/admin/service/facilitytype/M_facilitytypeInter.java index bcb14d1..070515e 100644 --- a/src/main/java/com/iemr/admin/service/facilitytype/M_facilitytypeInter.java +++ b/src/main/java/com/iemr/admin/service/facilitytype/M_facilitytypeInter.java @@ -38,4 +38,7 @@ public interface M_facilitytypeInter { Boolean checkFacilityTypeCode(M_facilitytype manufacturer); + ArrayList getFacilityTypesByRuralUrban(Integer providerServiceMapID, String ruralUrban); + + } diff --git a/src/main/java/com/iemr/admin/service/facilitytype/M_facilitytypeServiceImpl.java b/src/main/java/com/iemr/admin/service/facilitytype/M_facilitytypeServiceImpl.java index 17bb0d7..3391ec9 100644 --- a/src/main/java/com/iemr/admin/service/facilitytype/M_facilitytypeServiceImpl.java +++ b/src/main/java/com/iemr/admin/service/facilitytype/M_facilitytypeServiceImpl.java @@ -28,44 +28,49 @@ import org.springframework.stereotype.Service; import com.iemr.admin.data.facilitytype.M_facilitytype; -import com.iemr.admin.data.manufacturer.M_Manufacturer; import com.iemr.admin.repository.facilitytype.M_facilitytypeRepo; @Service -public class M_facilitytypeServiceImpl implements M_facilitytypeInter{ +public class M_facilitytypeServiceImpl implements M_facilitytypeInter { @Autowired private M_facilitytypeRepo m_facilitytypeRepo; @Override public ArrayList getAllFicilityData(Integer providerServiceMapID) { - ArrayList data=m_facilitytypeRepo.getAllFicilityData(providerServiceMapID); + ArrayList data = m_facilitytypeRepo.getAllFicilityData(providerServiceMapID); return data; } + @Override + public ArrayList getFacilityTypesByRuralUrban(Integer providerServiceMapID, String ruralUrban) { + return new ArrayList<>(m_facilitytypeRepo.findByProviderServiceMapIDAndRuralUrban(providerServiceMapID, ruralUrban)); + } + @Override public ArrayList addAllFicilityData(List addfacilityDetails) { - ArrayList data=(ArrayList) m_facilitytypeRepo.saveAll(addfacilityDetails); + ArrayList data = (ArrayList) m_facilitytypeRepo.saveAll(addfacilityDetails); return data; } @Override public M_facilitytype editAllFicilityData(Integer facilityTypeID) { - M_facilitytype data=m_facilitytypeRepo.findByFacilityTypeID(facilityTypeID); + M_facilitytype data = m_facilitytypeRepo.findByFacilityTypeID(facilityTypeID); return data; } @Override public M_facilitytype updateFacilityData(M_facilitytype allFacilityData) { - M_facilitytype data=m_facilitytypeRepo.save(allFacilityData); + M_facilitytype data = m_facilitytypeRepo.save(allFacilityData); return data; } @Override public Boolean checkFacilityTypeCode(M_facilitytype manufacturer) { // TODO Auto-generated method stub - List manuList=m_facilitytypeRepo.findByFacilityTypeCodeAndProviderServiceMapID(manufacturer.getFacilityTypeCode() ,manufacturer.getProviderServiceMapID()); - if(manuList.size()>0) + List manuList = m_facilitytypeRepo.findByFacilityTypeCodeAndProviderServiceMapID( + manufacturer.getFacilityTypeCode(), manufacturer.getProviderServiceMapID()); + if (manuList.size() > 0) return true; return false; } From 06419a01c3074f90c5a714f0edcd9b5d47e08c8b Mon Sep 17 00:00:00 2001 From: vishwab1 Date: Wed, 25 Feb 2026 14:54:37 +0530 Subject: [PATCH 3/7] feat: created facility creation --- .../facilitytype/FacilitytypeController.java | 69 ++++++++++ .../controller/store/StoreController.java | 125 ++++++++++++++++++ .../data/facilitytype/M_facilitytype.java | 36 +++++ .../data/store/FacilityHierarchyRequest.java | 21 +++ .../data/store/FacilityVillageMapping.java | 72 ++++++++++ .../com/iemr/admin/data/store/M_Facility.java | 44 ++++++ .../admin/data/store/M_FacilityLevel.java | 88 ++++++++++++ .../facilitytype/M_FacilityLevelRepo.java | 36 +++++ .../facilitytype/M_facilitytypeRepo.java | 11 ++ .../store/FacilityVillageMappingRepo.java | 23 ++++ .../admin/repository/store/MainStoreRepo.java | 16 ++- .../facilitytype/M_facilitytypeInter.java | 7 + .../M_facilitytypeServiceImpl.java | 25 ++++ .../admin/service/store/StoreService.java | 19 ++- .../admin/service/store/StoreServiceImpl.java | 109 +++++++++++++++ 15 files changed, 696 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/iemr/admin/data/store/FacilityHierarchyRequest.java create mode 100644 src/main/java/com/iemr/admin/data/store/FacilityVillageMapping.java create mode 100644 src/main/java/com/iemr/admin/data/store/M_FacilityLevel.java create mode 100644 src/main/java/com/iemr/admin/repository/facilitytype/M_FacilityLevelRepo.java create mode 100644 src/main/java/com/iemr/admin/repository/store/FacilityVillageMappingRepo.java diff --git a/src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java b/src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java index 9be5afe..a8a8043 100644 --- a/src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java +++ b/src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java @@ -36,6 +36,7 @@ import org.springframework.web.bind.annotation.RestController; import com.iemr.admin.data.facilitytype.M_facilitytype; +import com.iemr.admin.data.store.M_FacilityLevel; import com.iemr.admin.service.facilitytype.M_facilitytypeInter; import com.iemr.admin.utils.mapper.InputMapper; import com.iemr.admin.utils.response.OutputResponse; @@ -214,4 +215,72 @@ public String getFacilityTypesByRuralUrban(@RequestBody String request) { return response.toString(); } + @Operation(summary = "Get all facility levels") + @RequestMapping(value = "/getFacilityLevels", headers = "Authorization", method = { + RequestMethod.GET }, produces = { "application/json" }) + public String getFacilityLevels() { + + OutputResponse response = new OutputResponse(); + try { + ArrayList data = m_facilitytypeInter.getFacilityLevels(); + response.setResponse(data.toString()); + } catch (Exception e) { + logger.error("Unexpected error:", e); + response.setError(e); + } + return response.toString(); + } + + @Operation(summary = "Get facility types by block") + @RequestMapping(value = "/getFacilityTypesByBlock", headers = "Authorization", method = { + RequestMethod.POST }, produces = { "application/json" }) + public String getFacilityTypesByBlock(@RequestBody String request) { + + OutputResponse response = new OutputResponse(); + try { + M_facilitytype facilityDetails = InputMapper.gson().fromJson(request, M_facilitytype.class); + ArrayList data = m_facilitytypeInter.getFacilityTypesByBlock(facilityDetails.getBlockID()); + response.setResponse(data.toString()); + } catch (Exception e) { + logger.error("Unexpected error:", e); + response.setError(e); + } + return response.toString(); + } + + @Operation(summary = "Get facility types by state") + @RequestMapping(value = "/getFacilityTypesByState", headers = "Authorization", method = { + RequestMethod.POST }, produces = { "application/json" }) + public String getFacilityTypesByState(@RequestBody String request) { + + OutputResponse response = new OutputResponse(); + try { + M_facilitytype facilityDetails = InputMapper.gson().fromJson(request, M_facilitytype.class); + ArrayList data = m_facilitytypeInter.getFacilityTypesByState(facilityDetails.getStateID()); + response.setResponse(data.toString()); + } catch (Exception e) { + logger.error("Unexpected error:", e); + response.setError(e); + } + return response.toString(); + } + + @Operation(summary = "Check if facility type name exists in state") + @RequestMapping(value = "/checkFacilityTypeName", headers = "Authorization", method = { + RequestMethod.POST }, produces = { "application/json" }) + public String checkFacilityTypeName(@RequestBody String request) { + + OutputResponse response = new OutputResponse(); + try { + M_facilitytype facilityDetails = InputMapper.gson().fromJson(request, M_facilitytype.class); + boolean exists = m_facilitytypeInter.checkFacilityTypeNameExists( + facilityDetails.getFacilityTypeName(), facilityDetails.getStateID()); + response.setResponse(String.valueOf(exists)); + } catch (Exception e) { + logger.error("Unexpected error:", e); + response.setError(e); + } + return response.toString(); + } + } diff --git a/src/main/java/com/iemr/admin/controller/store/StoreController.java b/src/main/java/com/iemr/admin/controller/store/StoreController.java index afd4be4..359c39b 100644 --- a/src/main/java/com/iemr/admin/controller/store/StoreController.java +++ b/src/main/java/com/iemr/admin/controller/store/StoreController.java @@ -35,6 +35,8 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; +import com.iemr.admin.data.store.FacilityHierarchyRequest; +import com.iemr.admin.data.store.FacilityVillageMapping; import com.iemr.admin.data.store.M_Facility; import com.iemr.admin.data.store.M_facilityMap; import com.iemr.admin.data.store.V_FetchFacility; @@ -286,6 +288,23 @@ public String getMapStore(@RequestBody V_FetchFacility facilitymap) { } + @Operation(summary = "Get facilities by block/taluk") + @RequestMapping(value = "/getFacilitiesByBlock", headers = "Authorization", method = { RequestMethod.POST }, produces = { + "application/json" }) + public String getFacilitiesByBlock(@RequestBody String request) { + + OutputResponse response = new OutputResponse(); + try { + M_Facility facility = InputMapper.gson().fromJson(request, M_Facility.class); + ArrayList data = storeService.getFacilitiesByBlock(facility.getBlockID()); + response.setResponse(data.toString()); + } catch (Exception e) { + logger.error("Unexpected error:", e); + response.setError(e); + } + return response.toString(); + } + @Operation(summary = "Check store code") @RequestMapping(value = "/checkStoreCode", headers = "Authorization", method = { RequestMethod.POST }, produces = { "application/json" }) @@ -311,4 +330,110 @@ public String checkStoreCode(@RequestBody String deleteManufacturer) { return response.toString(); } + + @Operation(summary = "Get facilities by block and facility level") + @RequestMapping(value = "/getFacilitiesByBlockAndLevel", headers = "Authorization", method = { + RequestMethod.POST }, produces = { "application/json" }) + public String getFacilitiesByBlockAndLevel(@RequestBody String request) { + + OutputResponse response = new OutputResponse(); + try { + com.iemr.admin.data.facilitytype.M_facilitytype reqObj = InputMapper.gson().fromJson(request, + com.iemr.admin.data.facilitytype.M_facilitytype.class); + ArrayList data = storeService.getFacilitiesByBlockAndLevel(reqObj.getBlockID(), + reqObj.getFacilityLevelID()); + response.setResponse(data.toString()); + } catch (Exception e) { + logger.error("Unexpected error:", e); + response.setError(e); + } + return response.toString(); + } + + @Operation(summary = "Create facility with hierarchy mapping") + @RequestMapping(value = "/createFacilityWithHierarchy", headers = "Authorization", method = { + RequestMethod.POST }, produces = { "application/json" }) + public String createFacilityWithHierarchy(@RequestBody String request) { + + OutputResponse response = new OutputResponse(); + try { + FacilityHierarchyRequest reqObj = InputMapper.gson().fromJson(request, FacilityHierarchyRequest.class); + M_Facility savedFacility = storeService.createFacilityWithHierarchy(reqObj.getFacility(), + reqObj.getVillageIDs(), reqObj.getChildFacilityIDs()); + response.setResponse(savedFacility.toString()); + } catch (Exception e) { + logger.error("Unexpected error:", e); + response.setError(e); + } + return response.toString(); + } + + @Operation(summary = "Get village IDs already mapped to facilities in a block") + @RequestMapping(value = "/getMappedVillageIDs", headers = "Authorization", method = { + RequestMethod.POST }, produces = { "application/json" }) + public String getMappedVillageIDs(@RequestBody String request) { + + OutputResponse response = new OutputResponse(); + try { + M_Facility facility = InputMapper.gson().fromJson(request, M_Facility.class); + List mappedIDs = storeService.getMappedVillageIDs(facility.getBlockID()); + response.setResponse(mappedIDs.toString()); + } catch (Exception e) { + logger.error("Unexpected error:", e); + response.setError(e); + } + return response.toString(); + } + + @Operation(summary = "Get village mappings for a facility") + @RequestMapping(value = "/getVillageMappingsByFacility", headers = "Authorization", method = { + RequestMethod.POST }, produces = { "application/json" }) + public String getVillageMappingsByFacility(@RequestBody String request) { + + OutputResponse response = new OutputResponse(); + try { + M_Facility facility = InputMapper.gson().fromJson(request, M_Facility.class); + ArrayList mappings = storeService.getVillageMappingsByFacility(facility.getFacilityID()); + response.setResponse(mappings.toString()); + } catch (Exception e) { + logger.error("Unexpected error:", e); + response.setError(e); + } + return response.toString(); + } + + @Operation(summary = "Get child facilities by parent facility ID") + @RequestMapping(value = "/getChildFacilitiesByParent", headers = "Authorization", method = { + RequestMethod.POST }, produces = { "application/json" }) + public String getChildFacilitiesByParent(@RequestBody String request) { + + OutputResponse response = new OutputResponse(); + try { + M_Facility facility = InputMapper.gson().fromJson(request, M_Facility.class); + ArrayList children = storeService.getChildFacilitiesByParent(facility.getFacilityID()); + response.setResponse(children.toString()); + } catch (Exception e) { + logger.error("Unexpected error:", e); + response.setError(e); + } + return response.toString(); + } + + @Operation(summary = "Update facility with hierarchy mapping") + @RequestMapping(value = "/updateFacilityWithHierarchy", headers = "Authorization", method = { + RequestMethod.POST }, produces = { "application/json" }) + public String updateFacilityWithHierarchy(@RequestBody String request) { + + OutputResponse response = new OutputResponse(); + try { + FacilityHierarchyRequest reqObj = InputMapper.gson().fromJson(request, FacilityHierarchyRequest.class); + M_Facility updatedFacility = storeService.updateFacilityWithHierarchy(reqObj.getFacility(), + reqObj.getVillageIDs(), reqObj.getChildFacilityIDs()); + response.setResponse(updatedFacility.toString()); + } catch (Exception e) { + logger.error("Unexpected error:", e); + response.setError(e); + } + return response.toString(); + } } diff --git a/src/main/java/com/iemr/admin/data/facilitytype/M_facilitytype.java b/src/main/java/com/iemr/admin/data/facilitytype/M_facilitytype.java index 6cb0a73..16d65ea 100644 --- a/src/main/java/com/iemr/admin/data/facilitytype/M_facilitytype.java +++ b/src/main/java/com/iemr/admin/data/facilitytype/M_facilitytype.java @@ -88,6 +88,18 @@ public class M_facilitytype { @Column(name = "RuralUrban") private String ruralUrban; + @Expose + @Column(name = "FacilityLevelID") + private Integer facilityLevelID; + + @Expose + @Column(name = "StateID") + private Integer stateID; + + @Transient + @Expose + private Integer blockID; + public M_facilitytype() { // TODO Auto-generated constructor stub } @@ -196,4 +208,28 @@ public void setRuralUrban(String ruralUrban) { this.ruralUrban = ruralUrban; } + public Integer getFacilityLevelID() { + return facilityLevelID; + } + + public void setFacilityLevelID(Integer facilityLevelID) { + this.facilityLevelID = facilityLevelID; + } + + public Integer getStateID() { + return stateID; + } + + public void setStateID(Integer stateID) { + this.stateID = stateID; + } + + public Integer getBlockID() { + return blockID; + } + + public void setBlockID(Integer blockID) { + this.blockID = blockID; + } + } diff --git a/src/main/java/com/iemr/admin/data/store/FacilityHierarchyRequest.java b/src/main/java/com/iemr/admin/data/store/FacilityHierarchyRequest.java new file mode 100644 index 0000000..5d3fdef --- /dev/null +++ b/src/main/java/com/iemr/admin/data/store/FacilityHierarchyRequest.java @@ -0,0 +1,21 @@ +package com.iemr.admin.data.store; + +import java.util.List; + +import com.google.gson.annotations.Expose; + +import lombok.Data; + +@Data +public class FacilityHierarchyRequest { + + @Expose + private M_Facility facility; + + @Expose + private List villageIDs; + + @Expose + private List childFacilityIDs; + +} diff --git a/src/main/java/com/iemr/admin/data/store/FacilityVillageMapping.java b/src/main/java/com/iemr/admin/data/store/FacilityVillageMapping.java new file mode 100644 index 0000000..227208a --- /dev/null +++ b/src/main/java/com/iemr/admin/data/store/FacilityVillageMapping.java @@ -0,0 +1,72 @@ +package com.iemr.admin.data.store; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import jakarta.persistence.Transient; +import java.sql.Timestamp; + +import org.hibernate.annotations.Formula; + +import com.google.gson.annotations.Expose; +import com.iemr.admin.utils.mapper.OutputMapper; + +import lombok.Data; + +@Entity +@Table(name = "facility_village_mapping") +@Data +public class FacilityVillageMapping { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Expose + @Column(name = "FacilityVillageMappingID") + private Long facilityVillageMappingID; + + @Expose + @Column(name = "FacilityID") + private Integer facilityID; + + @Expose + @Column(name = "DistrictBranchID") + private Integer districtBranchID; + + @Expose + @Formula("(SELECT dbm.VillageName FROM m_DistrictBranchMapping dbm WHERE dbm.DistrictBranchID = districtBranchID)") + private String villageName; + + @Expose + @Column(name = "ProviderServiceMapID") + private Integer providerServiceMapID = 0; + + @Expose + @Column(name = "Deleted", insertable = false, updatable = true) + private Boolean deleted; + + @Expose + @Column(name = "CreatedBy") + private String createdBy; + + @Expose + @Column(name = "CreatedDate", insertable = false, updatable = false) + private Timestamp createdDate; + + @Expose + @Column(name = "ModifiedBy") + private String modifiedBy; + + @Expose + @Column(name = "LastModDate", insertable = false, updatable = false) + private Timestamp lastModDate; + + @Transient + private OutputMapper outputMapper = new OutputMapper(); + + @Override + public String toString() { + return outputMapper.gson().toJson(this); + } +} diff --git a/src/main/java/com/iemr/admin/data/store/M_Facility.java b/src/main/java/com/iemr/admin/data/store/M_Facility.java index fdb575d..fc825b2 100644 --- a/src/main/java/com/iemr/admin/data/store/M_Facility.java +++ b/src/main/java/com/iemr/admin/data/store/M_Facility.java @@ -78,6 +78,18 @@ public class M_Facility { @Expose @Column(name="ProviderServiceMapID") private Integer providerServiceMapID; + @Expose + @Column(name="StateID") + private Integer stateID; + @Expose + @Column(name="DistrictID") + private Integer districtID; + @Expose + @Column(name="BlockID") + private Integer blockID; + @Expose + @Column(name="ParentFacilityID") + private Integer parentFacilityID; @Expose @Column(name="Deleted",insertable = false, updatable = true) @@ -204,6 +216,38 @@ public void setProviderServiceMapID(Integer providerServiceMapID) { this.providerServiceMapID = providerServiceMapID; } + public Integer getStateID() { + return stateID; + } + + public void setStateID(Integer stateID) { + this.stateID = stateID; + } + + public Integer getDistrictID() { + return districtID; + } + + public void setDistrictID(Integer districtID) { + this.districtID = districtID; + } + + public Integer getBlockID() { + return blockID; + } + + public void setBlockID(Integer blockID) { + this.blockID = blockID; + } + + public Integer getParentFacilityID() { + return parentFacilityID; + } + + public void setParentFacilityID(Integer parentFacilityID) { + this.parentFacilityID = parentFacilityID; + } + public Boolean getDeleted() { return deleted; } diff --git a/src/main/java/com/iemr/admin/data/store/M_FacilityLevel.java b/src/main/java/com/iemr/admin/data/store/M_FacilityLevel.java new file mode 100644 index 0000000..ef8de67 --- /dev/null +++ b/src/main/java/com/iemr/admin/data/store/M_FacilityLevel.java @@ -0,0 +1,88 @@ +/* +* 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.admin.data.store; + +import java.sql.Date; + +import com.google.gson.annotations.Expose; +import com.iemr.admin.utils.mapper.OutputMapper; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import jakarta.persistence.Transient; +import lombok.Data; + +@Entity +@Table(name = "m_facility_level") +@Data +public class M_FacilityLevel { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Expose + @Column(name = "FacilityLevelID") + private Integer facilityLevelID; + + @Expose + @Column(name = "LevelName") + private String levelName; + + @Expose + @Column(name = "LevelDescription") + private String levelDescription; + + @Expose + @Column(name = "LevelValue") + private Integer levelValue; + + @Expose + @Column(name = "Deleted", insertable = false, updatable = true) + private Boolean deleted; + + @Expose + @Column(name = "CreatedBy") + private String createdBy; + + @Expose + @Column(name = "CreatedDate", insertable = false, updatable = false) + private Date createdDate; + + @Expose + @Column(name = "ModifiedBy") + private String modifiedBy; + + @Expose + @Column(name = "LastModDate", insertable = false, updatable = false) + private Date lastModDate; + + @Transient + private OutputMapper outputMapper = new OutputMapper(); + + @Override + public String toString() { + return outputMapper.gson().toJson(this); + } +} diff --git a/src/main/java/com/iemr/admin/repository/facilitytype/M_FacilityLevelRepo.java b/src/main/java/com/iemr/admin/repository/facilitytype/M_FacilityLevelRepo.java new file mode 100644 index 0000000..0dd5d93 --- /dev/null +++ b/src/main/java/com/iemr/admin/repository/facilitytype/M_FacilityLevelRepo.java @@ -0,0 +1,36 @@ +/* +* 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.admin.repository.facilitytype; + +import java.util.ArrayList; + +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import com.iemr.admin.data.store.M_FacilityLevel; + +@Repository +public interface M_FacilityLevelRepo extends CrudRepository { + + ArrayList findByDeletedFalseOrderByLevelName(); + +} diff --git a/src/main/java/com/iemr/admin/repository/facilitytype/M_facilitytypeRepo.java b/src/main/java/com/iemr/admin/repository/facilitytype/M_facilitytypeRepo.java index 78fcfaa..430cc70 100644 --- a/src/main/java/com/iemr/admin/repository/facilitytype/M_facilitytypeRepo.java +++ b/src/main/java/com/iemr/admin/repository/facilitytype/M_facilitytypeRepo.java @@ -46,4 +46,15 @@ List findByFacilityTypeCodeAndProviderServiceMapID(String facili List findByProviderServiceMapIDAndRuralUrban(@Param("psm") Integer psm, @Param("ruralUrban") String ruralUrban); + @Query("SELECT DISTINCT ft FROM M_facilitytype ft WHERE ft.facilityTypeID IN " + + "(SELECT DISTINCT f.facilityTypeID FROM com.iemr.admin.data.store.M_Facility f " + + "WHERE f.blockID = :blockID AND f.deleted = false) " + + "AND ft.deleted = false ORDER BY ft.facilityTypeName") + List findFacilityTypesByBlock(@Param("blockID") Integer blockID); + + @Query("SELECT f FROM M_facilitytype f WHERE f.stateID = :stateID ORDER BY f.facilityTypeName") + List findByStateID(@Param("stateID") Integer stateID); + + boolean existsByFacilityTypeNameAndStateIDAndDeletedFalse(String facilityTypeName, Integer stateID); + } diff --git a/src/main/java/com/iemr/admin/repository/store/FacilityVillageMappingRepo.java b/src/main/java/com/iemr/admin/repository/store/FacilityVillageMappingRepo.java new file mode 100644 index 0000000..be16ef8 --- /dev/null +++ b/src/main/java/com/iemr/admin/repository/store/FacilityVillageMappingRepo.java @@ -0,0 +1,23 @@ +package com.iemr.admin.repository.store; + +import java.util.ArrayList; +import java.util.List; + +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; + +import com.iemr.admin.data.store.FacilityVillageMapping; + +@Repository +public interface FacilityVillageMappingRepo extends CrudRepository { + + ArrayList findByFacilityIDAndDeletedFalse(Integer facilityID); + + @Query("SELECT fvm.districtBranchID FROM FacilityVillageMapping fvm WHERE fvm.facilityID IN " + + "(SELECT f.facilityID FROM M_Facility f WHERE f.blockID = :blockID AND f.deleted = false) " + + "AND fvm.deleted = false") + List findMappedVillageIDsByBlockID(@Param("blockID") Integer blockID); + +} diff --git a/src/main/java/com/iemr/admin/repository/store/MainStoreRepo.java b/src/main/java/com/iemr/admin/repository/store/MainStoreRepo.java index 644a795..73157ad 100644 --- a/src/main/java/com/iemr/admin/repository/store/MainStoreRepo.java +++ b/src/main/java/com/iemr/admin/repository/store/MainStoreRepo.java @@ -24,6 +24,7 @@ import java.util.ArrayList; import java.util.List; +import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; @@ -55,6 +56,19 @@ ArrayList getAllMainFacility(@Param("providerServiceMapID")Integer p List findByFacilityCodeAndProviderServiceMapID(String facilityCode, Integer providerServiceMapID); M_Facility findByFacilityID(Integer facilityID); - + + ArrayList findByBlockIDOrderByFacilityName(Integer blockID); + + @Query("SELECT f FROM M_Facility f WHERE f.blockID = :blockID AND f.facilityTypeID IN " + + "(SELECT ft.facilityTypeID FROM M_facilitytype ft WHERE ft.facilityLevelID = :facilityLevelID " + + "AND ft.deleted = false) AND f.deleted = false AND f.parentFacilityID IS NULL ORDER BY f.facilityName") + ArrayList findByBlockIDAndFacilityLevel(@Param("blockID") Integer blockID, + @Param("facilityLevelID") Integer facilityLevelID); + + ArrayList findByParentFacilityIDAndDeletedFalseOrderByFacilityName(Integer parentFacilityID); + + @Modifying + @Query("UPDATE M_Facility f SET f.parentFacilityID = NULL, f.modifiedBy = :modifiedBy WHERE f.parentFacilityID = :parentFacilityID") + int clearParentFacilityID(@Param("parentFacilityID") Integer parentFacilityID, @Param("modifiedBy") String modifiedBy); } diff --git a/src/main/java/com/iemr/admin/service/facilitytype/M_facilitytypeInter.java b/src/main/java/com/iemr/admin/service/facilitytype/M_facilitytypeInter.java index 070515e..a3c8d3f 100644 --- a/src/main/java/com/iemr/admin/service/facilitytype/M_facilitytypeInter.java +++ b/src/main/java/com/iemr/admin/service/facilitytype/M_facilitytypeInter.java @@ -40,5 +40,12 @@ public interface M_facilitytypeInter { ArrayList getFacilityTypesByRuralUrban(Integer providerServiceMapID, String ruralUrban); + ArrayList getFacilityLevels(); + + ArrayList getFacilityTypesByBlock(Integer blockID); + + ArrayList getFacilityTypesByState(Integer stateID); + + boolean checkFacilityTypeNameExists(String facilityTypeName, Integer stateID); } diff --git a/src/main/java/com/iemr/admin/service/facilitytype/M_facilitytypeServiceImpl.java b/src/main/java/com/iemr/admin/service/facilitytype/M_facilitytypeServiceImpl.java index 3391ec9..1188c3b 100644 --- a/src/main/java/com/iemr/admin/service/facilitytype/M_facilitytypeServiceImpl.java +++ b/src/main/java/com/iemr/admin/service/facilitytype/M_facilitytypeServiceImpl.java @@ -28,6 +28,8 @@ import org.springframework.stereotype.Service; import com.iemr.admin.data.facilitytype.M_facilitytype; +import com.iemr.admin.data.store.M_FacilityLevel; +import com.iemr.admin.repository.facilitytype.M_FacilityLevelRepo; import com.iemr.admin.repository.facilitytype.M_facilitytypeRepo; @Service @@ -36,6 +38,9 @@ public class M_facilitytypeServiceImpl implements M_facilitytypeInter { @Autowired private M_facilitytypeRepo m_facilitytypeRepo; + @Autowired + private M_FacilityLevelRepo m_facilityLevelRepo; + @Override public ArrayList getAllFicilityData(Integer providerServiceMapID) { ArrayList data = m_facilitytypeRepo.getAllFicilityData(providerServiceMapID); @@ -75,4 +80,24 @@ public Boolean checkFacilityTypeCode(M_facilitytype manufacturer) { return false; } + @Override + public ArrayList getFacilityLevels() { + return m_facilityLevelRepo.findByDeletedFalseOrderByLevelName(); + } + + @Override + public ArrayList getFacilityTypesByBlock(Integer blockID) { + return new ArrayList<>(m_facilitytypeRepo.findFacilityTypesByBlock(blockID)); + } + + @Override + public ArrayList getFacilityTypesByState(Integer stateID) { + return new ArrayList<>(m_facilitytypeRepo.findByStateID(stateID)); + } + + @Override + public boolean checkFacilityTypeNameExists(String facilityTypeName, Integer stateID) { + return m_facilitytypeRepo.existsByFacilityTypeNameAndStateIDAndDeletedFalse(facilityTypeName, stateID); + } + } diff --git a/src/main/java/com/iemr/admin/service/store/StoreService.java b/src/main/java/com/iemr/admin/service/store/StoreService.java index 3c0edd2..2768781 100644 --- a/src/main/java/com/iemr/admin/service/store/StoreService.java +++ b/src/main/java/com/iemr/admin/service/store/StoreService.java @@ -24,6 +24,7 @@ import java.util.ArrayList; import java.util.List; +import com.iemr.admin.data.store.FacilityVillageMapping; import com.iemr.admin.data.store.M_Facility; import com.iemr.admin.data.store.M_facilityMap; import com.iemr.admin.data.store.V_FetchFacility; @@ -54,9 +55,19 @@ public interface StoreService { List getMapStore(V_FetchFacility facilitymap); Boolean checkStoreCode(M_Facility manufacturer); - - - - + ArrayList getFacilitiesByBlock(Integer blockID); + + ArrayList getFacilitiesByBlockAndLevel(Integer blockID, Integer facilityLevelID); + + M_Facility createFacilityWithHierarchy(M_Facility facility, List villageIDs, List childFacilityIDs); + + List getMappedVillageIDs(Integer blockID); + + ArrayList getVillageMappingsByFacility(Integer facilityID); + + ArrayList getChildFacilitiesByParent(Integer parentFacilityID); + + M_Facility updateFacilityWithHierarchy(M_Facility facility, List villageIDs, List childFacilityIDs); + } diff --git a/src/main/java/com/iemr/admin/service/store/StoreServiceImpl.java b/src/main/java/com/iemr/admin/service/store/StoreServiceImpl.java index da1bba8..2ded917 100644 --- a/src/main/java/com/iemr/admin/service/store/StoreServiceImpl.java +++ b/src/main/java/com/iemr/admin/service/store/StoreServiceImpl.java @@ -26,14 +26,17 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import com.iemr.admin.data.facilitytype.M_facilitytype; import com.iemr.admin.data.parkingPlace.M_Parkingplace; +import com.iemr.admin.data.store.FacilityVillageMapping; import com.iemr.admin.data.store.M_Facility; import com.iemr.admin.data.store.M_facilityMap; import com.iemr.admin.data.store.V_FetchFacility; import com.iemr.admin.data.vanMaster.M_Van; import com.iemr.admin.repository.parkingPlace.ParkingPlaceRepository; +import com.iemr.admin.repository.store.FacilityVillageMappingRepo; import com.iemr.admin.repository.store.MainStoreRepo; import com.iemr.admin.repository.store.V_FetchFacilityRepo; import com.iemr.admin.repository.vanMaster.VanMasterRepository; @@ -54,6 +57,9 @@ public class StoreServiceImpl implements StoreService { @Autowired private V_FetchFacilityRepo fetchFacilityRepo; + @Autowired + private FacilityVillageMappingRepo facilityVillageMappingRepo; + // @Autowired // private SubStoreRepo subStoreRepo; @@ -233,4 +239,107 @@ public Boolean checkStoreCode(M_Facility manufacturer) { return false; } + @Override + public ArrayList getFacilitiesByBlock(Integer blockID) { + return mainStoreRepo.findByBlockIDOrderByFacilityName(blockID); + } + + @Override + public ArrayList getFacilitiesByBlockAndLevel(Integer blockID, Integer facilityLevelID) { + return mainStoreRepo.findByBlockIDAndFacilityLevel(blockID, facilityLevelID); + } + + @Transactional + @Override + public M_Facility createFacilityWithHierarchy(M_Facility facility, List villageIDs, + List childFacilityIDs) { + M_Facility savedFacility = mainStoreRepo.save(facility); + + if (villageIDs != null && !villageIDs.isEmpty()) { + for (Integer villageID : villageIDs) { + FacilityVillageMapping mapping = new FacilityVillageMapping(); + mapping.setFacilityID(savedFacility.getFacilityID()); + mapping.setDistrictBranchID(villageID); + mapping.setCreatedBy(facility.getCreatedBy()); + mapping.setDeleted(false); + facilityVillageMappingRepo.save(mapping); + } + } + + if (childFacilityIDs != null && !childFacilityIDs.isEmpty()) { + for (Integer childID : childFacilityIDs) { + M_Facility child = mainStoreRepo.findByFacilityID(childID); + if (child != null) { + child.setParentFacilityID(savedFacility.getFacilityID()); + child.setModifiedBy(facility.getCreatedBy()); + mainStoreRepo.save(child); + } + } + } + + return savedFacility; + } + + @Override + public List getMappedVillageIDs(Integer blockID) { + return facilityVillageMappingRepo.findMappedVillageIDsByBlockID(blockID); + } + + @Override + public ArrayList getVillageMappingsByFacility(Integer facilityID) { + return facilityVillageMappingRepo.findByFacilityIDAndDeletedFalse(facilityID); + } + + @Override + public ArrayList getChildFacilitiesByParent(Integer parentFacilityID) { + return mainStoreRepo.findByParentFacilityIDAndDeletedFalseOrderByFacilityName(parentFacilityID); + } + + @Transactional + @Override + public M_Facility updateFacilityWithHierarchy(M_Facility facility, List villageIDs, + List childFacilityIDs) { + M_Facility existing = mainStoreRepo.findByFacilityID(facility.getFacilityID()); + if (existing == null) { + throw new RuntimeException("Facility not found"); + } + + existing.setFacilityName(facility.getFacilityName()); + existing.setFacilityDesc(facility.getFacilityDesc()); + existing.setModifiedBy(facility.getModifiedBy()); + M_Facility savedFacility = mainStoreRepo.save(existing); + + if (villageIDs != null) { + List oldMappings = facilityVillageMappingRepo + .findByFacilityIDAndDeletedFalse(facility.getFacilityID()); + for (FacilityVillageMapping old : oldMappings) { + old.setDeleted(true); + old.setModifiedBy(facility.getModifiedBy()); + facilityVillageMappingRepo.save(old); + } + for (Integer villageID : villageIDs) { + FacilityVillageMapping mapping = new FacilityVillageMapping(); + mapping.setFacilityID(savedFacility.getFacilityID()); + mapping.setDistrictBranchID(villageID); + mapping.setCreatedBy(facility.getModifiedBy()); + mapping.setDeleted(false); + facilityVillageMappingRepo.save(mapping); + } + } + + if (childFacilityIDs != null) { + mainStoreRepo.clearParentFacilityID(facility.getFacilityID(), facility.getModifiedBy()); + for (Integer childID : childFacilityIDs) { + M_Facility child = mainStoreRepo.findByFacilityID(childID); + if (child != null) { + child.setParentFacilityID(savedFacility.getFacilityID()); + child.setModifiedBy(facility.getModifiedBy()); + mainStoreRepo.save(child); + } + } + } + + return savedFacility; + } + } From 522942309b8c4eb762021a4484cbe56493fcad64 Mon Sep 17 00:00:00 2001 From: vishwab1 Date: Fri, 27 Feb 2026 00:11:07 +0530 Subject: [PATCH 4/7] fix: rabiit review fix --- .../com/iemr/admin/data/store/FacilityVillageMapping.java | 4 ++-- .../admin/repository/facilitytype/M_facilitytypeRepo.java | 4 ++-- .../admin/repository/store/FacilityVillageMappingRepo.java | 2 +- .../java/com/iemr/admin/repository/store/MainStoreRepo.java | 2 +- .../java/com/iemr/admin/service/store/StoreServiceImpl.java | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/iemr/admin/data/store/FacilityVillageMapping.java b/src/main/java/com/iemr/admin/data/store/FacilityVillageMapping.java index 227208a..2faf197 100644 --- a/src/main/java/com/iemr/admin/data/store/FacilityVillageMapping.java +++ b/src/main/java/com/iemr/admin/data/store/FacilityVillageMapping.java @@ -43,8 +43,8 @@ public class FacilityVillageMapping { private Integer providerServiceMapID = 0; @Expose - @Column(name = "Deleted", insertable = false, updatable = true) - private Boolean deleted; + @Column(name = "Deleted", insertable = true, updatable = true) + private Boolean deleted = false; @Expose @Column(name = "CreatedBy") diff --git a/src/main/java/com/iemr/admin/repository/facilitytype/M_facilitytypeRepo.java b/src/main/java/com/iemr/admin/repository/facilitytype/M_facilitytypeRepo.java index 430cc70..9c459c8 100644 --- a/src/main/java/com/iemr/admin/repository/facilitytype/M_facilitytypeRepo.java +++ b/src/main/java/com/iemr/admin/repository/facilitytype/M_facilitytypeRepo.java @@ -42,7 +42,7 @@ List findByFacilityTypeCodeAndProviderServiceMapID(String facili M_facilitytype findByFacilityTypeID(Integer facilityTypeID); - @Query("SELECT f FROM M_facilitytype f WHERE f.providerServiceMapID=:psm AND f.ruralUrban=:ruralUrban ORDER BY f.facilityTypeName") + @Query("SELECT f FROM M_facilitytype f WHERE f.providerServiceMapID=:psm AND f.ruralUrban=:ruralUrban AND f.deleted=false ORDER BY f.facilityTypeName") List findByProviderServiceMapIDAndRuralUrban(@Param("psm") Integer psm, @Param("ruralUrban") String ruralUrban); @@ -52,7 +52,7 @@ List findByProviderServiceMapIDAndRuralUrban(@Param("psm") Integ "AND ft.deleted = false ORDER BY ft.facilityTypeName") List findFacilityTypesByBlock(@Param("blockID") Integer blockID); - @Query("SELECT f FROM M_facilitytype f WHERE f.stateID = :stateID ORDER BY f.facilityTypeName") + @Query("SELECT f FROM M_facilitytype f WHERE f.stateID = :stateID AND f.deleted = false ORDER BY f.facilityTypeName") List findByStateID(@Param("stateID") Integer stateID); boolean existsByFacilityTypeNameAndStateIDAndDeletedFalse(String facilityTypeName, Integer stateID); diff --git a/src/main/java/com/iemr/admin/repository/store/FacilityVillageMappingRepo.java b/src/main/java/com/iemr/admin/repository/store/FacilityVillageMappingRepo.java index be16ef8..c1857f5 100644 --- a/src/main/java/com/iemr/admin/repository/store/FacilityVillageMappingRepo.java +++ b/src/main/java/com/iemr/admin/repository/store/FacilityVillageMappingRepo.java @@ -15,7 +15,7 @@ public interface FacilityVillageMappingRepo extends CrudRepository findByFacilityIDAndDeletedFalse(Integer facilityID); - @Query("SELECT fvm.districtBranchID FROM FacilityVillageMapping fvm WHERE fvm.facilityID IN " + + @Query("SELECT DISTINCT fvm.districtBranchID FROM FacilityVillageMapping fvm WHERE fvm.facilityID IN " + "(SELECT f.facilityID FROM M_Facility f WHERE f.blockID = :blockID AND f.deleted = false) " + "AND fvm.deleted = false") List findMappedVillageIDsByBlockID(@Param("blockID") Integer blockID); diff --git a/src/main/java/com/iemr/admin/repository/store/MainStoreRepo.java b/src/main/java/com/iemr/admin/repository/store/MainStoreRepo.java index 73157ad..5cb0a0d 100644 --- a/src/main/java/com/iemr/admin/repository/store/MainStoreRepo.java +++ b/src/main/java/com/iemr/admin/repository/store/MainStoreRepo.java @@ -57,7 +57,7 @@ ArrayList getAllMainFacility(@Param("providerServiceMapID")Integer p M_Facility findByFacilityID(Integer facilityID); - ArrayList findByBlockIDOrderByFacilityName(Integer blockID); + ArrayList findByBlockIDAndDeletedFalseOrderByFacilityName(Integer blockID); @Query("SELECT f FROM M_Facility f WHERE f.blockID = :blockID AND f.facilityTypeID IN " + "(SELECT ft.facilityTypeID FROM M_facilitytype ft WHERE ft.facilityLevelID = :facilityLevelID " + diff --git a/src/main/java/com/iemr/admin/service/store/StoreServiceImpl.java b/src/main/java/com/iemr/admin/service/store/StoreServiceImpl.java index 2ded917..7ea3b42 100644 --- a/src/main/java/com/iemr/admin/service/store/StoreServiceImpl.java +++ b/src/main/java/com/iemr/admin/service/store/StoreServiceImpl.java @@ -241,7 +241,7 @@ public Boolean checkStoreCode(M_Facility manufacturer) { @Override public ArrayList getFacilitiesByBlock(Integer blockID) { - return mainStoreRepo.findByBlockIDOrderByFacilityName(blockID); + return mainStoreRepo.findByBlockIDAndDeletedFalseOrderByFacilityName(blockID); } @Override From 3c27b2e96dc2a6a318e0e283188edd624c055e7b Mon Sep 17 00:00:00 2001 From: vishwab1 Date: Fri, 27 Feb 2026 00:20:12 +0530 Subject: [PATCH 5/7] fix: rabiit review fix --- .../java/com/iemr/admin/data/store/FacilityVillageMapping.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/iemr/admin/data/store/FacilityVillageMapping.java b/src/main/java/com/iemr/admin/data/store/FacilityVillageMapping.java index 2faf197..1104205 100644 --- a/src/main/java/com/iemr/admin/data/store/FacilityVillageMapping.java +++ b/src/main/java/com/iemr/admin/data/store/FacilityVillageMapping.java @@ -35,7 +35,7 @@ public class FacilityVillageMapping { private Integer districtBranchID; @Expose - @Formula("(SELECT dbm.VillageName FROM m_DistrictBranchMapping dbm WHERE dbm.DistrictBranchID = districtBranchID)") + @Formula("(SELECT dbm.VillageName FROM m_DistrictBranchMapping dbm WHERE dbm.DistrictBranchID = {alias}.DistrictBranchID)") private String villageName; @Expose From 5727f3019d117b501c029dfa04d921a6206713fe Mon Sep 17 00:00:00 2001 From: vishwab1 Date: Fri, 27 Feb 2026 00:35:14 +0530 Subject: [PATCH 6/7] fix: rabiit review fix --- .../admin/controller/facilitytype/FacilitytypeController.java | 1 - .../com/iemr/admin/data/store/FacilityVillageMapping.java | 4 ---- 2 files changed, 5 deletions(-) diff --git a/src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java b/src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java index a8a8043..da7af7a 100644 --- a/src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java +++ b/src/main/java/com/iemr/admin/controller/facilitytype/FacilitytypeController.java @@ -32,7 +32,6 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.iemr.admin.data.facilitytype.M_facilitytype; diff --git a/src/main/java/com/iemr/admin/data/store/FacilityVillageMapping.java b/src/main/java/com/iemr/admin/data/store/FacilityVillageMapping.java index 1104205..aaa84db 100644 --- a/src/main/java/com/iemr/admin/data/store/FacilityVillageMapping.java +++ b/src/main/java/com/iemr/admin/data/store/FacilityVillageMapping.java @@ -38,10 +38,6 @@ public class FacilityVillageMapping { @Formula("(SELECT dbm.VillageName FROM m_DistrictBranchMapping dbm WHERE dbm.DistrictBranchID = {alias}.DistrictBranchID)") private String villageName; - @Expose - @Column(name = "ProviderServiceMapID") - private Integer providerServiceMapID = 0; - @Expose @Column(name = "Deleted", insertable = true, updatable = true) private Boolean deleted = false; From 9ffb6a2e9eb64188021cbeef074dd5b483d443ed Mon Sep 17 00:00:00 2001 From: vishwab1 Date: Fri, 27 Feb 2026 19:43:04 +0530 Subject: [PATCH 7/7] fix: pom version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a1a6664..c48e8d8 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.iemr.admin admin-api - 3.6.2 + 3.8.1 war Admin-API Admin Page