Browse Source

统计每个季度推送总队单位百分比;新增数据同步模块水表、液位、推送消防泵主管水压和喷淋泵主管水压告警数据到总队的逻辑

james 1 week ago
parent
commit
13c57d0bf4

+ 270 - 29
ytServiceCore/core.cpp

@@ -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)");
+    }
+}

+ 1 - 0
ytServiceCore/datacenter.cpp

@@ -11,6 +11,7 @@ DataCenter::DataCenter(QObject *parent) :
 void DataCenter::start()
 {
     if(!this->listen(QHostAddress::Any,55332)){
+        printf("55332 not Listening\n");
         exit(-1);
     }
     printf("Listening at 55332\n");

+ 8 - 6
ytServiceCore/db_syncthread.cpp

@@ -2149,7 +2149,7 @@ void DB_SyncThread::checkAlarmList()
                 webData->CompanyAlarm[i].UpdateTime = UpdateTime;
             }
         }
-        usleep(5000);
+        usleep(50);
     }
     for(int j=0;j<10;j++){
         if(j<allAlarmList.length()){
@@ -2218,7 +2218,7 @@ void DB_SyncThread::checkAlarmStatus()
             time_t tmp_time = time(static_cast<time_t *>(nullptr));
             ytShm->updatetime[DB_THREAD] = tmp_time;
         }
-        usleep(5000);
+        usleep(50);
     }
     qry.clear();
 }
@@ -2248,7 +2248,7 @@ void DB_SyncThread::checkDevice()
             webData->DevicesCount = count;
         if(count>102399)
             break;
-        usleep(5000);
+        usleep(10);
         time_t tmp_time = time(static_cast<time_t *>(nullptr));
         ytShm->updatetime[DB_THREAD] = tmp_time;
     }
@@ -2310,7 +2310,7 @@ void DB_SyncThread::checkCompany()
             webData->CompanysAlarmCount = count;
         if(count>10239)
             break;
-        usleep(5000);
+        usleep(50);
         {
             time_t tmp_time = time(static_cast<time_t *>(nullptr));
             ytShm->updatetime[DB_THREAD] = tmp_time;
@@ -2345,7 +2345,7 @@ void DB_SyncThread::checkUsers()
             webData->UsersCount = count;
         if(count>10239)
             break;
-        usleep(5000);
+        usleep(50);
         {
             time_t tmp_time = time(static_cast<time_t *>(nullptr));
             ytShm->updatetime[DB_THREAD] = tmp_time;
@@ -2355,6 +2355,7 @@ void DB_SyncThread::checkUsers()
     count = 0;
     qry = mdb.exec("select agentid, owner_code from sp_owner_weibao order by id");
     while(qry.next()){
+//        printf("weibao LoginName:%s\n",qry.value(0).toString().toUtf8().data());
         if((QString::compare(QString::fromUtf8(webData->userCompanys[count].Loginname),qry.value(0).toString())!=0)
                 ||(QString::compare(QString::fromUtf8(webData->userCompanys[count].CompanyCode),qry.value(1).toString())!=0)){
             sprintf(webData->userCompanys[count].Loginname,"%s",qry.value(0).toString().toUtf8().data());
@@ -2366,12 +2367,13 @@ void DB_SyncThread::checkUsers()
             webData->UserCompanyCount = count;
         if(count>20479)
             break;
-        usleep(5000);
+        usleep(50);
         {
             time_t tmp_time = time(static_cast<time_t *>(nullptr));
             ytShm->updatetime[DB_THREAD] = tmp_time;
         }
     }
+    printf("checkUsers end\n");
     qry.clear();
 }
 

+ 1 - 1
ytServiceCore/programconf.cpp

@@ -8,7 +8,7 @@ ProgramConf::ProgramConf(QObject *parent) : QObject(parent)
     setDbUser("root");
     setDbPassword("Yt2018IoT");
     setDbDrive("QMYSQL");
-    setDbConnectName("jdxf_db");
+    setDbConnectName("jdxfpro_db");
     load();
 }
 

+ 4 - 6
ytServiceDog/main.cpp

@@ -22,17 +22,15 @@ void chk_program(){
     if(isRuning)
         return;
     isRuning = true;
-    if((uptime-ytShm->updatetime[CORE_MAIN])>300)
+    if((uptime-ytShm->updatetime[CORE_MAIN])>30)
         need_start = true;
 //    if((uptime-ytShm->updatetime[DB_THREAD])>300)
 //        need_start = true;
     if(need_start){
-        ytShm->updatetime[CORE_MAIN] = uptime+30;
-        ytShm->updatetime[DB_THREAD] = uptime+30;
+        ytShm->updatetime[CORE_MAIN] = uptime;
+        ytShm->updatetime[DB_THREAD] = uptime;
         ret = system("killall ytServiceCore");
-        system("killall ytDP0006");
-        system("killall ytDP0007");
-        ret = system("ytServiceCore &");
+        ret = system("/root/bin/ytServiceCore &");
     }
     isRuning = false;
 }