feat:完成事件确认的操作逻辑
This commit is contained in:
parent
6c8f2e0618
commit
8e3239fe71
|
|
@ -32,7 +32,7 @@ signals:
|
||||||
void realTimeEventReceived(const EventData& event);
|
void realTimeEventReceived(const EventData& event);
|
||||||
void historicalQueryError(const QString& msg);
|
void historicalQueryError(const QString& msg);
|
||||||
void historicalQueryData(const QList<EventData>& events);
|
void historicalQueryData(const QList<EventData>& events);
|
||||||
void confirmEventsResult(bool success, const QString& mesg);
|
void confirmEventsResult(bool success, const QString& mesg, const QStringList& successUuids);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void onRabbitMQConnected();
|
void onRabbitMQConnected();
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,8 @@ public:
|
||||||
const int getMaxRealTimeEvents() const {return m_maxRealTimeEvents;}
|
const int getMaxRealTimeEvents() const {return m_maxRealTimeEvents;}
|
||||||
void setFilter(const AlarmEventDataFilter& filter);
|
void setFilter(const AlarmEventDataFilter& filter);
|
||||||
void refresh();
|
void refresh();
|
||||||
|
void confirmEvent(const QModelIndex);
|
||||||
|
void confirmCurPageEvents();
|
||||||
|
|
||||||
bool setCurrentPage(int);
|
bool setCurrentPage(int);
|
||||||
int currentPage() const;
|
int currentPage() const;
|
||||||
|
|
@ -81,7 +83,7 @@ private slots:
|
||||||
void onRealTimeEventReceived(const EventData& event);
|
void onRealTimeEventReceived(const EventData& event);
|
||||||
void onHistoricalEventsReceived(const QList<EventData>& events);
|
void onHistoricalEventsReceived(const QList<EventData>& events);
|
||||||
void onHistoricalQueryError(const QString&);
|
void onHistoricalQueryError(const QString&);
|
||||||
void onConfirmEventsResult(bool success, const QString& mesg);
|
void onConfirmEventsResult(bool success, const QString& mesg, const QStringList& successUuids);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void iniHeaderData();
|
void iniHeaderData();
|
||||||
|
|
@ -102,6 +104,8 @@ private:
|
||||||
AlarmDataMode m_dataMode;
|
AlarmDataMode m_dataMode;
|
||||||
AlarmEventDataFilter m_currentFilter;
|
AlarmEventDataFilter m_currentFilter;
|
||||||
int m_maxRealTimeEvents;
|
int m_maxRealTimeEvents;
|
||||||
|
|
||||||
|
//QMap<qint64, QVector<QModelIndex>> m_confirmedEvents;
|
||||||
};
|
};
|
||||||
|
|
||||||
class AlarmEventDataDelegate : public QStyledItemDelegate
|
class AlarmEventDataDelegate : public QStyledItemDelegate
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,7 @@ private slots:
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void onBtnClicked_close();
|
void onBtnClicked_close();
|
||||||
|
void onBtnClicked_confirmAll();
|
||||||
|
|
||||||
void onBtnClicked_firstPage();
|
void onBtnClicked_firstPage();
|
||||||
void onBtnClicked_previousPage();
|
void onBtnClicked_previousPage();
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ private:
|
||||||
|
|
||||||
void writeToFile(const QString&);
|
void writeToFile(const QString&);
|
||||||
void rollLogFiles(); //当文件大小超过设置上线时会触发'滚动'
|
void rollLogFiles(); //当文件大小超过设置上线时会触发'滚动'
|
||||||
QString formatLogMessage(LogLevel, const QString&, const QString&);
|
QString fromatLogMessage(LogLevel, const QString&, const QString&);
|
||||||
|
|
||||||
struct LogEntry
|
struct LogEntry
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -116,7 +116,7 @@ void AlarmEventDataService::queryHistoricalEvents(const QDateTime& startTime, co
|
||||||
void AlarmEventDataService::confirmEvents(const QStringList& uuids)
|
void AlarmEventDataService::confirmEvents(const QStringList& uuids)
|
||||||
{
|
{
|
||||||
QUrl url = buildConfirmEventsUrl();
|
QUrl url = buildConfirmEventsUrl();
|
||||||
if(url.isValid())
|
if(!url.isValid())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//创建网络请求
|
//创建网络请求
|
||||||
|
|
@ -404,6 +404,7 @@ void AlarmEventDataService::onHistoricalRequestFinished(QNetworkReply* reply)
|
||||||
|
|
||||||
void AlarmEventDataService::onConfirmEventsRequestFinished(QNetworkReply* reply)
|
void AlarmEventDataService::onConfirmEventsRequestFinished(QNetworkReply* reply)
|
||||||
{
|
{
|
||||||
|
QStringList successUuids;
|
||||||
if(reply->error() == QNetworkReply::NoError)
|
if(reply->error() == QNetworkReply::NoError)
|
||||||
{
|
{
|
||||||
QByteArray data = reply->readAll();
|
QByteArray data = reply->readAll();
|
||||||
|
|
@ -413,20 +414,33 @@ void AlarmEventDataService::onConfirmEventsRequestFinished(QNetworkReply* reply)
|
||||||
if(parseError.error == QJsonParseError::NoError && doc.isObject())
|
if(parseError.error == QJsonParseError::NoError && doc.isObject())
|
||||||
{
|
{
|
||||||
QJsonObject docObj = doc.object();
|
QJsonObject docObj = doc.object();
|
||||||
int code = docObj.value("code").toInt();
|
QJsonValue dataValue = docObj.value("data");
|
||||||
if(code == 0)
|
if(dataValue.isObject())
|
||||||
emit confirmEventsResult(true, "");
|
{
|
||||||
else
|
QJsonObject dataObj = dataValue.toObject();
|
||||||
emit confirmEventsResult(false, QString("确认事件失败, error code = %1").arg(QString::number(code)));
|
QJsonValue uuidValue = dataObj.value("success_uuids");
|
||||||
|
if(uuidValue.isArray())
|
||||||
|
{
|
||||||
|
QJsonArray uuidArray = uuidValue.toArray();
|
||||||
|
for(const QJsonValue& value : uuidArray)
|
||||||
|
{
|
||||||
|
if(value.isString())
|
||||||
|
successUuids.append(value.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
emit confirmEventsResult(true, "", successUuids);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
emit confirmEventsResult(false, QString("确认事件失败(Json错误)"));
|
emit confirmEventsResult(false, QString("确认事件失败(Json错误)"), successUuids);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QString errorMsg = QString("ConfirmEvents error: %1").arg(reply->errorString());
|
QString errorMsg = QString("ConfirmEvents error: %1").arg(reply->errorString());
|
||||||
LOG_ERROR("Http", errorMsg);
|
LOG_ERROR("Http", errorMsg);
|
||||||
emit confirmEventsResult(false, QString("确认事件失败(%1)").arg(errorMsg));
|
emit confirmEventsResult(false, QString("确认事件失败(%1)").arg(errorMsg), successUuids);
|
||||||
}
|
}
|
||||||
|
|
||||||
reply->deleteLater();
|
reply->deleteLater();
|
||||||
|
|
|
||||||
|
|
@ -282,6 +282,23 @@ void AlarmEventDataModel::updateEventData(int index, const EventData& updatedEve
|
||||||
emit dataChanged(modelIndex, modelIndex);
|
emit dataChanged(modelIndex, modelIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AlarmEventDataModel::confirmEvent(const QModelIndex index)
|
||||||
|
{
|
||||||
|
int row = index.row();
|
||||||
|
QString uuid = m_displayEvents.at(row).id;
|
||||||
|
QStringList uuids;
|
||||||
|
uuids.append(uuid);
|
||||||
|
AlarmEventDataService::instance()->confirmEvents(uuids);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AlarmEventDataModel::confirmCurPageEvents()
|
||||||
|
{
|
||||||
|
QStringList uuids;
|
||||||
|
for(const EventData& event : m_displayEvents)
|
||||||
|
uuids.append(event.id);
|
||||||
|
AlarmEventDataService::instance()->confirmEvents(uuids);
|
||||||
|
}
|
||||||
|
|
||||||
void AlarmEventDataModel::updateCurPageData()
|
void AlarmEventDataModel::updateCurPageData()
|
||||||
{
|
{
|
||||||
m_displayEvents.clear();
|
m_displayEvents.clear();
|
||||||
|
|
@ -420,13 +437,33 @@ void AlarmEventDataModel::onHistoricalQueryError(const QString& error)
|
||||||
emit loadDataError(error);
|
emit loadDataError(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AlarmEventDataModel::onConfirmEventsResult(bool success, const QString& mesg)
|
void AlarmEventDataModel::onConfirmEventsResult(bool success, const QString& mesg, const QStringList& successUuids)
|
||||||
{
|
{
|
||||||
if(!success)
|
if(!success)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//从列表中进行删除
|
|
||||||
|
if(m_dataMode == RealTime)
|
||||||
|
{
|
||||||
|
beginResetModel();
|
||||||
|
|
||||||
|
for(const QString& uuid : successUuids)
|
||||||
|
{
|
||||||
|
for(EventData& event : m_displayEvents)
|
||||||
|
{
|
||||||
|
if(event.id == uuid)
|
||||||
|
{
|
||||||
|
event.status = 3;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
endResetModel();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AlarmEventDataModel::setCurrentPage(int page)
|
bool AlarmEventDataModel::setCurrentPage(int page)
|
||||||
|
|
@ -697,7 +734,8 @@ AlarmEventDataView::~AlarmEventDataView()
|
||||||
|
|
||||||
void AlarmEventDataView::onBtnClicked_Confirm(const QModelIndex& index)
|
void AlarmEventDataView::onBtnClicked_Confirm(const QModelIndex& index)
|
||||||
{
|
{
|
||||||
qDebug() << QString("confirmBtnClicked, row: %1").arg(index.row());
|
//qDebug() << QString("confirmBtnClicked, row: %1").arg(index.row());
|
||||||
|
m_tableModel->confirmEvent(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AlarmEventDataView::onBtnClicked_Replay(const QModelIndex& index)
|
void AlarmEventDataView::onBtnClicked_Replay(const QModelIndex& index)
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ AlarmEventMainDialog::AlarmEventMainDialog(QWidget *parent)
|
||||||
connect(m_tableView->model(), &AlarmEventDataModel::loadDataError, this, &AlarmEventMainDialog::onLoadDataError);
|
connect(m_tableView->model(), &AlarmEventDataModel::loadDataError, this, &AlarmEventMainDialog::onLoadDataError);
|
||||||
|
|
||||||
connect(ui->btnClose, &QPushButton::clicked, this, &AlarmEventMainDialog::onBtnClicked_close);
|
connect(ui->btnClose, &QPushButton::clicked, this, &AlarmEventMainDialog::onBtnClicked_close);
|
||||||
|
connect(ui->btnConfirmAll, &QPushButton::clicked, this, &AlarmEventMainDialog::onBtnClicked_confirmAll);
|
||||||
|
|
||||||
connect(ui->btnFirstPage, &QPushButton::clicked, this, &AlarmEventMainDialog::onBtnClicked_firstPage);
|
connect(ui->btnFirstPage, &QPushButton::clicked, this, &AlarmEventMainDialog::onBtnClicked_firstPage);
|
||||||
connect(ui->btnPreviousPage, &QPushButton::clicked, this, &AlarmEventMainDialog::onBtnClicked_previousPage);
|
connect(ui->btnPreviousPage, &QPushButton::clicked, this, &AlarmEventMainDialog::onBtnClicked_previousPage);
|
||||||
|
|
@ -231,6 +232,11 @@ void AlarmEventMainDialog::onBtnClicked_close()
|
||||||
emit sgl_hide();
|
emit sgl_hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AlarmEventMainDialog::onBtnClicked_confirmAll()
|
||||||
|
{
|
||||||
|
m_tableView->model()->confirmCurPageEvents();
|
||||||
|
}
|
||||||
|
|
||||||
void AlarmEventMainDialog::onBtnClicked_firstPage()
|
void AlarmEventMainDialog::onBtnClicked_firstPage()
|
||||||
{
|
{
|
||||||
m_tableView->model()->firstPage();
|
m_tableView->model()->firstPage();
|
||||||
|
|
|
||||||
|
|
@ -190,6 +190,7 @@ void AlarmEventRealTimeDock::onBtnClicked_close()
|
||||||
void AlarmEventRealTimeDock::onBtnClicked_confirmAll()
|
void AlarmEventRealTimeDock::onBtnClicked_confirmAll()
|
||||||
{
|
{
|
||||||
//stopAlarmAlert();
|
//stopAlarmAlert();
|
||||||
|
m_tableView->model()->confirmCurPageEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AlarmEventRealTimeDock::onBtnClicked_checkAll()
|
void AlarmEventRealTimeDock::onBtnClicked_checkAll()
|
||||||
|
|
|
||||||
|
|
@ -141,7 +141,7 @@ void Logger::rollLogFiles()
|
||||||
qWarning() << "Failed to open new log file after rolling:" << m_logFile.errorString();
|
qWarning() << "Failed to open new log file after rolling:" << m_logFile.errorString();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString Logger::formatLogMessage(LogLevel level, const QString& context, const QString& message)
|
QString Logger::fromatLogMessage(LogLevel level, const QString& context, const QString& message)
|
||||||
{
|
{
|
||||||
static const char* levelStrings[] = {"FATAL", "ERROR", "WARNING", "INFO", "DEBUG"};
|
static const char* levelStrings[] = {"FATAL", "ERROR", "WARNING", "INFO", "DEBUG"};
|
||||||
return QString("[%1] [%2] [%3] %4")
|
return QString("[%1] [%2] [%3] %4")
|
||||||
|
|
@ -156,7 +156,7 @@ void Logger::log(LogLevel level, const QString& context, const QString& message)
|
||||||
if(level > m_logLevel)
|
if(level > m_logLevel)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QString formatMessage = formatLogMessage(level, context, message);
|
QString formatMessage = fromatLogMessage(level, context, message);
|
||||||
if(m_outputToConsole)
|
if(m_outputToConsole)
|
||||||
QTextStream(stderr) << formatMessage << Qt::endl;
|
QTextStream(stderr) << formatMessage << Qt::endl;
|
||||||
if(m_outputOtFile)
|
if(m_outputOtFile)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue