added product ID and Interest Category mapping

This commit is contained in:
2026-07-23 16:22:50 +05:30
parent 1bf845bd7b
commit d85f0c7d75
5 changed files with 191 additions and 38 deletions
@@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
@JsonInclude(JsonInclude.Include.ALWAYS) @JsonInclude(JsonInclude.Include.ALWAYS)
public class CreateDepositAccountOkRequest { public class CreateDepositAccountOkRequest {
// ---- Six dynamic fields (set in service) ---- // ---- dynamic fields (set in service) ----
@JsonProperty("AcctNum4") private long acctNum4; @JsonProperty("AcctNum4") private long acctNum4;
@JsonProperty("DfltStr1") private String dfltStr1 = ""; @JsonProperty("DfltStr1") private String dfltStr1 = "";
@JsonProperty("DfltStr2") private String dfltStr2 = ""; @JsonProperty("DfltStr2") private String dfltStr2 = "";
@@ -16,10 +16,20 @@ public class CreateDepositAccountOkRequest {
@JsonProperty("DfltStr4") private String dfltStr4 = ""; @JsonProperty("DfltStr4") private String dfltStr4 = "";
@JsonProperty("DfltStr8") private String dfltStr8 = ""; @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 ---- // ---- Fixed defaults ----
@JsonProperty("DefInt12") private int defInt12=0;
@JsonProperty("AcctNum1") private int acctNum1 = 0; @JsonProperty("AcctNum1") private int acctNum1 = 0;
@JsonProperty("DfltStr26") private String dfltStr26 = "N"; @JsonProperty("DfltStr26") private String dfltStr26 = "N";
@JsonProperty("HomeBrch1") private int homeBrch1 = 0; //@JsonProperty("HomeBrch1") private int homeBrch1 = 0;
@JsonProperty("ATMRq1") private String atmRq1 = ""; @JsonProperty("ATMRq1") private String atmRq1 = "";
@JsonProperty("Name11") private String name11 = ""; @JsonProperty("Name11") private String name11 = "";
@JsonProperty("ATMCard1") private String atmCard1 = "DOM"; @JsonProperty("ATMCard1") private String atmCard1 = "DOM";
@@ -29,11 +39,11 @@ public class CreateDepositAccountOkRequest {
@JsonProperty("AgentCode") private String agentCode = ""; @JsonProperty("AgentCode") private String agentCode = "";
@JsonProperty("Receipttype1") private int receipttype1 = 0; @JsonProperty("Receipttype1") private int receipttype1 = 0;
@JsonProperty("DefInt21") private int defInt21 = 10; // @JsonProperty("DefInt21") private int defInt21 = 10;
@JsonProperty("DefInt22") private int defInt22 = 11; // @JsonProperty("DefInt22") private int defInt22 = 67;
@JsonProperty("DefInt23") private int defInt23 = 1; // @JsonProperty("DefInt23") private int defInt23 = 1;
@JsonProperty("DefInt24") private int defInt24 = 10; // @JsonProperty("DefInt24") private int defInt24 = 10;
@JsonProperty("DefInt25") private int defInt25 = 1; // @JsonProperty("DefInt25") private int defInt25 = 0;
@JsonProperty("Intpcode1") private String intpcode1 = "R"; @JsonProperty("Intpcode1") private String intpcode1 = "R";
@JsonProperty("AcctNum2") private int acctNum2 = 0; @JsonProperty("AcctNum2") private int acctNum2 = 0;
@@ -55,7 +65,6 @@ public class CreateDepositAccountOkRequest {
@JsonProperty("DefInt5") private int defInt5 = 0; @JsonProperty("DefInt5") private int defInt5 = 0;
@JsonProperty("DefInt10") private int defInt10 = 0; @JsonProperty("DefInt10") private int defInt10 = 0;
@JsonProperty("DefInt11") private int defInt11 = 0; @JsonProperty("DefInt11") private int defInt11 = 0;
@JsonProperty("DefInt12") private int defInt12 = 0;
@JsonProperty("DfltStr49") private String dfltStr49 = ""; @JsonProperty("DfltStr49") private String dfltStr49 = "";
@JsonProperty("DefInt2") private int defInt2 = 0; @JsonProperty("DefInt2") private int defInt2 = 0;
@@ -116,7 +125,7 @@ public class CreateDepositAccountOkRequest {
@JsonProperty("DfltStr32") private String dfltStr32 = "0"; @JsonProperty("DfltStr32") private String dfltStr32 = "0";
@JsonProperty("DefInt20") private int defInt20 = 0; @JsonProperty("DefInt20") private int defInt20 = 0;
@JsonProperty("DfltStr33") private String dfltStr33 = "N"; @JsonProperty("DfltStr33") private String dfltStr33 = "N";
@JsonProperty("DfltStr34") private String dfltStr34 = ""; @JsonProperty("DfltStr34") private String dfltStr34 = "S";
@JsonProperty("DfltStr35") private String dfltStr35 = "L"; @JsonProperty("DfltStr35") private String dfltStr35 = "L";
@JsonProperty("DefInt27") private int defInt27 = 0; @JsonProperty("DefInt27") private int defInt27 = 0;
@@ -171,4 +180,28 @@ public class CreateDepositAccountOkRequest {
public String getDfltStr8() { return dfltStr8; } public String getDfltStr8() { return dfltStr8; }
public void setDfltStr8(String dfltStr8) { this.dfltStr8 = 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; }
} }
@@ -24,6 +24,29 @@ public class IpksAccountRequest {
@JsonProperty("bankId") @JsonProperty("bankId")
private String 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;
@@ -35,8 +58,35 @@ public class IpksAccountRequest {
public String getBankId() { return bankId; } public String getBankId() { return bankId; }
public void setBankId(String bankId) { this.bankId = 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; }
} }
@@ -31,8 +31,6 @@ public class CifCreateRequest {
@JsonProperty("PstCode") @JsonProperty("PstCode")
private String pstCode; private String pstCode;
@JsonProperty("CustType")
private String custType;
@JsonProperty("Dob") @JsonProperty("Dob")
private String dob; private String dob;
@@ -86,18 +84,23 @@ public class CifCreateRequest {
@JsonProperty("FatherOrSpouseName") @JsonProperty("FatherOrSpouseName")
private String fatherOrSpouseName; private String fatherOrSpouseName;
@JsonProperty("HomeBrch")
private String homeBrch;
@JsonProperty("VillageCode")
private String villageCode;
@JsonProperty("CustRisk")
private String custRisk;
// ---------- (defaulted permanently) ----------
@JsonProperty("CustType")
// ---------- Optional (defaulted permanently) ---------- private String custType = "";
@JsonProperty("CountryCode1") @JsonProperty("CountryCode1")
private String countryCode1 = "IN"; private String countryCode1 = "IN";
@@ -193,8 +196,7 @@ public class CifCreateRequest {
@JsonProperty("TfnInd") @JsonProperty("TfnInd")
private int tfnInd = 0; private int tfnInd = 0;
@JsonProperty("HomeBrch")
private int homeBrch = 0;
@JsonProperty("Cust") @JsonProperty("Cust")
private String cust = ""; private String cust = "";
@@ -232,7 +234,7 @@ public class CifCreateRequest {
private String strtDt = "00000000"; private String strtDt = "00000000";
@JsonProperty("CustGrp") @JsonProperty("CustGrp")
private String custGrp = "0102"; private String custGrp = "0101";
@JsonProperty("DfltStr27") @JsonProperty("DfltStr27")
private String dfltStr27 = ""; private String dfltStr27 = "";
@@ -309,8 +311,8 @@ public class CifCreateRequest {
@JsonProperty("SrcOtherExpns") @JsonProperty("SrcOtherExpns")
private String srcOtherExpns = ""; private String srcOtherExpns = "";
@JsonProperty("CustRisk") // @JsonProperty("CustRisk")
private String custRisk = "00"; // private String custRisk = "02";
@JsonProperty("DiffAble") @JsonProperty("DiffAble")
private String diffAble = ""; private String diffAble = "";
@@ -379,8 +381,8 @@ public class CifCreateRequest {
private String npoflag = ""; private String npoflag = "";
@JsonProperty("VillageCode") //@JsonProperty("VillageCode")
private String villageCode = "Sector"; //private String villageCode = "Sector";
// @JsonProperty("FatherOrSpouseName") // @JsonProperty("FatherOrSpouseName")
// private String fatherOrSpouseName = ""; // private String fatherOrSpouseName = "";
@@ -416,10 +418,6 @@ public class CifCreateRequest {
public void setPstCode(String pstCode) { this.pstCode = pstCode; } public void setPstCode(String pstCode) { this.pstCode = pstCode; }
public String getCustType() { return custType; }
public void setCustType(String custType) { this.custType = custType; }
public String getDob() { return dob; } public String getDob() { return dob; }
public void setDob(String dob) { this.dob = dob; } public void setDob(String dob) { this.dob = dob; }
@@ -487,6 +485,17 @@ public class CifCreateRequest {
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 {
@@ -139,6 +139,17 @@ public class IpksCustomerRequest {
@JsonProperty("bankId") @JsonProperty("bankId")
private String 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 String getBankId() { return bankId; }
public void setBankId(String bankId) { this.bankId = 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; }
} }
@@ -52,6 +52,9 @@ public class CbsIntegrationService {
// Map inbound to C-EDGE payload (null-safe defaults) // Map inbound to C-EDGE payload (null-safe defaults)
CifCreateRequest req = mapToCbs(in); CifCreateRequest req = mapToCbs(in);
req.setCustRisk("VYNB".equalsIgnoreCase(in.getBankId()) ? "00" : "02");
log.debug("[C-EDGE] CIF-CREATION Request JSON: {}", safeJson(req)); log.debug("[C-EDGE] CIF-CREATION Request JSON: {}", safeJson(req));
HttpEntity<CifCreateRequest> entity = new HttpEntity<>(req, headers); HttpEntity<CifCreateRequest> entity = new HttpEntity<>(req, headers);
@@ -185,6 +188,20 @@ public class CbsIntegrationService {
api2Req.setDfltStr3(s(m.get("DfltStr3"))); api2Req.setDfltStr3(s(m.get("DfltStr3")));
api2Req.setDfltStr4(s(m.get("DfltStr4"))); api2Req.setDfltStr4(s(m.get("DfltStr4")));
api2Req.setDfltStr8(s(m.get("DfltStr8"))); 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)); log.debug("[C-EDGE] API-2 for Account Creation: Request JSON: {}", safeJson(api2Req));
@@ -246,6 +263,27 @@ public class CbsIntegrationService {
} }
// ------------ Mapping (IpksCustomerRequest -> CifCreateRequest) ------------ // ------------ Mapping (IpksCustomerRequest -> CifCreateRequest) ------------
private static final Map<String, String> 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) { private CifCreateRequest mapToCbs(IpksCustomerRequest in) {
CifCreateRequest req = new CifCreateRequest(); CifCreateRequest req = new CifCreateRequest();
@@ -256,10 +294,9 @@ public class CbsIntegrationService {
req.setMotherMdnName(def(in.getMotherMdnName(), "")); req.setMotherMdnName(def(in.getMotherMdnName(), ""));
req.setAddr1(def(in.getAddr1(), "")); req.setAddr1(def(in.getAddr1(), ""));
req.setAddr2(def(in.getAddr2(), "")); req.setAddr2(def(in.getAddr2(), ""));
req.setAddr3(def(in.getAddr3(), "")); req.setAddr3(def(in.getDistrict(), ""));
req.setCityCode(def(in.getCityCode(), "000")); req.setCityCode(def(in.getCityCode(), "000"));
req.setPstCode(def(in.getPstCode(), "000000")); req.setPstCode(def(in.getPstCode(), "000000"));
req.setCustType(def(in.getCustType(), ""));
req.setIdentityTyp(def(in.getIdentityTyp(), "")); req.setIdentityTyp(def(in.getIdentityTyp(), ""));
req.setIdNum(def(in.getIdNum(), "")); req.setIdNum(def(in.getIdNum(), ""));
req.setDob(def(in.getDob(), "00000000")); req.setDob(def(in.getDob(), "00000000"));
@@ -274,6 +311,9 @@ public class CbsIntegrationService {
req.setNatlty(def(in.getNatlty(), "IN")); req.setNatlty(def(in.getNatlty(), "IN"));
req.setCycInd(def(in.getRelativeCode(),"")); 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; return req;
} }