# buscmd
Скрипты для загрузки и обработки данных с портала bus.gov.ru


## Зависимости
Нужна утилита [xml-to-json](https://hackage.haskell.org/package/xml-to-json) доступная в PATH. Утилита является пакетом для Haskell и её можно установить командой ```cabal install xml-to-json```
О том как установить cabal можно прочитать тут https://wiki.haskell.org/Cabal/How_to_install_a_Cabal_package

Для работы зеркало FTP сервера bus.gov.ru должны находится в папке /data/ftp/bus.gov.ru 

## Команды скрипта buscmd.py

Скрипт используется для загрузки данных с портала:
* listdata - загружает списки файлов из зеркала FTP в базу MongoDB для последующей обработки данных
* loadnsi - загружает списки файлов спарввочников из зеркала в FTP в базу MongoDB для последующей обработки
* process - обрабатывает выбранную категорию данных - выгружает данные для выбранной категории.
* stats - статистика по загруженным данным 
* reset - полностью сбрасывает базу данных (БЕЗ предупреждения!)

## Пример запуска скрипта

Пролистать все ZIP файлы по категории StateTask
```
python buscmd.py listdata StateTask
python buscmd.py process StateTask
```


Получить статистику загрузки данных
```
python buscmd.py stats
```
## Виды данных
Подробнее в документации:
* institutionInfo - общая информация об учреждении;
* diverseInfo – иная иформация об учреждении;
* stateTask - информация о государственном (муниципальном) задании на
оказание государственных (муниципальных) услуг (выполнение работ)
и его исполнении;
* financialActivityPlan - информация о плане финансово-хозяйственной
деятельности;
* actionGrant - информация об операциях с целевыми средствами из
бюджета;
* budgetaryCircumstances - информация о показателях бюджетной сметы;
* activityResult - информация о результатах деятельности и об
использовании имущества;
* inspectionActivity - сведения о проведенных в отношении учреждения
контрольных мероприятиях и их результатах;
* annualAccountancy - информация о годовой бухгалтерской отчетности
учреждения;
* nsiFederalService - федеральный перечень государственных
(муниципальных) услуг (работ);
* nsiSubjectService - перечень государственных (муниципальных) услуг
(работ) субъекта РФ.

##Текущая статистика

category               |   total_files |   not_loaded |   count |            size
---------------------- | ------------- | ------------ | ------- | ---------------
ActionGrant            |          6426 |            0 |  507961 |   1909.64
ActivityResult         |         11895 |            0 | 1101219 |   8561.38
BudgetaryCircumstances |          3164 |            0 |  214947 |   1830.27
DiverseInfo            |           124 |            0 |   39838 |    145.467
FinancialActivityPlan  |          7634 |            0 |  605227 |   2472.25
GeneralInfo            |          3969 |            0 |  226407 |   1620.79
InspectionActivity     |          5721 |            0 |  458704 |   2012.76
StateTask              |         12643 |            0 | 1118463 |  16326.4
annualBalanceF0503121  |          2293 |            0 |  193106 |   5950.01
annualBalanceF0503127  |          1800 |            0 |  161709 |   2070.46
annualBalanceF0503130  |          2622 |            0 |  224756 |   7350.02
annualBalanceF0503137  |           289 |            0 |  161709 |   2070.46
annualBalanceF0503721  |          4999 |            0 |  448177 |  13674.6
annualBalanceF0503730  |          5071 |            0 |  457910 |  15988.5
annualBalanceF0503737  |          5356 |            0 |  472527 |  15679.1
regPublishedInfo       |             0 |            0 |       0 |      0
nsiBudget              |           246 |            0 |   24501 |     23.5558
nsiFederalService      |             1 |            0 |      74 |      8.26433
nsiInstitutionType     |             1 |            0 |     733 |      0.704636
nsiIt                  |             1 |            0 |     668 |      0.642151
nsiKbk                 |            98 |           98 |  195626 |    360.536
nsiKbkBudget           |            98 |            0 |   97813 |    181.505
nsiKladr               |         11675 |            0 | 1167473 |   1122.3
nsiOgs                 |          5507 |            0 |  550678 |   3607.01
nsiOkato               |            93 |            0 |  184605 |    177.461
nsiOker                |             1 |            0 |      8  |     0.00769043
nsiOkfs                |             1 |            0 |      33 |      0.031723
nsiOkogu               |             1 |            0 |     560 |      0.53833
nsiOkopf               |             1 |            0 |     134 |      0.128815
nsiOktmo               |          1685 |            0 |  361589 |    347.597
nsiOkved               |            21 |            0 |    1996 |      1.93341
nsiPpo                 |           233 |            0 |   23299 |     22.3984
nsiSubjectService      |             4 |            0 |    3130 |     59.9609
total                  |         93673 |           98 | 9005580 | 103577