Загрузка данных


BEGIN;

DO $check$
BEGIN
    IF NOT EXISTS (
        SELECT 1
        FROM report.conf_scheduler_sfr
        WHERE id = 40
          AND is_active = false
    ) THEN
        RAISE EXCEPTION
            'Регламент №40 должен быть выключен перед изменением настроек';
    END IF;

    IF (
        SELECT count(*)
        FROM smev.smev_report_create_register_processes_bak_20261031
        WHERE id_etl = 40
    ) <> 12 THEN
        RAISE EXCEPTION
            'В резервной копии ожидаются 12 шагов регламента №40';
    END IF;
END;
$check$;

-- 1. Отбор данных и запуск цикла.
-- Пустые даты означают вчера и сегодня.
UPDATE smev.smev_report_create_register_processes
SET process_type = 4,
    load_post_process = 'J6JzujYq',
    process_description = 'Отбор данных для отдельных XML ФНС',
    load_id_var = ARRAY[
        ROW('start_date_app', 'String', '')::smev.ctx_var,
        ROW('end_date_app', 'String', '')::smev.ctx_var,
        ROW('isChecked', 'Boolean', 'true')::smev.ctx_var,
        ROW('contract_activity_type', 'String', 'ALL')::smev.ctx_var
    ],
    active_task = true
WHERE id_etl = 40
  AND id_process = 1;

-- 2. Прежняя проверка больше не используется.
UPDATE smev.smev_report_create_register_processes
SET active_task = false
WHERE id_etl = 40
  AND id_process = 2;

-- Шаги 3 и 4: существующие генераторы ИД и GUID.

-- 5. Создание отдельного реестра с нумерацией,
-- используемой в действующем ручном формировании.
UPDATE smev.smev_report_create_register_processes
SET load_id_var = ARRAY[
        ROW('registerId', 'Integer', 'step=3+id')::smev.ctx_var,
        ROW('registerType', 'String', 'ФНС-ВЧТ')::smev.ctx_var,
        ROW('guid', 'String', 'step=4+guid')::smev.ctx_var,
        ROW(
            'registrationNumberSequence',
            'String',
            'report.fns_vcht_number_sequence'
        )::smev.ctx_var,
        ROW('viewCode', 'String', 'n3mSokEw')::smev.ctx_var
    ],
    active_task = true
WHERE id_etl = 40
  AND id_process = 5;

-- 6. Формирование XML для текущего человека и договора.
UPDATE smev.smev_report_create_register_processes
SET process_type = 3,
    load_post_process = 'CscIW8M0',
    process_description = 'Формирование отдельного XML ФНС',
    load_id_var = ARRAY[
        ROW('id', 'Integer', 'step=1+start_b')::smev.ctx_var,
        ROW('fl_Id', 'Integer', 'step=1+start_b')::smev.ctx_var,
        ROW('contract_id', 'Integer', 'step=1+end_b')::smev.ctx_var,
        ROW('agent_id', 'Integer', 'step=1+agent_id')::smev.ctx_var,
        ROW('registerId', 'Integer', 'step=3+id')::smev.ctx_var,
        ROW('service_name_v', 'String', 'SMEF FNS')::smev.ctx_var,
        ROW('queryModelCharset', 'String', 'UTF-8')::smev.ctx_var,
        ROW('viewCode', 'String', 'n3mSokEw')::smev.ctx_var
    ],
    active_task = true
WHERE id_etl = 40
  AND id_process = 6;

-- 7. Создание отдельной записи журнала.
UPDATE smev.smev_report_create_register_processes
SET process_type = 2,
    load_post_process = 'osDA0Imq',
    process_description = 'Создание отдельной записи журнала ФНС',
    load_id_var = ARRAY[
        ROW('contract_id', 'Integer', 'step=1+end_b')::smev.ctx_var,
        ROW('fl_id', 'Integer', 'step=1+start_b')::smev.ctx_var,
        ROW('smevRegisterId', 'Integer', 'step=3+id')::smev.ctx_var,
        ROW('viewCode', 'String', 'n3mSokEw')::smev.ctx_var
    ],
    active_task = true
WHERE id_etl = 40
  AND id_process = 7;

-- 8. Привязка файла по конкретному реестру.
UPDATE smev.smev_report_create_register_processes
SET process_type = 2,
    load_post_process = '8IRe1sYA',
    process_description = 'Привязка файла ФНС по реестру',
    load_id_var = ARRAY[
        ROW('rj_id', 'Integer', 'step=3+id')::smev.ctx_var,
        ROW('viewCode', 'String', 'n3mSokEw')::smev.ctx_var
    ],
    active_task = true
WHERE id_etl = 40
  AND id_process = 8;

COMMIT;

SELECT
    id_process,
    process_type,
    load_post_process,
    operation_type,
    active_task
FROM smev.smev_report_create_register_processes
WHERE id_etl = 40
ORDER BY id_process;