123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- MainWindow::MainWindow(QMainWindow *parent)
- : QMainWindow(parent)
- , ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- timer = new QTimer(this);
- logThread = new LogThread(this);
- dbThread = new DBThread(this);
- connect(dbThread,&DBThread::getParam,this,&MainWindow::getParam);
- connect(dbThread,&DBThread::SqlLog,this,&MainWindow::SqlLog);
- connect(timer,&QTimer::timeout,this,&MainWindow::timeout);
- evalThread = new EvalThread(this);
- dbThread->initdb();
- logThread->start();
- timer->start(500);
- logThread->appendLog(QString("\r[ %1 ] ****** eval start ******").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- this->start();
- }
- MainWindow::~MainWindow()
- {
- logThread->stop();
- delete ui;
- }
- void MainWindow::start()
- {
- mainDB = QSqlDatabase::addDatabase("QODBC","GuardTour_DB");
- QString dsn = QString("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=%1;Uid=%2;Pwd=%3").arg(PathMdb).arg("").arg(PassWd);
- mainDB.setDatabaseName(dsn);
- this->evalData(); //巡检计划完成状态接口数据处理
- logThread->appendLog(QString("\r[ %1 ] ****** eval end ******").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- }
- void MainWindow::getParam(QString path, QString passwd)
- {
- PathMdb = path;
- PassWd = passwd;
- }
- void MainWindow::SqlLog(QString log)
- {
- logThread->appendLog(log);
- }
- void MainWindow::evalData()
- {
- QByteArray sendData;
- QJsonArray json_array;
- int idx = 0;
- logThread->appendLog(QString("\r[ %1 ] sql evalData start").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- evalThread->deleteEvalData();
- ui->plainTextEdit->appendPlainText(QString("\r[ %1 ] ******** USIAS-LANDEVAL start ********").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- if (!mainDB.open()) {
- logThread->appendLog(QString("\r[ %1 ] AccessDB open failed").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- ui->plainTextEdit->appendPlainText(QString("\r[ %1 ] AccessDB open failed").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- }
- else
- {
- logThread->appendLog(QString("\r[ %1 ] AccessDB open success").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- ui->plainTextEdit->appendPlainText(QString("\r[ %1 ] AccessDB open success").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- QSqlQuery query = mainDB.exec("select CStr(ID) AS eId,CStr(Plan_StartTime) AS eStartTime,CStr(Plan_EndTime) AS eEndTime,Patrol_Time AS ePatrolTime,Line_Name AS eLName,Place_Name AS ePlaceName,Bind_User AS eBindUser,User_Name AS eUserName,Bind_Device AS eBindDevice,Device_Name AS eDeviceName,Plan_State AS ePlanState,CStr(Stay_Time) AS eStayTime,Bind_Team AS eBindTeam,Team_Name AS eTeamName,Mid(CStr(Create_Time),1,10) AS eCreateTime,Plan_Type AS ePlanType,CStr(Line_Order) AS eLineOrder,CStr(Plan_Mode) AS ePlanMode,CStr(Plan_id) AS planId,CStr(Dflag) AS eDFlag,CStr(Error_Time) AS eErrorTime From GT_PLAN_EVALUATION WHERE format(Create_Time,'yyyy-MM-dd') = format(now(),'yyyy-MM-dd');");
- while(query.next())
- {
- QString eId = query.value("eId").toString();
- QString eStartTime = query.value("eStartTime").toString();
- QString eEndTime = query.value("eEndTime").toString();
- QString ePatrolTime;
- QDateTime PatrolTime = query.value("ePatrolTime").toDateTime();
- logThread->appendLog(QString("\r[ %1 ] PatrolTime : %2").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(PatrolTime.toString("yyyy-MM-dd hh:mm:ss")));
- if(PatrolTime.isNull())
- {
- ePatrolTime = "";
- }
- else
- {
- ePatrolTime = PatrolTime.toString("yyyy-MM-dd hh:mm:ss");
- }
- QString eLName = query.value("eLName").toString();
- QString ePlaceName = query.value("ePlaceName").toString();
- QString eBindUser = query.value("eBindUser").toString();
- QString eUserName = query.value("eUserName").toString();
- QString eBindDevice = query.value("eBindDevice").toString();
- QString eDeviceName = query.value("eDeviceName").toString();
- QString ePlanState = query.value("ePlanState").toString();
- QString eStayTime = query.value("eStayTime").toString();
- QString eBindTeam = query.value("eBindTeam").toString();
- QString eTeamName = query.value("eTeamName").toString();
- QString eCreateTime = query.value("eCreateTime").toString();
- QString ePlanType = query.value("ePlanType").toString();
- QString eLineOrder = query.value("eLineOrder").toString();
- QString ePlanMode = query.value("ePlanMode").toString();
- QString planId = query.value("planId").toString();
- QString eDFlag = query.value("eDFlag").toString();
- QString eErrorTime = query.value("eErrorTime").toString();
- logThread->appendLog(QString("eId:%1,eStartTime:%2,eEndTime:%3,ePatrolTime:%4,eLName:%5,ePlaceName:%6,eBindUser:%7,eUserName:%8,eBindDevice:%9,eDeviceName:%10,ePlanState:%11,eStayTime:%12,eBindTeam:%13,eTeamName:%14,eCreateTime:%15,ePlanType:%16,eLineOrder:%17,ePlanMode:%18,planId:%19,eDFlag:%20,eErrorTime:%21").arg(eId).arg(eStartTime).arg(eEndTime).arg(ePatrolTime).arg(eLName).arg(ePlaceName).arg(eBindUser).arg(eUserName).arg(eBindDevice).arg(eDeviceName).arg(ePlanState).arg(eStayTime).arg(eBindTeam).arg(eTeamName).arg(eCreateTime).arg(ePlanType).arg(eLineOrder).arg(ePlanMode).arg(planId).arg(eDFlag).arg(eErrorTime));
- evalThread->DealAccessDBData(eId,eStartTime,eEndTime,ePatrolTime,eLName,ePlaceName,eBindUser,eUserName,eBindDevice,eDeviceName,ePlanState,eStayTime,eBindTeam,eTeamName,eCreateTime,ePlanType,eLineOrder,ePlanMode,planId,eDFlag,eErrorTime); //将查询数据保存在本地巡更点位表中
- //将处理后的报警数据组装成数组形式 begin
- QJsonObject senddata;
- senddata.insert("eId",eId);
- senddata.insert("eStartTime",eStartTime);
- senddata.insert("eEndTime",eEndTime);
- senddata.insert("ePatrolTime",ePatrolTime);
- senddata.insert("eLName",eLName);
- senddata.insert("ePlaceName",ePlaceName);
- senddata.insert("eBindUser",eBindUser);
- senddata.insert("eUserName",eUserName);
- senddata.insert("eBindDevice",eBindDevice);
- senddata.insert("eDeviceName",eDeviceName);
- senddata.insert("ePlanState",ePlanState);
- senddata.insert("eStayTime",eStayTime);
- senddata.insert("eBindTeam",eBindTeam);
- senddata.insert("eTeamName",eTeamName);
- senddata.insert("eCreateTime",eCreateTime);
- senddata.insert("ePlanType",ePlanType);
- senddata.insert("eLineOrder",eLineOrder);
- senddata.insert("ePlanMode",ePlanMode);
- senddata.insert("planId",planId);
- senddata.insert("eDFlag",eDFlag);
- senddata.insert("eErrorTime",eErrorTime);
- json_array.insert(idx,senddata);
- //将处理后的报警数据组装成数组形式 end
- idx++;
- }
- query.clear();
- mainDB.close();
- }
- //Post JSON数组到前端
- sendData.append("key=");
- sendData.append(QJsonDocument(json_array).toJson(QJsonDocument::Compact));
- evalThread->SendJSONData(sendData);
- logThread->appendLog(QString("\r[ %1 ] eval sendData: ").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- logThread->appendLog(sendData);
- ui->plainTextEdit->appendPlainText(QString("\r[ %1 ] sendData : %2").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(QString(sendData)));
- logThread->appendLog(QString("\r[ %1 ] sql evalData end").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- ui->plainTextEdit->appendPlainText(QString("\r[ %1 ] ******** USIAS-LANDEVAL end ********").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- }
- void MainWindow::timeout()
- {
- ui->time_label->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"));
- }
- void MainWindow::on_pushButton_clicked()
- {
- this->start();
- }
|