Данный раздел содержит подробную инструкцию по установке и настройке системы автоматической выгрузки отчётов в формате PDF или EXCEL на электронную почту или в Telegram-бот.
1. Установка
1.1. Копирование файлов
Скопируйте все файлы и папки, кроме следующих:
LOG
mydownloads
lastresult.json
1.2. Настройка службы
- Откройте файл
createAutoGenerateReportService.bat
в текстовом редакторе. - В параметре
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
}
]
}
6. Дополнительные рекомендации
- Для корректной работы убедитесь, что у пользователя, под которым происходит подключение к ReportSystem, достаточно прав для формирования нужных отчетов.
- Перед запуском службы проверьте все пути и параметры в конфигурационном файле.
- Настоятельно рекомендуется не изменять структуру и имена системных папок и файлов.
Версия документа: 1.0.0.2