123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466 |
- #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);
- pointThread = new PointThread(this);
- lineThread = new LineThread(this);
- planThread = new PlanThread(this);
- //evalThread = new EvalThread(this);
- dbThread->initdb();
- logThread->start();
- timer->start(500);
- logThread->appendLog(QString("\r[ %1 ] ****** 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);
- ui->plainTextEdit->appendPlainText(QString("\r[ %1 ] ******** USIAS-LANDWELL start ********").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- this->pointData(); //巡更点位接口数据处理
- this->lineData(); //巡检路线接口数据处理
- this->planData(); //巡检计划接口数据处理
- //this->evalData(); //巡检计划完成状态接口数据处理
- ui->plainTextEdit->appendPlainText(QString("\r[ %1 ] ******** USIAS-LANDWELL end ********").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- logThread->appendLog(QString("\r[ %1 ] ****** 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::pointData()
- {
- QByteArray sendData;
- QJsonArray json_array;
- int idx = 0;
- logThread->appendLog(QString("\r[ %1 ] sql pointData start").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- pointThread->deletePointData();
- ui->plainTextEdit->appendPlainText(QString("\r[ %1 ] -------- pointData 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 pId,CheckPoint_Card,CheckPoint_Name,CheckPoint_Number,CheckPoint_Type from GT_CHECKPOINT;");
- while(query.next())
- {
- QString pId = query.value("pId").toString();
- QString pCard = query.value("CheckPoint_Card").toString();
- QString pName = query.value("CheckPoint_Name").toString();
- QString pNumber = query.value("CheckPoint_Number").toString();
- QString pType = query.value("CheckPoint_Type").toString();
- logThread->appendLog(QString("pId:%1,CheckPoint_Card:%2,CheckPoint_Name:%3,CheckPoint_Number:%4,CheckPoint_Type:%5").arg(pId).arg(pCard).arg(pName).arg(pNumber).arg(pType));
- pointThread->DealAccessDBData(pId,pCard,pName,pNumber,pType); //将查询数据保存在本地巡更点位表中
- //将处理后的报警数据组装成数组形式 begin
- QJsonObject senddata;
- senddata.insert("pId",pId);
- senddata.insert("ptCard",pCard);
- senddata.insert("ptName",pName);
- senddata.insert("ptNum",pNumber);
- senddata.insert("ptType",pType);
- json_array.insert(idx,senddata);
- //将处理后的报警数据组装成数组形式 end
- idx++;
- }
- query.clear();
- mainDB.close();
- }
- //Post JSON数组到前端
- sendData.append("key=");
- sendData.append(QJsonDocument(json_array).toJson(QJsonDocument::Compact));
- pointThread->SendJSONData(sendData);
- logThread->appendLog(QString("\r[ %1 ] point sendData: ").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- logThread->appendLog(sendData);
- ui->plainTextEdit->appendPlainText(QString("\r[ %1 ] point sendData: %2").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(QString(sendData)));
- ui->plainTextEdit->appendPlainText(QString("\r[ %1 ] -------- pointData end --------").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- logThread->appendLog(QString("\r[ %1 ] sql pointData end").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- }
- void MainWindow::lineData()
- {
- QByteArray sendData;
- QJsonArray json_array;
- int idx = 0;
- logThread->appendLog(QString("\r[ %1 ] sql lineData start").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- lineThread->deleteLineData();
- ui->plainTextEdit->appendPlainText(QString("\r[ %1 ] -------- lineData 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(line.id) AS lID, (select Line_Name from GT_LINE where id = line.Line_ID) AS Line_Name, CStr(line.Place_ID) AS lPlace_ID, CStr(line.Line_Order) AS lLine_Order, CStr(line.NextPlace_Time) AS lNextPlace_Time, CStr(line.Stay_Time) AS lStay_Time FROM GT_LINE_EXTD AS line;");
- while(query.next())
- {
- QString lId = query.value("lID").toString();
- QString lName = query.value("Line_Name").toString();
- QString placeId = query.value("lPlace_ID").toString();
- QString lOrder = query.value("lLine_Order").toString();
- QString lNextPlaceTime = query.value("lNextPlace_Time").toString();
- QString lStayTime = query.value("lStay_Time").toString();
- logThread->appendLog(QString("lId:%1,lName:%2,placeId:%3,lOrder:%4,lNextPlaceTime:%5,lStayTime:%6").arg(lId).arg(lName).arg(placeId).arg(lOrder).arg(lNextPlaceTime).arg(lStayTime));
- lineThread->DealAccessDBData(lId,lName,placeId,lOrder,lNextPlaceTime,lStayTime); //将查询数据保存在本地巡更点位表中
- //将处理后的报警数据组装成数组形式 begin
- QJsonObject senddata;
- senddata.insert("lId",lId);
- senddata.insert("lName",lName);
- senddata.insert("placeId",placeId);
- senddata.insert("lOrder",lOrder);
- senddata.insert("lNextPlaceTime",lNextPlaceTime);
- senddata.insert("lStayTime",lStayTime);
- json_array.insert(idx,senddata);
- //将处理后的报警数据组装成数组形式 end
- idx++;
- }
- query.clear();
- mainDB.close();
- }
- //Post JSON数组到前端
- sendData.append("key=");
- sendData.append(QJsonDocument(json_array).toJson(QJsonDocument::Compact));
- lineThread->SendJSONData(sendData);
- logThread->appendLog(QString("\r[ %1 ] line sendData: ").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- logThread->appendLog(sendData);
- ui->plainTextEdit->appendPlainText(QString("\r[ %1 ] line sendData: %2").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(QString(sendData)));
- ui->plainTextEdit->appendPlainText(QString("\r[ %1 ] -------- lineData end --------").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- logThread->appendLog(QString("\r[ %1 ] sql lineData end").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- }
- void MainWindow::planData()
- {
- QByteArray sendData;
- QJsonArray json_array;
- int idx = 0;
- logThread->appendLog(QString("\r[ %1 ] sql planData start").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- planThread->deletePlanData();
- ui->plainTextEdit->appendPlainText(QString("\r[ %1 ] -------- planData 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 planId,CStr(Line_ID) AS lineId,Plan_StartTime AS pStartTime,Plan_EndTime AS pEndTime,Plan_Type AS pType,CStr(Plan_Mode) AS pMode,Excute_Week AS pExcWeek,Start_Date AS pStartDate,CStr(Excute_Cycle) AS pExcCycle,CStr(Rest_Cycle) AS pRestCycle,Place_ID,CStr(Create_Time) AS pCreateTime From GT_PLAN;");
- while(query.next())
- {
- QString planId = query.value("planId").toString();
- QString lineId = query.value("lineId").toString();
- QString pStartTime = query.value("pStartTime").toString();
- QString pEndTime = query.value("pEndTime").toString();
- QString pType = query.value("pType").toString();
- QString pMode = query.value("pMode").toString();
- QString pExcWeek = query.value("pExcWeek").toString();
- QString pStartDate = query.value("pStartDate").toString();
- QString pExcCycle = query.value("pExcCycle").toString();
- QString pRestCycle = query.value("pRestCycle").toString();
- QString placeId;
- int Place_ID = query.value("Place_ID").toInt();
- logThread->appendLog(QString("Place_ID : %1").arg(Place_ID));
- if(Place_ID == 0)
- {
- placeId = "";
- }
- else
- {
- placeId = QString::number(Place_ID);
- }
- QString pCreateTime = query.value("pCreateTime").toString();
- logThread->appendLog(QString("planId:%1,lineId:%2,pStartTime:%3,pEndTime:%4,pType:%5,pMode:%6,pExcWeek:%7,pStartDate:%8,pExcCycle:%9,pRestCycle:%10,placeId:%11,pCreateTime:%12").arg(planId).arg(lineId).arg(pStartTime).arg(pEndTime).arg(pType).arg(pMode).arg(pExcWeek).arg(pStartDate).arg(pExcCycle).arg(pRestCycle).arg(placeId).arg(pCreateTime));
- planThread->DealAccessDBData(planId,lineId,pStartTime,pEndTime,pType,pMode,pExcWeek,pStartDate,pExcCycle,pRestCycle,placeId,pCreateTime); //将查询数据保存在本地巡更点位表中
- //将处理后的报警数据组装成数组形式 begin
- QJsonObject senddata;
- senddata.insert("planId",planId);
- senddata.insert("lineId",lineId);
- senddata.insert("pStartTime",pStartTime);
- senddata.insert("pEndTime",pEndTime);
- senddata.insert("pType",pType);
- senddata.insert("pMode",pMode);
- senddata.insert("pExcWeek",pExcWeek);
- senddata.insert("pStartDate",pStartDate);
- senddata.insert("pExcCycle",pExcCycle);
- senddata.insert("pRestCycle",pRestCycle);
- senddata.insert("placeId",placeId);
- senddata.insert("pCreateTime",pCreateTime);
- json_array.insert(idx,senddata);
- //将处理后的报警数据组装成数组形式 end
- idx++;
- }
- query.clear();
- mainDB.close();
- }
- //Post JSON数组到前端
- sendData.append("key=");
- sendData.append(QJsonDocument(json_array).toJson(QJsonDocument::Compact));
- planThread->SendJSONData(sendData);
- logThread->appendLog(QString("\r[ %1 ] plan sendData: ").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- logThread->appendLog(sendData);
- ui->plainTextEdit->appendPlainText(QString("\r[ %1 ] plan sendData: %2").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(QString(sendData)));
- ui->plainTextEdit->appendPlainText(QString("\r[ %1 ] -------- planData end --------").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- logThread->appendLog(QString("\r[ %1 ] sql planData end").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
- }
- /*void MainWindow::evalData()
- {
- QByteArray sendData;
- QJsonArray json_array;
- int idx = 0;
- logThread->appendLog("sql evalData start");
- if (!mainDB.open()) {
- logThread->appendLog("AccessDB open failed");
- }
- else
- {
- logThread->appendLog("AccessDB open success");
- 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,CStr(Create_Time) 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;");
- 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("PatrolTime : %1").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("eval sendData: ");
- logThread->appendLog(sendData);
- logThread->appendLog("sql evalData end");
- }*/
- void MainWindow::timeout()
- {
- ui->time_label->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"));
- }
- void MainWindow::on_pushButton_clicked()
- {
- this->start();
- }
|