This commit is contained in:
Alexander Kochetkov 2024-11-02 16:08:29 +03:00
parent f53eedac12
commit c8f77fc8cb
8 changed files with 549 additions and 0 deletions

22
db/.gitignore vendored Normal file
View file

@ -0,0 +1,22 @@
#ignore target dir
target*/
*.orig
#
# IntelliJ IDEA project files
#
.idea*/
.classes*/
*.ipr
*.iml
*.iws
*.ids
atlassian-ide-plugin.xml
# os meta files
Thumbs.db
.DS_Store
pom.xml.versionsBackup

56
db/pom.xml Normal file
View file

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>ru.micord.ervu</groupId>
<artifactId>business-metrics</artifactId>
<version>1.8.0</version>
</parent>
<groupId>ru.micord.ervu.business-metrics</groupId>
<artifactId>db</artifactId>
<properties>
<liquibase.skip>true</liquibase.skip>
<liquibase.propertyFileName />
</properties>
<build>
<plugins>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>4.15.0</version>
<configuration>
<skip>${liquibase.skip}</skip>
<propertyFile>src/main/resources/properties/${liquibase.propertyFileName}.properties</propertyFile>
<includeArtifact>true</includeArtifact>
<promptOnNonLocalDatabase>true</promptOnNonLocalDatabase>
<outputFileEncoding>UTF-8</outputFileEncoding>
</configuration>
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.3.6</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<!--Основная база-->
<id>ervu_business_metrics</id>
<properties>
<liquibase.skip>false</liquibase.skip>
<liquibase.propertyFileName>ervu_business_metrics</liquibase.propertyFileName>
</properties>
</profile>
</profiles>
</project>

2
db/src/README Normal file
View file

@ -0,0 +1,2 @@
Обязательно прочесть информацию по добавлению changeset-ов:
http://confluence.asd.center.cg/pages/viewpage.action?pageId=32931937

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.9
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd">
<include file="v_0.1/changelog-0.1.xml" relativeToChangelogFile="true"/>
</databaseChangeLog>

View file

