From c835a9deb0300c3b7f9dddbb05f0c3c49063f6d3 Mon Sep 17 00:00:00 2001 From: Narayanan Madaswamy Date: Wed, 12 Aug 2026 07:46:24 +0530 Subject: [PATCH] Punching, Dedupe and CutOff Features Done --- .../lib/constants/ApplicationMessage.java | 9 + .../src/main/java/lib/models/Allocation.java | 16 + .../src/main/java/lib/models/CaseGrid.java | 13 + .../src/main/java/lib/models/CutOffList.java | 17 + .../main/java/lib/models/CutOffRecord.java | 41 ++ .../src/main/java/lib/models/DedupeBatch.java | 21 + .../src/main/java/lib/models/DedupeCase.java | 22 + .../java/lib/models/DedupeCaseSummary.java | 20 + .../main/java/lib/models/DedupeCheckData.java | 3 + .../java/lib/models/DedupeCheckRequest.java | 3 + .../main/java/lib/models/DedupeDetails.java | 20 + .../java/lib/models/DedupeMatchRecord.java | 17 + .../src/main/java/lib/models/DedupeRun.java | 17 + .../main/java/lib/models/DedupeSendCase.java | 21 + .../main/java/lib/models/DedupeWorkspace.java | 16 + .../src/main/java/lib/models/PhotoCases.java | 12 + .../main/java/lib/models/ReferenceSheet.java | 17 + .../src/main/java/lib/models/SendDedupe.java | 17 + .../main/java/lib/models/SendToOperation.java | 16 + .../src/main/java/lib/models/Telesheet.java | 17 + .../WEB-INF/app/edp/cutoff/allocation.jsp | 359 ++++++++-------- .../WEB-INF/app/edp/cutoff/cutoff.jsp | 275 ++++++------ .../WEB-INF/app/edp/cutoff/mnimblepcases.jsp | 232 +++++----- .../WEB-INF/app/edp/cutoff/phcaselist.jsp | 212 +++++----- .../WEB-INF/app/edp/cutoff/referencesheet.jsp | 336 +++++++-------- .../WEB-INF/app/edp/cutoff/sendtoopr.jsp | 399 ++++++++--------- .../WEB-INF/app/edp/cutoff/telesheet.jsp | 368 ++++++++-------- .../WEB-INF/app/edp/dedupe/dedupedo.jsp | 195 ++++----- .../WEB-INF/app/edp/dedupe/deduperun.jsp | 74 ++-- .../WEB-INF/app/edp/dedupe/dedupesend.jsp | 65 ++- .../WEB-INF/app/edp/dedupe/matchfound.jsp | 139 +++--- .../WEB-INF/app/edp/tools/addproduct.jsp | 2 +- .../WEB-INF/app/edp/tools/edpprocesspanel.jsp | 2 +- .../build/WebContent/WEB-INF/app/error.jsp | 8 +- .../WebContent/WEB-INF/app/general/sms.jsp | 2 +- .../WebContent/css/cutoff-workflows-v1.css | 109 ++++- .../WebContent/css/dedupe-workflows-v1.css | 353 +++++++++++++++- .../build/WebContent/js/appjs/dedupedo.js | 383 ----------------- .../build/WebContent/js/appjs/deduperun.js | 142 ------- .../js/{appjs => edp/cutoff}/cutoff.js | 156 ++++--- .../WebContent/js/edp/dedupe/dedupe-do.js | 34 ++ .../WebContent/js/edp/dedupe/dedupe-match.js | 101 +++++ .../WebContent/js/edp/dedupe/dedupe-run.js | 127 ++++++ .../WebContent/js/edp/dedupe/dedupe-send.js | 42 ++ .../java/matrix/nimble/controller/Ajax.java | 24 -- .../nimble/edp/cutoff/controller/CutOff.java | 276 ------------ .../cutoff/controller/CutOffController.java | 139 ++++++ .../edp/cutoff/model/ReferenceSheet.java | 187 +------- .../nimble/edp/dedupe/controller/Dedupe.java | 234 ---------- .../dedupe/controller/DedupeController.java | 251 +++++++++++ .../edp/dedupe/model/DedupeDetails.java | 123 ------ .../nimble/edp/dedupe/model/DedupeDo.java | 70 --- .../edp/dedupe/model/DedupeHandler.java | 111 ----- .../nimble/edp/dedupe/model/DedupeRecord.java | 123 ------ .../nimble/edp/dedupe/model/DedupeRun.java | 133 ------ .../nimble/edp/dedupe/model/SendDedupe.java | 61 --- .../documents/controller/EDPDocuments.java | 9 +- .../nimble/edp/output/model/ReportOutput.java | 288 ++++++------- .../controllers/PunchingController.java | 3 +- .../matrix/services/edp/CutoffService.java | 335 +++++++++++++++ .../matrix/services/edp/DedupeService.java | 304 +++++++++++++ .../matrix/services/edp/PunchingService.java | 23 +- .../nimble/RoleVisibleBatchMigrationTest.java | 11 +- .../services/edp/DedupeServiceTest.java | 120 ++++++ .../services/edp/PunchingServiceTest.java | 400 +++++++++--------- .../resources/db/006_dedupe_run_queries.sql | 45 ++ .../db/007_main_operations_case_id.sql | 89 ++++ .../db/008_dedupe_workspace_queries.sql | 36 ++ .../resources/db/009_dedupe_check_query.sql | 14 + .../db/010_cloud_user_audit_snapshots.sql | 170 ++++++++ .../db/011_application_user_audit.sql | 68 +++ .../resources/db/012_cutoff_workflows.sql | 60 +++ .../db/013_remaining_dedupe_queries.sql | 51 +++ .../resources/db/014_dedupe_match_records.sql | 45 ++ .../db/015_remove_migrated_query_views.sql | 121 ++++++ .../db/016_allocatecase_no_views.sql | 41 ++ 76 files changed, 4720 insertions(+), 3695 deletions(-) create mode 100644 cygnus-lib/src/main/java/lib/models/Allocation.java create mode 100644 cygnus-lib/src/main/java/lib/models/CaseGrid.java create mode 100644 cygnus-lib/src/main/java/lib/models/CutOffList.java create mode 100644 cygnus-lib/src/main/java/lib/models/CutOffRecord.java create mode 100644 cygnus-lib/src/main/java/lib/models/DedupeBatch.java create mode 100644 cygnus-lib/src/main/java/lib/models/DedupeCase.java create mode 100644 cygnus-lib/src/main/java/lib/models/DedupeCaseSummary.java create mode 100644 cygnus-lib/src/main/java/lib/models/DedupeCheckData.java create mode 100644 cygnus-lib/src/main/java/lib/models/DedupeCheckRequest.java create mode 100644 cygnus-lib/src/main/java/lib/models/DedupeDetails.java create mode 100644 cygnus-lib/src/main/java/lib/models/DedupeMatchRecord.java create mode 100644 cygnus-lib/src/main/java/lib/models/DedupeRun.java create mode 100644 cygnus-lib/src/main/java/lib/models/DedupeSendCase.java create mode 100644 cygnus-lib/src/main/java/lib/models/DedupeWorkspace.java create mode 100644 cygnus-lib/src/main/java/lib/models/PhotoCases.java create mode 100644 cygnus-lib/src/main/java/lib/models/ReferenceSheet.java create mode 100644 cygnus-lib/src/main/java/lib/models/SendDedupe.java create mode 100644 cygnus-lib/src/main/java/lib/models/SendToOperation.java create mode 100644 cygnus-lib/src/main/java/lib/models/Telesheet.java delete mode 100644 cygnus-onprem-app/build/WebContent/js/appjs/dedupedo.js delete mode 100644 cygnus-onprem-app/build/WebContent/js/appjs/deduperun.js rename cygnus-onprem-app/build/WebContent/js/{appjs => edp/cutoff}/cutoff.js (65%) create mode 100644 cygnus-onprem-app/build/WebContent/js/edp/dedupe/dedupe-do.js create mode 100644 cygnus-onprem-app/build/WebContent/js/edp/dedupe/dedupe-match.js create mode 100644 cygnus-onprem-app/build/WebContent/js/edp/dedupe/dedupe-run.js create mode 100644 cygnus-onprem-app/build/WebContent/js/edp/dedupe/dedupe-send.js delete mode 100644 cygnus-onprem-app/src/main/java/matrix/nimble/edp/cutoff/controller/CutOff.java create mode 100644 cygnus-onprem-app/src/main/java/matrix/nimble/edp/cutoff/controller/CutOffController.java delete mode 100644 cygnus-onprem-app/src/main/java/matrix/nimble/edp/dedupe/controller/Dedupe.java create mode 100644 cygnus-onprem-app/src/main/java/matrix/nimble/edp/dedupe/controller/DedupeController.java delete mode 100644 cygnus-onprem-app/src/main/java/matrix/nimble/edp/dedupe/model/DedupeDetails.java delete mode 100644 cygnus-onprem-app/src/main/java/matrix/nimble/edp/dedupe/model/DedupeDo.java delete mode 100644 cygnus-onprem-app/src/main/java/matrix/nimble/edp/dedupe/model/DedupeHandler.java delete mode 100644 cygnus-onprem-app/src/main/java/matrix/nimble/edp/dedupe/model/DedupeRecord.java delete mode 100644 cygnus-onprem-app/src/main/java/matrix/nimble/edp/dedupe/model/DedupeRun.java delete mode 100644 cygnus-onprem-app/src/main/java/matrix/nimble/edp/dedupe/model/SendDedupe.java create mode 100644 cygnus-onprem-app/src/main/java/matrix/services/edp/CutoffService.java create mode 100644 cygnus-onprem-app/src/main/java/matrix/services/edp/DedupeService.java create mode 100644 cygnus-onprem-app/src/test/java/matrix/services/edp/DedupeServiceTest.java create mode 100644 cygnus-onprem-db/src/main/resources/db/006_dedupe_run_queries.sql create mode 100644 cygnus-onprem-db/src/main/resources/db/007_main_operations_case_id.sql create mode 100644 cygnus-onprem-db/src/main/resources/db/008_dedupe_workspace_queries.sql create mode 100644 cygnus-onprem-db/src/main/resources/db/009_dedupe_check_query.sql create mode 100644 cygnus-onprem-db/src/main/resources/db/010_cloud_user_audit_snapshots.sql create mode 100644 cygnus-onprem-db/src/main/resources/db/011_application_user_audit.sql create mode 100644 cygnus-onprem-db/src/main/resources/db/012_cutoff_workflows.sql create mode 100644 cygnus-onprem-db/src/main/resources/db/013_remaining_dedupe_queries.sql create mode 100644 cygnus-onprem-db/src/main/resources/db/014_dedupe_match_records.sql create mode 100644 cygnus-onprem-db/src/main/resources/db/015_remove_migrated_query_views.sql create mode 100644 cygnus-onprem-db/src/main/resources/db/016_allocatecase_no_views.sql diff --git a/cygnus-lib/src/main/java/lib/constants/ApplicationMessage.java b/cygnus-lib/src/main/java/lib/constants/ApplicationMessage.java index 6c5c11f..341bd86 100644 --- a/cygnus-lib/src/main/java/lib/constants/ApplicationMessage.java +++ b/cygnus-lib/src/main/java/lib/constants/ApplicationMessage.java @@ -42,6 +42,15 @@ public enum ApplicationMessage { "The application details were saved successfully.", ""), APPLICATIONS_LOADED(200, "APP-2002", "Applications loaded", "The application records were loaded successfully.", ""), + DEDUPE_CHECK_COMPLETED(200, "DDP-2001", "Dedupe check completed", + "The dedupe check completed successfully.", ""), + DEDUPE_CHECK_FAILED(500, "DDP-5001", "Dedupe check failed", + "Cygnus could not complete the dedupe check.", + "Try again. If the issue continues, contact support."), + DEDUPE_DETAILS_LOADED(200, "DDP-2002", "Dedupe details loaded", + "Matching records were loaded successfully.", ""), + DEDUPE_DETAILS_SAVED(200, "DDP-2003", "Dedupe details saved", + "Dedupe remarks were saved successfully.", ""), APPLICATION_LOAD_FAILED(500, "APP-5002", "Applications could not be loaded", "Cygnus could not load the application details.", "Try again. If the issue continues, share the reference ID with support."), diff --git a/cygnus-lib/src/main/java/lib/models/Allocation.java b/cygnus-lib/src/main/java/lib/models/Allocation.java new file mode 100644 index 0000000..ddab486 --- /dev/null +++ b/cygnus-lib/src/main/java/lib/models/Allocation.java @@ -0,0 +1,16 @@ +package lib.models; + +import java.util.ArrayList; +import java.util.List; +import lombok.Data; + +@Data +public class Allocation { + private List allocationlist = new ArrayList<>(); + private String allocTime; + private String errMsg; + private String errDesc; + private String errCode; + private String sessUUID; + private boolean processFlag; +} diff --git a/cygnus-lib/src/main/java/lib/models/CaseGrid.java b/cygnus-lib/src/main/java/lib/models/CaseGrid.java new file mode 100644 index 0000000..9f7d230 --- /dev/null +++ b/cygnus-lib/src/main/java/lib/models/CaseGrid.java @@ -0,0 +1,13 @@ +package lib.models; + +import lombok.Data; + +@Data +public class CaseGrid { + private String errMsg; + private String errDesc; + private String errCode; + private boolean processFlag; + private String portfolioId; + private String caseID; +} diff --git a/cygnus-lib/src/main/java/lib/models/CutOffList.java b/cygnus-lib/src/main/java/lib/models/CutOffList.java new file mode 100644 index 0000000..3b1566c --- /dev/null +++ b/cygnus-lib/src/main/java/lib/models/CutOffList.java @@ -0,0 +1,17 @@ +package lib.models; + +import java.util.ArrayList; +import java.util.List; +import lombok.Data; + +@Data +public class CutOffList { + private List cofflist = new ArrayList<>(); + private String cutoffTime; + private String batch; + private String errMsg; + private String errDesc; + private String errCode; + private String sessUUID; + private boolean processFlag; +} diff --git a/cygnus-lib/src/main/java/lib/models/CutOffRecord.java b/cygnus-lib/src/main/java/lib/models/CutOffRecord.java new file mode 100644 index 0000000..7778eb9 --- /dev/null +++ b/cygnus-lib/src/main/java/lib/models/CutOffRecord.java @@ -0,0 +1,41 @@ +package lib.models; + +import java.util.ArrayList; +import java.util.List; +import lombok.Data; + +@Data +public class CutOffRecord { + private List sublist = new ArrayList<>(); + private String portfolioid; + private String portname; + private String customername; + private String apptype; + private String mvcode; + private String applno; + private boolean allocation; + private boolean sms; + private boolean telesheet; + private boolean earlier; + private boolean negative; + private int islocked; + private String lockedby; + private boolean docut; + private int ischanged; + private int totrv; + private int totov; + private int totpv; + private int totrtv; + private int tototv; + private int totref; + private boolean tv; + private boolean oprsend; + private String resiloc; + private String offloc; + private String proploc; + private String uuid; + private String repformat; + private String repfunction; + private String message; + private String portgroup; +} diff --git a/cygnus-lib/src/main/java/lib/models/DedupeBatch.java b/cygnus-lib/src/main/java/lib/models/DedupeBatch.java new file mode 100644 index 0000000..1a8fa11 --- /dev/null +++ b/cygnus-lib/src/main/java/lib/models/DedupeBatch.java @@ -0,0 +1,21 @@ +package lib.models; + +import java.util.ArrayList; +import java.util.List; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +public class DedupeBatch { + private List cases = new ArrayList<>(); + private String cutoffKey; + private String cutoffon; + private int totalAddresses; + private int totalCases; + private int islocked; + private String lockedby; + private Integer lockOwnerId; +} diff --git a/cygnus-lib/src/main/java/lib/models/DedupeCase.java b/cygnus-lib/src/main/java/lib/models/DedupeCase.java new file mode 100644 index 0000000..d5ea6f1 --- /dev/null +++ b/cygnus-lib/src/main/java/lib/models/DedupeCase.java @@ -0,0 +1,22 @@ +package lib.models; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +public class DedupeCase { + private String mvcode; + private String applno; + private String customername; + private String apptype; + private String uuid; + private int totrv; + private int totov; + private int totpv; + private String earlier; + private String negative; + private String lockedby; +} diff --git a/cygnus-lib/src/main/java/lib/models/DedupeCaseSummary.java b/cygnus-lib/src/main/java/lib/models/DedupeCaseSummary.java new file mode 100644 index 0000000..7bbd558 --- /dev/null +++ b/cygnus-lib/src/main/java/lib/models/DedupeCaseSummary.java @@ -0,0 +1,20 @@ +package lib.models; + +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@NoArgsConstructor +public class DedupeCaseSummary { + private String documentCaseId; + private Integer portfolioId; + private String mvCode; + private String fileNumber; + private String customerName; + private String applicationType; + private int residenceVisits; + private int officeVisits; + private int propertyVisits; + private String receivedOn; + private String done; +} diff --git a/cygnus-lib/src/main/java/lib/models/DedupeCheckData.java b/cygnus-lib/src/main/java/lib/models/DedupeCheckData.java new file mode 100644 index 0000000..d2dc190 --- /dev/null +++ b/cygnus-lib/src/main/java/lib/models/DedupeCheckData.java @@ -0,0 +1,3 @@ +package lib.models; + +public record DedupeCheckData(String documentCaseId, int operation) { } diff --git a/cygnus-lib/src/main/java/lib/models/DedupeCheckRequest.java b/cygnus-lib/src/main/java/lib/models/DedupeCheckRequest.java new file mode 100644 index 0000000..0681579 --- /dev/null +++ b/cygnus-lib/src/main/java/lib/models/DedupeCheckRequest.java @@ -0,0 +1,3 @@ +package lib.models; + +public record DedupeCheckRequest(String documentCaseId, int operation) { } diff --git a/cygnus-lib/src/main/java/lib/models/DedupeDetails.java b/cygnus-lib/src/main/java/lib/models/DedupeDetails.java new file mode 100644 index 0000000..c30fa76 --- /dev/null +++ b/cygnus-lib/src/main/java/lib/models/DedupeDetails.java @@ -0,0 +1,20 @@ +package lib.models; + +import lombok.Data; + +@Data +public class DedupeDetails { + private String sessuuid; + private String uuid; + private String mvcode; + private String customername; + private String dob; + private String mobile; + private String resiaddress; + private String offaddress; + private String resiphone; + private String offphone; + private String earremarks; + private String negremarks; + private String category; +} diff --git a/cygnus-lib/src/main/java/lib/models/DedupeMatchRecord.java b/cygnus-lib/src/main/java/lib/models/DedupeMatchRecord.java new file mode 100644 index 0000000..7726a88 --- /dev/null +++ b/cygnus-lib/src/main/java/lib/models/DedupeMatchRecord.java @@ -0,0 +1,17 @@ +package lib.models; + +import lombok.Data; + +@Data +public class DedupeMatchRecord { + private String dedupeType; + private String foundOn; + private String remarks; + private String customerName; + private String dob; + private String residenceAddress; + private String officeAddress; + private String residencePhone; + private String officePhone; + private String mobile; +} diff --git a/cygnus-lib/src/main/java/lib/models/DedupeRun.java b/cygnus-lib/src/main/java/lib/models/DedupeRun.java new file mode 100644 index 0000000..4ae803a --- /dev/null +++ b/cygnus-lib/src/main/java/lib/models/DedupeRun.java @@ -0,0 +1,17 @@ +package lib.models; + +import java.util.ArrayList; +import java.util.List; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +public class DedupeRun { + private List batches = new ArrayList<>(); + private String dedcutTime; + private String errMsg; + private String csrfToken; +} diff --git a/cygnus-lib/src/main/java/lib/models/DedupeSendCase.java b/cygnus-lib/src/main/java/lib/models/DedupeSendCase.java new file mode 100644 index 0000000..9420ea6 --- /dev/null +++ b/cygnus-lib/src/main/java/lib/models/DedupeSendCase.java @@ -0,0 +1,21 @@ +package lib.models; + +import lombok.Data; + +@Data +public class DedupeSendCase { + private String uuid; + private String mvcode; + private String applno; + private String customername; + private String apptype; + private String product; + private String earlier; + private String negative; + private String deduperunon; + private String bkbranchname; + private String fid; + private int dqid; + private String portname; + private String supervisor; +} diff --git a/cygnus-lib/src/main/java/lib/models/DedupeWorkspace.java b/cygnus-lib/src/main/java/lib/models/DedupeWorkspace.java new file mode 100644 index 0000000..76f2e90 --- /dev/null +++ b/cygnus-lib/src/main/java/lib/models/DedupeWorkspace.java @@ -0,0 +1,16 @@ +package lib.models; + +import java.util.ArrayList; +import java.util.List; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +public class DedupeWorkspace { + private Integer portfolioId; + private List