From 35e12192a5caa78e2127abdfa85bc094afaee8f5 Mon Sep 17 00:00:00 2001 From: Sammi Chong <133241942+SammiChong@users.noreply.github.com> Date: Tue, 12 May 2026 17:06:43 +0100 Subject: [PATCH 1/2] Add new table date_case_closed --- .../data/caseclosed/DateCaseClosedEntity.java | 39 +++++++++++++++++++ .../caseclosed/DateCaseClosedRepository.java | 15 +++++++ ...43__CME-943_add_date_case_closed_table.sql | 27 +++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 src/main/java/uk/gov/hmcts/ccd/data/caseclosed/DateCaseClosedEntity.java create mode 100644 src/main/java/uk/gov/hmcts/ccd/data/caseclosed/DateCaseClosedRepository.java create mode 100644 src/main/resources/db/migration/V20250508_943__CME-943_add_date_case_closed_table.sql diff --git a/src/main/java/uk/gov/hmcts/ccd/data/caseclosed/DateCaseClosedEntity.java b/src/main/java/uk/gov/hmcts/ccd/data/caseclosed/DateCaseClosedEntity.java new file mode 100644 index 0000000000..c67ef58f79 --- /dev/null +++ b/src/main/java/uk/gov/hmcts/ccd/data/caseclosed/DateCaseClosedEntity.java @@ -0,0 +1,39 @@ +package uk.gov.hmcts.ccd.data.caseclosed; + +import lombok.Data; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.SequenceGenerator; +import jakarta.persistence.Table; +import java.time.LocalDateTime; + +@Entity +@Data +@Table(name = "date_case_closed") +public class DateCaseClosedEntity { + + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "date_case_closed_id_seq_generator") + @SequenceGenerator( + name = "date_case_closed_id_seq_generator", + sequenceName = "date_case_closed_id_seq", + allocationSize = 1 + ) + private Long id; + + @Column(name = "ccd_case_number", nullable = false) + private Long ccdCaseNumber; + + @Column(name = "state") + private String state; + + @Column(name = "state_category") + private String stateCategory; + + @Column(name = "state_changed_date") + private LocalDateTime stateChangedDate; +} diff --git a/src/main/java/uk/gov/hmcts/ccd/data/caseclosed/DateCaseClosedRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/caseclosed/DateCaseClosedRepository.java new file mode 100644 index 0000000000..b16dbc8cb5 --- /dev/null +++ b/src/main/java/uk/gov/hmcts/ccd/data/caseclosed/DateCaseClosedRepository.java @@ -0,0 +1,15 @@ +package uk.gov.hmcts.ccd.data.caseclosed; + +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.List; + +@Transactional +@Repository +public interface DateCaseClosedRepository extends CrudRepository { + + List findClosedCasesByStateChangedDate(LocalDateTime stateChangedDate); +} diff --git a/src/main/resources/db/migration/V20250508_943__CME-943_add_date_case_closed_table.sql b/src/main/resources/db/migration/V20250508_943__CME-943_add_date_case_closed_table.sql new file mode 100644 index 0000000000..5f0f209fdd --- /dev/null +++ b/src/main/resources/db/migration/V20250508_943__CME-943_add_date_case_closed_table.sql @@ -0,0 +1,27 @@ +CREATE TABLE public.date_case_closed ( + id bigint NOT NULL, + ccd_case_number bigint NOT NULL, + state character varying(255), + state_category character varying(500), + state_changed_date timestamp, + PRIMARY KEY(id) +); + +CREATE SEQUENCE public.date_case_closed_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + +ALTER SEQUENCE public.date_case_closed_id_seq OWNED BY public.date_case_closed.id; + +ALTER TABLE ONLY public.date_case_closed + ALTER COLUMN id SET DEFAULT nextval('public.date_case_closed_id_seq'::regclass); + +ALTER TABLE public.date_case_closed + ADD CONSTRAINT fk_date_case_closed_ccd_case_number_case_data + FOREIGN KEY (ccd_case_number) REFERENCES public.case_data(reference); + +CREATE INDEX idx_date_case_closed_state_changed_date + ON public.date_case_closed (state_changed_date); From a24bbdd4cb80c28edabe7039fa19ab1f4bacd65b Mon Sep 17 00:00:00 2001 From: Sammi Chong <133241942+SammiChong@users.noreply.github.com> Date: Thu, 14 May 2026 10:24:13 +0100 Subject: [PATCH 2/2] Update DateCaseClosedRepository.java --- .../hmcts/ccd/data/caseclosed/DateCaseClosedRepository.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/ccd/data/caseclosed/DateCaseClosedRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/caseclosed/DateCaseClosedRepository.java index b16dbc8cb5..55a5908176 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/caseclosed/DateCaseClosedRepository.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/caseclosed/DateCaseClosedRepository.java @@ -2,14 +2,12 @@ import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.List; -@Transactional @Repository public interface DateCaseClosedRepository extends CrudRepository { - List findClosedCasesByStateChangedDate(LocalDateTime stateChangedDate); + List findByStateChangedDateLessThanEqual(LocalDateTime stateChangedDate); }