#include "subreportthread.h" SubReportThread::SubReportThread(qintptr socketDescriptor, QObject *parent) : QThread(parent) { this->SocketDescriptor = socketDescriptor; } void SubReportThread::run() { QTcpSocket *so = new QTcpSocket; if(!so->setSocketDescriptor(this->SocketDescriptor)) { so->abort(); return; } if(so->waitForReadyRead()){ QByteArray Cmd = so->readAll(); QStringList Dat = QString(Cmd).split("\r\n"); QByteArray cmd; bool found = false; for(int i=0;i=0) found = true; if(found) cmd.append(Dat.at(i).trimmed().toUtf8()); } QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(cmd,&json_error)); if(json_error.error==QJsonParseError::NoError){ QJsonObject root = jsonDoc.object(); quint16 type = 0; QString deviceId = "", companyCode="", evt_name="", evt="",alarm_time=""; quint64 insertId = 0; int flag = -1; bool ret = false; if((!root.value("SubType").isUndefined())&&(!root.value("SubType").isNull())){ if(root.value("SubType").isString()) type = root.value("SubType").toString().toInt()&0xffff; else type = root.value("SubType").toInt()&0xffff; } if((!root.value("DeviceId").isUndefined())&&(!root.value("DeviceId").isNull())){ if(root.value("DeviceId").isString()) deviceId = root.value("DeviceId").toString(); else deviceId = QString("%1").arg(root.value("DeviceId").toInt()); } if((!root.value("InsertId").isUndefined())&&(!root.value("InsertId").isNull())){ if(root.value("InsertId").isString()) insertId = root.value("InsertId").toString().toULongLong()&0xffffffffffffffff; else insertId = root.value("InsertId").toVariant().toULongLong()&0xffffffffffffffff; } if((!root.value("Confirmed").isUndefined())&&(!root.value("Confirm").isNull())){ if(root.value("Confirmed").isString()) flag = root.value("Confirmed").toString().toInt(); else flag = root.value("Confirmed").toInt(); } if((!root.value("CompanyCode").isUndefined())&&(!root.value("CompanyCode").isNull())){ if(root.value("DeviceId").isString()) companyCode = root.value("CompanyCode").toString(); else companyCode = QString("%1").arg(root.value("CompanyCode").toInt()); } if((!root.value("evt_name").isUndefined())&&(!root.value("etv_name").isNull())){ if(root.value("evt_name").isString()) evt_name = root.value("evt_name").toString(); } if((!root.value("evt").isUndefined())&&(!root.value("evt").isNull())){ if(root.value("evt").isString()) evt = root.value("evt").toString(); } if((!root.value("alarm_time").isUndefined())&&(!root.value("alarm_time").isNull())){ if(root.value("alarm_time").isString()) alarm_time = root.value("alarm_time").toString(); } if(flag==0) flag = 2; if((type>0)&&(insertId>0)&&(flag>0)&&(flag<4)){ ret = true; emit getSubReport(type,deviceId,insertId,flag,companyCode,evt_name,evt,alarm_time); } QString Ret = QString("HTTP/1.1 200 OK\r\nAccess-Control-Allow-Origin: *\r\nContent-type: text/plain\r\n\r\n{\"query\":{\"SubType\":%1,\"DeviceId\":\"%2\",\"InsertId\":%3,\"Confirmed\":%4,\"CompanyCode\":\"%5\",\"evt_name\":\"%6\",\"evt\":\"%7\",\"alarm_time\":\"%8\"},\"result\":%9}") .arg(type).arg(deviceId).arg(insertId).arg(flag).arg(companyCode).arg(evt_name).arg(evt).arg(alarm_time).arg(ret?1:0); so->write(Ret.toUtf8().data()); so->waitForBytesWritten(); so->close(); } } so->close(); }