#include "subreportthread.h" SubReportThread::SubReportThread(qintptr socketDescriptor, QObject *parent) : QThread(parent) { this->SocketDescriptor = socketDescriptor; // logThread = new LogThread(this); // logThread->start(); } 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="",artificial_id="",reason="",handler="",mobile=""; quint64 insertId = 0; quint16 area_status = 0; bool flag = 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 = QString::compare(root.value("Confirmed").toString(),"1")==0?true:false; else flag = root.value("Confirmed").toBool(); }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((!root.value("artificial_id").isUndefined())&&(!root.value("artificial_id").isNull())){ if(root.value("artificial_id").isString()) artificial_id = root.value("artificial_id").toString(); } if((!root.value("reason").isUndefined())&&(!root.value("reason").isNull())){ if(root.value("reason").isString()) reason = root.value("reason").toString(); } if((!root.value("handler").isUndefined())&&(!root.value("handler").isNull())){ if(root.value("handler").isString()) handler = root.value("handler").toString(); } if((!root.value("mobile").isUndefined())&&(!root.value("mobile").isNull())){ if(root.value("mobile").isString()) mobile = root.value("mobile").toString(); } if((!root.value("area_status").isUndefined())&&(!root.value("area_status").isNull())){ if(root.value("area_status").isString()) area_status = root.value("area_status").toString().toInt()&0xffff; else area_status = root.value("area_status").toInt()&0xffff; } // if(flag==0) // flag = 2; // emit appendLog(QString("ceshihuojing456[%1, %2, %3, %4, %5, %6, %7, %8]").arg(type).arg(deviceId).arg(insertId).arg(flag).arg(companyCode).arg(evt_name).arg(evt).arg(alarm_time)); if((type>0)&&(area_status>0)&&(artificial_id.length()>0)){ // ret = true; emit getSubReport2(type, artificial_id, area_status, reason, handler, mobile); } if((type>0)&&(insertId>0)&&(companyCode.length()>0)){ // ret = true; emit getSubReport1(type,deviceId,insertId,flag,companyCode,evt_name,evt,alarm_time); } if((type>0)&&(insertId>0)) emit getSubReport(type,deviceId,insertId,flag); so->write("HTTP/1.1 200 OK\r\nAccess-Control-Allow-Origin: *\r\nContent-type: text/plain\r\n\r\n"); so->waitForBytesWritten(); // so->close(); } } so->close(); }