123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- #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<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="",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();
- }
|