|
|
@@ -54,6 +54,8 @@ Core::Core(QObject *parent) :
|
|
|
ypdisworktime = 0;
|
|
|
xfzdworktime = 0;
|
|
|
ypxyworktime = 0;
|
|
|
+ day = 0;
|
|
|
+ month = 0;
|
|
|
ypSyncdataList.clear();
|
|
|
ypSyncDisdataList.clear();
|
|
|
ypSyncXydataList.clear();
|
|
|
@@ -73,6 +75,8 @@ Core::Core(QObject *parent) :
|
|
|
ytShm->updatetime[DB_THREAD] = ytShm->updatetime[CORE_MAIN] ;
|
|
|
db = QSqlDatabase::addDatabase("QSQLITE","dog_conf");
|
|
|
db.setDatabaseName("/root/db/watchdog2.db");
|
|
|
+ adb = QSqlDatabase::addDatabase("QSQLITE","alarm_conf");
|
|
|
+ adb.setDatabaseName("/root/db/watchdogalarm.db");
|
|
|
mdb = QSqlDatabase::addDatabase("QMYSQL","jdxf2_db");
|
|
|
mdb.setDatabaseName("jdxf");
|
|
|
mdb.setHostName("47.98.201.187");
|
|
|
@@ -83,6 +87,9 @@ Core::Core(QObject *parent) :
|
|
|
if(db.open()){
|
|
|
db_init();
|
|
|
}
|
|
|
+ if(adb.open()){
|
|
|
+ adb_init();
|
|
|
+ }
|
|
|
thread = new DB_SyncThread(this);
|
|
|
timer = new QTimer(this);
|
|
|
repThread = new Rep_DBThread(this);
|
|
|
@@ -98,6 +105,8 @@ Core::Core(QObject *parent) :
|
|
|
connect(netAccessManager,SIGNAL(finished(QNetworkReply*)),this,SLOT(finishedSlot(QNetworkReply*)));
|
|
|
connect(thread,SIGNAL(companyAlarmChanged(QString)),this,SLOT(companyAlarmChanged(QString)));
|
|
|
connect(thread,SIGNAL(appendLog(QString)),this,SLOT(appendLog(QString)));
|
|
|
+ thread->start();
|
|
|
+
|
|
|
cnnetAccessManager = new QNetworkAccessManager(this); //unused
|
|
|
NewcnnetAccessManager = new QNetworkAccessManager(this);
|
|
|
janetAccessManager = new QNetworkAccessManager(this);
|
|
|
@@ -106,6 +115,7 @@ Core::Core(QObject *parent) :
|
|
|
xynetAccessManager = new QNetworkAccessManager(this);
|
|
|
ypYwcnnetAccessManager = new QNetworkAccessManager(this);
|
|
|
XfzdnetAccessManager = new QNetworkAccessManager(this);
|
|
|
+ xfzdStatisticAccessManager = new QNetworkAccessManager(this);
|
|
|
connect(cnnetAccessManager,SIGNAL(finished(QNetworkReply*)),this,SLOT(finishedSlot2(QNetworkReply*)));
|
|
|
connect(NewcnnetAccessManager,SIGNAL(finished(QNetworkReply*)),this,SLOT(finishedSlot7(QNetworkReply*)));
|
|
|
connect(janetAccessManager,SIGNAL(finished(QNetworkReply*)),this,SLOT(finishedSlot3(QNetworkReply*)));
|
|
|
@@ -114,6 +124,7 @@ Core::Core(QObject *parent) :
|
|
|
connect(hpnetAccessManager,SIGNAL(finished(QNetworkReply*)),this,SLOT(finishedSlot6(QNetworkReply*)));
|
|
|
connect(ypYwcnnetAccessManager,SIGNAL(finished(QNetworkReply*)),this,SLOT(finishedSlot8(QNetworkReply*)));
|
|
|
connect(XfzdnetAccessManager,SIGNAL(finished(QNetworkReply*)),this,SLOT(finishedSlot9(QNetworkReply*)));
|
|
|
+ connect(xfzdStatisticAccessManager,SIGNAL(finished(QNetworkReply*)),this,SLOT(finishedSlot10(QNetworkReply*)));
|
|
|
dc = new DataCenter(this);
|
|
|
connect(dc,&DataCenter::needSync,this,&Core::needSync);
|
|
|
wsCenter = new WSCenter(this);
|
|
|
@@ -122,7 +133,7 @@ Core::Core(QObject *parent) :
|
|
|
connect(subReportServer,&SubSysReport::subReport1,this,&Core::subReport1);
|
|
|
connect(subReportServer,&SubSysReport::subReport2,this,&Core::subReport2);
|
|
|
connect(subReportServer,&SubSysReport::appendLog,this,&Core::appendLog);
|
|
|
- time_out();
|
|
|
+// time_out();
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -136,8 +147,8 @@ void Core::start()
|
|
|
// exit(-1);
|
|
|
// }else{
|
|
|
printf("core start\n");
|
|
|
+ QThread::sleep(2);
|
|
|
timer->start(1000);
|
|
|
- thread->start();
|
|
|
repThread->start();
|
|
|
dc->start();
|
|
|
subReportServer->start();
|
|
|
@@ -239,9 +250,11 @@ void Core::subReport(quint16 subType, QString DeviceID, quint64 insertId, bool f
|
|
|
bool found1 = false;
|
|
|
bool found2 = false;
|
|
|
bool found5 = false;
|
|
|
+ bool found51 = false;
|
|
|
bool found6 = false;
|
|
|
bool found7 = false;
|
|
|
logThread->appendData(QString("huojingceshi[%1, %2, %3, %4]").arg(subType).arg(DeviceID).arg(insertId).arg(flag));
|
|
|
+
|
|
|
if(subType==1){
|
|
|
if(flag){
|
|
|
QString sql1 = QString("select port,data3,clr,clnr,clwb,time,clsj,data2,data4 from sp_hj2017 where id=%1").arg(insertId);
|
|
|
@@ -776,11 +789,13 @@ void Core::subReport(quint16 subType, QString DeviceID, quint64 insertId, bool f
|
|
|
|
|
|
for(int i=0;i<XfzdDevList.length();i++){
|
|
|
if(DeviceID.compare(XfzdDevList.at(i).DeviceCode)==0){
|
|
|
+ printf("[hj begin %s ]\n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data());
|
|
|
XfzdSyncDev xfzddev = XfzdDevList.at(i);
|
|
|
QSqlQuery qry, qry1;
|
|
|
uint MaxT = 0;
|
|
|
QString sql = QString("select port,data2,data3,data4,time from sp_hj2017 where id=%1").arg(insertId);
|
|
|
qry = mdb.exec(sql);
|
|
|
+ printf("[hj sql end %s ]\n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data());
|
|
|
QString jdata = "";
|
|
|
QDateTime current_data_time = QDateTime::currentDateTime();
|
|
|
QString current_data = current_data_time.toString("yyyy-MM-dd HH:mm:ss");
|
|
|
@@ -792,6 +807,7 @@ void Core::subReport(quint16 subType, QString DeviceID, quint64 insertId, bool f
|
|
|
sql1 = QString("select descript,device_name,device_code,port,device_type,device_type_name,open_project_id,data,device_floor from sp_corps_share_ceshi where device_code='%1' and port='%2'").arg(DeviceID).arg(qry.value(2).toString());
|
|
|
}
|
|
|
qry1 = mdb.exec(sql1);
|
|
|
+ printf("[hj ceshi end %s ]\n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data());
|
|
|
while(qry1.next()){
|
|
|
if(qry.value(1).toString().compare("火警")==0){
|
|
|
jdata.append(QString("\"descript\":\"%1\"").arg(qry1.value(0).toString()));
|
|
|
@@ -813,6 +829,7 @@ void Core::subReport(quint16 subType, QString DeviceID, quint64 insertId, bool f
|
|
|
jdata.append(QString(",\"openEventId\":\"%1\"").arg(md5str));
|
|
|
jdata.append(QString(",\"alarmTime\":\"%1\"").arg(qry.value(4).toDateTime().toString("yyyy-MM-dd hh:mm:ss")));
|
|
|
jdata.append(QString(",\"state\":\"%1\"").arg(0));
|
|
|
+ printf("[hj hj %s alarmTime [%s] openProjectId [%s]]\n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data(),qry.value(4).toDateTime().toString("yyyy-MM-dd hh:mm:ss").toUtf8().data(),qry1.value(6).toString().toUtf8().data());
|
|
|
if(qry1.value(4).toString().compare("23")==0){
|
|
|
XfzdSyncData(9,QUuid::createUuid().toString().replace("{","").replace("}",""), "{"+jdata+"}",xfzddev.devCategory,DeviceID,qry1.value(6).toString());
|
|
|
}else{
|
|
|
@@ -838,6 +855,7 @@ void Core::subReport(quint16 subType, QString DeviceID, quint64 insertId, bool f
|
|
|
jdata.append(QString(",\"openEventId\":\"%1\"").arg(md5str));
|
|
|
jdata.append(QString(",\"alarmTime\":\"%1\"").arg(qry.value(4).toDateTime().toString("yyyy-MM-dd hh:mm:ss")));
|
|
|
jdata.append(QString(",\"state\":\"%1\"").arg(0));
|
|
|
+ printf("[hj gz %s alarmTime [%s] openProjectId [%s]]\n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data(),qry.value(4).toDateTime().toString("yyyy-MM-dd hh:mm:ss").toUtf8().data(),qry1.value(6).toString().toUtf8().data());
|
|
|
XfzdSyncData(7,QUuid::createUuid().toString().replace("{","").replace("}",""), "{"+jdata+"}",xfzddev.devCategory,DeviceID,qry1.value(6).toString());
|
|
|
}else if(qry.value(1).toString().compare("监管")==0){
|
|
|
jdata.append(QString("\"descript\":\"%1\"").arg(qry1.value(0).toString()));
|
|
|
@@ -880,6 +898,7 @@ void Core::subReport(quint16 subType, QString DeviceID, quint64 insertId, bool f
|
|
|
jdata.append(QString(",\"openEventId\":\"%1\"").arg(md5str));
|
|
|
jdata.append(QString(",\"alarmTime\":\"%1\"").arg(qry.value(4).toDateTime().toString("yyyy-MM-dd hh:mm:ss")));
|
|
|
jdata.append(QString(",\"state\":\"%1\"").arg(0));
|
|
|
+ printf("[hj sb %s alarmTime [%s] openProjectId [%s]]\n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data(),qry.value(4).toDateTime().toString("yyyy-MM-dd hh:mm:ss").toUtf8().data(),qry1.value(6).toString().toUtf8().data());
|
|
|
XfzdSyncData(9,QUuid::createUuid().toString().replace("{","").replace("}",""), "{"+jdata+"}",xfzddev.devCategory,DeviceID,qry1.value(6).toString());
|
|
|
}else if(qry.value(1).toString().compare("复位")==0){
|
|
|
jdata.append(QString("\"descript\":\"%1\"").arg(qry1.value(0).toString()));
|
|
|
@@ -1189,17 +1208,58 @@ void Core::subReport(quint16 subType, QString DeviceID, quint64 insertId, bool f
|
|
|
for(int i=0;i<XfzdDevList.length();i++){
|
|
|
XfzdSyncDev xfzddev = XfzdDevList.at(i);
|
|
|
if(xfzddev.DeviceCode==DeviceID){
|
|
|
- if(xfzddev.DeviceType==258||xfzddev.DeviceType==256||xfzddev.DeviceType==452){
|
|
|
- time_t myt=time(NULL);
|
|
|
+ if(xfzddev.DeviceType==301||xfzddev.DeviceType==302){
|
|
|
QString jdata = "";
|
|
|
- QString sql5 = QString("select data2, data4, ncmd from sp_rtu2017 where id=%1").arg(insertId);
|
|
|
+ printf("[rtu zhuguan sql begin %s ]\n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data());
|
|
|
+ QString sql5 = QString("select data2, data4, ncmd, time,data1 from sp_rtu2017 where id=%1").arg(insertId);
|
|
|
qry7 = mdb.exec(sql5);
|
|
|
+ printf("[rtu zhuguan sql end %s ]\n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data());
|
|
|
+ QList<CnPno> pnoList = getPnoValue(xfzddev.Data);
|
|
|
+ jdata.append(QString("\"descript\":\"%1\"").arg(xfzddev.Descript));
|
|
|
+ jdata.append(QString(",\"deviceName\":\"%1\"").arg(xfzddev.DeviceName));
|
|
|
+ jdata.append(QString(",\"deviceNo\":\"%1\"").arg(xfzddev.DeviceCode+xfzddev.Port));
|
|
|
+ jdata.append(QString(",\"deviceType\":\"%1\"").arg(xfzddev.DeviceType));
|
|
|
+ jdata.append(QString(",\"deviceTypeName\":\"%1\"").arg(xfzddev.DeviceTypeName));
|
|
|
+ jdata.append(QString(",\"openProjectId\":\"%1\"").arg(xfzddev.OpenProjectId));
|
|
|
+ jdata.append(QString(",\"floor\":\"%1\"").arg(xfzddev.DeviceFloor));
|
|
|
while(qry7.next()){
|
|
|
- QString rtudata= QString("%1 %2").arg(qry7.value(0).toString()).arg(qry7.value(1).toString());
|
|
|
- QString sql6 = QString("update sp_owner_status set content='%1' where device_id='%2' and point_code='%3'").arg(rtudata).arg(DeviceID).arg(qry7.value(2).toInt());
|
|
|
- qry8 = mdb.exec(sql6);
|
|
|
+ for(int i=0;i<pnoList.length();i++){
|
|
|
+ if(pnoList.at(i).Pno==qry7.value(2).toInt()){
|
|
|
+ QString rtudata= QString("%1 %2").arg(qry7.value(0).toString()).arg(qry7.value(1).toString());
|
|
|
+ QString sql6 = QString("update sp_owner_status set content='%1',data_time='%2' where device_id='%3' and point_code='%4'").arg(rtudata).arg(qry7.value(3).toDateTime().toString("yyyy-MM-dd hh:mm:ss")).arg(DeviceID).arg(qry7.value(2).toInt());
|
|
|
+ qry8 = mdb.exec(sql6);
|
|
|
+
|
|
|
+ jdata.append(QString(",\"logTime\":\"%1\"").arg(qry7.value(3).toDateTime().toString("yyyy-MM-dd hh:mm:ss")));
|
|
|
+ jdata.append(QString(",\"pressure\":\"%1\"").arg(qry7.value(4).toString()));
|
|
|
+ printf("[rtu zhuguan %s logTime [%s] openProjectId [%s]]\n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data(),qry7.value(3).toDateTime().toString("yyyy-MM-dd hh:mm:ss").toUtf8().data(),xfzddev.OpenProjectId.toUtf8().data());
|
|
|
+
|
|
|
+ if(qry7.value(0).toString().compare(QString::fromUtf8("正常"))==0){
|
|
|
+ jdata.append(QString(",\"alarmStatus\":\"%1\"").arg(0));
|
|
|
+ }else if(qry7.value(0).toString().compare(QString::fromUtf8("低压"))==0){
|
|
|
+ jdata.append(QString(",\"alarmStatus\":\"%1\"").arg(1));
|
|
|
+ }else{
|
|
|
+ jdata.append(QString(",\"alarmStatus\":\"%1\"").arg(2));
|
|
|
+ }
|
|
|
+
|
|
|
+ if(xfzddev.DeviceType==302){
|
|
|
+ XfzdSyncData(0,QUuid::createUuid().toString().replace("{","").replace("}",""), "{"+jdata+"}",xfzddev.devCategory,xfzddev.DeviceCode,xfzddev.OpenProjectId);
|
|
|
+ }else if(xfzddev.DeviceType==301){
|
|
|
+ XfzdSyncData(1,QUuid::createUuid().toString().replace("{","").replace("}",""), "{"+jdata+"}",xfzddev.devCategory,xfzddev.DeviceCode,xfzddev.OpenProjectId);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- QString sql = QString("select point_code, point_data, content, data_time from sp_owner_status where device_id=%1").arg(xfzddev.DeviceCode);
|
|
|
+
|
|
|
+
|
|
|
+ }else if(xfzddev.DeviceType==258||xfzddev.DeviceType==256||xfzddev.DeviceType==452){
|
|
|
+ time_t myt=time(NULL);
|
|
|
+ QString jdata = "";
|
|
|
+ printf("[rtu sql begin %s ]\n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data());
|
|
|
+ QString sql5 = QString("select data2, data4, ncmd, time from sp_rtu2017 where id=%1").arg(insertId);
|
|
|
+ qry7 = mdb.exec(sql5);
|
|
|
+ printf("[rtu sql end %s ]\n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data());
|
|
|
+ QList<CnPno> pnoList = getPnoValue(xfzddev.Data);
|
|
|
jdata.append(QString("\"descript\":\"%1\"").arg(xfzddev.Descript));
|
|
|
jdata.append(QString(",\"deviceName\":\"%1\"").arg(xfzddev.DeviceName));
|
|
|
jdata.append(QString(",\"deviceNo\":\"%1\"").arg(xfzddev.DeviceCode+xfzddev.Port));
|
|
|
@@ -1207,23 +1267,34 @@ void Core::subReport(quint16 subType, QString DeviceID, quint64 insertId, bool f
|
|
|
jdata.append(QString(",\"deviceTypeName\":\"%1\"").arg(xfzddev.DeviceTypeName));
|
|
|
jdata.append(QString(",\"openProjectId\":\"%1\"").arg(xfzddev.OpenProjectId));
|
|
|
jdata.append(QString(",\"floor\":\"%1\"").arg(xfzddev.DeviceFloor));
|
|
|
- xfzdQry = mdb.exec(sql);
|
|
|
- QList<CnPno> pnoList = getPnoValue(xfzddev.Data);
|
|
|
- QJsonArray jajsonArray;
|
|
|
- for(int i=0;i<pnoList.length();i++){
|
|
|
- if(pnoList.at(i).Pno==-1){
|
|
|
- if(pnoList.at(i).PName.compare("powerStatus")==0){
|
|
|
- jdata.append(QString(",\"powerState\":\"%1\"").arg(0));
|
|
|
- }else if(pnoList.at(i).PName.compare("runStatus")==0){
|
|
|
- jdata.append(QString(",\"manualAutomaticState\":\"%1\"").arg(0));
|
|
|
- }else if(pnoList.at(i).PName.compare("startStatus")==0){
|
|
|
- jdata.append(QString(",\"startStopStatus\":\"%1\"").arg(0));
|
|
|
- }else if(pnoList.at(i).PName.compare("faultStatus")==0){
|
|
|
- jdata.append(QString(",\"faultStatus\":\"%1\"").arg(0));
|
|
|
+ while(qry7.next()){
|
|
|
+ QString rtudata= QString("%1 %2").arg(qry7.value(0).toString()).arg(qry7.value(1).toString());
|
|
|
+ QString sql6 = QString("update sp_owner_status set content='%1',data_time='%2' where device_id='%3' and point_code='%4'").arg(rtudata).arg(qry7.value(3).toDateTime().toString("yyyy-MM-dd hh:mm:ss")).arg(DeviceID).arg(qry7.value(2).toInt());
|
|
|
+ qry8 = mdb.exec(sql6);
|
|
|
+
|
|
|
+ QJsonArray jajsonArray;
|
|
|
+ for(int i=0;i<pnoList.length();i++){
|
|
|
+ if(pnoList.at(i).Pno==-1){
|
|
|
+ if(pnoList.at(i).PName.compare("powerStatus")==0){
|
|
|
+ jdata.append(QString(",\"powerState\":\"%1\"").arg(0));
|
|
|
+ }else if(pnoList.at(i).PName.compare("runStatus")==0){
|
|
|
+ jdata.append(QString(",\"manualAutomaticState\":\"%1\"").arg(0));
|
|
|
+ }else if(pnoList.at(i).PName.compare("startStatus")==0){
|
|
|
+ jdata.append(QString(",\"startStopStatus\":\"%1\"").arg(0));
|
|
|
+ }else if(pnoList.at(i).PName.compare("faultStatus")==0){
|
|
|
+ jdata.append(QString(",\"faultStatus\":\"%1\"").arg(0));
|
|
|
+ }
|
|
|
}
|
|
|
- jdata.append(QString(",\"logTime\":\"%1\"").arg(QDateTime::fromTime_t(myt).toString("yyyy-MM-dd HH:mm:ss")));
|
|
|
}
|
|
|
+ jdata.append(QString(",\"logTime\":\"%1\"").arg(qry7.value(3).toDateTime().toString("yyyy-MM-dd hh:mm:ss")));
|
|
|
+ printf("[rtu %s logTime [%s] openProjectId [%s]]\n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data(),qry7.value(3).toDateTime().toString("yyyy-MM-dd hh:mm:ss").toUtf8().data(),xfzddev.OpenProjectId.toUtf8().data());
|
|
|
+
|
|
|
}
|
|
|
+ printf("[rtu sql update sp_owner_status end %s ]\n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data());
|
|
|
+ QString sql = QString("select point_code, point_data, content, data_time from sp_owner_status where device_id=%1").arg(xfzddev.DeviceCode);
|
|
|
+ xfzdQry = mdb.exec(sql);
|
|
|
+ printf("[rtu sql select sp_owner_status end %s ]\n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data());
|
|
|
+
|
|
|
QString device_code;
|
|
|
while(xfzdQry.next()){
|
|
|
for(int i=0;i<pnoList.length();i++){
|
|
|
@@ -2063,6 +2134,54 @@ void Core::subReport(quint16 subType, QString DeviceID, quint64 insertId, bool f
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ if(!found5){
|
|
|
+ for(int i=0;i<XfzdDevList.length();i++){
|
|
|
+ XfzdSyncDev xfzddev = XfzdDevList.at(i);
|
|
|
+ if(xfzddev.DeviceCode==DeviceID){
|
|
|
+ found5=true;
|
|
|
+ QString jdata = "";
|
|
|
+ jdata.append(QString("\"descript\":\"%1\"").arg(xfzddev.Descript));
|
|
|
+ jdata.append(QString(",\"deviceName\":\"%1\"").arg(xfzddev.DeviceName));
|
|
|
+ if(xfzddev.devCategory==6){
|
|
|
+ jdata.append(QString(",\"deviceNo\":\"%1\"").arg(xfzddev.DeviceCode+xfzddev.Port));
|
|
|
+ }else{
|
|
|
+ jdata.append(QString(",\"deviceNo\":\"%1\"").arg(xfzddev.DeviceCode));
|
|
|
+ }
|
|
|
+ jdata.append(QString(",\"deviceType\":\"%1\"").arg(xfzddev.DeviceType));
|
|
|
+ jdata.append(QString(",\"deviceTypeName\":\"%1\"").arg(xfzddev.DeviceTypeName));
|
|
|
+ jdata.append(QString(",\"openProjectId\":\"%1\"").arg(xfzddev.OpenProjectId));
|
|
|
+ jdata.append(QString(",\"floor\":\"%1\"").arg(xfzddev.DeviceFloor));
|
|
|
+
|
|
|
+ printf("sb begin %s openProjectId %s \n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data(),xfzddev.OpenProjectId.toUtf8().data());
|
|
|
+ QString xfzdsql5 = QString("select data1, data4, time from sp_sj2017 where id=%1").arg(insertId);
|
|
|
+ qry5 = mdb.exec(xfzdsql5);
|
|
|
+ printf("sb end %s\n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data());
|
|
|
+ while(qry5.next()){
|
|
|
+
|
|
|
+ jdata.append(QString(",\"logTime\":\"%1\"").arg(qry5.value(2).toDateTime().toString("yyyy-MM-dd hh:mm:ss")));
|
|
|
+ jdata.append(QString(",\"pressure\":\"%1\"").arg(qry5.value(1).toString()));
|
|
|
+ printf("sb %s logTime1 [%s]\n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data(),qry5.value(2).toDateTime().toString("yyyy-MM-dd hh:mm:ss").toUtf8().data());
|
|
|
+
|
|
|
+
|
|
|
+ if(qry5.value(0).toString().compare("WP1")==0){
|
|
|
+ jdata.append(QString(",\"alarmStatus\":\"%1\"").arg(1));
|
|
|
+ }else if(qry5.value(0).toString().compare("WP2")==0){
|
|
|
+ jdata.append(QString(",\"alarmStatus\":\"%1\"").arg(2));
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ if(xfzddev.DeviceType==302){
|
|
|
+ XfzdSyncData(0,QUuid::createUuid().toString().replace("{","").replace("}",""), "{"+jdata+"}",xfzddev.devCategory,xfzddev.DeviceCode,xfzddev.OpenProjectId);
|
|
|
+ }else if(xfzddev.DeviceType==301){
|
|
|
+ XfzdSyncData(1,QUuid::createUuid().toString().replace("{","").replace("}",""), "{"+jdata+"}",xfzddev.devCategory,xfzddev.DeviceCode,xfzddev.OpenProjectId);
|
|
|
+ }else if(xfzddev.DeviceType==305){
|
|
|
+ XfzdSyncData(13,QUuid::createUuid().toString().replace("{","").replace("}",""), "{"+jdata+"}",xfzddev.devCategory,xfzddev.DeviceCode,xfzddev.OpenProjectId);
|
|
|
+ }else if(xfzddev.DeviceType==304){
|
|
|
+ XfzdSyncData(14,QUuid::createUuid().toString().replace("{","").replace("}",""), "{"+jdata+"}",xfzddev.devCategory,xfzddev.DeviceCode,xfzddev.OpenProjectId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}else if(subType==16){
|
|
|
if(flag){
|
|
|
@@ -2187,6 +2306,50 @@ void Core::subReport(quint16 subType, QString DeviceID, quint64 insertId, bool f
|
|
|
ypYwSyncData(1,QUuid::createUuid().toString().replace("{","").replace("}",""),"{"+ypywdata+"}");
|
|
|
}
|
|
|
}
|
|
|
+ if(!found51){
|
|
|
+ for(int i=0;i<XfzdDevList.length();i++){
|
|
|
+ XfzdSyncDev xfzddev = XfzdDevList.at(i);
|
|
|
+ if(xfzddev.DeviceCode==DeviceID){
|
|
|
+ found51=true;
|
|
|
+ QString jdata = "";
|
|
|
+ jdata.append(QString("\"descript\":\"%1\"").arg(xfzddev.Descript));
|
|
|
+ jdata.append(QString(",\"deviceName\":\"%1\"").arg(xfzddev.DeviceName));
|
|
|
+ if(xfzddev.devCategory==6){
|
|
|
+ jdata.append(QString(",\"deviceNo\":\"%1\"").arg(xfzddev.DeviceCode+xfzddev.Port));
|
|
|
+ }else{
|
|
|
+ jdata.append(QString(",\"deviceNo\":\"%1\"").arg(xfzddev.DeviceCode));
|
|
|
+ }
|
|
|
+ jdata.append(QString(",\"deviceType\":\"%1\"").arg(xfzddev.DeviceType));
|
|
|
+ jdata.append(QString(",\"deviceTypeName\":\"%1\"").arg(xfzddev.DeviceTypeName));
|
|
|
+ jdata.append(QString(",\"openProjectId\":\"%1\"").arg(xfzddev.OpenProjectId));
|
|
|
+ jdata.append(QString(",\"floor\":\"%1\"").arg(xfzddev.DeviceFloor));
|
|
|
+
|
|
|
+
|
|
|
+ printf("yw begin %s openProjectId %s\n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data(),xfzddev.OpenProjectId.toUtf8().data());
|
|
|
+ QString xfzdsql5 = QString("select data1, data4, time from sp_sj2017 where id=%1").arg(insertId);
|
|
|
+ qry5 = mdb.exec(xfzdsql5);
|
|
|
+ printf("yw end %s \n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data());
|
|
|
+ while(qry5.next()){
|
|
|
+
|
|
|
+ printf("yw %s logTime11 [%s]\n",QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss").toUtf8().data(),qry5.value(2).toDateTime().toString("yyyy-MM-dd hh:mm:ss").toUtf8().data());
|
|
|
+ jdata.append(QString(",\"logTime\":\"%1\"").arg(qry5.value(2).toDateTime().toString("yyyy-MM-dd hh:mm:ss")));
|
|
|
+ jdata.append(QString(",\"level\":\"%1\"").arg(qry5.value(1).toString()));
|
|
|
+
|
|
|
+ if(qry5.value(0).toString().indexOf(QString::fromUtf8("LL1"))==0){
|
|
|
+ jdata.append(QString(",\"alarmStatus\":\"%1\"").arg(1));
|
|
|
+ }else if(qry5.value(0).toString().indexOf(QString::fromUtf8("LL2"))==0){
|
|
|
+ jdata.append(QString(",\"alarmStatus\":\"%1\"").arg(2));
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ if(xfzddev.DeviceType==402){
|
|
|
+ XfzdSyncData(2,QUuid::createUuid().toString().replace("{","").replace("}",""), "{"+jdata+"}",xfzddev.devCategory,xfzddev.DeviceCode,xfzddev.OpenProjectId);
|
|
|
+ }else{
|
|
|
+ XfzdSyncData(3,QUuid::createUuid().toString().replace("{","").replace("}",""), "{"+jdata+"}",xfzddev.devCategory,xfzddev.DeviceCode,xfzddev.OpenProjectId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
mdb.close();
|
|
|
@@ -2407,6 +2570,11 @@ void Core::finishedSlot9(QNetworkReply *reply)
|
|
|
QString bak_info = QString::fromUtf8(reply->readAll());
|
|
|
repThread->appendSql(QString::fromUtf8("update `xfzdsync_t_rec` set `send`=1, `reply_str`='%1', `reply_time`='%2' where `uuid`='%3'")
|
|
|
.arg(bak_info).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(rep.Id));
|
|
|
+ int xhao = rep.Xh;
|
|
|
+ if((xhao == 6)||(xhao == 7)||(xhao == 8)||(xhao == 9)||(xhao == 10)||(xhao == 11)){
|
|
|
+ sqlList.append(QString::fromUtf8("REPLACE INTO xfzd_t_alarm (data_str, reply_str, reply_time, open_project_id) VALUES ('%1', '%2', '%3', '%4')")
|
|
|
+ .arg(QString("%1").arg(rep.Xh)+"\r\n"+rep.JsonStr).arg(bak_info).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(rep.openProjectId));
|
|
|
+ }
|
|
|
// printf("%s\n",bak_info.toUtf8().data());
|
|
|
}else
|
|
|
repThread->appendSql(QString::fromUtf8("update `xfzdsync_t_rec` set `reply_time`='%1' where `uuid`='%2'")
|
|
|
@@ -2417,6 +2585,15 @@ void Core::finishedSlot9(QNetworkReply *reply)
|
|
|
isSending9 = false;
|
|
|
}
|
|
|
|
|
|
+void Core::finishedSlot10(QNetworkReply *reply)
|
|
|
+{
|
|
|
+ if(reply->error()==QNetworkReply::NoError){
|
|
|
+ QString bak_info = QString::fromUtf8(reply->readAll());
|
|
|
+ logThread->appendData(QString("xfzdStatisticAccessManager success %1\n").arg(bak_info.toUtf8().data()));
|
|
|
+ }
|
|
|
+ reply->deleteLater();
|
|
|
+}
|
|
|
+
|
|
|
void Core::reply_timeout()
|
|
|
{
|
|
|
if(ypSyncdataList.length()>0){
|
|
|
@@ -2518,13 +2695,18 @@ void Core::reply_timeout9()
|
|
|
isSending9 = false;
|
|
|
}
|
|
|
|
|
|
+void Core::reply_timeout10()
|
|
|
+{
|
|
|
+ logThread->appendData("xfzdStatisticAccessManager reply timeout");
|
|
|
+}
|
|
|
+
|
|
|
void Core::time_out()
|
|
|
{
|
|
|
QSqlQuery qry;
|
|
|
QSqlQuery qry1;
|
|
|
|
|
|
int ret = 0;
|
|
|
-// printf("core time_out start\n");
|
|
|
+ printf("core time_out start\n");
|
|
|
time_t tmp_time = time(static_cast<time_t *>(nullptr));
|
|
|
ytShm->updatetime[CORE_MAIN] = tmp_time;
|
|
|
if(!mdbOpened)
|
|
|
@@ -4407,14 +4589,66 @@ void Core::time_out()
|
|
|
}
|
|
|
|
|
|
if(sqlList.length()>0){
|
|
|
- if(db.transaction()){
|
|
|
- while(sqlList.length()>0){
|
|
|
- db.exec(sqlList.first());
|
|
|
- sqlList.removeFirst();
|
|
|
+ if(adb.open()){
|
|
|
+ if(adb.transaction()){
|
|
|
+ while(sqlList.length()>0){
|
|
|
+ adb.exec(sqlList.first());
|
|
|
+ sqlList.removeFirst();
|
|
|
+ }
|
|
|
+ adb.commit();
|
|
|
}
|
|
|
- db.commit();
|
|
|
+
|
|
|
+ adb.close();
|
|
|
}
|
|
|
}
|
|
|
+ if(day != QDate::currentDate().day()){
|
|
|
+ day = QDate::currentDate().day();
|
|
|
+ uint itimestamp = QDateTime::currentDateTime().toTime_t()-43200;
|
|
|
+ QDateTime dateTime = QDateTime::fromTime_t(itimestamp);
|
|
|
+
|
|
|
+ month = dateTime.date().month();
|
|
|
+ QString year = QString::number(QDate::currentDate().year());
|
|
|
+
|
|
|
+ QString replyTime = "";
|
|
|
+ if(month >=1 and month <= 3){
|
|
|
+ replyTime.append(QString("between '%1' and '%2'").arg(year+"-01-01 00:00:00").arg(year+"-03-31 23:59:59"));
|
|
|
+ }else if(month >=4 and month <= 6){
|
|
|
+ replyTime.append(QString("between '%1' and '%2'").arg(year+"-04-01 00:00:00").arg(year+"-06-30 23:59:59"));
|
|
|
+ }else if(month >=7 and month <= 9){
|
|
|
+ replyTime.append(QString("between '%1' and '%2'").arg(year+"-07-01 00:00:00").arg(year+"-09-30 23:59:59"));
|
|
|
+ }else if(month >=10 and month <= 12){
|
|
|
+ replyTime.append(QString("between '%1' and '%2'").arg(year+"-10-01 00:00:00").arg(year+"-12-31 23:59:59"));
|
|
|
+ }
|
|
|
+ int successedCount = 0;
|
|
|
+ if(adb.open()){
|
|
|
+ QString sql = QString("select count(*) from xfzd_t_alarm where reply_time %1 ").arg(replyTime).append("and reply_str like '%操作成功%'");
|
|
|
+ QSqlQuery query = adb.exec(sql);
|
|
|
+ if(query.next()){
|
|
|
+ successedCount = query.value(0).toInt();
|
|
|
+ }
|
|
|
+
|
|
|
+ adb.close();
|
|
|
+ }
|
|
|
+ QSqlQuery query1 = mdb.exec("select count(distinct open_project_id) from sp_corps_share");
|
|
|
+ int totalCount = 0;
|
|
|
+ if(query1.next()){
|
|
|
+ totalCount = query1.value(0).toInt();
|
|
|
+ }
|
|
|
+ float rate = static_cast<double>(successedCount)/static_cast<double>(totalCount)*100.00;
|
|
|
+ qint64 timestamp = QDateTime::currentDateTime().toMSecsSinceEpoch();
|
|
|
+
|
|
|
+ QString data = QString("{\"productCode\": \"9_0001\",\"deviceUUId\": \"320d35ea4b854740b4ae2ac8086a6852\",\"timestamp\": %1,\"tags\":{\"device_id\":\"alarm0001\"},\"metrics\":{\"total_count\":%2,\"success_count\":%3,\"success_rate\":%4}}").arg(timestamp).arg(totalCount).arg(successedCount).arg(rate);
|
|
|
+ QByteArray data_arr = data.toUtf8();
|
|
|
+
|
|
|
+ QNetworkRequest *req = new QNetworkRequest();
|
|
|
+ req->setUrl(QUrl("https://gateway.usky.cn/prod-api/data-transfer/dataWrite/sendDeviceData"));
|
|
|
+ req->setHeader(QNetworkRequest::ContentTypeHeader,"application/json; charset=UTF-8");
|
|
|
+ req->setHeader(QNetworkRequest::ContentLengthHeader,QString("%1").arg(data_arr.length()).toUtf8());
|
|
|
+ QNetworkReply *reply = xfzdStatisticAccessManager->post(*req,data_arr);
|
|
|
+ QReplayTimeout *pTimeout = new QReplayTimeout(reply,10000);
|
|
|
+ connect(pTimeout, SIGNAL(net_timeout()),this,SLOT(reply_timeout10()));
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
if((tmp_time-work_time)>59){
|
|
|
work_time = tmp_time;
|
|
|
@@ -4575,3 +4809,10 @@ void Core::db_init()
|
|
|
db.exec("create table `operation_t_rec` (`id` integer primary key autoincrement, `app_name` text(30), `operation_type` integer, `operation_comment` text(256), `store_time` text(20))");
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+void Core::adb_init()
|
|
|
+{
|
|
|
+ if(!chk_table("xfzd_t_alarm",adb.tables())){
|
|
|
+ adb.exec("CREATE TABLE `xfzd_t_alarm` (`id` integer primary key autoincrement ,`data_str` text(1024) ,`reply_str` text(1024), `reply_time` text(20), `open_project_id` text(30) unique)");
|
|
|
+ }
|
|
|
+}
|