From d85f0c7d75241e91266511f624877ca9c67ebbfb Mon Sep 17 00:00:00 2001 From: Bishwajeet Kumar Rajak Date: Thu, 23 Jul 2026 16:22:50 +0530 Subject: [PATCH] added product ID and Interest Category mapping --- .../CreateDepositAccountOkRequest.java | 53 ++++++++++++++---- .../ipks/dto/account/IpksAccountRequest.java | 50 +++++++++++++++++ .../main/ipks/dto/cif/CifCreateRequest.java | 54 +++++++++++-------- .../ipks/dto/cif/IpksCustomerRequest.java | 24 ++++++++- .../ipks/service/CbsIntegrationService.java | 48 +++++++++++++++-- 5 files changed, 191 insertions(+), 38 deletions(-) diff --git a/src/main/java/com/main/ipks/dto/account/CreateDepositAccountOkRequest.java b/src/main/java/com/main/ipks/dto/account/CreateDepositAccountOkRequest.java index 6922a22..11bdf02 100644 --- a/src/main/java/com/main/ipks/dto/account/CreateDepositAccountOkRequest.java +++ b/src/main/java/com/main/ipks/dto/account/CreateDepositAccountOkRequest.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; @JsonInclude(JsonInclude.Include.ALWAYS) public class CreateDepositAccountOkRequest { - // ---- Six dynamic fields (set in service) ---- + // ---- dynamic fields (set in service) ---- @JsonProperty("AcctNum4") private long acctNum4; @JsonProperty("DfltStr1") private String dfltStr1 = ""; @JsonProperty("DfltStr2") private String dfltStr2 = ""; @@ -16,10 +16,20 @@ public class CreateDepositAccountOkRequest { @JsonProperty("DfltStr4") private String dfltStr4 = ""; @JsonProperty("DfltStr8") private String dfltStr8 = ""; + @JsonProperty("DefInt21") private int defInt21; + @JsonProperty("DefInt22") private int defInt22; + @JsonProperty("DefInt23") private int defInt23; + @JsonProperty("DefInt24") private int defInt24; + @JsonProperty("DefInt25") private int defInt25; + + @JsonProperty("HomeBrch1") private String homeBrch1; + + // ---- Fixed defaults ---- + @JsonProperty("DefInt12") private int defInt12=0; @JsonProperty("AcctNum1") private int acctNum1 = 0; @JsonProperty("DfltStr26") private String dfltStr26 = "N"; - @JsonProperty("HomeBrch1") private int homeBrch1 = 0; + //@JsonProperty("HomeBrch1") private int homeBrch1 = 0; @JsonProperty("ATMRq1") private String atmRq1 = ""; @JsonProperty("Name11") private String name11 = ""; @JsonProperty("ATMCard1") private String atmCard1 = "DOM"; @@ -29,11 +39,11 @@ public class CreateDepositAccountOkRequest { @JsonProperty("AgentCode") private String agentCode = ""; @JsonProperty("Receipttype1") private int receipttype1 = 0; - @JsonProperty("DefInt21") private int defInt21 = 10; - @JsonProperty("DefInt22") private int defInt22 = 11; - @JsonProperty("DefInt23") private int defInt23 = 1; - @JsonProperty("DefInt24") private int defInt24 = 10; - @JsonProperty("DefInt25") private int defInt25 = 1; + // @JsonProperty("DefInt21") private int defInt21 = 10; + // @JsonProperty("DefInt22") private int defInt22 = 67; + // @JsonProperty("DefInt23") private int defInt23 = 1; + // @JsonProperty("DefInt24") private int defInt24 = 10; + // @JsonProperty("DefInt25") private int defInt25 = 0; @JsonProperty("Intpcode1") private String intpcode1 = "R"; @JsonProperty("AcctNum2") private int acctNum2 = 0; @@ -54,8 +64,7 @@ public class CreateDepositAccountOkRequest { @JsonProperty("DefInt5") private int defInt5 = 0; @JsonProperty("DefInt10") private int defInt10 = 0; - @JsonProperty("DefInt11") private int defInt11 = 0; - @JsonProperty("DefInt12") private int defInt12 = 0; + @JsonProperty("DefInt11") private int defInt11 = 0; @JsonProperty("DfltStr49") private String dfltStr49 = ""; @JsonProperty("DefInt2") private int defInt2 = 0; @@ -116,7 +125,7 @@ public class CreateDepositAccountOkRequest { @JsonProperty("DfltStr32") private String dfltStr32 = "0"; @JsonProperty("DefInt20") private int defInt20 = 0; @JsonProperty("DfltStr33") private String dfltStr33 = "N"; - @JsonProperty("DfltStr34") private String dfltStr34 = ""; + @JsonProperty("DfltStr34") private String dfltStr34 = "S"; @JsonProperty("DfltStr35") private String dfltStr35 = "L"; @JsonProperty("DefInt27") private int defInt27 = 0; @@ -171,4 +180,28 @@ public class CreateDepositAccountOkRequest { public String getDfltStr8() { return dfltStr8; } public void setDfltStr8(String dfltStr8) { this.dfltStr8 = dfltStr8; } + public int getDefInt21() { return defInt21; } + public void setDefInt21(int defInt21) { this.defInt21 = defInt21; } + + public int getDefInt22() { return defInt22; } + public void setDefInt22(int defInt22) { this.defInt22 = defInt22; } + + public int getDefInt23() { return defInt23; } + public void setDefInt23(int defInt23) { this.defInt23 = defInt23; } + + public int getDefInt24() { return defInt24; } + public void setDefInt24(int defInt24) { this.defInt24 = defInt24; } + + public int getDefInt25() { return defInt25; } + public void setDefInt25(int defInt25) { this.defInt25 = defInt25; } + + + + public String getHomeBrch1() { return homeBrch1; } + public void setHomeBrch1(String homeBrch1) { this.homeBrch1 = homeBrch1; } + + // public String getDefInt12() { return defInt12; } + // public void setDefInt12(String defInt12) { this.defInt12 = defInt12; } + + } diff --git a/src/main/java/com/main/ipks/dto/account/IpksAccountRequest.java b/src/main/java/com/main/ipks/dto/account/IpksAccountRequest.java index 93ce236..e5b7104 100644 --- a/src/main/java/com/main/ipks/dto/account/IpksAccountRequest.java +++ b/src/main/java/com/main/ipks/dto/account/IpksAccountRequest.java @@ -23,7 +23,30 @@ public class IpksAccountRequest { @NotBlank(message = "bankId must not be blank") @JsonProperty("bankId") private String bankId; + + @NotBlank(message = "branchNumber must not be blank") + @JsonProperty("branchNumber") + private String branchNumber; + @NotBlank(message = "accountType must not be blank") + @JsonProperty("accountType") + private String accountType; + + @NotBlank(message = "interestCategory must not be blank") + @JsonProperty("interestCategory") + private String interestCategory; + + @NotBlank(message = "segmentCode must not be blank") + @JsonProperty("segmentCode") + private String segmentCode; + + @NotBlank(message = "tellerNumber must not be blank") + @JsonProperty("tellerNumber") + private String tellerNumber; + + @NotBlank(message = "district must not be blank") + @JsonProperty("district") + private String district; @@ -34,9 +57,36 @@ public class IpksAccountRequest { public String getBankId() { return bankId; } public void setBankId(String bankId) { this.bankId = bankId; } + + + public String getBranchNumber() { return branchNumber; } + public void setBranchNumber(String branchNumber) { this.branchNumber = branchNumber; } + + public String getAccountType() { return accountType; } + public void setAccountType(String accountType) { this.accountType = accountType; } + + public String getInterestCategory() { return interestCategory; } + public void setInterestCategory(String interestCategory) { this.interestCategory = interestCategory; } + + public String getSegmentCode() { return segmentCode; } + public void setSegmentCode(String segmentCode) { this.segmentCode = segmentCode; } + + public String getTellerNumber() { return tellerNumber; } + public void setTellerNumber(String tellerNumber) { this.tellerNumber = tellerNumber; } + + public String getDistrict() { return district; } + public void setDistrict(String district) { this.district = district; } + } + + + + + + + diff --git a/src/main/java/com/main/ipks/dto/cif/CifCreateRequest.java b/src/main/java/com/main/ipks/dto/cif/CifCreateRequest.java index 8ce1162..bff40d3 100644 --- a/src/main/java/com/main/ipks/dto/cif/CifCreateRequest.java +++ b/src/main/java/com/main/ipks/dto/cif/CifCreateRequest.java @@ -30,9 +30,7 @@ public class CifCreateRequest { @JsonProperty("PstCode") private String pstCode; - - @JsonProperty("CustType") - private String custType; + @JsonProperty("Dob") private String dob; @@ -86,18 +84,23 @@ public class CifCreateRequest { @JsonProperty("FatherOrSpouseName") private String fatherOrSpouseName; + @JsonProperty("HomeBrch") + private String homeBrch; + + @JsonProperty("VillageCode") + private String villageCode; + + @JsonProperty("CustRisk") + private String custRisk; + // ---------- (defaulted permanently) ---------- + - - - // ---------- Optional (defaulted permanently) ---------- - - - - + @JsonProperty("CustType") + private String custType = ""; @JsonProperty("CountryCode1") private String countryCode1 = "IN"; @@ -193,8 +196,7 @@ public class CifCreateRequest { @JsonProperty("TfnInd") private int tfnInd = 0; - @JsonProperty("HomeBrch") - private int homeBrch = 0; + @JsonProperty("Cust") private String cust = ""; @@ -232,7 +234,7 @@ public class CifCreateRequest { private String strtDt = "00000000"; @JsonProperty("CustGrp") - private String custGrp = "0102"; + private String custGrp = "0101"; @JsonProperty("DfltStr27") private String dfltStr27 = ""; @@ -309,8 +311,8 @@ public class CifCreateRequest { @JsonProperty("SrcOtherExpns") private String srcOtherExpns = ""; - @JsonProperty("CustRisk") - private String custRisk = "00"; + // @JsonProperty("CustRisk") + // private String custRisk = "02"; @JsonProperty("DiffAble") private String diffAble = ""; @@ -379,8 +381,8 @@ public class CifCreateRequest { private String npoflag = ""; - @JsonProperty("VillageCode") - private String villageCode = "Sector"; + //@JsonProperty("VillageCode") + //private String villageCode = "Sector"; // @JsonProperty("FatherOrSpouseName") // private String fatherOrSpouseName = ""; @@ -414,11 +416,7 @@ public class CifCreateRequest { public String getPstCode() { return pstCode; } - public void setPstCode(String pstCode) { this.pstCode = pstCode; } - - public String getCustType() { return custType; } - - public void setCustType(String custType) { this.custType = custType; } + public void setPstCode(String pstCode) { this.pstCode = pstCode; } public String getDob() { return dob; } @@ -486,6 +484,17 @@ public class CifCreateRequest { public void setFatherOrSpouseName(String fatherOrSpouseName) { this.fatherOrSpouseName = fatherOrSpouseName; } + + public String getHomeBrch() { return homeBrch; } + public void setHomeBrch(String homeBrch) { this.homeBrch = homeBrch; } + + + public String getVillageCode() { return villageCode; } + public void setVillageCode(String villageCode) { this.villageCode = villageCode;} + + + public String getCustRisk() { return custRisk; } + public void setCustRisk(String custRisk) {this.custRisk = custRisk; } } @@ -497,4 +506,3 @@ public class CifCreateRequest { - diff --git a/src/main/java/com/main/ipks/dto/cif/IpksCustomerRequest.java b/src/main/java/com/main/ipks/dto/cif/IpksCustomerRequest.java index f6bddb9..cb7429c 100644 --- a/src/main/java/com/main/ipks/dto/cif/IpksCustomerRequest.java +++ b/src/main/java/com/main/ipks/dto/cif/IpksCustomerRequest.java @@ -138,7 +138,18 @@ public class IpksCustomerRequest { @NotBlank(message = "bankId must not be blank") @JsonProperty("bankId") private String bankId; - + + @NotBlank(message = "segmentcode must not be blank") + @JsonProperty("segmentCode") + private String segmentCode; + + @NotBlank(message = "branchcode must not be blank") + @JsonProperty("branchCode") + private String branchCode; + + @NotBlank(message = "district must not be blank") + @JsonProperty("district") + private String district; @@ -298,6 +309,17 @@ public class IpksCustomerRequest { public String getBankId() { return bankId; } public void setBankId(String bankId) { this.bankId = bankId; } + + public String getSegmentCode() { return segmentCode; } + public void setSegmentCode(String segmentCode) { this.segmentCode = segmentCode; } + + public String getBranchCode() { return branchCode; } + public void setBranchCode(String branchCode) { this.branchCode = branchCode; } + + public String getDistrict() { return district; } + public void setDistrict(String district) { this.district = district; } + + } diff --git a/src/main/java/com/main/ipks/service/CbsIntegrationService.java b/src/main/java/com/main/ipks/service/CbsIntegrationService.java index c74b839..fd7c186 100644 --- a/src/main/java/com/main/ipks/service/CbsIntegrationService.java +++ b/src/main/java/com/main/ipks/service/CbsIntegrationService.java @@ -52,6 +52,9 @@ public class CbsIntegrationService { // Map inbound to C-EDGE payload (null-safe defaults) CifCreateRequest req = mapToCbs(in); + + req.setCustRisk("VYNB".equalsIgnoreCase(in.getBankId()) ? "00" : "02"); + log.debug("[C-EDGE] CIF-CREATION Request JSON: {}", safeJson(req)); HttpEntity entity = new HttpEntity<>(req, headers); @@ -185,6 +188,20 @@ public class CbsIntegrationService { api2Req.setDfltStr3(s(m.get("DfltStr3"))); api2Req.setDfltStr4(s(m.get("DfltStr4"))); api2Req.setDfltStr8(s(m.get("DfltStr8"))); + api2Req.setHomeBrch1(reqDto.getBranchNumber()); + // api2Req.setDefInt12(reqDto.getDistrict()); + + + String combined = PRODUCT_MAPPING.get(reqDto.getBankId()); + + + + api2Req.setDefInt21(Integer.parseInt(combined.substring(0, 2))); + api2Req.setDefInt22(Integer.parseInt(combined.substring(2, 4))); + api2Req.setDefInt23(Integer.parseInt(combined.substring(4, 5))); + api2Req.setDefInt24(Integer.parseInt(combined.substring(5, 7))); + api2Req.setDefInt25(Integer.parseInt(combined.substring(7, 8))); + log.debug("[C-EDGE] API-2 for Account Creation: Request JSON: {}", safeJson(api2Req)); @@ -246,6 +263,27 @@ public class CbsIntegrationService { } // ------------ Mapping (IpksCustomerRequest -> CifCreateRequest) ------------ + + private static final Map PRODUCT_MAPPING = Map.ofEntries( + Map.entry("BBNB", "10671100"), + Map.entry("BKNB", "10671100"), + Map.entry("BWNB", "10671100"), + Map.entry("DKNB", "10671100"), + Map.entry("DJNB", "10821100"), + Map.entry("HGNB", "10671100"), + Map.entry("HWNB", "10271100"), + Map.entry("JLNB", "10891100"), + Map.entry("MRNB", "10671100"), + Map.entry("MLNB", "10451100"), + Map.entry("MUNB", "10681100"), + Map.entry("NDNB", "10671100"), + Map.entry("PLNB", "10671100"), + Map.entry("RWNB", "11421100"), + Map.entry("TMNB", "10671100"), + Map.entry("TWNB", "10671100"), + Map.entry("VYNB", "50315100") + ); + private CifCreateRequest mapToCbs(IpksCustomerRequest in) { CifCreateRequest req = new CifCreateRequest(); @@ -256,10 +294,9 @@ public class CbsIntegrationService { req.setMotherMdnName(def(in.getMotherMdnName(), "")); req.setAddr1(def(in.getAddr1(), "")); req.setAddr2(def(in.getAddr2(), "")); - req.setAddr3(def(in.getAddr3(), "")); + req.setAddr3(def(in.getDistrict(), "")); req.setCityCode(def(in.getCityCode(), "000")); - req.setPstCode(def(in.getPstCode(), "000000")); - req.setCustType(def(in.getCustType(), "")); + req.setPstCode(def(in.getPstCode(), "000000")); req.setIdentityTyp(def(in.getIdentityTyp(), "")); req.setIdNum(def(in.getIdNum(), "")); req.setDob(def(in.getDob(), "00000000")); @@ -273,7 +310,10 @@ public class CbsIntegrationService { req.setResdncyStat(def(in.getResdncyStat(), "1")); req.setNatlty(def(in.getNatlty(), "IN")); req.setCycInd(def(in.getRelativeCode(),"")); - req.setFatherOrSpouseName(def(in.getRelativeName(),"")); + req.setFatherOrSpouseName(def(in.getRelativeName(),"")); + req.setHomeBrch(def(in.getBranchCode(), "0")); + req.setVillageCode(def(in.getAddr3(), "")); + return req; }