diff --git a/src/main/java/com/iemr/common/identity/controller/IdentityController.java b/src/main/java/com/iemr/common/identity/controller/IdentityController.java index 4ac603ae..d994363f 100644 --- a/src/main/java/com/iemr/common/identity/controller/IdentityController.java +++ b/src/main/java/com/iemr/common/identity/controller/IdentityController.java @@ -24,6 +24,7 @@ import java.lang.reflect.Type; import java.math.BigInteger; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -44,11 +45,13 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.reflect.TypeToken; import com.google.gson.Gson; +import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonNull; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.google.gson.JsonPrimitive; +import com.google.gson.JsonSyntaxException; import com.iemr.common.identity.dto.BenIdImportDTO; import com.iemr.common.identity.dto.BeneficiariesDTO; import com.iemr.common.identity.dto.BeneficiariesPartialDTO; @@ -951,32 +954,57 @@ public String checkAvailablBenIDLocalServer() { return response.toString(); } - @Operation(summary = "Save server generated beneficiary ID & beneficiary registration ID to local server") - @PostMapping(path = "/saveGeneratedBenIDToLocalServer", headers = "Authorization", consumes = "application/json", produces = "application/json") - public String saveGeneratedBenIDToLocalServer( - @Param(value = "{\r\n" + " \"vanID\": \"Integer\",\r\n" - + " \"benIDRequired\": \"Integer\"\r\n" + " }") @RequestBody String regIDList) { - com.iemr.common.identity.utils.response.OutputResponse response = new com.iemr.common.identity.utils.response.OutputResponse(); - logger.info("Test: inside saveGeneratedBenIDToLocalServer method with regIDList: " + regIDList); - try { - BenIdImportDTO[] benIdImportDTOArr = InputMapper.getInstance().gson().fromJson(regIDList, - BenIdImportDTO[].class); - - List benIdImportDTOList = Arrays.asList(benIdImportDTOArr); - - int i = svc.importBenIdToLocalServer(benIdImportDTOList); - logger.info("Number of unique benid imported to local server: " + i); - if (i > 0) - response.setResponse(i + " Unique benid imported to local server"); - else { - response.setResponse("Empty or invalid data"); - logger.error("Empty or invalid data. Data Size is : " + benIdImportDTOList.size()); - } - } catch (Exception e) { - logger.error("Exception in importing benID to local server : " + e); - response.setError(5000, "error while importing benid to local server : " + e); - } - return response.toString(); - } +@Operation(summary = "Save server generated beneficiary ID & beneficiary registration ID to local server") +@PostMapping(path = "/saveGeneratedBenIDToLocalServer", headers = "Authorization", consumes = "application/json", produces = "application/json") +public String saveGeneratedBenIDToLocalServer(@RequestBody String regIDList) { + com.iemr.common.identity.utils.response.OutputResponse response = new com.iemr.common.identity.utils.response.OutputResponse(); + logger.info("Test: inside saveGeneratedBenIDToLocalServer method with regIDList: " + regIDList); + try { + JsonObject jsonObject = JsonParser.parseString(regIDList).getAsJsonObject(); + + // Extract vanID from request body + if (!jsonObject.has("vanID")) { + logger.error("vanID is missing in the request body"); + response.setError(5000, "vanID is required in the request"); + return response.toString(); + } + BigInteger vanID = jsonObject.get("vanID").getAsBigInteger(); + logger.info("Extracted vanID: " + vanID); + + // Extract benIDList array from request body + if (!jsonObject.has("benIDList")) { + logger.error("benIDList is missing in the request body"); + response.setError(5000, "benIDList is required in the request"); + return response.toString(); + } + JsonArray benIDArray = jsonObject.getAsJsonArray("benIDList"); + BenIdImportDTO[] benIdImportDTOArr = InputMapper.getInstance().gson().fromJson(benIDArray, BenIdImportDTO[].class); + List benIdImportDTOList = Arrays.asList(benIdImportDTOArr); + + logger.info("Parsed {} BenIdImportDTO records", benIdImportDTOList.size()); + + // Set vanID for each DTO + for (BenIdImportDTO dto : benIdImportDTOList) { + dto.setVanID(vanID); + } + + int i = svc.importBenIdToLocalServer(benIdImportDTOList); + logger.info("Number of unique benid imported to local server: " + i); + + if (i > 0) + response.setResponse(i + " Unique benid imported to local server"); + else { + response.setResponse("Empty or invalid data"); + logger.error("Empty or invalid data. Data Size is : " + benIdImportDTOList.size()); + } + } catch (JsonSyntaxException e) { + logger.error("Invalid JSON format in request: " + e.getMessage(), e); + response.setError(5000, "Invalid JSON format: " + e.getMessage()); + } catch (Exception e) { + logger.error("Exception in importing benID to local server : " + e.getMessage(), e); + response.setError(5000, "error while importing benid to local server : " + e.getMessage()); + } + return response.toString(); +} } diff --git a/src/main/java/com/iemr/common/identity/dto/BenIdImportDTO.java b/src/main/java/com/iemr/common/identity/dto/BenIdImportDTO.java index 319ee596..9d093e53 100644 --- a/src/main/java/com/iemr/common/identity/dto/BenIdImportDTO.java +++ b/src/main/java/com/iemr/common/identity/dto/BenIdImportDTO.java @@ -30,6 +30,7 @@ public class BenIdImportDTO { private BigInteger beneficiaryId; private String createdBy; private Timestamp createdDate; + private BigInteger vanID; public BigInteger getBenRegId() { return benRegId; @@ -63,4 +64,11 @@ public void setCreatedDate(Timestamp createdDate) { this.createdDate = createdDate; } + public void setVanID(BigInteger vanID) { + this.vanID = vanID; + } + + public BigInteger getVanID() { + return vanID; + } } diff --git a/src/main/java/com/iemr/common/identity/mapper/BenIdImportMapper.java b/src/main/java/com/iemr/common/identity/mapper/BenIdImportMapper.java index 651b0437..74715704 100644 --- a/src/main/java/com/iemr/common/identity/mapper/BenIdImportMapper.java +++ b/src/main/java/com/iemr/common/identity/mapper/BenIdImportMapper.java @@ -39,6 +39,7 @@ public interface BenIdImportMapper { @Mapping(source = "beneficiaryId", target = "beneficiaryID") @Mapping(source = "createdBy", target = "createdBy") @Mapping(source = "createdDate", target = "createdDate") + @Mapping(source = "vanID", target = "vanID") MBeneficiaryregidmapping benIdImportDTOToMBeneficiaryregidmapping(BenIdImportDTO dto); ArrayList benIdImportDTOToMBeneficiaryregidmappings(List dto); 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 a0b8761f..bbca0bd5 100644 --- a/src/main/java/com/iemr/common/identity/service/IdentityService.java +++ b/src/main/java/com/iemr/common/identity/service/IdentityService.java @@ -1738,8 +1738,6 @@ public void editIdentityEducationOrCommunity(IdentityEditDTO identity) throws Mi public int importBenIdToLocalServer(List benIdImportDTOList) { logger.info("IdentityService.importBenIdToLocalServer - start"); - logger.info("IdentityService.importBenIdToLocalServer - benIdImportDTOList size : " - + (benIdImportDTOList == null ? "size:0" : benIdImportDTOList.size())); if (!benIdImportDTOList.isEmpty()) { ArrayList mBeneficiaryregidmappingList = benIdImportMapper .benIdImportDTOToMBeneficiaryregidmappings(benIdImportDTOList); @@ -1747,11 +1745,14 @@ public int importBenIdToLocalServer(List benIdImportDTOList) { jdbcTemplate = getJdbcTemplate(); List dataList = new ArrayList<>(); Object[] objArr; - String query = " INSERT INTO m_beneficiaryregidmapping(BenRegId, BeneficiaryID, " - + " Provisioned, CreatedDate, CreatedBy, Reserved) VALUES (?,?,?,?,?,?) "; + String query = " INSERT INTO db_identity.m_beneficiaryregidmapping(BenRegId, BeneficiaryID," + + " Provisioned, CreatedDate, CreatedBy, Reserved, VanId) VALUES (?,?,?,?,?,?,?) "; logger.info("query : " + query); for (MBeneficiaryregidmapping obj : mBeneficiaryregidmappingList) { - objArr = new Object[6]; + logger.info("inside for check->",obj); + + logger.info("In for loop of importBenIdToLocalServer"+obj.getVanID()); + objArr = new Object[7]; objArr[0] = obj.getBenRegId(); objArr[1] = obj.getBeneficiaryID(); @@ -1759,6 +1760,7 @@ public int importBenIdToLocalServer(List benIdImportDTOList) { objArr[3] = obj.getCreatedDate(); objArr[4] = obj.getCreatedBy(); objArr[5] = false; + objArr[6] = obj.getVanID(); dataList.add(objArr); logger.info("regid :" + obj.getBenRegId() + " - benid :" + obj.getBeneficiaryID());