@ -0,0 +1,437 @@
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.9
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd">
<changeSet id="0001" author="akochetkov">
<comment>create SCHEMA</comment>
<sql>
CREATE SCHEMA IF NOT EXISTS metrics;
ALTER SCHEMA metrics OWNER TO ervu_business_metrics;
</sql>
</changeSet>
<changeSet id="0002" author="akochetkov">
<comment>create EXTENSION uuid-ossp</comment>
<sql>
CREATE EXTENSION IF NOT EXISTS "uuid-ossp" SCHEMA metrics;
</sql>
</changeSet>
<changeSet id="0003" author="akochetkov">
<comment>add table recruitment</comment>
<sql>
CREATE TABLE IF NOT EXISTS metrics.recruitment
(
id uuid NOT NULL DEFAULT metrics.uuid_generate_v4(),
idm_id character varying(256) COLLATE pg_catalog."default",
parent_id character varying COLLATE pg_catalog."default",
version integer,
created_at timestamp without time zone NOT NULL DEFAULT now(),
updated_at timestamp without time zone NOT NULL DEFAULT now(),
schema character varying(64) COLLATE pg_catalog."default" NOT NULL,
military_code character varying(16) COLLATE pg_catalog."default",
shortname character varying COLLATE pg_catalog."default" NOT NULL,
fullname character varying COLLATE pg_catalog."default" NOT NULL,
dns character varying(64) COLLATE pg_catalog."default",
email character varying(255) COLLATE pg_catalog."default",
phone character varying(24) COLLATE pg_catalog."default",
address character varying COLLATE pg_catalog."default",
address_id character varying COLLATE pg_catalog."default",
postal_address character varying COLLATE pg_catalog."default",
postal_address_id character varying COLLATE pg_catalog."default",
nsi_department_id character varying COLLATE pg_catalog."default",
nsi_organization_id character varying COLLATE pg_catalog."default",
oktmo character varying COLLATE pg_catalog."default",
org_ogrn character varying COLLATE pg_catalog."default",
dep_ogrn character varying COLLATE pg_catalog."default",
epgu_id character varying COLLATE pg_catalog."default",
kpp character varying(64) COLLATE pg_catalog."default",
inn character varying(64) COLLATE pg_catalog."default",
okato character varying(64) COLLATE pg_catalog."default",
division_type character varying(64) COLLATE pg_catalog."default",
tns_department_id character varying COLLATE pg_catalog."default",
enabled boolean NOT NULL DEFAULT true,
timezone character varying(64) COLLATE pg_catalog."default",
reports_enabled boolean,
region_id character varying COLLATE pg_catalog."default",
subpoena_series_code character varying(64) COLLATE pg_catalog."default",
hidden boolean NOT NULL DEFAULT false,
region_code text COLLATE pg_catalog."default",
ts timestamp without time zone NOT NULL DEFAULT now(),
CONSTRAINT recruitment_pkey PRIMARY KEY (id),
CONSTRAINT recruitment_idm_id_key UNIQUE (idm_id)
)
WITH (OIDS = FALSE);
ALTER TABLE IF EXISTS metrics.recruitment OWNER to ervu_business_metrics;
COMMENT ON TABLE metrics.recruitment IS 'Военный комиссариат';
COMMENT ON COLUMN metrics.recruitment.id IS 'Идентификатор ВК';
COMMENT ON COLUMN metrics.recruitment.idm_id IS 'Идентификатор организации';
COMMENT ON COLUMN metrics.recruitment.parent_id IS 'Идентификатор вышестоящей организации';
COMMENT ON COLUMN metrics.recruitment.version IS 'Версия записи';
COMMENT ON COLUMN metrics.recruitment.created_at IS 'Дата создания';
COMMENT ON COLUMN metrics.recruitment.updated_at IS 'Дата обновления';
COMMENT ON COLUMN metrics.recruitment.schema IS 'Схема';
COMMENT ON COLUMN metrics.recruitment.military_code IS 'Код организации';
COMMENT ON COLUMN metrics.recruitment.shortname IS 'Укороченное наименование организации';
COMMENT ON COLUMN metrics.recruitment.fullname IS 'Полное наименование организации';
COMMENT ON COLUMN metrics.recruitment.dns IS 'ДНС организации';
COMMENT ON COLUMN metrics.recruitment.email IS 'Е-mail организации';
COMMENT ON COLUMN metrics.recruitment.phone IS 'Телефон организации';
COMMENT ON COLUMN metrics.recruitment.address IS 'Адрес организации';
COMMENT ON COLUMN metrics.recruitment.address_id IS 'Идентификатор адреса организации';
COMMENT ON COLUMN metrics.recruitment.postal_address IS 'Почтовый адрес организации';
COMMENT ON COLUMN metrics.recruitment.postal_address_id IS 'Идентификатор почтового адреса организации';
COMMENT ON COLUMN metrics.recruitment.nsi_department_id IS 'Идентификатор департамента из НСИ';
COMMENT ON COLUMN metrics.recruitment.nsi_organization_id IS 'Идентификатор организации из НСИ';
COMMENT ON COLUMN metrics.recruitment.oktmo IS 'ОКТМО';
COMMENT ON COLUMN metrics.recruitment.org_ogrn IS 'ОГРН организации';
COMMENT ON COLUMN metrics.recruitment.dep_ogrn IS 'ОГРН департамента';
COMMENT ON COLUMN metrics.recruitment.epgu_id IS 'Идентификатор ЕПГУ';
COMMENT ON COLUMN metrics.recruitment.kpp IS 'КПП';
COMMENT ON COLUMN metrics.recruitment.inn IS 'ИНН';
COMMENT ON COLUMN metrics.recruitment.okato IS 'ОКАТО';
COMMENT ON COLUMN metrics.recruitment.division_type IS 'Тип дивизиона';
COMMENT ON COLUMN metrics.recruitment.tns_department_id IS 'Идентификатор департамента из ТНС';
COMMENT ON COLUMN metrics.recruitment.enabled IS 'Признак актуальности';
COMMENT ON COLUMN metrics.recruitment.timezone IS 'Часовой пояс';
COMMENT ON COLUMN metrics.recruitment.reports_enabled IS 'Признак актуальности для отчета';
COMMENT ON COLUMN metrics.recruitment.region_id IS 'Идентификатор региона';
COMMENT ON COLUMN metrics.recruitment.subpoena_series_code IS 'Серия';
COMMENT ON COLUMN metrics.recruitment.hidden IS 'Признак скрытого';
CREATE INDEX IF NOT EXISTS recruitment_idm_idx ON metrics.recruitment (idm_id);
CREATE INDEX IF NOT EXISTS recruitment_military_code_idx ON metrics.recruitment (military_code);
CREATE INDEX IF NOT EXISTS recruitment_parent_idx ON metrics.recruitment (parent_id);
CREATE INDEX IF NOT EXISTS recruitment_region_idx ON metrics.recruitment (region_id);
</sql>
</changeSet>
<changeSet id="0004" author="akochetkov">
<comment>add tables for convertation info</comment>
<sql>
CREATE TABLE IF NOT EXISTS metrics.convert_info_records_from_easu
(
convert_info_records_from_easu_id bigserial NOT NULL PRIMARY KEY,
recruitment_id uuid NOT NULL constraint fk_conv_info_records_from_easu_recruitment_id references metrics.recruitment,
update_date timestamp without time zone NOT NULL DEFAULT now(),
info_date date NOT NULL,
count_all bigint NOT NULL DEFAULT 0,
count_unique bigint NOT NULL DEFAULT 0,
count_identified bigint NOT NULL DEFAULT 0
)
WITH (OIDS = FALSE);
ALTER TABLE IF EXISTS metrics.convert_info_records_from_easu OWNER to ervu_business_metrics;
COMMENT ON TABLE metrics.convert_info_records_from_easu IS 'Загрузка Данных из ЕАСУ "ГОризонт-М"';
CREATE INDEX IF NOT EXISTS idx_convert_info_records_from_easu_date ON metrics.convert_info_records_from_easu (info_date);
CREATE INDEX IF NOT EXISTS idx_convert_info_records_from_easu_recr ON metrics.convert_info_records_from_easu (recruitment_id);
CREATE INDEX IF NOT EXISTS idx_convert_info_records_from_easu_recr_date ON metrics.convert_info_records_from_easu (recruitment_id, info_date);
CREATE TABLE IF NOT EXISTS metrics.convert_info_not_identifited_records
(
convert_info_not_identifited_records_id bigserial NOT NULL PRIMARY KEY,
recruitment_id uuid NOT NULL constraint fk_conv_info_records_from_easu_recruitment_id references metrics.recruitment,
update_date timestamp without time zone NOT NULL DEFAULT now(),
info_date date NOT NULL,
count_not_in_csv bigint NOT NULL DEFAULT 0,
count_not_in_xml bigint NOT NULL DEFAULT 0
)
WITH (OIDS = FALSE);
ALTER TABLE IF EXISTS metrics.convert_info_not_identifited_records OWNER to ervu_business_metrics;
COMMENT ON TABLE metrics.convert_info_not_identifited_records IS 'записи неидентифицированные в ГИР ВУ';
CREATE INDEX IF NOT EXISTS idx_convert_info_not_identifited_records_date ON metrics.convert_info_not_identifited_records (info_date);
CREATE INDEX IF NOT EXISTS idx_convert_info_not_identifited_records_recr ON metrics.convert_info_not_identifited_records (recruitment_id);
CREATE INDEX IF NOT EXISTS idx_convert_info_not_identifited_records_recr_date ON metrics.convert_info_not_identifited_records (recruitment_id, info_date);
CREATE TABLE IF NOT EXISTS metrics.convert_info_loaded_records
(
convert_info_loaded_records_id bigserial NOT NULL PRIMARY KEY,
recruitment_id uuid NOT NULL constraint fk_conv_info_records_from_easu_recruitment_id references metrics.recruitment,
update_date timestamp without time zone NOT NULL DEFAULT now(),
info_date date NOT NULL,
count_success bigint NOT NULL DEFAULT 0,
count_error bigint NOT NULL DEFAULT 0
)
WITH (OIDS = FALSE);
ALTER TABLE IF EXISTS metrics.convert_info_loaded_records OWNER to ervu_business_metrics;
COMMENT ON TABLE metrics.convert_info_loaded_records IS 'загрузка записей в ГИС ЕРВУ';
CREATE INDEX IF NOT EXISTS idx_convert_info_loaded_records_date ON metrics.convert_info_loaded_records (info_date);
CREATE INDEX IF NOT EXISTS idx_convert_info_loaded_records_recr ON metrics.convert_info_loaded_records (recruitment_id);
CREATE INDEX IF NOT EXISTS idx_convert_info_loaded_records_recr_date ON metrics.convert_info_loaded_records (recruitment_id, info_date);
CREATE TABLE IF NOT EXISTS metrics.convert_info_common_results
(
convert_info_common_results_id bigserial NOT NULL PRIMARY KEY,
recruitment_id uuid NOT NULL constraint fk_conv_info_records_from_easu_recruitment_id references metrics.recruitment,
update_date timestamp without time zone NOT NULL DEFAULT now(),
info_date date NOT NULL,
count_confirmed bigint NOT NULL DEFAULT 0,
count_signed bigint NOT NULL DEFAULT 0,
count_manual_convert bigint NOT NULL DEFAULT 0,
count_canceled bigint NOT NULL DEFAULT 0
)
WITH (OIDS = FALSE);
ALTER TABLE IF EXISTS metrics.convert_info_common_results OWNER to ervu_business_metrics;
COMMENT ON TABLE metrics.convert_info_common_results IS 'Конвертация. Результаты';
CREATE INDEX IF NOT EXISTS idx_convert_info_common_results_date ON metrics.convert_info_common_results (info_date);
CREATE INDEX IF NOT EXISTS idx_convert_info_common_results_recr ON metrics.convert_info_common_results (recruitment_id);
CREATE INDEX IF NOT EXISTS idx_convert_info_common_results_recr_date ON metrics.convert_info_common_results (recruitment_id, info_date);
CREATE TABLE IF NOT EXISTS metrics.convert_info_sent_to_lk_epgu
(
convert_info_sent_to_lk_epgu_id bigserial NOT NULL PRIMARY KEY,
recruitment_id uuid NOT NULL constraint fk_conv_info_records_from_easu_recruitment_id references metrics.recruitment,
update_date timestamp without time zone NOT NULL DEFAULT now(),
info_date date NOT NULL,
count_status_formed bigint NOT NULL DEFAULT 0,
count_sended bigint NOT NULL DEFAULT 0,
count_delivered bigint NOT NULL DEFAULT 0,
count_error bigint NOT NULL DEFAULT 0,
count_viewed bigint NOT NULL DEFAULT 0,
count_not_viewed bigint NOT NULL DEFAULT 0,
count_status_not_formed bigint NOT NULL DEFAULT 0
)
WITH (OIDS = FALSE);
ALTER TABLE IF EXISTS metrics.convert_info_sent_to_lk_epgu OWNER to ervu_business_metrics;
COMMENT ON TABLE metrics.convert_info_sent_to_lk_epgu IS 'Конвертация. ДОставка уведомлений в ЛК на ЕПГУ';
CREATE INDEX IF NOT EXISTS idx_convert_info_sent_to_lk_epgu_date ON metrics.convert_info_sent_to_lk_epgu (info_date);
CREATE INDEX IF NOT EXISTS idx_convert_info_sent_to_lk_epgu_recr ON metrics.convert_info_sent_to_lk_epgu (recruitment_id);
CREATE INDEX IF NOT EXISTS idx_convert_info_sent_to_lk_epgu_recr_date ON metrics.convert_info_sent_to_lk_epgu (recruitment_id, info_date);
CREATE TABLE IF NOT EXISTS metrics.convert_info_comparison_csv_xml
(
convert_info_comparison_csv_xml_id bigserial NOT NULL PRIMARY KEY,
recruitment_id uuid NOT NULL constraint fk_conv_info_records_from_easu_recruitment_id references metrics.recruitment,
update_date timestamp without time zone NOT NULL DEFAULT now(),
info_date date NOT NULL,
count_xml_formed bigint NOT NULL DEFAULT 0,
count_csv bigint NOT NULL DEFAULT 0
)
WITH (OIDS = FALSE);
ALTER TABLE IF EXISTS metrics.convert_info_comparison_csv_xml OWNER to ervu_business_metrics;
COMMENT ON TABLE metrics.convert_info_comparison_csv_xml IS 'Конвертация. Результат сопоставления файлов';
CREATE INDEX IF NOT EXISTS idx_convert_info_comparison_csv_xml_date ON metrics.convert_info_comparison_csv_xml (info_date);
CREATE INDEX IF NOT EXISTS idx_convert_info_comparison_csv_xml_recr ON metrics.convert_info_comparison_csv_xml (recruitment_id);
CREATE INDEX IF NOT EXISTS idx_convert_info_comparison_csv_xml_recr_date ON metrics.convert_info_comparison_csv_xml (recruitment_id, info_date);
</sql>
</changeSet>
<changeSet id="0005" author="akochetkov">
<comment>add tables in schema init_registration_info</comment>
<sql>
CREATE SCHEMA IF NOT EXISTS init_registration_info;
CREATE TABLE IF NOT EXISTS init_registration_info.citizens_next_year_age
(
citizens_next_year_age_id bigserial NOT NULL PRIMARY KEY,
recruitment_id uuid NOT NULL constraint fk_conv_info_records_from_easu_recruitment_id references metrics.recruitment,
update_date timestamp without time zone NOT NULL DEFAULT now(),
info_date date NOT NULL,
info_source varchar NOT NULL,
info_age varchar NOT NULL,
count_all bigint NOT NULL DEFAULT 0
)
WITH (OIDS = FALSE);
ALTER TABLE IF EXISTS init_registration_info.citizens_next_year_age OWNER to ervu_business_metrics;
COMMENT ON TABLE init_registration_info.citizens_next_year_age IS 'Первоначальная постановка на учет. Данные по количеству гражан на учете в возрасте 17 или 18 лет и по источнику самих данных';
COMMENT ON COLUMN init_registration_info.citizens_next_year_age.info_source IS 'информация об источнике - PERSONAL_VISIT, GIR_VU, EPGU';
COMMENT ON COLUMN init_registration_info.citizens_next_year_age.info_age IS 'Информациия о каком возрасте 17_YEARS, 18_YEAR';
CREATE INDEX IF NOT EXISTS idx_citizens_next_year_age_date ON init_registration_info.citizens_next_year_age (info_date);
CREATE INDEX IF NOT EXISTS idx_citizens_next_year_age_recr ON init_registration_info.citizens_next_year_age (recruitment_id);
CREATE INDEX IF NOT EXISTS idx_citizens_next_year_age_recr_date ON init_registration_info.citizens_next_year_age (recruitment_id, info_date);
CREATE TABLE IF NOT EXISTS init_registration_info.records_info_id_uk_id_ern
(
records_info_id_uk_id_ern_id bigserial NOT NULL PRIMARY KEY,
recruitment_id uuid NOT NULL constraint fk_conv_info_records_from_easu_recruitment_id references metrics.recruitment,
update_date timestamp without time zone NOT NULL DEFAULT now(),
info_date date NOT NULL,
info_source varchar NOT NULL,
info_age varchar NOT NULL,
count_all bigint NOT NULL DEFAULT 0,
records_with_id_uk bigint NOT NULL DEFAULT 0,
records_without_id_uk bigint NOT NULL DEFAULT 0,
records_with_id_ern bigint NOT NULL DEFAULT 0
)
WITH (OIDS = FALSE);
ALTER TABLE IF EXISTS init_registration_info.records_info_id_uk_id_ern OWNER to ervu_business_metrics;
COMMENT ON TABLE init_registration_info.records_info_id_uk_id_ern IS 'Первоначальная постановка на учет. Информация о налиции ИД ЕРН и ИД УК';
COMMENT ON COLUMN init_registration_info.records_info_id_uk_id_ern.info_source IS 'Источник - PERSONAL_VISIT, GIR_VU, EPGU';
COMMENT ON COLUMN init_registration_info.records_info_id_uk_id_ern.info_age IS 'Информациия о каком возрасте 17_YEARS, 18_YEAR';
CREATE INDEX IF NOT EXISTS idx_records_info_id_uk_id_ern_date ON init_registration_info.records_info_id_uk_id_ern (info_date);
CREATE INDEX IF NOT EXISTS idx_records_info_id_uk_id_ern_recr ON init_registration_info.records_info_id_uk_id_ern (recruitment_id);
CREATE INDEX IF NOT EXISTS idx_records_info_id_uk_id_ern_recr_date ON init_registration_info.records_info_id_uk_id_ern (recruitment_id, info_date);
CREATE TABLE IF NOT EXISTS init_registration_info.info_sent_to_lk_epgu
(
info_sent_to_lk_epgu_id bigserial NOT NULL PRIMARY KEY,
recruitment_id uuid NOT NULL constraint fk_conv_info_records_from_easu_recruitment_id references metrics.recruitment,
update_date timestamp without time zone NOT NULL DEFAULT now(),
info_date date NOT NULL,
info_source varchar NOT NULL,
info_age varchar NOT NULL,
count_status_formed bigint NOT NULL DEFAULT 0,
count_sended bigint NOT NULL DEFAULT 0,
count_delivered bigint NOT NULL DEFAULT 0,
count_error bigint NOT NULL DEFAULT 0,
count_viewed bigint NOT NULL DEFAULT 0,
count_not_viewed bigint NOT NULL DEFAULT 0,
count_status_not_formed bigint NOT NULL DEFAULT 0
)
WITH (OIDS = FALSE);
ALTER TABLE IF EXISTS init_registration_info.info_sent_to_lk_epgu OWNER to ervu_business_metrics;
COMMENT ON TABLE init_registration_info.info_sent_to_lk_epgu IS 'Первоначальная постановка на учет. ДОставка уведомлений в ЛК на ЕПГУ';
COMMENT ON COLUMN init_registration_info.info_sent_to_lk_epgu.info_source IS 'информация об источнике - PERSONAL_VISIT, GIR_VU, EPGU';
COMMENT ON COLUMN init_registration_info.info_sent_to_lk_epgu.info_age IS 'Информациия о каком возрасте 17_YEARS, 18_YEAR';
CREATE INDEX IF NOT EXISTS idx_info_sent_to_lk_epgu_date ON init_registration_info.info_sent_to_lk_epgu (info_date);
CREATE INDEX IF NOT EXISTS idx_info_sent_to_lk_epgu_recr ON init_registration_info.info_sent_to_lk_epgu (recruitment_id);
CREATE INDEX IF NOT EXISTS idx_info_sent_to_lk_epgu_recr_date ON init_registration_info.info_sent_to_lk_epgu (recruitment_id, info_date);
CREATE TABLE IF NOT EXISTS init_registration_info.decision_formation_status
(
decision_formation_status_id bigserial NOT NULL PRIMARY KEY,
recruitment_id uuid NOT NULL constraint fk_conv_info_records_from_easu_recruitment_id references metrics.recruitment,
update_date timestamp without time zone NOT NULL DEFAULT now(),
info_date date NOT NULL,
info_source varchar NOT NULL,
info_age varchar NOT NULL,
count_signed bigint NOT NULL DEFAULT 0,
count_suggested bigint NOT NULL DEFAULT 0,
count_waiting_sign bigint NOT NULL DEFAULT 0
)
WITH (OIDS = FALSE);
ALTER TABLE IF EXISTS init_registration_info.decision_formation_status OWNER to ervu_business_metrics;
COMMENT ON TABLE init_registration_info.decision_formation_status IS 'Первоначальная постановка на учет. Статус формирования решений';
COMMENT ON COLUMN init_registration_info.decision_formation_status.info_source IS 'информация об источнике - PERSONAL_VISIT, GIR_VU, EPGU';
COMMENT ON COLUMN init_registration_info.decision_formation_status.info_age IS 'Информациия о каком возрасте 17_YEARS, 18_YEAR';
COMMENT ON COLUMN init_registration_info.decision_formation_status.count_suggested IS 'Предпоставлено';
CREATE INDEX IF NOT EXISTS idx_decision_formation_status_date ON init_registration_info.decision_formation_status (info_date);
CREATE INDEX IF NOT EXISTS idx_decision_formation_status_recr ON init_registration_info.decision_formation_status (recruitment_id);
CREATE INDEX IF NOT EXISTS idx_decision_formation_status_recr_date ON init_registration_info.decision_formation_status (recruitment_id, info_date);
CREATE TABLE IF NOT EXISTS init_registration_info.incidents_info
(
incidents_info_id bigserial NOT NULL PRIMARY KEY,
recruitment_id uuid NOT NULL constraint fk_conv_info_records_from_easu_recruitment_id references metrics.recruitment,
update_date timestamp without time zone NOT NULL DEFAULT now(),
info_date date NOT NULL,
info_source varchar NOT NULL,
info_age varchar NOT NULL,
count_without_id_ern bigint NOT NULL DEFAULT 0,
count_discrepancy_epgu_info bigint NOT NULL DEFAULT 0
)
WITH (OIDS = FALSE);
ALTER TABLE IF EXISTS init_registration_info.incidents_info OWNER to ervu_business_metrics;
COMMENT ON TABLE init_registration_info.incidents_info IS 'Первоначальная постановка на учет. Инциденты';
COMMENT ON COLUMN init_registration_info.incidents_info.info_source IS 'информация об источнике - PERSONAL_VISIT, EPGU';
COMMENT ON COLUMN init_registration_info.incidents_info.info_age IS 'Информациия о каком возрасте 17_YEARS, 18_YEAR';
CREATE INDEX IF NOT EXISTS idx_incidents_info_date ON init_registration_info.incidents_info (info_date);
CREATE INDEX IF NOT EXISTS idx_incidents_info_recr ON init_registration_info.incidents_info (recruitment_id);
CREATE INDEX IF NOT EXISTS idx_incidents_info_recr_date ON init_registration_info.incidents_info (recruitment_id, info_date);
CREATE TABLE IF NOT EXISTS init_registration_info.init_registration_from_gir_vu
(
init_registration_from_gir_vu_id bigserial NOT NULL PRIMARY KEY,
recruitment_id uuid NOT NULL constraint fk_conv_info_records_from_easu_recruitment_id references metrics.recruitment,
update_date timestamp without time zone NOT NULL DEFAULT now(),
info_date date NOT NULL,
count_all bigint NOT NULL DEFAULT 0,
count_womens bigint NOT NULL DEFAULT 0,
count_received_citizenship bigint NOT NULL DEFAULT 0
)
WITH (OIDS = FALSE);
ALTER TABLE IF EXISTS init_registration_info.init_registration_from_gir_vu OWNER to ervu_business_metrics;
COMMENT ON TABLE init_registration_info.init_registration_from_gir_vu IS 'Первоначальная постановка на учет. Первоначальная постановка на учет по данным из ГИР ВУ';
CREATE INDEX IF NOT EXISTS idx_init_registration_from_gir_vu_date ON init_registration_info.init_registration_from_gir_vu (info_date);
CREATE INDEX IF NOT EXISTS idx_init_registration_from_gir_vu_recr ON init_registration_info.init_registration_from_gir_vu (recruitment_id);
CREATE INDEX IF NOT EXISTS idx_init_registration_from_gir_vu_recr_date ON init_registration_info.init_registration_from_gir_vu (recruitment_id, info_date);
CREATE TABLE IF NOT EXISTS init_registration_info.applications_received_from_epgu
(
applications_received_from_epgu_id bigserial NOT NULL PRIMARY KEY,
recruitment_id uuid NOT NULL constraint fk_conv_info_records_from_easu_recruitment_id references metrics.recruitment,
update_date timestamp without time zone NOT NULL DEFAULT now(),
info_date date NOT NULL,
count_all bigint NOT NULL DEFAULT 0,
count_executor_appointed bigint NOT NULL DEFAULT 0,
count_registered bigint NOT NULL DEFAULT 0,
count_registration_refusal bigint NOT NULL DEFAULT 0,
count_refusal_provide_service bigint NOT NULL DEFAULT 0
)
WITH (OIDS = FALSE);
ALTER TABLE IF EXISTS init_registration_info.applications_received_from_epgu OWNER to ervu_business_metrics;
COMMENT ON TABLE init_registration_info.applications_received_from_epgu IS 'Первоначальная постановка на учет. Первоначальная постановка на учет по данным из ГИР ВУ';
CREATE INDEX IF NOT EXISTS idx_applications_received_from_epgu_date ON init_registration_info.applications_received_from_epgu (info_date);
CREATE INDEX IF NOT EXISTS idx_applications_received_from_epgu_recr ON init_registration_info.applications_received_from_epgu (recruitment_id);
CREATE INDEX IF NOT EXISTS idx_applications_received_from_epgu_recr_date ON init_registration_info.applications_received_from_epgu (recruitment_id, info_date);
CREATE TABLE IF NOT EXISTS init_registration_info.statuses_decisions_on_epgu
(
statuses_decisions_on_epgu_id bigserial NOT NULL PRIMARY KEY,
recruitment_id uuid NOT NULL constraint fk_conv_info_records_from_easu_recruitment_id references metrics.recruitment,
update_date timestamp without time zone NOT NULL DEFAULT now(),
info_date date NOT NULL,
count_loaded bigint NOT NULL DEFAULT 0,
count_signed bigint NOT NULL DEFAULT 0,
count_formed_for_signing bigint NOT NULL DEFAULT 0
)
WITH (OIDS = FALSE);
ALTER TABLE IF EXISTS init_registration_info.statuses_decisions_on_epgu OWNER to ervu_business_metrics;
COMMENT ON TABLE init_registration_info.statuses_decisions_on_epgu IS 'Первоначальная постановка на учет. Статусы решений по Первоначальной постановке на учет(ЕПГУ)';
CREATE INDEX IF NOT EXISTS idx_statuses_decisions_on_epgu_date ON init_registration_info.statuses_decisions_on_epgu (info_date);
CREATE INDEX IF NOT EXISTS idx_statuses_decisions_on_epgu_recr ON init_registration_info.statuses_decisions_on_epgu (recruitment_id);
CREATE INDEX IF NOT EXISTS idx_statuses_decisions_on_epgu_recr_date ON init_registration_info.statuses_decisions_on_epgu (recruitment_id, info_date);
</sql>
</changeSet>
<!-- <changeSet id="0005" author="akochetkov">-->
<!-- <comment>add table </comment>-->
<!-- <sql>-->
<!-- </sql>-->
<!-- </changeSet>-->
</databaseChangeLog>

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.9
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd">
<include file="src/main/resources/changelog/v_0.1/20241031-ERVU-168_create_db.xml"/>
</databaseChangeLog>

View file

@ -0,0 +1,11 @@
changeLogFile = src/main/resources/changelog/changelog-master.xml
databaseChangeLogTableName = metricsdbchangelog
databaseChangeLogLockTableName = metricsdbchangelock
driver = org.postgresql.Driver
url = jdbc:postgresql://10.10.31.119/ervu_business_metrics
username = ervu_business_metrics
password = ervu_business_metrics
verbose = true
logging = debug
liquibaseSchemaName = public
defaultSchemaName = public