123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #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<Dat.length();i++){
- if(Dat.at(i).indexOf("{")>=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();
- }
|