Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 8 Следующий »

Данный раздел содержит подробную инструкцию по установке и настройке системы автоматической выгрузки отчётов в формате PDF или EXCEL на электронную почту или в Telegram-бот.


1. Установка

1.1. Копирование файлов

Скопируйте все файлы и папки, кроме следующих:
*Предоставляются по запросу в службе тех.поддержки

  • LOG
  • mydownloads
  • lastresult.json

1.2. Настройка службы

  1. Откройте файл createAutoGenerateReportService.bat в текстовом редакторе.
  2. В параметре binPath укажите корректный путь к файлу AutoGenerateReport.exe.

1.3. Создание Windows-службы

Запустите файл createAutoGenerateReportService.bat от имени администратора. Будет создана Windows-служба с именем «Game-Keeper AutoGenerateReport».

1.4. Настройка путей к библиотекам

Откройте файл AutoGenerateReport.runtimeconfig.dev.json и укажите правильный путь к папке LIB.


2. Конфигурация

Все настройки выполняются в конфигурационном файле appsettings.json.

2.1. Настройка списка отчетов (секция TaskList)

Каждый выгружаемый отчёт настраивается отдельным элементом массива в секции TaskList.
Параметры элемента:

  • ReportId — идентификатор отчета в системе ReportSystem (Интерактивные отчёты) (см. Рис. 1).
  • ReportName — имя, под которым отчет будет сохраняться.
  • Schedule — расписание выгрузки (используется формат CRON, подробнее: CRON) (пример см. ниже).
  • ExportFormat — формат выгрузки: «pdf» (PDF) или «xlsx» (Excel).
  • Smtp — в секции указываем адреса электронной почты, которые должны получать рассылку.
  • Telegram — адреса пользователей в Telegram, которые будут получать рассылку (адрес — это User ID в Telegram, получить его можно через бота @getmyid_bot).


Рис. 1 ID отчёта

Пример cron-команд для рассылки отчётов с разной периодичностью и в заданное время, оформленных по правилам cron:

1. Ежедневная рассылка в 12:00 (полдень)

0 12 * * * команда 

  • Запускается каждый день в 12:00.
  • 0 — минута (00)
  • 12 — час (12)
  • * * * — любой день месяца, любой месяц, любой день недели

2. Еженедельная рассылка по понедельникам в 09:30

30 9 * * 1 команда

  • Запускается каждую неделю в понедельник в 09:30.
  • 30 — минута (30)
  • 9 — час (09)
  • * * — любой день месяца и месяц
  • 1 — понедельник (дни недели: 0 или 7 — воскресенье, 1 — понедельник, ..., 6 — суббота)

3. Ежемесячная рассылка 1-го числа месяца в 08:00

0 8 1 * * команда

  • Запускается 1-го числа каждого месяца в 08:00.
  • 0 — минута (00)
  • 8 — час (08)
  • 1 — день месяца (первое число)
  • * * — любой месяц и день недели

4. Рассылка каждый будний день (понедельник-пятница) в 18:45

45 18 * * 1-5 команда

  • Запускается с понедельника по пятницу в 18:45.
  • 45 — минута (45)
  • 18 — час (18)
  • * * — любой день месяца и месяц
  • 1-5 — дни недели с понедельника по пятницу

2.2. Настройка способов рассылки (секция SenderProviders)

2.2.1. E-mail

В секции "SenderProviders":"Smtp" указываются параметры SMTP-сервера, учетные данные отправителя и отображаемое имя.

2.2.2. Telegram

В секции "SenderProviders":"Telegram" настраивается параметр "ApiToken" — токен Telegram-бота, через которого будут рассылаться отчеты. Получатели должны быть подписаны на данного бота.

Важно! Для каждой конфигурации должен быть создан уникальный телеграм-бот.

2.3. Подключение к ReportSystem (секция ReportSystem)

  • BaseUrl — URL сервера ReportSystem.
  • Login — логин пользователя с правами на формирование отчетов.
  • Password — пароль пользователя.

3. Описание работы службы

3.1. Принцип работы

  • Служба AutoGenerateReport отслеживает расписание в секции TaskList.
  • В заданное время автоматически формируется отчет через ReportSystem по указанному ReportId и формату (pdf или excel).
  • Сформированные файлы сохраняются в папке mydownloads в двух вариантах:
    • ReportId + дата_и_время + .ExportFormat
    • ReportName + дата_и_время + .ExportFormat
  • Файл с названием ReportName + дата_и_время + .ExportFormat отправляется на электронную почту и/или в Telegram адресатам из настроек.

3.2. Гибкость настроек

Вы можете добавить в TaskList любое количество отчетов, каждый с индивидуальным расписанием и списками получателей.


4. Работа Telegram-бота (версия 1.0.0.2)

  • При первом запуске Telegram-бота пользователь получает сообщение:

    "Привет, {UserName}! Ваш User ID: {UserId}. Вы подписались на рассылку отчетов."

  • Данные (UserId и UserName) сохраняются в файле telegramUsers.json и используются для последующих рассылок отчетов в Telegram.

5. Пример конфигурации (appsettings.json)


{
"AllowedHosts": "*",
"SenderProviders": {
"Smtp": {
"SmtpHost": "smtp.yandex.ru",
"SmtpPort": 465,
"UseSsl": true,
"Login": "Логин, от которого происходит рассылка",
"Password": "Пароль",
"From":

{ "Address": "Адрес, с которого происходит рассылка", "Name": "Отображаемое имя, от которого приходит письмо" }

},
"Telegram":

{ "ApiToken": "6278601718:AAG5vYEtpQR6cOUCNUay8kpvD3xI0cPDbQo" }

},
"ReportSystem":

{ "BaseUrl": "http://cloud.game-keeper.com:5200", "Login": "Robot", "Password": "1" }

,
"TaskList": [
{
"ReportId": "ceb7713a-7a76-6940-243d-269a584e6844",
"ReportName": "Выручка за текущий год",
"Schedule": "*/1 * * * *",
"ExportFormat": "pdf",
"Smtp": {
"To": [

{ "Name": "Себе", "Address": "any@yandex.ru", "Disabled": false }

],
"Cc": [
],
"Subject": "Выручка за текущий год",
"Body": "<h1>Выручка за текущий год</h1> Письмо сформировано автоматически <br/> С уважением, <br/> Ваш автогенератор отчетов",
"BodyIsHtml": true,
"Disabled": false
},
"Telegram": {
"To": [

{ "Name": "Имя получателя", "Address": "123456789", "Disabled": false }

],
"Text": "Выручка за текущий год",
"Disabled": false
},
"Disabled": false
}
]
}




6. Дополнительные рекомендации

  • Для корректной работы убедитесь, что у пользователя, под которым происходит подключение к ReportSystem, достаточно прав для формирования нужных отчетов.
  • Перед запуском службы проверьте все пути и параметры в конфигурационном файле.
  • Настоятельно рекомендуется не изменять структуру и имена системных папок и файлов.

Версия документа: 1.0.0.2

  • Нет меток