123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638 |
- #include "core.h"
- #include "ytservicecore.h"
- #include <QDebug>
- #include <time.h>
- #include <openssl/md5.h>
- #include <string.h>
- #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<time_t *>(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<CnPno> Core::getPnoValue(QString pnoset)
- {
- QList<CnPno> 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<json_root.size();i++){
- QJsonObject obj = json_root.at(i).toObject();
- QString name = obj.value("name").toString();
- int port = obj.value("port").toInt();
- QString defvalue = obj.value("default").toString();
- if((port>-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<json_object_array_length(obj);i++){
- // pno = json_object_array_get_idx(obj,i);
- // bzero(name,sizeof(name));
- // bzero(value,sizeof(value));
- // port=-2;
- // json_object_object_foreach(pno,key,val){
- // if(strcmp(key,"name")==0)
- // sprintf(name,"%s",json_object_get_string(val));
- // else if(strcmp(key,"port")==0)
- // port = json_object_get_int(val);
- // else if(strcmp(key,"default")==0)
- // sprintf(value,"%s",json_object_get_string(val));
- // }
- // if((port>-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<syncDevList.length();i++){
- if(devid.compare(syncDevList.at(i).OwnerCode)==0){
- if(syncDevList.at(i).ObjType.compare("YTFC")==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 \"[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()<<sql.toUtf8().data();
- qry = mdb.exec(sql);
- while(qry.next()){
- int code = qry.value(1).toInt();
- if((code>0)&&(code<8)){
- int value = qry.value(2).toInt();
- if(dataTime.toTime_t()<qry.value(3).toDateTime().toTime_t())
- dataTime = qry.value(3).toDateTime();
- if(code==1){
- if(value==0)
- PowerAlarm = "on";
- }else if(code==2){
- if(value==0)
- ManualAct = "on";
- }else if(code==3){
- if(value==0)
- DevWorking01 = "on";
- }else if(code==4){
- if(value==0)
- DevWorking02 = "on";
- }else if(code==5){
- if(value==0)
- DevAlarm01 = "on";
- }else if(code==6){
- if(value==0)
- DevAlarm02 = "on";
- }else if(code==7){
- if(value==0)
- FireAutoAct = "on";
- }
- }
- }
- // 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()<<sql.toUtf8().data();
- qry = mdb.exec(sql);
- int nrow = 0;
- while(qry.next()){
- if(dataTime.toTime_t()<qry.value(3).toDateTime().toTime_t())
- dataTime = qry.value(3).toDateTime();
- if(nrow==0)
- Temperature = qry.value(2).toString();
- else if(nrow==1)
- Humidity = qry.value(2).toString();
- nrow++;
- }
- // 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_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()<<sql.toUtf8().data();
- qry = mdb.exec(sql);
- if(qry.next()){
- if(dataTime.toTime_t()<qry.value(3).toDateTime().toTime_t())
- dataTime = qry.value(3).toDateTime();
- WaterPressure = qry.value(2).toString();
- // 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_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()<<sql.toUtf8().data();
- qry = mdb.exec(sql);
- if(qry.next()){
- if(dataTime.toTime_t()<qry.value(3).toDateTime().toTime_t())
- dataTime = qry.value(3).toDateTime();
- LiquidLevel = qry.value(2).toString();
- // 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_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()<<sql.toUtf8().data();
- qry = mdb.exec(sql);
- while(qry.next()){
- if(dataTime.toTime_t()<qry.value(3).toDateTime().toTime_t())
- dataTime = qry.value(3).toDateTime();
- int code = qry.value(1).toInt();
- if(code==1){
- if(qry.value(2).toInt()==1)
- HighVoltageAlarm = "on";
- }else if(code==2){
- if(qry.value(2).toInt()==1)
- LowVoltageAlarm = "on";
- }else if(code==3){
- if(qry.value(2).toInt()==1)
- HighCurrentAlarm = "on";
- }else if(code==4){
- if(qry.value(2).toInt()==1)
- ElectricityLeakage = "on";
- }else if(code==5){
- if(qry.value(2).toInt()==1)
- HighTemperatureA = "on";
- }else if(code==6){
- if(qry.value(2).toInt()==1)
- HighTemperatureB = "on";
- }else if(code==7){
- if(qry.value(2).toInt()==1)
- HighTemperatureC = "on";
- }else if(code==65)
- VoltageA = qry.value(2).toString();
- else if(code==66)
- VoltageB = qry.value(2).toString();
- else if(code==67)
- VoltageC = qry.value(2).toString();
- else if(code==68)
- CurrentA = qry.value(2).toString();
- else if(code==69)
- CurrentB = qry.value(2).toString();
- else if(code==70)
- CurrentC = qry.value(2).toString();
- else if(code==71)
- TemperatureA = qry.value(2).toString();
- else if(code==72)
- TemperatureB = qry.value(2).toString();
- else if(code==73)
- TemperatureC = qry.value(2).toString();
- }
- // 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_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()<qry.value(3).toDateTime().toTime_t()){
- dataTime = qry.value(3).toDateTime();
- int code = qry.value(1).toInt();
- if(code==1){
- if(qry.value(2).toInt()==1){
- VideoAlarm01 = "on";
- VideoAlarm02 = "off";
- }
- }else if(code==2){
- if(qry.value(2).toInt()==1){
- VideoAlarm01 = "off";
- VideoAlarm02 = "on";
- }
- }
- }
- }
- // 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_VIDEOALA\",\"deviceId\":\"%1\",\"postTime\":\"%2\",\"data\":{\"VideoAlarm01\":\"%3\",\"VideoAlarm02\":\"%4\"}}")
- .arg(syncDevList.at(i).ObjCode).arg(dataTime.toString("yyyy-MM-dd HH:mm:ss")).arg(VideoAlarm01).arg(VideoAlarm02);
- // system(QString("echo \"[YTVA] %1\" >> /root/test.log").arg(jsonstr).toUtf8().data());
- SyncData(QUuid::createUuid().toString().replace("{","").replace("}",""), jsonstr);
- }
- }
- }
- if(!found){
- for(int i=0;i<cnDevList.length();i++){
- // if(found&&(devid.compare(cnDevList.at(i).OwnerCode)!=0))
- // break;
- if(devid.compare(cnDevList.at(i).OwnerCode)==0){
- found = true;
- if(cnDevList.at(i).ObjType.compare("YTUI")!=0){
- CNSyncDev cndev = cnDevList.at(i);
- uint MaxT = 0;
- QString sql = QString("select point_code, point_data, data_time from sp_owner_status where device_id=%1").arg(devid);
- QString jdata = "";
- jdata.append(QString("\"devCategory\":%1").arg(cndev.devCategory));
- jdata.append(QString(",\"devDesc\":\"%1\"").arg(cndev.ObjName));
- jdata.append(QString(",\"devId\":\"%1\"").arg(cndev.ObjCode));
- jdata.append(QString(",\"devName\":\"%1\"").arg(cndev.ObjName));
- jdata.append(QString(",\"ownBid\":\"%1\"").arg(cndev.ownBid));
- jdata.append(QString(",\"type\":%1").arg(cndev.subType));
- qry = mdb.exec(sql);
- if(cnDevList.at(i).StartPort.length()>0){
- QList<CnPno> pnoList = getPnoValue(cnDevList.at(i).StartPort);
- for(int i=0;i<pnoList.length();i++){
- if(pnoList.at(i).Pno<0){
- if(pnoList.at(i).PName.compare("devStatus")==0)
- jdata.append(QString(",\"devStatus\":%1").arg(pnoList.at(i).Default.length()>0?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<pnoList.length();i++){
- if(pnoList.at(i).Pno==qry.value(0).toInt()){
- if(pnoList.at(i).PName.compare("startStatus")==0)
- jdata.append(QString(",\"%1\":\"%2\"").arg(pnoList.at(i).PName).arg(qry.value(1).toInt()));
- else if(pnoList.at(i).PName.indexOf("Status")>=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<jaDevList.length();i++){
- JASyncDev jadev = jaDevList.at(i);
- if(jadev.Detection_id==DeviceID){
- while(qry1.next()){
- if(qry1.value(0).toInt()==2||qry1.value(0).toInt()==4){
- while(qry4.next()){
- time_t myt=time(NULL);
- QString data3 = qry1.value(1).toString();
- QStringList list = data3.split(",");
- 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"));
- if(qry1.value(0).toInt()==2){
- jdata.append(QString(",\"type\":%1").arg(1));
- }else{
- jdata.append(QString(",\"type\":%1").arg(2));
- }
- jdata.append(QString(",\"pid\":\"%1\"").arg(jadev.Pid));
- jdata.append(QString(",\"mainframe_id\":\"%1\"").arg(jadev.Mainframe_id));
- jdata.append(QString(",\"loop_number\":\"%1\"").arg(list.at(1)));
- jdata.append(QString(",\"position_number\":\"%1\"").arg(list.at(2)));
- if(qry1.value(4).toInt()==1){
- jdata.append(QString(",\"status\":%1").arg(1));
- }else{
- jdata.append(QString(",\"status\":%1").arg(3));
- }
- jdata.append(QString(",\"handler\":\"%1\"").arg(qry1.value(2).toString()));
- if(qry1.value(2).toString().indexOf(QString::fromUtf8("admin"))==0){
- jdata.append(QString(",\"mobile\":%1").arg("15122423833"));
- }else{
- jdata.append(QString(",\"mobile\":%1").arg(qry4.value(0).toString()));
- }
- if(qry1.value(3).toString().isEmpty()){
- }else{
- jdata.append(QString(",\"reason\":\"%1\"").arg(qry1.value(3).toString()));
- }
- QString jasign = "ff6322b1163b11ea91d31bbf0a452a93app_key9e555b8b2244ebc1f59695824b86c5a0";
- jasign.append(QString("format%1").arg("json"));
- jasign.append(QString("handler%1").arg(qry1.value(2).toString()));
- jasign.append(QString("loop_number%1").arg(list.at(1)));
- jasign.append(QString("mainframe_id%1").arg(jadev.Mainframe_id));
- if(qry1.value(2).toString().indexOf(QString::fromUtf8("admin"))==0){
- jasign.append(QString("mobile%1").arg("15122423833"));
- }else{
- jasign.append(QString("mobile%1").arg(qry4.value(0).toString()));
- }
- jasign.append(QString("pid%1").arg(jadev.Pid));
- jasign.append(QString("position_number%1").arg(list.at(2)));
- if(qry1.value(3).toString().isEmpty()){
- }else{
- jasign.append(QString("reason%1").arg(qry1.value(3).toString()));
- }
- jasign.append(QString("sign_method%1").arg("md5"));
- if(qry1.value(4).toInt()==1){
- jasign.append(QString("status%1").arg(1));
- }else{
- jasign.append(QString("status%1").arg(3));
- }
- jasign.append(QString("timestamp%1").arg(myt));
- if(qry1.value(0).toInt()==2){
- jasign.append(QString("type%1").arg(1));
- }else{
- jasign.append(QString("type%1").arg(2));
- }
- jasign.append(QString("v%1").arg("1.0"));
- 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 jasign3=jdata.replace("\r","").replace("\n","").replace(" ","");
- jaSyncData(2,QUuid::createUuid().toString().replace("{","").replace("}",""),"{"+jasign3+"}");
- }
- }
- // else if(qry1.value(0).toInt()==8){
- // time_t myt=time(NULL);
- // QString data3 = qry1.value(1).toString();
- // QStringList list = data3.split(",");
- // 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(",\"mainframe_id\":\"%1\"").arg(cndev.Mainframe_id));
- // jdata.append(QString(",\"loop_number\":\"%1\"").arg(list.at(1)));
- // jdata.append(QString(",\"position_number\":\"%1\"").arg(list.at(2)));
- // jdata.append(QString(",\"handler\":\"%1\"").arg(qry1.value(2).toString()));
- // }
- }
- }
- }
- }else if(flag==2){
- // QString sql = QString("select company from sp_owner where owner_code=%1").arg(DeviceID);
- // qry = mdb.exec(sql);
- for(int i=0;i<jaDevList.length();i++){
- JASyncDev jadev = jaDevList.at(i);
- if(jadev.Detection_id==DeviceID){
- found = true;
- QString sql1 = QString("select port,data3,data4 from sp_hj2017 where id=%1").arg(insertId);
- qry1 = mdb.exec(sql1);
- QString jdata = "";
- while(qry1.next()){
- if(qry1.value(0).toInt()<256){
- time_t myt=time(NULL);
- QString data3 = qry1.value(1).toString();
- QStringList list = data3.split(",");
- 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(jadev.Pid));
- jdata.append(QString(",\"bid\":\"%1\"").arg(jadev.Bid));
- jdata.append(QString(",\"fid\":\"%1\"").arg(jadev.Fid));
- jdata.append(QString(",\"zid\":\"%1\"").arg(jadev.Zid));
- jdata.append(QString(",\"report_time\":\"%1\"").arg(myt));
- jdata.append(QString(",\"tid\":\"%1\"").arg(jadev.Tid));
- jdata.append(QString(",\"name\":\"%1\"").arg(qry1.value(2).toString().replace("\r","").replace("\n","").replace(" ","")));
- jdata.append(QString(",\"detection_id\":\"%1\"").arg(jadev.Detection_id));
- jdata.append(QString(",\"sid\":\"%1\"").arg(jadev.Sid));
- jdata.append(QString(",\"mainframe_id\":\"%1\"").arg(jadev.Mainframe_id));
- jdata.append(QString(",\"mainframe_name\":\"%1\"").arg(jadev.Mainframe_name));
- jdata.append(QString(",\"loop_number\":\"%1\"").arg(list.at(1)));
- jdata.append(QString(",\"position_number\":\"%1\"").arg(list.at(2)));
- jdata.append(QString(",\"val\":%1").arg(qry1.value(0).toInt()));
- QString jasign = "ff6322b1163b11ea91d31bbf0a452a93app_key9e555b8b2244ebc1f59695824b86c5a0";
- jasign.append(QString("bid%1").arg(jadev.Bid));
- jasign.append(QString("detection_id%1").arg(jadev.Detection_id));
- jasign.append(QString("fid%1").arg(jadev.Fid));
- jasign.append(QString("format%1").arg("json"));
- jasign.append(QString("loop_number%1").arg(list.at(1)));
- jasign.append(QString("mainframe_id%1").arg(jadev.Mainframe_id));
- jasign.append(QString("mainframe_name%1").arg(jadev.Mainframe_name));
- jasign.append(QString("name%1").arg(qry1.value(2).toString().replace("\r","").replace("\n","").replace(" ","")));
- jasign.append(QString("pid%1").arg(jadev.Pid));
- jasign.append(QString("position_number%1").arg(list.at(2)));
- jasign.append(QString("report_time%1").arg(myt));
- jasign.append(QString("sid%1").arg(jadev.Sid));
- jasign.append(QString("sign_method%1").arg("md5"));
- jasign.append(QString("tid%1").arg(jadev.Tid));
- jasign.append(QString("timestamp%1").arg(myt));
- jasign.append(QString("v%1").arg("1.0"));
- jasign.append(QString("val%1").arg(qry1.value(0).toInt()));
- jasign.append(QString("zid%1").arg(jadev.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 jasign3=jdata.replace("\r","").replace("\n","").replace(" ","");
- jaSyncData(1,QUuid::createUuid().toString().replace("{","").replace("}",""),"{"+jasign3+"}");
- }
- }
- }
- }
- if(!found){
- chkInList1(DeviceID);
- }
- AlarmReport(DeviceID,insertId,subType,CompanyCode,evt_name,evt,alarm_time,qry11.value(0).toInt());
- }else if(flag==3){
- chkInList1(DeviceID);
- }
- }else if(subType==6){
- if(flag==2){
- for(int i=0;i<jaDevList.length();i++){
- QString jdata1 = "";
- JASyncDev jadev1 = jaDevList.at(i);
- if(jadev1.Device_id==DeviceID){
- found = true;
- time_t myt=time(NULL);
- QString sql5 = QString("select data2, data4, ncmd from sp_rtu2017 where id=%1").arg(insertId);
- qry5 = mdb.exec(sql5);
- while(qry5.next()){
- QString rtudata= QString("%1 %2").arg(qry5.value(0).toString()).arg(qry5.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(qry5.value(2).toInt());
- qry6 = mdb.exec(sql6);
- }
- QString sql3 = QString("select point_code, point_data, content, data_time from sp_owner_status where device_id=%1").arg(DeviceID);
- qry3 = mdb.exec(sql3);
- jdata1.append(QString("\"app_key\":\"%1\"").arg("9e555b8b2244ebc1f59695824b86c5a0"));
- jdata1.append(QString(",\"timestamp\":\"%1\"").arg(myt));
- jdata1.append(QString(",\"format\":\"%1\"").arg("json"));
- jdata1.append(QString(",\"v\":\"%1\"").arg("1.0"));
- jdata1.append(QString(",\"sign_method\":\"%1\"").arg("md5"));
- jdata1.append(QString(",\"pid\":\"%1\"").arg(jadev1.Pid));
- jdata1.append(QString(",\"bid\":\"%1\"").arg(jadev1.Bid));
- jdata1.append(QString(",\"fid\":\"%1\"").arg(jadev1.Fid));
- jdata1.append(QString(",\"zid\":\"%1\"").arg(jadev1.Zid));
- jdata1.append(QString(",\"report_time\":\"%1\"").arg(myt));
- jdata1.append(QString(",\"mid\":\"%1\"").arg(jadev1.Mid));
- jdata1.append(QString(",\"device_name\":\"%1\"").arg(jadev1.Device_name));
- QList<JaPno> pnoList = getJaPnoValue(jaDevList.at(i).Device_data);
- QJsonArray jajsonArray;
- for(int i=0;i<pnoList.length();i++){
- if(pnoList.at(i).Pno==0){
- QJsonObject jaobjRTU;
- jaobjRTU.insert("attr_id", pnoList.at(i).Attr);
- jaobjRTU.insert("attr_val", pnoList.at(i).Default1);
- jajsonArray.append(jaobjRTU);
- }
- }
- QString device_code;
- while(qry3.next()){
- for(int i=0;i<pnoList.length();i++){
- if(pnoList.at(i).Pno==qry3.value(0).toInt()&&qry3.value(0).toInt()!=0){
- device_code=QString("%1%2").arg(jadev1.Device_id).arg(jadev1.Val);
- if(qry3.value(2).toString().indexOf(QString::fromUtf8("正常"))==0||qry3.value(2).toString().indexOf(QString::fromUtf8("自动"))==0||qry3.value(2).toString().indexOf(QString::fromUtf8("停止"))==0){
- QJsonObject jaobjRTU1;
- jaobjRTU1.insert("attr_id", pnoList.at(i).Attr);
- jaobjRTU1.insert("attr_val", pnoList.at(i).Default1);
- jajsonArray.append(jaobjRTU1);
- }else if(qry3.value(2).toString().indexOf(QString::fromUtf8("关闭"))==0||qry3.value(2).toString().indexOf(QString::fromUtf8("手动"))==0||qry3.value(2).toString().indexOf(QString::fromUtf8("运行"))==0||qry3.value(2).toString().indexOf(QString::fromUtf8("故障"))==0){
- QJsonObject jaobjRTU2;
- jaobjRTU2.insert("attr_id", pnoList.at(i).Attr);
- jaobjRTU2.insert("attr_val", pnoList.at(i).Default2);
- jajsonArray.append(jaobjRTU2);
- }else{
- QJsonObject jaobjRTU3;
- jaobjRTU3.insert("attr_id", pnoList.at(i).Attr);
- jaobjRTU3.insert("attr_val", pnoList.at(i).Default1);
- jajsonArray.append(jaobjRTU3);
- }
- break;
- }
- }
- }
- jdata1.append(QString(",\"device_id\":\"%1\"").arg(device_code));
- jdata1.append(QString(",\"device_data\":\"%1\"").arg(QString(QJsonDocument(jajsonArray).toJson()).replace("\"","\\\"")));
- QString jasign = "ff6322b1163b11ea91d31bbf0a452a93app_key9e555b8b2244ebc1f59695824b86c5a0";
- jasign.append(QString("bid%1").arg(jadev1.Bid));
- jasign.append(QString("device_data%1").arg(QString(QJsonDocument(jajsonArray).toJson())));
- jasign.append(QString("device_id%1").arg(device_code));
- jasign.append(QString("device_name%1").arg(jadev1.Device_name));
- jasign.append(QString("fid%1").arg(jadev1.Fid));
- jasign.append(QString("format%1").arg("json"));
- jasign.append(QString("mid%1").arg(jadev1.Mid));
- jasign.append(QString("pid%1").arg(jadev1.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(jadev1.Zid));
- jasign.append(QString("%1").arg("ff6322b1163b11ea91d31bbf0a452a93"));
- char md5str[33];
- chkmd5(jasign.replace("\r","").replace("\n","").replace(" ","").toUtf8().data(),md5str);
- md5str[32]='\0';
- jdata1.append(QString(",\"sign\":\"%1\"").arg(md5str));
- QString jasign3=jdata1.replace("\r","").replace("\n","").replace(" ","");
- jaSyncData(0,QUuid::createUuid().toString().replace("{","").replace("}",""),"{"+jasign3+"}");
- }
- }
- if(!found){
- chkInList1(DeviceID);
- }
- AlarmReport(DeviceID,insertId,subType,CompanyCode,evt_name,evt,alarm_time,qry11.value(0).toInt());
- }else if(flag==3){
- chkInList1(DeviceID);
- }
- }else{
- if(flag==3){
- chkInList1(DeviceID);
- }else if(flag==2){
- chkInList1(DeviceID);
- AlarmReport(DeviceID,insertId,subType,CompanyCode,evt_name,evt,alarm_time,qry11.value(0).toInt());
- }
- }
- mdb.close();
- mdbOpened = false;
- }
- void Core::needSync(QString deviceCode)
- {
- logThread->appendData(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()<<jsonstr.toUtf8().data();
- jaSyncdataLiet.append(JaSyncRep(xh,uuid,jsonstr));
- }
- void Core::finishedSlot(QNetworkReply *reply)
- {
- if(ypSyncdataList.length()>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<time_t *>(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;i<jaDevList.length();i++){
- JASyncDev cndev = jaDevList.at(i);
- time_t myt=time(NULL);
- QString jdata = "";
- if(cndev.Device_type==2){
- QString sql = QString("select point_code, point_data, dwtype, 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);
- if(jaDevList.at(i).Device_data.length()>0){
- 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<JaPno> pnoList = getJaPnoValue(jaDevList.at(i).Device_data);
- QJsonArray jajsonArray;
- for(int i=0;i<pnoList.length();i++){
- if(pnoList.at(i).Pno==0){
- QJsonObject jaobjRTU;
- jaobjRTU.insert("attr_id", pnoList.at(i).Attr);
- jaobjRTU.insert("attr_val", pnoList.at(i).Default1);
- jajsonArray.append(jaobjRTU);
- }
- }
- QString device_code;
- while(qry.next()){
- for(int i=0;i<pnoList.length();i++){
- if(pnoList.at(i).Pno==qry.value(0).toInt()&&qry.value(0).toInt()!=0){
- device_code=QString("%1%2").arg(cndev.Device_id).arg(cndev.Val);
- if(qry.value(2).toString().indexOf(QString::fromUtf8("正常"))==0||qry.value(2).toString().indexOf(QString::fromUtf8("自动"))==0||qry.value(2).toString().indexOf(QString::fromUtf8("停止"))==0){
- QJsonObject jaobjRTU1;
- jaobjRTU1.insert("attr_id", pnoList.at(i).Attr);
- jaobjRTU1.insert("attr_val", pnoList.at(i).Default1);
- jajsonArray.append(jaobjRTU1);
- }else if(qry.value(2).toString().indexOf(QString::fromUtf8("关闭"))==0||qry.value(2).toString().indexOf(QString::fromUtf8("手动"))==0||qry.value(2).toString().indexOf(QString::fromUtf8("运行"))==0||qry.value(2).toString().indexOf(QString::fromUtf8("故障"))==0){
- QJsonObject jaobjRTU2;
- jaobjRTU2.insert("attr_id", pnoList.at(i).Attr);
- jaobjRTU2.insert("attr_val", pnoList.at(i).Default2);
- jajsonArray.append(jaobjRTU2);
- }else{
- QJsonObject jaobjRTU3;
- jaobjRTU3.insert("attr_id", pnoList.at(i).Attr);
- jaobjRTU3.insert("attr_val", pnoList.at(i).Default1);
- jajsonArray.append(jaobjRTU3);
- }
- break;
- }
- }
- }
- jdata.append(QString(",\"device_id\":\"%1\"").arg(device_code));
- 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(device_code));
- 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 jasign3=jdata.replace("\r","").replace("\n","").replace(" ","");
- jaSyncData(0,QUuid::createUuid().toString().replace("{","").replace("}",""),"{"+jasign3+"}");
- }else if(cndev.Device_type==1){
- // 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));
- jdata.append(QString(",\"device_id\":\"%1\"").arg("10"+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;
- QJsonObject jaobj4;
- QJsonObject jaobj5;
- QJsonObject jaobj6;
- if(json_error.error == QJsonParseError::NoError){
- QJsonArray json_root = jsonDoc.array();
- if(json_root.size()>1){
- 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<JaPno> pnoList = getJaPnoValue(jaDevList.at(i).Device_data);
- QJsonArray jajsonArray;
- // for(int i=0;i<pnoList.length();i++){
- // if(pnoList.at(i).Pno==0){
- // QJsonObject jaobjRTU;
- // jaobjRTU.insert("attr_id", pnoList.at(i).Attr);
- // jaobjRTU.insert("attr_val", pnoList.at(i).Default1);
- // jajsonArray.append(jaobjRTU);
- // }
- // }
- QString device_code;
- while(qry.next()){
- for(int i=0;i<pnoList.length();i++){
- if(pnoList.at(i).Pno==qry.value(0).toInt()&&qry.value(0).toInt()!=0){
- device_code=QString("%1%2").arg(cndev.Device_id).arg(cndev.Val);
- if(pnoList.at(i).Default1.indexOf(QString::fromUtf8("正常"))==0){
- if(qry.value(1).toInt()==0){
- QJsonObject jaobjRTU1;
- jaobjRTU1.insert("attr_id", pnoList.at(i).Attr);
- jaobjRTU1.insert("attr_val", 0);
- jajsonArray.append(jaobjRTU1);
- }else{
- QJsonObject jaobjRTU2;
- jaobjRTU2.insert("attr_id", pnoList.at(i).Attr);
- jaobjRTU2.insert("attr_val", 300);
- jajsonArray.append(jaobjRTU2);
- }
- }else{
- QJsonObject jaobjRTU;
- jaobjRTU.insert("attr_id", pnoList.at(i).Attr);
- jaobjRTU.insert("attr_val", qry.value(1).toString());
- jajsonArray.append(jaobjRTU);
- }
- break;
- }
- }
- }
- jdata.append(QString(",\"device_id\":\"%1\"").arg(device_code));
- 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(device_code));
- 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 jasign3=jdata.replace("\r","").replace("\n","").replace(" ","");
- jaSyncData(3,QUuid::createUuid().toString().replace("{","").replace("}",""),"{"+jasign3+"}");
- }
- }
- }
- if((!isSending2)&&(cnSyncdataLiet.length()>0)){
- 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<loglist.length();i++)
- {
- QFileInfo info = loglist.at(i);
- if(((info.isFile())&&(!info.isDir()))&&(info.suffix().indexOf("log")>=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;i<loglist.length();i++)
- {
- QFileInfo info = loglist.at(i);
- if((info.isFile())&&(!info.isDir()))
- {
- // 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)
- {
- for(int i=0;i<loglist.length();i++)
- {
- QFileInfo info = loglist.at(i);
- qint64 f_size = info.size();
- if((info.isFile())&&(!info.isDir())&&(f_size>0))
- {
- 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<JaPno> Core::getJaPnoValue(QString pnoset)
- {
- QList<JaPno> 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<json_root.size();i++){
- QJsonObject obj = json_root.at(i).toObject();
- QString name = obj.value("name").toString();
- QString attr = obj.value("attr").toString();
- int port = obj.value("port").toInt();
- QString defvalue1 = obj.value("default1").toString();
- QString defvalue2 = obj.value("default2").toString();
- if((port>-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<tables.length();i++)
- {
- if(tables.at(i).compare(tablename)==0)
- return true;
- }
- return false;
- }
- void Core::db_init()
- {
- if(!chk_table("app_t_conf",db.tables()))
- {
- db.exec("create table `app_t_conf` (`id` integer primary key autoincrement, `app_name` text(30), `app_path` text(256), `keep_working` integer , `wait_time` integer, `log_limit` integer, `keep_size` integer)");
- db.exec("insert into `app_t_conf` (`id`, `app_name`, `app_path`, `keep_working`, `wait_time` , `log_limit`, `keep_size` ) values (NULL, 'workerman', '/usky/jd_ctiserver/vendor/workerman', 1, 1800, 1, 524288000)");
- db.exec("insert into `app_t_conf` (`id`, `app_name`, `app_path`, `keep_working`, `wait_time` , `log_limit`, `keep_size` ) values (NULL, 'jd_rtu', '/jd_rtu', 1, 1800, 1, 524288000)");
- db.exec("insert into `app_t_conf` (`id`, `app_name`, `app_path`, `keep_working`, `wait_time` , `log_limit`, `keep_size` ) values (NULL, 'jd_efire', '/usky/jd_electrical', 1, 3600, 1, 524288000)");
- db.exec("insert into `app_t_conf` (`id`, `app_name`, `app_path`, `keep_working`, `wait_time` , `log_limit`, `keep_size` ) values (NULL, 'jd_userinfo', '/usky/jd_userinfo', 1, 900, 1, 524288000)");
- db.exec("insert into `app_t_conf` (`id`, `app_name`, `app_path`, `keep_working`, `wait_time` , `log_limit`, `keep_size` ) values (NULL, 'jd_water', '/usky/jd_water', 1, 900, 1, 524288000)");
- }
- if(!chk_table("operation_t_rec",db.tables()))
- {
- 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))");
- }
- }
|