Refactor buildCaption in TaskDumpRecorder to improve HTML-escaped formatting, include additional metadata, and integrate LogArchiveSender for automatic error archive dispatch.
This commit is contained in:
parent
4ab46b8b49
commit
0045c37d64
@ -15,7 +15,9 @@
|
||||
#include <qDebug>
|
||||
|
||||
#include "adb/AdbUtils.h"
|
||||
#include "dao/SettingsDAO.h"
|
||||
#include "net/NetworkService.h"
|
||||
#include "LogArchiveSender.h"
|
||||
|
||||
namespace {
|
||||
|
||||
@ -164,14 +166,28 @@ TaskDumpRecorder::TaskDumpRecorder(const QString &bank, const QString &taskKind,
|
||||
}
|
||||
|
||||
QString TaskDumpRecorder::buildCaption(const QString &errorMessage) const {
|
||||
QString s = QString("Bank: %1 | Task: %2 | Device: %3")
|
||||
.arg(m_bank, m_taskKind, m_adbDeviceIdRaw);
|
||||
if (!m_meta.materialId.isEmpty()) s += QString("\nMaterial ID: %1").arg(m_meta.materialId);
|
||||
if (m_meta.amount != 0) s += QString("\nAmount: %1").arg(static_cast<qint64>(m_meta.amount));
|
||||
if (!m_meta.phone.isEmpty()) s += QString("\nPhone: %1").arg(m_meta.phone);
|
||||
if (!m_meta.card.isEmpty()) s += QString("\nCard: %1").arg(m_meta.card);
|
||||
s += QString("\nError: %1").arg(errorMessage.left(800));
|
||||
return s;
|
||||
const QString apiToken = SettingsDAO::get("api_key");
|
||||
const QString timestamp = QDateTime::currentDateTime().toString(Qt::ISODate);
|
||||
|
||||
QStringList head{QStringLiteral("[TASK_ERROR]")};
|
||||
if (!apiToken.isEmpty())
|
||||
head << QStringLiteral("[%1]").arg(apiToken.toHtmlEscaped());
|
||||
head << QStringLiteral("[%1]").arg(m_bank.toHtmlEscaped());
|
||||
head << QStringLiteral("[%1]").arg(m_taskKind.toHtmlEscaped());
|
||||
|
||||
QString body = QStringLiteral("Device: %1").arg(m_adbDeviceIdRaw.toHtmlEscaped());
|
||||
if (!m_meta.materialId.isEmpty())
|
||||
body += QStringLiteral("\nMaterial: %1").arg(m_meta.materialId.toHtmlEscaped());
|
||||
if (m_meta.amount != 0)
|
||||
body += QStringLiteral("\nAmount: %1").arg(static_cast<qint64>(m_meta.amount));
|
||||
if (!m_meta.phone.isEmpty())
|
||||
body += QStringLiteral("\nPhone: %1").arg(m_meta.phone.toHtmlEscaped());
|
||||
if (!m_meta.card.isEmpty())
|
||||
body += QStringLiteral("\nCard: %1").arg(m_meta.card.toHtmlEscaped());
|
||||
body += QStringLiteral("\nError: %1").arg(errorMessage.left(800).toHtmlEscaped());
|
||||
|
||||
return QStringLiteral("<b>%1</b>\n%2\n%3")
|
||||
.arg(head.join(QStringLiteral(" ")), timestamp.toHtmlEscaped(), body);
|
||||
}
|
||||
|
||||
void TaskDumpRecorder::saveXml(int counter, const QString &xml) {
|
||||
@ -204,6 +220,9 @@ void TaskDumpRecorder::finishInternal(const QString &errorMessage) {
|
||||
qWarning() << "[TaskDumpRecorder] task failed:" << errorMessage
|
||||
<< "folder:" << m_folder;
|
||||
|
||||
// application.log + БД (с WAL/SHM) уходят отдельным архивом через готовый sender.
|
||||
LogArchiveSender::dispatch(QStringLiteral("TASK_ERROR"));
|
||||
|
||||
// Финальный скриншот текущего экрана
|
||||
if (!m_adbDeviceIdRaw.isEmpty()) {
|
||||
const QByteArray png = AdbUtils::captureScreenshotBytes(m_adbDeviceIdRaw);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user