Импорт внешних списков номеров в систему Overseer

Материал из VIT company
Перейти к навигации Перейти к поиску

Для импорта внешних списков номеров в систему Overseer была разработана функция bulk_pass_update_group. Данную функцию следует выполнять в командной строке Windows (открыть через run, cmd) либо командной строкой программы cron. Наиболее частое применение функции - это для обновления белого/черного списка (группы) в системе Parking.


Функция принимает несколько входных параметров, которые указываются в скобках в следующем порядке: адрес текстового файла на диске, актуальный идентификатор группы, неактуальный идентификатор группы, разделитель колонок в файле, номер колонки, которая содержит номера, а также кодировку текстового файла. Параметр "актуальный идентификатор группы" - это имя группы, в которой будет находится обновленный список номеров. Параметр "неактуальный идентификатор группы" - это название группы, в которую будут перемещены записи о ТС из группы, которую обновляют. Наличие "неактуальной" группы необходимо для сохранения записей о ТС, которые после обновления не входят больше в актуальную группу.


Система рассчитана на использование картотеки системы в режиме "один владелец - одна машина". Имена владельцев, импортированных таким образом будут фиктивными, и будут создаваться на основе номеров машин. Из файла, который импортируется, будет использована только информация о номерах машин, остальная информация будет проигнорирована. В случае, если требуется импортировать не только списки номеров, но и дополнительную информацию о номере - следует обратится в службу поддержки.


Пример использования функции для импорта списка доступа

Перед применением функции следует выполнить подготовительные этапы в системе:

  1. Создать группу "whitelist" с политикой "пропускать".
  2. Создать группу "greylist" с политикой "запрашивать разрешение".
  3. Сформировать файл со списком например формата .сsv вида "АА8888АА;<возможная дополнительная информация>;<возможная дополнительная информация>;", поместить его по адресу C:\import\ с названием import.csv .
  4. Определиться с местом хранения вспомогательных файлов в ходе выполнения обновления ( в примере они будут хранится по адресу C:\import\done\ ).
  5. Определиться с расположением файла лога ( в примере данный файл будет хранится по адресу C:\import\log\ с именем import.log).


После выполнения подготовительных действий следует скопировать и выполнить в командной строке следующий текст:

@echo off
SetLocal EnableExtensions EnableDelayedExpansion


for /f "tokens=4*" %%a in ('sc qc postgresql-9.0 ^| findstr /n .* ^| findstr ^7:') do set PGBIN=%%~dpa

IF not exist %PGBIN%psql.exe (
	echo [FATAL] PostgreSQL 9.0 doesn`t exist :  %PGBIN%
	exit
)

SET PGBIN=%PGBIN%psql.exe

SET DT=%date:~6,4%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%

echo %DT%:: >> c:\import\log\import.log

IF not exist c:\import\import.csv (
	echo [FATAL] Import file not found
	exit
)

%PGBIN% -q -t -c "select import.bulk_pass_update_group('c:/import/import.csv','whitelist','greylist',';',1,'WIN1251');" autocode autocode >> c:\import\log\import.log 2>&1

move c:\import\import.csv c:\import\done\import-%DT%.csv

Пример использования функции для импорта розыскного списка

Перед применением функции следует выполнить подготовительные этапы в системе:

  1. Создать группу "wanted" с флагом "розыска" и обозначить ее красным цветом.
  2. Создать группу "junk" без флага розыска.
  3. Сформировать файл со списком например формата .сsv вида "АА8888АА;<возможная дополнительная информация>;", поместить его по адресу C:\import\ с названием import.csv .
  4. Определиться с местом хранения вспомогательных файлов в ходе выполнения обновления ( в примере они будут хранится по адресу C:\import\done\ ).
  5. Определиться с расположением файла лога ( в примере данный файл будет хранится по адресу C:\import\log\ с именем import.log).


После выполнения подготовительных действий следует скопировать и выполнить в командной строке следующий текст:

@echo off
SetLocal EnableExtensions EnableDelayedExpansion


for /f "tokens=4*" %%a in ('sc qc postgresql-9.0 ^| findstr /n .* ^| findstr ^7:') do set PGBIN=%%~dpa

IF not exist %PGBIN%psql.exe (
	echo [FATAL] PostgreSQL 9.0 doesn`t exist :  %PGBIN%
	exit
)

SET PGBIN=%PGBIN%psql.exe

SET DT=%date:~6,4%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%

echo %DT%:: >> c:\import\log\import.log

IF not exist c:\import\import.csv (
	echo [FATAL] Import file not found
	exit
)

%PGBIN% -q -t -c "select import.bulk_pass_update_group('c:/import/import.csv','wanted','junk',';',1,'WIN1251');" autocode autocode >> c:\import\log\import.log 2>&1

move c:\import\import.csv c:\import\done\import-%DT%.csv