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

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

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

Данный раздел содержит подробную инструкцию по установке и настройке системы автоматической выгрузки отчётов в формате 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 (Интерактивные отчёты).
  • ReportName — имя, под которым отчет будет сохраняться.
  • Schedule — расписание выгрузки (используется формат CRON, подробнее: CRON).
  • ExportFormat — формат выгрузки: "pdf" (PDF) или "xlsx" (Excel).
  • Smtp — параметры для рассылки отчёта по электронной почте.
  • Telegram — параметры для отправки отчета в Telegram (адрес — это User ID в Telegram, получить его можно через бота @getmyid_bot).

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": "Токен_вашего_бота"
    }
  },
  "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
    }
  ]
}


{
"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

  • Нет меток