diff --git a/backend/src/main/resources/config/v_1.0/20250412-db_changes.xml b/backend/src/main/resources/config/v_1.0/20250412-db_changes.xml new file mode 100644 index 0000000..35d144a --- /dev/null +++ b/backend/src/main/resources/config/v_1.0/20250412-db_changes.xml @@ -0,0 +1,82 @@ + + + + + + + CREATE TABLE summonses_list.RF_leaving_ban + + CREATE TABLE IF NOT EXISTS summonses_list.RF_leaving_ban + ( + RF_leaving_ban_id bigserial NOT NULL, + recruitment_id character varying(36) COLLATE pg_catalog."default" NOT NULL, + update_date timestamp without time zone NOT NULL DEFAULT now(), + info_date date NOT NULL, + summonses_reason_id bigint NOT NULL, + count_for_sign bigint NOT NULL DEFAULT 0, + count_apply bigint NOT NULL DEFAULT 0, + count_enter bigint NOT NULL DEFAULT 0, + CONSTRAINT RF_leaving_ban_pkey PRIMARY KEY (RF_leaving_ban_id), + CONSTRAINT fk_summonses_reason_id FOREIGN KEY (summonses_reason_id) + REFERENCES summonses_list.summonses_reason (summonses_reason_id) MATCH SIMPLE + ON UPDATE NO ACTION + ON DELETE NO ACTION + ) + TABLESPACE pg_default; + ALTER TABLE IF EXISTS summonses_list.RF_leaving_ban + OWNER to ervu_business_metrics; + COMMENT ON TABLE summonses_list.RF_leaving_ban + IS 'Реестр повесток. Решение о применении временной меры - запрет на выезд из РФ'; + COMMENT ON COLUMN summonses_list.RF_leaving_ban.count_for_sign + IS 'доступно для подписания'; + COMMENT ON COLUMN summonses_list.RF_leaving_ban.count_apply + IS 'применена мера'; + COMMENT ON COLUMN summonses_list.RF_leaving_ban.count_enter + IS 'введлена мера'; + + CREATE INDEX IF NOT EXISTS idx_RF_leaving_ban_reason + ON summonses_list.RF_leaving_ban USING btree + (summonses_reason_id ASC NULLS LAST) + TABLESPACE pg_default; + + CREATE INDEX IF NOT EXISTS idx_RF_leaving_ban_date + ON summonses_list.RF_leaving_ban USING btree + (info_date ASC NULLS LAST) + TABLESPACE pg_default; + + CREATE INDEX IF NOT EXISTS idx_RF_leaving_ban_reason + ON summonses_list.RF_leaving_ban USING btree + (summonses_reason_id ASC NULLS LAST) + TABLESPACE pg_default; + + CREATE INDEX IF NOT EXISTS idx_RF_leaving_ban_recr + ON summonses_list.RF_leaving_ban USING btree + (recruitment_id COLLATE pg_catalog."default" ASC NULLS LAST) + TABLESPACE pg_default; + + CREATE INDEX IF NOT EXISTS idx_RF_leaving_ban_recr_date + ON summonses_list.RF_leaving_ban USING btree + (recruitment_id COLLATE pg_catalog."default" ASC NULLS LAST, info_date ASC NULLS LAST) + TABLESPACE pg_default; + + + + CREATE VIEW summonses_list.view_RF_leaving_ban + + CREATE OR REPLACE VIEW summonses_list.view_RF_leaving_ban + AS + SELECT RF_leaving_ban.RF_leaving_ban_id, + RF_leaving_ban.count_for_sign + RF_leaving_ban.count_apply + RF_leaving_ban.count_enter AS count_all, + COALESCE(round(RF_leaving_ban.count_for_sign::numeric * 100::numeric / NULLIF((RF_leaving_ban.count_for_sign + RF_leaving_ban.count_apply + RF_leaving_ban.count_enter)::numeric, 0::numeric)), 0::numeric) AS percent_for_sign, + COALESCE(round(RF_leaving_ban.count_apply::numeric * 100::numeric / NULLIF((RF_leaving_ban.count_for_sign + RF_leaving_ban.count_apply + RF_leaving_ban.count_enter)::numeric, 0::numeric)), 0::numeric) AS percent_apply, + COALESCE(round(RF_leaving_ban.count_enter::numeric * 100::numeric / NULLIF((RF_leaving_ban.count_for_sign + RF_leaving_ban.count_apply + RF_leaving_ban.count_enter)::numeric, 0::numeric)), 0::numeric) AS percent_enter + FROM summonses_list.RF_leaving_ban; + ALTER TABLE summonses_list.view_RF_leaving_ban + OWNER TO ervu_business_metrics; + + + \ No newline at end of file diff --git a/backend/src/main/resources/config/v_1.0/changelog-1.0.xml b/backend/src/main/resources/config/v_1.0/changelog-1.0.xml index 760c238..e6cf37f 100644 --- a/backend/src/main/resources/config/v_1.0/changelog-1.0.xml +++ b/backend/src/main/resources/config/v_1.0/changelog-1.0.xml @@ -26,5 +26,6 @@ + \ No newline at end of file