From 5e5512da676be99cef9b6f9a14a812db331dd25f Mon Sep 17 00:00:00 2001 From: Wasiullah Khan Jadoon Date: Wed, 21 Jan 2026 10:27:23 +0500 Subject: [PATCH] CRM Workflow Creation CRM Workflow Creation --- .../client/controller/CRMController.java | 13 ++++-- .../client/dto/ApproveCRMRequestDTO.java | 43 +++++++++++++++++++ .../aconnect/client/dto/FormCounterDTO.java | 4 +- .../aconnect/client/dto/WorkflowDTO.java | 15 +++++++ .../aconnect/client/service/CRMService.java | 24 +++++++++++ .../configuration/constant/AconnectURI.java | 1 + .../constant/TokenBypassURI.java | 1 + 7 files changed, 96 insertions(+), 5 deletions(-) create mode 100644 aconnect/src/main/java/com/mfsys/aconnect/client/dto/ApproveCRMRequestDTO.java create mode 100644 aconnect/src/main/java/com/mfsys/aconnect/client/dto/WorkflowDTO.java diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/controller/CRMController.java b/aconnect/src/main/java/com/mfsys/aconnect/client/controller/CRMController.java index f12b7d0..8a5094f 100644 --- a/aconnect/src/main/java/com/mfsys/aconnect/client/controller/CRMController.java +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/controller/CRMController.java @@ -1,13 +1,12 @@ package com.mfsys.aconnect.client.controller; +import com.mfsys.aconnect.client.dto.ApproveCRMRequestDTO; +import com.mfsys.aconnect.client.dto.WorkflowApprovalDTO; import com.mfsys.aconnect.client.dto.WorkflowRequestDTO; import com.mfsys.aconnect.client.service.CRMService; import com.mfsys.common.configuration.constant.AconnectURI; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestHeader; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController public class CRMController { @@ -31,4 +30,10 @@ public class CRMController { @RequestHeader("Authorization") String token) { return crmService.createBusinessCRM(workflowRequestDTO, token); } + + @PostMapping(AconnectURI.APPROVE_INDIVIDUAL_CRM_URI) + public Object approveCRM(@RequestBody ApproveCRMRequestDTO approveCRMRequestDTO, + @RequestHeader("Authorization") String token){ + return crmService.approveCRM(approveCRMRequestDTO, token); + } } diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/dto/ApproveCRMRequestDTO.java b/aconnect/src/main/java/com/mfsys/aconnect/client/dto/ApproveCRMRequestDTO.java new file mode 100644 index 0000000..59e97b1 --- /dev/null +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/dto/ApproveCRMRequestDTO.java @@ -0,0 +1,43 @@ +package com.mfsys.aconnect.client.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Data +public class ApproveCRMRequestDTO { + + private String workFlowId; + + private String formId; + + private String postProcessFormId; + + private String operation; + + @JsonProperty("SUS_USERCODE") + private String susUserCode; + + @JsonProperty("POR_ORGACODE") + private String porOrgacode; + + private String filter; + + @JsonProperty("$set") + private String set; + + @JsonProperty("$push") + private String push; + + private String arrayFilters; + + private Map filesMap; + + private List autoIncrementFields; + + private List formCounters; + + private WorkflowDTO workflow; +} diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/dto/FormCounterDTO.java b/aconnect/src/main/java/com/mfsys/aconnect/client/dto/FormCounterDTO.java index 23b2f83..b70dd27 100644 --- a/aconnect/src/main/java/com/mfsys/aconnect/client/dto/FormCounterDTO.java +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/dto/FormCounterDTO.java @@ -1,11 +1,13 @@ package com.mfsys.aconnect.client.dto; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; @Data public class FormCounterDTO { - private String POR_ORGACODE; + @JsonProperty("POR_ORGACODE") + private String porOrgacode; private String autoIncrementField; private int autoIncrementLength; private String paddingCharacter; diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/dto/WorkflowDTO.java b/aconnect/src/main/java/com/mfsys/aconnect/client/dto/WorkflowDTO.java new file mode 100644 index 0000000..9349e82 --- /dev/null +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/dto/WorkflowDTO.java @@ -0,0 +1,15 @@ +package com.mfsys.aconnect.client.dto; + +import lombok.Data; + +@Data +public class WorkflowDTO { + + private String workFlowId; + + private Integer workFlowRefNum; + + private String previousStage; + + private String nextStage; +} diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/service/CRMService.java b/aconnect/src/main/java/com/mfsys/aconnect/client/service/CRMService.java index 97f3af5..ca16290 100644 --- a/aconnect/src/main/java/com/mfsys/aconnect/client/service/CRMService.java +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/service/CRMService.java @@ -1,11 +1,14 @@ package com.mfsys.aconnect.client.service; +import com.mfsys.aconnect.client.dto.ApproveCRMRequestDTO; +import com.mfsys.aconnect.client.dto.WorkflowApprovalDTO; import com.mfsys.aconnect.client.dto.WorkflowRequestDTO; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.*; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; +import java.util.HashMap; import java.util.Map; @@ -62,4 +65,25 @@ public class CRMService { return ResponseEntity.status(response.getStatusCode()).body(response.getBody()); } + public Object approveCRM(ApproveCRMRequestDTO approveCRMRequestDTO, String token) { + String porOrgacode = approveCRMRequestDTO.getPorOrgacode(); + String url = crmURI + "/crm" + "/mongodb/formdata"; + HttpHeaders headers = new HttpHeaders(); + headers.set("Authorization", token); + headers.set("POR_ORGACODE", approveCRMRequestDTO.getPorOrgacode()); + headers.set("SUS_USERCODE", approveCRMRequestDTO.getSusUserCode()); + headers.setContentType(MediaType.APPLICATION_JSON); + + HttpEntity entity = new HttpEntity<>(approveCRMRequestDTO, headers); + + ResponseEntity response = restTemplate.exchange( + url, + HttpMethod.PATCH, + entity, + Map.class + ); + + return ResponseEntity.status(response.getStatusCode()).body(response.getBody()); + } + } diff --git a/common/src/main/java/com/mfsys/common/configuration/constant/AconnectURI.java b/common/src/main/java/com/mfsys/common/configuration/constant/AconnectURI.java index 40decb7..239ed6d 100644 --- a/common/src/main/java/com/mfsys/common/configuration/constant/AconnectURI.java +++ b/common/src/main/java/com/mfsys/common/configuration/constant/AconnectURI.java @@ -29,6 +29,7 @@ public interface AconnectURI { String ACCOUNT_TO_ACCOUNT_TRANSACTION_URI = TRANSACTION_URI + "/accounttoaccount"; String GL_TO_ACCOUNT_TRANSACTION_URI = TRANSACTION_URI + "/gl-account"; String INDIVIDUAL_CRM_CREATION_URI = CRM + INDIVIDUAL + "/create"; + String APPROVE_INDIVIDUAL_CRM_URI = CRM + INDIVIDUAL + "/approve"; String BUSINESS_CRM_CREATION_URI = CRM + BUSINESS + "/create"; String INDIVIDUAL_DEPOSIT_CREATION_URI = DEPOSIT + INDIVIDUAL + "/create"; String UPDATE_DEPOSIT_CREATION_URI = DEPOSIT + INDIVIDUAL + "/approval"; diff --git a/common/src/main/java/com/mfsys/common/configuration/constant/TokenBypassURI.java b/common/src/main/java/com/mfsys/common/configuration/constant/TokenBypassURI.java index e5a7689..2b5a4ce 100644 --- a/common/src/main/java/com/mfsys/common/configuration/constant/TokenBypassURI.java +++ b/common/src/main/java/com/mfsys/common/configuration/constant/TokenBypassURI.java @@ -11,6 +11,7 @@ public interface TokenBypassURI { "/aconnect/signin", "/aconnect/transactions/accounttogl", + "/aconnect/crm/individual/approve", "/aconnect/account/miscDetails", "/deposit/account/miscDetails", "/aconnect/account/getAccountDetails", -- 2.32.0