#include "core.h" #include "ytservicecore.h" #include #include #include #include #include "../../DataProcessService/ytUserInfoProcess/userinfo.h" //extern YT_SERVICE_SHM *ytShm; #define UN_REFERENCED_PARAMETER(x) {(x) = (x);} void chkmd5(const char *data, char *md5){ MD5_CTX ctx; unsigned char tmp,md[16]; int i; MD5_Init(&ctx); MD5_Update(&ctx,data,strlen(data)); MD5_Final(md,&ctx); for(i=0;i<16;i++){ tmp = (md[i]>>4)&0x0f; if(tmp<10) md5[i*2+0] = (char)(tmp+0x30); else md5[i*2+0] = (char)(tmp+0x37); tmp = md[i]&0x0f; if(tmp<10) md5[i*2+1] = (char)(tmp+0x30); else md5[i*2+1] = (char)(tmp+0x37); } md5[32] = 0x00; } Core::Core(QObject *parent) : QObject(parent) { isRunning = false; isSending = false; isSending2 = false; isSending3 = false; times = 0; jaworktime = 0; ypSyncdataList.clear(); cnSyncdataLiet.clear(); jaSyncdataLiet.clear(); sqlList.clear(); sqlList2.clear(); sqlList3.clear(); work_time = 0; logThread = new LogThread(this); logThread->start(); ytShm->updatetime[CORE_MAIN] = time(static_cast(nullptr)); ytShm->updatetime[DB_THREAD] = ytShm->updatetime[CORE_MAIN] ; db = QSqlDatabase::addDatabase("QSQLITE","dog_conf"); db.setDatabaseName("db/watchdog2.db"); mdb = QSqlDatabase::addDatabase("QMYSQL","jdxf2_db"); mdb.setDatabaseName("jdxf"); mdb.setHostName("47.98.201.187"); mdb.setPort(3306); mdb.setUserName("root"); mdb.setPassword("Yt2018IoT"); mdbOpened = mdb.open(); if(db.open()){ db_init(); } thread = new DB_SyncThread(this); timer = new QTimer(this); netAccessManager = new QNetworkAccessManager(this); connect(timer,SIGNAL(timeout()),this,SLOT(time_out())); connect(thread,SIGNAL(SyncData(QString,QString)),this,SLOT(SyncData(QString,QString))); connect(thread,SIGNAL(cnSyncData(QString,QString,int)),this,SLOT(cnSyncData(QString,QString,int))); connect(thread,SIGNAL(jaSyncData(int,QString,QString)),this,SLOT(jaSyncData(int,QString,QString))); connect(netAccessManager,SIGNAL(finished(QNetworkReply*)),this,SLOT(finishedSlot(QNetworkReply*))); connect(thread,SIGNAL(companyAlarmChanged(QString)),this,SLOT(companyAlarmChanged(QString))); cnnetAccessManager = new QNetworkAccessManager(this); janetAccessManager = new QNetworkAccessManager(this); connect(cnnetAccessManager,SIGNAL(finished(QNetworkReply*)),this,SLOT(finishedSlot2(QNetworkReply*))); connect(janetAccessManager,SIGNAL(finished(QNetworkReply*)),this,SLOT(finishedSlot3(QNetworkReply*))); dc = new DataCenter(this); connect(dc,&DataCenter::needSync,this,&Core::needSync); wsCenter = new WSCenter(this); subReportServer = new SubSysReport(this); connect(subReportServer,&SubSysReport::subReport,this,&Core::subReport); for(quint16 i=0;i<16;i++){ wxThreads[i] = new WechartThreads(this,i,"47.98.201.73","/jdxf/wxapp2.php/Home/GeneralPush/voice"); connect(wxThreads[i],&WechartThreads::wxchart,this,&Core::wxchart); wxThreads[i]->start(); } wxcur = 0; for(quint16 i=0;i<16;i++){ wxThreads1[i] = new WechartThreads(this,i,"47.98.201.73","/jdxf/wxapp2.php/Home/Waterwarn/bj"); connect(wxThreads1[i],&WechartThreads::wxchart,this,&Core::wxchart); wxThreads1[i]->start(); } wxcur1 = 0; for(quint16 i=0;i<16;i++){ wxThreads2[i] = new WechartThreads(this,i,"47.98.201.73","/jdxf/wxapp2.php/Home/Waterwarn/message_water"); connect(wxThreads2[i],&WechartThreads::wxchart,this,&Core::wxchart); wxThreads2[i]->start(); } wxcur2 = 0; for(quint16 i=0;i<16;i++){ wxThreads3[i] = new WechartThreads(this,i,"47.98.201.73","/jdxf/wxapp2.php/Home/Waterwarn/message_electrical"); connect(wxThreads3[i],&WechartThreads::wxchart,this,&Core::wxchart); wxThreads3[i]->start(); } wxcur3 = 0; for(quint16 i=0;i<16;i++){ wxThreads4[i] = new WechartThreads(this,i,"47.98.201.73","/jdxf/wxapp2.php/Home/Rtuwarn/message_sendalarm"); connect(wxThreads4[i],&WechartThreads::wxchart,this,&Core::wxchart); wxThreads4[i]->start(); } wxcur4 = 0; for(quint16 i=0;i<16;i++){ wxThreads5[i] = new WechartThreads(this,i,"47.98.201.73","/jdxf/wxapp2.php/Home/Firewarn/message_sendalarm"); connect(wxThreads5[i],&WechartThreads::wxchart,this,&Core::wxchart); wxThreads5[i]->start(); } wxcur5 = 0; time_out(); } void Core::start() { timer->start(1000); thread->start(); dc->start(); subReportServer->start(); } void Core::wxchart(quint16 idx, QDateTime t, QString data, bool dirflag) { UN_REFERENCED_PARAMETER(idx); logThread->appendData(QString("[ %1 47.98.201.73 (wx) %2 ] %3") .arg(t.toString("yyyy-MM-dd HH:mm:ss.zzz")) .arg(dirflag?">>>":"<<<") .arg(data.replace('\n',"\\n").replace('\r',"\\r"))); } void Core::AlarmReport(QString addr, quint64 insertid, quint16 type, QString companyCode, QString evt_name, QString evt, QString alarm_time,int version) { // UN_REFERENCED_PARAMETER(insertid); QString phonelist = ""; QString bz = ""; // for(int i=0;i<10240;i++){ // if(QString::compare(QString(rtuList->rtus[i].Device_Code),addr)==0){ // companyCode = QString(rtuList->rtus[i].Company_Code); // break; // } // } if(companyCode.length()>0){ for(int i=0;i<102400;i++){ if(companyCode.compare(QString(sysConfShm->userInfo[i].CompanyCode))==0){ QString phone = QString(sysConfShm->userInfo[i].CellPhone); if(phone.trimmed().length()>0){ if(phonelist.length()==0) phonelist = phone; else phonelist.append(","+phone); } } } if(phonelist.length()>0){ if(version==0){ if(type==3){ QString data = QString("IMEI=%1&evt=%2&insert_id=%3&time=%4&bz=%5&user_from=smoke&phone=%6").arg(addr).arg(evt).arg(insertid).arg(alarm_time).arg(bz).arg(phonelist) .replace(",","%2C").replace(":","%3A").replace(" ","+"); wxThreads1[wxcur1&0x0f]->appendData(data); wxcur1++; wxcur1 &= 0x0f; }else if(type==2){ QString data = QString("IMEI=%1&evt=%2&insert_id=%3&phone=%4&time=%5&bz=%6&user_from=water").arg(addr).arg(evt).arg(insertid).arg(phonelist) .replace(",","%2C").replace(":","%3A").replace(" ","+").arg(alarm_time).arg(bz); wxThreads2[wxcur2&0x0f]->appendData(data); wxcur2++; wxcur2 &= 0x0f; }else if(type==7){ QString data = QString("device_code=%1&evt=%2&insert_id=%3&phone=%4&time=%5&bz=%6&user_from=electric").arg(addr).arg(evt).arg(insertid).arg(phonelist) .replace(",","%2C").replace(":","%3A").replace(" ","+").arg(alarm_time).arg(bz); wxThreads3[wxcur3&0x0f]->appendData(data); wxcur3++; wxcur3 &= 0x0f; }else if(type==6){ QString data = QString("id=%1&types=%2&insert_id=%3&phone=%4&time=%5&bz=%6&user_from=rtu").arg(addr).arg(evt_name).arg(insertid).arg(phonelist) .replace(",","%2C").replace(":","%3A").replace(" ","+").arg(alarm_time).arg(bz); wxThreads4[wxcur4&0x0f]->appendData(data); wxcur4++; wxcur4 &= 0x0f; }else if(type==1){ QString data = QString("id=%1&types=%2&insert_id=%3&phone=%4&time=%5&bz=%6&user_from=userinfo").arg(addr).arg(evt).arg(insertid).arg(phonelist) .replace(",","%2C").replace(":","%3A").replace(" ","+").arg(alarm_time).arg(bz); wxThreads5[wxcur5&0x0f]->appendData(data); wxcur5++; wxcur5 &= 0x0f; } }else if(version==1){ QString data = QString("device_code=%1&evt_name=%2&insert_id=%3&phone=%4&evt=%5&time=%6&bz=%7&user_from=zong").arg(addr).arg(evt_name).arg(insertid).arg(phonelist) .replace(",","%2C").replace(":","%3A").replace(" ","+").arg(evt).arg(alarm_time).arg(bz); wxThreads[wxcur&0x0f]->appendData(data); wxcur++; wxcur &= 0x0f; } } } } QList Core::getPnoValue(QString pnoset) { QList list; QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(pnoset.toUtf8(),&json_error)); if(json_error.error == QJsonParseError::NoError){ QJsonArray json_root = jsonDoc.array(); for(int i=0;i-2)&&(name.length()>0)) list.append(CnPno(name,port,defvalue)); } } // int i,port; // json_object *pno, *obj; // char name[1024],value[1024]; // obj = json_tokener_parse(pnoset.toUtf8().data()); // if(json_object_get_type(obj)==json_type_array){ // for(i=0;i-2)&&(strlen(name)>0)){ // list.append(CnPno(QString::fromUtf8(name),port,QString::fromUtf8(value))); // } // } // } // json_object_put(obj); return list; } void Core::chkInList1(QString devid) { QSqlQuery qry; QString sql; bool found = false; for(int i=0;i> /root/test.log").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).toUtf8().data()); // system(QString("echo \"[YTFC] dev:%1 obj:%2 start:%3 rec:%4\">> /root/test.log").arg(syncDevList.at(i).OwnerCode).arg(syncDevList.at(i).ObjCode).arg(syncDevList.at(i).StartPort).arg(syncDevList.at(i).RecCur).toUtf8().data()); QDateTime dataTime = QDateTime::fromTime_t(0); QString PowerAlarm="off"; QString ManualAct = "off"; QString DevWorking01 = "off"; QString DevWorking02 = "off"; QString DevAlarm01 = "off"; QString DevAlarm02 = "off"; QString FireAutoAct = "off"; sql = QString("select dwtype,point_code,point_data,data_time from sp_owner_status where device_id='%1'").arg(devid); // system(QString("echo \"[YTFC] %1\" >> /root/test.log").arg(sql).toUtf8().data()); // qDebug()<0)&&(code<8)){ int value = qry.value(2).toInt(); if(dataTime.toTime_t()syncDevList.at(i).RecCur) { mdb.exec(QString("update sp_yangpu_share set rec_cur=%1 where object_code='%2'").arg(dataTime.toTime_t()).arg(syncDevList.at(i).ObjCode)); QString jsonstr = QString("{\"dataCode\":\"DATA_FIRECONT\",\"deviceId\":\"%1\",\"postTime\":\"%2\",\"data\":{\"PowerAlarm\":\"%3\",\"ManualAct\":\"%4\",\"DevWorking01\":\"%5\",\"DevWorking02\":\"%6\",\"DevAlarm01\":\"%7\",\"DevAlarm02\":\"%8\",\"FireAutoAct\":\"%9\"}}") .arg(syncDevList.at(i).ObjCode).arg(dataTime.toString("yyyy-MM-dd HH:mm:ss")).arg(PowerAlarm).arg(ManualAct).arg(DevWorking01).arg(DevWorking02).arg(DevAlarm01).arg(DevAlarm02).arg(FireAutoAct); // system(QString("echo \"[YTFC] %1\" >> /root/test.log").arg(jsonstr).toUtf8().data()); SyncData(QUuid::createUuid().toString().replace("{","").replace("}",""), jsonstr); } }else if(syncDevList.at(i).ObjType.compare("YTCI")==0){ found = true; // system(QString("echo \"%1\" >> /root/test.log").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).toUtf8().data()); // system(QString("echo \"[YTCI] dev:%1 obj:%2 start:%3 rec:%4\">> /root/test.log").arg(syncDevList.at(i).OwnerCode).arg(syncDevList.at(i).ObjCode).arg(syncDevList.at(i).StartPort).arg(syncDevList.at(i).RecCur).toUtf8().data()); QString Temperature = "0.0"; QString Humidity = "0.0"; QDateTime dataTime = QDateTime::fromTime_t(0); sql = QString("select dwtype,point_code,point_data,data_time from sp_owner_status where device_id='%1' and point_code>%2 order by point_code limit 0,2").arg(devid).arg((syncDevList.at(i).StartPort>0)?(syncDevList.at(i).StartPort+63):0); // system(QString("echo \"[YTCI]%1\" >> /root/test.log").arg(sql).toUtf8().data()); // qDebug()<syncDevList.at(i).RecCur) { mdb.exec(QString("update sp_yangpu_share set rec_cur=%1 where object_code='%2'").arg(dataTime.toTime_t()).arg(syncDevList.at(i).ObjCode)); QString jsonstr = QString("{\"dataCode\":\"DATA_ENVIRONM\",\"deviceId\":\"%1\",\"postTime\":\"%2\",\"data\":{\"Temperature\":%3,\"Humidity\":%4}}") .arg(syncDevList.at(i).ObjCode).arg(dataTime.toString("yyyy-MM-dd HH:mm:ss")).arg(Temperature).arg(Humidity); // system(QString("echo \"[YTCI] %1\" >> /root/test.log").arg(jsonstr).toUtf8().data()); SyncData(QUuid::createUuid().toString().replace("{","").replace("}",""), jsonstr); } }else if(syncDevList.at(i).ObjType.compare("YTWP")==0){ found = true; // system(QString("echo \"%1\" >> /root/test.log").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).toUtf8().data()); // system(QString("echo \"[YTWP] dev:%1 obj:%2 start:%3 rec:%4\">> /root/test.log").arg(syncDevList.at(i).OwnerCode).arg(syncDevList.at(i).ObjCode).arg(syncDevList.at(i).StartPort).arg(syncDevList.at(i).RecCur).toUtf8().data()); QString WaterPressure = "0.0"; QDateTime dataTime = QDateTime::fromTime_t(0); sql = QString("select dwtype,point_code,point_data,data_time from sp_owner_status where device_id='%1' and point_code>%2 order by point_code limit 0,1").arg(devid).arg((syncDevList.at(i).StartPort>0)?(syncDevList.at(i).StartPort+63):3); // system(QString("echo \"[YTWP]%1\" >> /root/test.log").arg(sql).toUtf8().data()); // qDebug()<syncDevList.at(i).RecCur) { mdb.exec(QString("update sp_yangpu_share set rec_cur=%1 where object_code='%2'").arg(dataTime.toTime_t()).arg(syncDevList.at(i).ObjCode)); QString jsonstr = QString("{\"dataCode\":\"DATA_WATERPRE\",\"deviceId\":\"%1\",\"postTime\":\"%2\",\"data\":{\"WaterPressure\":%3}}") .arg(syncDevList.at(i).ObjCode).arg(dataTime.toString("yyyy-MM-dd HH:mm:ss")).arg(WaterPressure); // system(QString("echo \"[YTWP] %1\" >> /root/test.log").arg(jsonstr).toUtf8().data()); SyncData(QUuid::createUuid().toString().replace("{","").replace("}",""), jsonstr); } } }else if(syncDevList.at(i).ObjType.compare("YTLL")==0){ found = true; // system(QString("echo \"%1\" >> /root/test.log").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).toUtf8().data()); // system(QString("echo \"[YTLL] dev:%1 obj:%2 start:%3 rec:%4\">> /root/test.log").arg(syncDevList.at(i).OwnerCode).arg(syncDevList.at(i).ObjCode).arg(syncDevList.at(i).StartPort).arg(syncDevList.at(i).RecCur).toUtf8().data()); QString LiquidLevel = "0.0"; QDateTime dataTime = QDateTime::fromTime_t(0); sql = QString("select dwtype,point_code,point_data,data_time from sp_owner_status where device_id='%1' and point_code>%2 order by point_code limit 0,1").arg(devid).arg((syncDevList.at(i).StartPort>0)?(syncDevList.at(i).StartPort+63):3); // system(QString("echo \"[YTLL]%1\" >> /root/test.log").arg(sql).toUtf8().data()); // qDebug()<syncDevList.at(i).RecCur) { mdb.exec(QString("update sp_yangpu_share set rec_cur=%1 where object_code='%2'").arg(dataTime.toTime_t()).arg(syncDevList.at(i).ObjCode)); QString jsonstr = QString("{\"dataCode\":\"DATA_LIQUIDLE\",\"deviceId\":\"%1\",\"postTime\":\"%2\",\"data\":{\"LiquidLevel\":%3}}") .arg(syncDevList.at(i).ObjCode).arg(dataTime.toString("yyyy-MM-dd HH:mm:ss")).arg(LiquidLevel); // system(QString("echo \"[YTLL] %1\" >> /root/test.log").arg(jsonstr).toUtf8().data()); SyncData(QUuid::createUuid().toString().replace("{","").replace("}",""), jsonstr); } } }else if(syncDevList.at(i).ObjType.compare("YTEF")==0){ found = true; // system(QString("echo \"%1\" >> /root/test.log").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).toUtf8().data()); // system(QString("echo \"[YTEF] dev:%1 obj:%2 start:%3 rec:%4\">> /root/test.log").arg(syncDevList.at(i).OwnerCode).arg(syncDevList.at(i).ObjCode).arg(syncDevList.at(i).StartPort).arg(syncDevList.at(i).RecCur).toUtf8().data()); QString HighVoltageAlarm ="off"; QString LowVoltageAlarm = "off"; QString HighCurrentAlarm = "off"; QString ElectricityLeakage = "off"; QString HighTemperatureA = "off"; QString HighTemperatureB = "off"; QString HighTemperatureC = "off"; QString VoltageA = "0.0"; QString VoltageB = "0.0"; QString VoltageC = "0.0"; QString CurrentA = "0.0"; QString CurrentB = "0.0"; QString CurrentC = "0.0"; QString TemperatureA = "0.0"; QString TemperatureB = "0.0"; QString TemperatureC = "0.0"; QDateTime dataTime = QDateTime::fromTime_t(0); sql =QString("select dwtype,point_code,point_data,data_time from sp_owner_status where device_id='%1'").arg(devid); // system(QString("echo \"[YTEF]%1\" >> /root/test.log").arg(sql).toUtf8().data()); // qDebug()<syncDevList.at(i).RecCur) { mdb.exec(QString("update sp_yangpu_share set rec_cur=%1 where object_code='%2'").arg(dataTime.toTime_t()).arg(syncDevList.at(i).ObjCode)); QString jsonstr = QString("{\"dataCode\":\"DATA_ElECTRIC\",\"deviceId\":\"%1\",\"postTime\":\"%2\",\"data\":{\"HighVoltageAlarm\":\"%3\",\"LowVoltageAlarm\":\"%4\",\"HighCurrentAlarm\":\"%5\",\"ElectricityLeakage\":\"%6\",\"HighTemperatureA\":\"%7\",\"HighTemperatureB\":\"%8\",\"HighTemperatureC\":\"%9\",\"VoltageA\":%10,\"VoltageB\":%11,\"VoltageC\":%12,\"CurrentA\":%13,\"CurrentB\":%14,\"CurrentC\":%15,\"TemperatureA\":%16,\"TemperatureB\":%17,\"TemperatureC\":%18}}") .arg(syncDevList.at(i).ObjCode).arg(dataTime.toString("yyyy-MM-dd HH:mm:ss")).arg(HighVoltageAlarm).arg(LowVoltageAlarm).arg(HighCurrentAlarm).arg(ElectricityLeakage).arg(HighTemperatureA).arg(HighTemperatureB).arg(HighTemperatureC).arg(VoltageA).arg(VoltageB).arg(VoltageC).arg(CurrentA).arg(CurrentB).arg(CurrentC).arg(TemperatureA).arg(TemperatureB).arg(TemperatureC); // system(QString("echo \"[YTEF] %1\" >> /root/test.log").arg(jsonstr).toUtf8().data()); SyncData(QUuid::createUuid().toString().replace("{","").replace("}",""), jsonstr); } }else if(syncDevList.at(i).ObjType.compare("YTVA")==0){ found = true; QString VideoAlarm01 = "off"; QString VideoAlarm02 = "off"; QDateTime dataTime = QDateTime::fromTime_t(0); sql =QString("select dwtype,point_code,point_data,data_time from sp_owner_status where device_id='%1'").arg(devid); // system(QString("echo \"%1\" >> /root/test.log").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).toUtf8().data()); qry = mdb.exec(sql); while(qry.next()){ if(dataTime.toTime_t()> /root/test.log").arg(jsonstr).toUtf8().data()); SyncData(QUuid::createUuid().toString().replace("{","").replace("}",""), jsonstr); } } } if(!found){ for(int i=0;i0){ QList pnoList = getPnoValue(cnDevList.at(i).StartPort); for(int i=0;i0?pnoList.at(i).Default:"0")); else jdata.append(QString(",\"%1\":\"%2\"").arg(pnoList.at(i).PName).arg(pnoList.at(i).Default)); } } while(qry.next()){ uint cTime = qry.value(2).toDateTime().toTime_t(); if(cTime>MaxT) MaxT = cTime; for(int i=0;i=0) jdata.append(QString(",\"%1\":%2").arg(pnoList.at(i).PName).arg(qry.value(1).toInt())); else jdata.append(QString(",\"%1\":%2").arg(pnoList.at(i).PName).arg(qry.value(1).toString())); break; } } } }else{ while(qry.next()){ uint cTime = qry.value(2).toDateTime().toTime_t(); if(cTime>MaxT) MaxT = cTime; if(cndev.ObjType.compare("YTWP")==0){ if(qry.value(0).toInt()==1) jdata.append(QString(",\"devStatus\":%1").arg(qry.value(1).toInt())); else if(qry.value(0).toInt()==2) jdata.append(QString(",\"power\":%1").arg(qry.value(1).toInt())); else if(qry.value(0).toInt()==3) jdata.append(QString(",\"signal\":%1").arg((qry.value(1).toInt()==5)?100:(qry.value(1).toInt()*20))); else if(qry.value(0).toInt()==4) jdata.append(QString(",\"value\":%1").arg(qry.value(1).toDouble())); } } if(cndev.ObjType.compare("YTWP")==0) jdata.append(QString(",\"unit\":\"MPa\"")); } jdata.append(QString(",\"logTime\":\"%1\"").arg(QDateTime::fromTime_t(MaxT).toString("yyyy-MM-dd HH:mm:ss"))); cnSyncData(QUuid::createUuid().toString().replace("{","").replace("}",""), "{"+jdata+"}",cndev.devCategory); }else{ } } } } } void Core::subReport(quint16 subType, QString DeviceID, quint64 insertId, quint16 flag, QString CompanyCode, QString evt_name, QString evt, QString alarm_time){ if(!mdbOpened) { mdbOpened = mdb.open(); } bool found = false; QSqlQuery qry1; QSqlQuery qry2; QSqlQuery qry3; QSqlQuery qry4; QSqlQuery qry5; QSqlQuery qry6; QSqlQuery qry11; logThread->appendData(QString("huojingceshi[%1, %2, %3, %4]").arg(subType).arg(DeviceID).arg(insertId).arg(flag)); QString sql11 = QString("select VERSION from jdxf_t_test where ID=%1").arg(1); qry11 = mdb.exec(sql11); if(subType==1){ if(flag==1){ QString sql1 = QString("select port,data3,clr,clnr,clwb from sp_hj2017 where id=%1").arg(insertId); QString sql2 = QString("select company from sp_owner where owner_code=%1").arg(DeviceID); qry1 = mdb.exec(sql1); qry2 = mdb.exec(sql2); while(qry2.next()){ QString sql4= QString("SELECT phone FROM sp_owner_phone WHERE owner_code = %1 AND phone NOT IN ('13301708833','18901601933','13817464316','15262166206','18621761642','18800178436','17317231730','13262875757','17630065224','17621295894','18773792538','15365185591') GROUP BY owner_code").arg(qry2.value(0).toString()); qry4 = mdb.exec(sql4); } QString jdata = ""; for(int i=0;i pnoList = getJaPnoValue(jaDevList.at(i).Device_data); QJsonArray jajsonArray; for(int i=0;iappendData(QString("[ %1 dataupdate ] %2").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss.zzz")).arg(deviceCode)); thread->appendDevDataList(deviceCode); } void Core::companyAlarmChanged(QString companyCode) { wsCenter->checkLastNote(companyCode); } void Core::SyncData(QString uuid, QString jsonstr) { ypSyncdataList.append(SyncRep(uuid,jsonstr)); } void Core::cnSyncData(QString uuid, QString jsonstr, int devCategory) { cnSyncdataLiet.append(CnSyncRep(uuid,jsonstr,devCategory)); } void Core::jaSyncData(int xh,QString uuid,QString jsonstr) { qDebug()<0){ SyncRep rep = ypSyncdataList.first(); if(reply->error()==QNetworkReply::NoError){ QString bak_info = QString::fromUtf8(reply->readAll()); sqlList2.append(QString::fromUtf8("update `ypsync_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)); }else sqlList2.append(QString::fromUtf8("update `ypsync_t_rec` set `reply_time`='%1' where `uuid`='%2'") .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(rep.Id)); ypSyncdataList.removeFirst(); } isSending = false; } void Core::finishedSlot2(QNetworkReply *reply) { if(cnSyncdataLiet.length()>0){ CnSyncRep rep = cnSyncdataLiet.first(); if(reply->error()==QNetworkReply::NoError){ QString bak_info = QString::fromUtf8(reply->readAll()); sqlList2.append(QString::fromUtf8("update `cnsync_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)); // printf("%s\n",bak_info.toUtf8().data()); }else sqlList2.append(QString::fromUtf8("update `cnsync_t_rec` set `reply_time`='%1' where `uuid`='%2'") .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(rep.Id)); cnSyncdataLiet.removeFirst(); } isSending2 = false; } void Core::finishedSlot3(QNetworkReply *reply) { if(jaSyncdataLiet.length()>0){ JaSyncRep rep = jaSyncdataLiet.first(); if(reply->error()==QNetworkReply::NoError){ QString bak_info = QString::fromUtf8(reply->readAll()); sqlList2.append(QString::fromUtf8("update `jasync_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)); printf("%s\n",bak_info.toUtf8().data()); }else sqlList2.append(QString::fromUtf8("update `jasync_t_rec` set `reply_time`='%1' where `uuid`='%2'") .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(rep.Id)); jaSyncdataLiet.removeFirst(); } isSending3 = false; } void Core::reply_timeout() { if(ypSyncdataList.length()>0){ SyncRep rep = ypSyncdataList.first(); sqlList2.append(QString::fromUtf8("update `ypsync_t_rec` set `reply_time`='%1' where `uuid`='%2'") .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(rep.Id)); ypSyncdataList.removeFirst(); } isSending = false; } void Core::reply_timeout2() { if(cnSyncdataLiet.length()>0){ CnSyncRep rep = cnSyncdataLiet.first(); sqlList2.append(QString::fromUtf8("update `cnsync_t_rec` set `reply_time`='%1' where `uuid`='%2'") .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(rep.Id)); cnSyncdataLiet.removeFirst(); } isSending2 = false; } void Core::reply_timeout3() { if(jaSyncdataLiet.length()>0){ JaSyncRep rep = jaSyncdataLiet.first(); sqlList2.append(QString::fromUtf8("update `jasync_t_rec` set `reply_time`='%1' where `uuid`='%2'") .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(rep.Id)); jaSyncdataLiet.removeFirst(); } isSending3 = false; } void Core::time_out() { QSqlQuery qry; QSqlQuery qry1; int ret = 0; time_t tmp_time = time(static_cast(nullptr)); ytShm->updatetime[CORE_MAIN] = tmp_time; if(!mdbOpened) { mdbOpened = mdb.open(); } if(isRunning) return; isRunning = true; if((tmp_time-jaworktime)>=1800){ jaworktime=tmp_time; jaDevList.clear(); qry = mdb.exec("select pid,bid,fid,tid,mid,zid,val,device_id,device_name,device_data,name,detection_id,sid,mainframe_id,mainframe_name,loop_number,position_number,report_time,device_type,company_code from sp_jingan_share"); while(qry.next()){ jaDevList.append(JASyncDev(qry.value(0).toString(), qry.value(1).toString(), qry.value(2).toString(), qry.value(3).toString(), qry.value(4).toString(), qry.value(5).toString(), qry.value(6).toInt(), qry.value(7).toString(), qry.value(8).toString(), qry.value(9).toString().trimmed(), qry.value(10).toString(), qry.value(11).toString(), qry.value(12).toString(), qry.value(13).toString(), qry.value(14).toString(), qry.value(15).toString(), qry.value(16).toString(), qry.value(17).toString(), qry.value(18).toInt(), qry.value(19).toString())); } qry.clear(); syncDevList.clear(); qry = mdb.exec("select owner_code,dwtype,object_code,start_port,rec_cur from sp_yangpu_share"); while(qry.next()){ syncDevList.append(YPSyncDev(qry.value(0).toString(), qry.value(1).toString(), qry.value(2).toString(), qry.value(3).toInt(), qry.value(4).toUInt())); } qry.clear(); cnDevList.clear(); qry = mdb.exec("select owner_code,dwtype,object_code,start_port,rec_cur,object_name, ownBid, devCategory, type from sp_changning_share"); while(qry.next()){ cnDevList.append(CNSyncDev(qry.value(0).toString(), qry.value(5).toString(), qry.value(1).toString(), qry.value(2).toString(), qry.value(3).toString().trimmed(), qry.value(4).toUInt(), qry.value(6).toString(), qry.value(7).toInt(), qry.value(8).toInt())); } qry.clear(); for(int i=0;i0){ jdata.append(QString(",\"mid\":\"%1\"").arg(cndev.Mid)); jdata.append(QString(",\"device_name\":\"%1\"").arg(cndev.Device_name)); jdata.append(QString(",\"device_id\":\"%1\"").arg(cndev.Device_id)); QJsonParseError json_error; QJsonArray jajsonArray; QJsonDocument jsonDoc(QJsonDocument::fromJson(jaDevList.at(i).Device_data.toUtf8(),&json_error)); QJsonObject jaobj; QJsonObject jaobj2; QJsonObject jaobj3; if(json_error.error == QJsonParseError::NoError){ while(qry.next()){ if(qry.value(2).toInt()==2){ if(qry.value(0).toInt()==4){ QJsonArray json_root = jsonDoc.array(); if(json_root.size()>1){ QString qryval = qry.value(1).toString(); float num = qryval.toFloat(); QJsonObject obj = json_root.at(0).toObject(); QJsonObject obj2 = json_root.at(1).toObject(); QJsonObject obj3 = json_root.at(2).toObject(); jaobj.insert("attr_id", obj.value("attr_id")); jaobj.insert("attr_val", obj.value("attr_val")); jaobj2.insert("attr_id", obj2.value("attr_id")); jaobj2.insert("attr_val", qry.value(1).toString()); jaobj3.insert("attr_id", obj3.value("attr_id")); jaobj3.insert("attr_val", obj3.value("attr_val")); jajsonArray.append(jaobj); jajsonArray.append(jaobj2); jajsonArray.append(jaobj3); }else{ QJsonObject obj = json_root.at(0).toObject(); jaobj.insert("attr_id", obj.value("attr_id")); jaobj.insert("attr_val", qry.value(1).toString()); jajsonArray.append(jaobj); } jdata.append(QString(",\"device_data\":\"%1\"").arg(QString(QJsonDocument(jajsonArray).toJson()).replace("\"","\\\""))); QString jasign = "ff6322b1163b11ea91d31bbf0a452a93app_key9e555b8b2244ebc1f59695824b86c5a0"; jasign.append(QString("bid%1").arg(cndev.Bid)); jasign.append(QString("device_data%1").arg(QString(QJsonDocument(jajsonArray).toJson()))); jasign.append(QString("device_id%1").arg(cndev.Device_id)); jasign.append(QString("device_name%1").arg(cndev.Device_name)); jasign.append(QString("fid%1").arg(cndev.Fid)); jasign.append(QString("format%1").arg("json")); jasign.append(QString("mid%1").arg(cndev.Mid)); jasign.append(QString("pid%1").arg(cndev.Pid)); jasign.append(QString("report_time%1").arg(myt)); jasign.append(QString("sign_method%1").arg("md5")); jasign.append(QString("timestamp%1").arg(myt)); jasign.append(QString("v%1").arg("1.0")); jasign.append(QString("zid%1").arg(cndev.Zid)); jasign.append(QString("%1").arg("ff6322b1163b11ea91d31bbf0a452a93")); char md5str[33]; chkmd5(jasign.replace("\r","").replace("\n","").replace(" ","").toUtf8().data(),md5str); md5str[32]='\0'; jdata.append(QString(",\"sign\":\"%1\"").arg(md5str)); } } } } } QString jasign2=jdata.replace("\r","").replace("\n","").replace(" ",""); jaSyncData(0,QUuid::createUuid().toString().replace("{","").replace("}",""),"{"+jasign2+"}"); }else if(cndev.Device_type==6){ QString sql = QString("select point_code, point_data, content, data_time from sp_owner_status where device_id=%1").arg(cndev.Device_id); jdata.append(QString("\"app_key\":\"%1\"").arg("9e555b8b2244ebc1f59695824b86c5a0")); jdata.append(QString(",\"timestamp\":\"%1\"").arg(myt)); jdata.append(QString(",\"format\":\"%1\"").arg("json")); jdata.append(QString(",\"v\":\"%1\"").arg("1.0")); jdata.append(QString(",\"sign_method\":\"%1\"").arg("md5")); jdata.append(QString(",\"pid\":\"%1\"").arg(cndev.Pid)); jdata.append(QString(",\"bid\":\"%1\"").arg(cndev.Bid)); jdata.append(QString(",\"fid\":\"%1\"").arg(cndev.Fid)); jdata.append(QString(",\"zid\":\"%1\"").arg(cndev.Zid)); jdata.append(QString(",\"report_time\":\"%1\"").arg(myt)); qry = mdb.exec(sql); jdata.append(QString(",\"mid\":\"%1\"").arg(cndev.Mid)); jdata.append(QString(",\"device_name\":\"%1\"").arg(cndev.Device_name)); QList pnoList = getJaPnoValue(jaDevList.at(i).Device_data); QJsonArray jajsonArray; for(int i=0;i1){ QJsonObject obj = json_root.at(0).toObject(); QJsonObject obj2 = json_root.at(1).toObject(); QJsonObject obj3 = json_root.at(2).toObject(); QJsonObject obj4 = json_root.at(3).toObject(); QJsonObject obj5 = json_root.at(4).toObject(); QJsonObject obj6 = json_root.at(5).toObject(); jaobj.insert("attr_id", obj.value("attr")); jaobj.insert("attr_val", obj.value("default1")); jaobj2.insert("attr_id", obj2.value("attr")); jaobj2.insert("attr_val", obj2.value("default1")); jaobj3.insert("attr_id", obj3.value("attr")); jaobj3.insert("attr_val", obj3.value("default1")); jaobj4.insert("attr_id", obj4.value("attr")); jaobj4.insert("attr_val", obj4.value("default1")); jaobj5.insert("attr_id", obj5.value("attr")); jaobj5.insert("attr_val", obj5.value("default1")); jaobj6.insert("attr_id", obj6.value("attr")); jaobj6.insert("attr_val", obj6.value("default1")); jajsonArray.append(jaobj); jajsonArray.append(jaobj2); jajsonArray.append(jaobj3); jajsonArray.append(jaobj4); jajsonArray.append(jaobj5); jajsonArray.append(jaobj6); } } jdata.append(QString(",\"device_data\":\"%1\"").arg(QString(QJsonDocument(jajsonArray).toJson()).replace("\"","\\\""))); QString jasign = "ff6322b1163b11ea91d31bbf0a452a93app_key9e555b8b2244ebc1f59695824b86c5a0"; jasign.append(QString("bid%1").arg(cndev.Bid)); jasign.append(QString("device_data%1").arg(QString(QJsonDocument(jajsonArray).toJson()))); jasign.append(QString("device_id%1").arg("10"+cndev.Device_id)); jasign.append(QString("device_name%1").arg(cndev.Device_name)); jasign.append(QString("fid%1").arg(cndev.Fid)); jasign.append(QString("format%1").arg("json")); jasign.append(QString("mid%1").arg(cndev.Mid)); jasign.append(QString("pid%1").arg(cndev.Pid)); jasign.append(QString("report_time%1").arg(myt)); jasign.append(QString("sign_method%1").arg("md5")); jasign.append(QString("timestamp%1").arg(myt)); jasign.append(QString("v%1").arg("1.0")); jasign.append(QString("zid%1").arg(cndev.Zid)); jasign.append(QString("%1").arg("ff6322b1163b11ea91d31bbf0a452a93")); char md5str[33]; chkmd5(jasign.replace("\r","").replace("\n","").replace(" ","").toUtf8().data(),md5str); md5str[32]='\0'; jdata.append(QString(",\"sign\":\"%1\"").arg(md5str)); QString jasign4=jdata.replace("\r","").replace("\n","").replace(" ",""); jaSyncData(0,QUuid::createUuid().toString().replace("{","").replace("}",""),"{"+jasign4+"}"); // QString pointData = qry.value(1).toString(); // if(pointData.compare("H02P1")==0){ // jdata.append(QString(",\"val\":%1").arg(2)); // }else if(pointData.compare("H02P2")==0){ // jdata.append(QString(",\"val\":%1").arg(4)); // }else if(pointData.compare("H02P3")==0){ // jdata.append(QString(",\"val\":%1").arg(8)); // }else if(pointData.compare("H02P4")==0){ // jdata.append(QString(",\"val\":%1").arg(16)); // }else{ // jdata.append(QString(",\"val\":%1").arg(32)); // } // QString jasign = "ff6322b1163b11ea91d31bbf0a452a93app_key9e555b8b2244ebc1f59695824b86c5a0"; // jasign.append(QString("\"bid\"\"%1\"").arg(cndev.Bid)); // jasign.append(QString("\"device_data\"\"%1\"").arg("QString(QJsonDocument(jajsonArray).toJson())")); // jasign.append(QString("\"device_id\"\"%1\"").arg(cndev.Device_id)); // jasign.append(QString("\"device_name\"\"%1\"").arg(cndev.Device_name)); // jasign.append(QString("\"fid\"\"%1\"").arg(cndev.Fid)); // jasign.append(QString("\"format\"\"%1\"").arg("json")); // jasign.append(QString("\"mid\"\"%1\"").arg(cndev.Mid)); // jasign.append(QString("\"pid\"\"%1\"").arg(cndev.Pid)); // jasign.append(QString("\"report_time\"\"%1\"").arg(myt)); // jasign.append(QString("\"sign_method\"\"%1\"").arg("md5")); // jasign.append(QString("\"timestamp\"\"%1\"").arg(myt)); // jasign.append(QString("\"v\"\"%1\"").arg("1.0")); // jasign.append(QString("\"zid\"\"%1\"").arg(cndev.Zid)); // jasign.append(QString("\"%1\"").arg("ff6322b1163b11ea91d31bbf0a452a93")); // char md5str[33]; // chkmd5(jasign.toUtf8().data(),md5str); // md5str[32]='\0'; // jdata.append(QString(",\"sign\":\"%1\"").arg(md5str)); }else if(cndev.Device_type==7){ QString sql = QString("select point_code, point_data, content, data_time from sp_owner_status where device_id=%1").arg(cndev.Device_id); jdata.append(QString("\"app_key\":\"%1\"").arg("9e555b8b2244ebc1f59695824b86c5a0")); jdata.append(QString(",\"timestamp\":\"%1\"").arg(myt)); jdata.append(QString(",\"format\":\"%1\"").arg("json")); jdata.append(QString(",\"v\":\"%1\"").arg("1.0")); jdata.append(QString(",\"sign_method\":\"%1\"").arg("md5")); jdata.append(QString(",\"pid\":\"%1\"").arg(cndev.Pid)); jdata.append(QString(",\"bid\":\"%1\"").arg(cndev.Bid)); jdata.append(QString(",\"fid\":\"%1\"").arg(cndev.Fid)); jdata.append(QString(",\"zid\":\"%1\"").arg(cndev.Zid)); jdata.append(QString(",\"report_time\":\"%1\"").arg(myt)); qry = mdb.exec(sql); jdata.append(QString(",\"mid\":\"%1\"").arg(cndev.Mid)); jdata.append(QString(",\"device_name\":\"%1\"").arg(cndev.Device_name)); QList pnoList = getJaPnoValue(jaDevList.at(i).Device_data); QJsonArray jajsonArray; // for(int i=0;i0)){ isSending2 = true; CnSyncRep rep = cnSyncdataLiet.first(); QByteArray Report = rep.JsonStr.toUtf8(); QNetworkRequest *req = new QNetworkRequest(); if((rep.devCategory>200)&&(rep.devCategory<207)) req->setUrl(QUrl("http://www.cnfire119.cn/open/data/acquisition/YLB/add?appkey=20190806608233073670094848&secret=72c15b023b0fab056ed3b9c7c45bff0c ")); else if(rep.devCategory==91) req->setUrl(QUrl("http://www.cnfire119.cn/open/data/acquisition/WaterPump/add?appkey=20190806608233073670094848&secret=72c15b023b0fab056ed3b9c7c45bff0c ")); req->setHeader(QNetworkRequest::ContentTypeHeader,"application/json; charset=UTF-8"); req->setHeader(QNetworkRequest::ContentLengthHeader,QString("%1").arg(Report.length()).toUtf8()); sqlList2.append(QString("insert into `cnsync_t_rec` (`id`,`uuid`,`data_str`, `send`, `store_time`) values (NULL,'%1','%2',0,'%3')") .arg(rep.Id).arg( req->url().toString()+"\r\n"+ // req->header(QNetworkRequest::ContentTypeHeader).toString()+"\r\n"+ // req->header(QNetworkRequest::ContentLengthHeader).toString()+"\r\n"+ rep.JsonStr).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"))); QNetworkReply *reply = cnnetAccessManager->post(*req,Report); QReplayTimeout *pTimeout = new QReplayTimeout(reply,10000); connect(pTimeout, SIGNAL(net_timeout()),this,SLOT(reply_timeout2())); } if((!isSending3)&&(jaSyncdataLiet.length()>0)){ isSending3 = true; JaSyncRep rep = jaSyncdataLiet.first(); QByteArray Report = rep.JsonStr.toUtf8(); QNetworkRequest *req = new QNetworkRequest(); if(rep.Xh==1){ req->setUrl(QUrl("http://jareceive.119.net/fireapi/matrix/position")); }else if(rep.Xh==0){ req->setUrl(QUrl("http://jareceive.119.net/fireapi/matrix/receiveAll")); }else if(rep.Xh==2){ req->setUrl(QUrl("http://jareceive.119.net/fireapi/operation/handleEvent")); // req->setUrl(QUrl("http://www.jd-ioe.com:80/ytapi/admin/order/jingan")); }else if(rep.Xh==3){ req->setUrl(QUrl("http://receive.119.net/fireapi/matrix/receiveAll")); } // req->setUrl(QUrl("http://www.jd-ioe.com:80/ytapi/admin/order/jingan")); req->setHeader(QNetworkRequest::ContentTypeHeader,"application/json; charset=UTF-8"); req->setHeader(QNetworkRequest::ContentLengthHeader,QString("%1").arg(Report.length()).toUtf8()); sqlList2.append(QString("insert into `jasync_t_rec` (`id`,`uuid`,`data_str`, `send`, `store_time`) values (NULL,'%1','%2',0,'%3')") .arg(rep.Id).arg( req->url().toString()+"\r\n"+ // req->header(QNetworkRequest::ContentTypeHeader).toString()+"\r\n"+ // req->header(QNetworkRequest::ContentLengthHeader).toString()+"\r\n"+ rep.JsonStr).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"))); QNetworkReply *reply = janetAccessManager->post(*req,Report); QReplayTimeout *pTimeout = new QReplayTimeout(reply,10000); connect(pTimeout, SIGNAL(net_timeout()),this,SLOT(reply_timeout3())); } if((!isSending)&&(ypSyncdataList.length()>0)){ isSending = true; SyncRep rep = ypSyncdataList.first(); sqlList2.append(QString("insert into `ypsync_t_rec` (`id`,`uuid`,`data_str`, `send`, `store_time`) values (NULL,'%1','%2',0,'%3')") .arg(rep.Id).arg(rep.JsonStr).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"))); QByteArray Report = rep.JsonStr.toUtf8(); QNetworkRequest *req = new QNetworkRequest(); req->setUrl(QUrl("http://218.242.51.14:8088/api-devicelog-collect/data/NonLoraData")); req->setHeader(QNetworkRequest::ContentTypeHeader,"application/json; charset=UTF-8"); req->setHeader(QNetworkRequest::ContentLengthHeader,QString("%1").arg(Report.length()).toUtf8()); QNetworkReply *reply = netAccessManager->post(*req,Report); QReplayTimeout *pTimeout = new QReplayTimeout(reply,10000); connect(pTimeout, SIGNAL(net_timeout()),this,SLOT(reply_timeout())); } if(sqlList.length()>0){ if(db.transaction()){ while(sqlList.length()>0){ db.exec(sqlList.first()); sqlList.removeFirst(); } db.commit(); } } if(sqlList2.length()>0){ QSqlDatabase recdb; if(QSqlDatabase::contains("rec_db")) recdb = QSqlDatabase::database("rec_db"); else recdb = QSqlDatabase::addDatabase("QSQLITE","rec_db"); recdb.setDatabaseName(QString("db/watchdoglog%1.db").arg(QDate::currentDate().toString("yyyyMMdd"))); if(recdb.open()){ if(!chk_table("ypsync_t_rec",recdb.tables())) { recdb.exec("create table `ypsync_t_rec` (`id` integer primary key autoincrement, `uuid` text(40), `data_str` text(1024), `send` integer , `store_time` text(20), `reply_str` text(1024), `reply_time` text(20))"); } if(!chk_table("cnsync_t_rec",recdb.tables())){ recdb.exec("create table `cnsync_t_rec` (`id` integer primary key autoincrement, `uuid` text(40), `data_str` text(1024), `send` integer , `store_time` text(20), `reply_str` text(1024), `reply_time` text(20))"); } if(!chk_table("jasync_t_rec",recdb.tables())){ recdb.exec("create table `jasync_t_rec` (`id` integer primary key autoincrement, `uuid` text(40), `data_str` text(1024), `send` integer , `store_time` text(20), `reply_str` text(1024), `reply_time` text(20))"); } if(recdb.transaction()){ while(sqlList2.length()>0){ recdb.exec(sqlList2.first()); sqlList2.removeFirst(); } recdb.commit(); } recdb.close(); } // QSqlDatabase::removeDatabase("rec_db"); } if((tmp_time-work_time)>59){ work_time = tmp_time; qry = db.exec("select `app_name`, `app_path`, `keep_working`, `wait_time` , `log_limit`, `keep_size` from `app_t_conf`"); while(qry.next()){ QString app_name = qry.value(0).toString(); QString app_path = qry.value(1).toString(); bool keep_working = (qry.value(2).toUInt()==1); uint wait_time = qry.value(3).toUInt(); bool log_limit = (qry.value(4).toUInt()==1); qint64 keep_size = qry.value(5).toLongLong(); if(app_name.compare("workerman")==0){ QFileInfoList loglist= QDir(QString("%1").arg(app_path)).entryInfoList(); qint64 current_size = 0; uint current_time = 0; // bool nofile = true; for(int i=0;i=0)) { // nofile = false; current_size += info.size(); if(info.lastModified().toTime_t()>current_time) current_time = info.lastModified().toTime_t(); } } if(log_limit){ if(current_size>keep_size){ ret = system(QString("rm -f %1/*.log").arg(app_path).toUtf8().data()); db.exec(QString("insert into operation_t_rec (`id`, `app_name`, `operation_type`, `operation_comment`,`store_time`) values (NULL,'%1',2,'delete file %2/*.log', '%3')").arg(app_name).arg(app_path).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"))); } } }else{ QDir dir(QString("%1/log").arg(app_path)); dir.setSorting(QDir::Time|QDir::Reversed); QFileInfoList loglist = dir.entryInfoList(); qint64 current_size = 0; uint current_time = 0; // bool nofile = true; for(int i=0;icurrent_time) current_time = info.lastModified().toTime_t(); } } if(log_limit){ if(current_size>keep_size) { for(int i=0;i0)) { if(QFile(info.absoluteFilePath()).remove()) { db.exec(QString("insert into operation_t_rec (`id`, `app_name`, `operation_type`, `operation_comment`,`store_time`) values (NULL,'%1',2,'delete file %2', '%3')").arg(app_name).arg(info.fileName()).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"))); current_size -= f_size; } } if(current_size<=keep_size) break; } ret = system(QString("rm -f %1/vendor/workerman/*.log").arg(app_path).toUtf8().data()); } } uint c_time = QDateTime::currentDateTime().toTime_t(); if(keep_working) { if(((c_time-wait_time)>(current_time+(times*60))) &&(current_time>0)) { ret = system(QString("cd %1 && php start.php restart -d && cd").arg(app_path).toUtf8().data()); db.exec(QString("insert into operation_t_rec (`id`, `app_name`, `operation_type`, `operation_comment`,`store_time`) values (NULL,'%1',1,'restart(%2)', '%3')").arg(app_name).arg(QDateTime::fromTime_t(current_time).toString("yyyy-MM-dd HH:mm:ss")).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"))); } } } } qry.clear(); } times++; isRunning = false; mdb.close(); mdbOpened = false; } QList Core::getJaPnoValue(QString pnoset) { QList list; QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(pnoset.toUtf8(),&json_error)); if(json_error.error == QJsonParseError::NoError){ QJsonArray json_root = jsonDoc.array(); for(int i=0;i-2)&&(name.length()>0)) list.append(JaPno(name,attr,port,defvalue1,defvalue2)); } } return list; } bool Core::chk_table(QString tablename, QStringList tables) { for(int i=0;i