evalthread.cpp 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. #include "evalthread.h"
  2. #include <QSettings>
  3. EvalThread::EvalThread(QObject *parent) : QThread(parent)
  4. {
  5. //建立现有数据库连接(这个是在已存在数据库的基础上)
  6. db = QSqlDatabase::database("landwell_db");
  7. //直接操作表 在插入数据之前,先清空表中的数据
  8. if(db.open()){
  9. bool found = false;
  10. QStringList tables = db.tables();
  11. for(int i=0;i<tables.length();i++){
  12. if(QString::compare(tables.at(i),"usky_eval_data")==0){
  13. found = true;
  14. break;
  15. }
  16. }
  17. if(!found){
  18. }else{
  19. db.exec("delete from usky_eval_data");
  20. db.commit();
  21. }
  22. }
  23. db.close();
  24. naManagerEval = new QNetworkAccessManager(this);
  25. //QNetworkAccessManager 向前台发送消息,等消息finished之后,才可以触发收前台返回的数据(不能把发送前台消息操作和前台返回数据操作放在一个函数里处理,有先后顺序)
  26. QObject::connect(naManagerEval, &QNetworkAccessManager::finished, this, &EvalThread::getData);
  27. }
  28. void EvalThread::SendJSONData(QByteArray m_httpData)
  29. {
  30. QNetworkRequest request;
  31. QSettings sets("sys.ini", QSettings::IniFormat);
  32. QString evalUrl = sets.value("PLANSTATUS_HTTPURL").toString();
  33. //前端测试环境
  34. //request.setUrl(QUrl(evalUrl));
  35. QSslConfiguration config = request.sslConfiguration();
  36. config.setPeerVerifyMode(QSslSocket::VerifyNone);
  37. config.setProtocol(QSsl::TlsV1SslV3);
  38. request.setSslConfiguration(config);
  39. request.setUrl(QUrl(evalUrl));
  40. //request.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("application/json"));
  41. //前端生产环境
  42. //request.setUrl(QUrl("http://121.40.217.77:8081/pt/ptPlanStatusPush"));
  43. reply = naManagerEval->post(request, m_httpData);
  44. }
  45. void EvalThread::getData(QNetworkReply*)
  46. {
  47. QString responseData;
  48. reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
  49. reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
  50. QNetworkReply::NetworkError err = reply->error();
  51. if(err != QNetworkReply::NoError) {
  52. responseData.append(QString("Failed: %1").arg(reply->errorString()));
  53. }
  54. else {
  55. // 获取返回内容
  56. QString string = QString::fromUtf8(reply->readAll());
  57. responseData.append(QString::fromUtf8("%1").arg(string));
  58. }
  59. reply->deleteLater();
  60. logList.append(responseData);
  61. QDate today = QDate::currentDate();
  62. QFile file(QString("log/responseEvalData-%1%2%3.txt").arg(today.year(),4,10,QChar('0')).arg(today.month(),2,10,QChar('0')).arg(today.day(),2,10,QChar('0')));
  63. if(file.open(QIODevice::Text|QIODevice::Append|QIODevice::WriteOnly)){
  64. while (logList.length()>0) {
  65. file.write(logList.first().toUtf8()+"\n");
  66. logList.removeFirst();
  67. usleep(10000);
  68. }
  69. file.close();
  70. }
  71. }
  72. void EvalThread::DealAccessDBData(QString eId,QString eStartTime,QString eEndTime,QString ePatrolTime,QString eLName,QString ePlaceName,QString eBindUser,QString eUserName,QString eBindDevice,QString eDeviceName,QString ePlanState,QString eStayTime,QString eBindTeam,QString eTeamName,QString eCreateTime,QString ePlanType,QString eLineOrder,QString ePlanMode,QString planId,QString eDFlag,QString eErrorTime)
  73. {
  74. if(db.open()){
  75. bool found = false;
  76. QStringList tables = db.tables();
  77. for(int i=0;i<tables.length();i++){
  78. if(QString::compare(tables.at(i),"usky_eval_data")==0){
  79. found = true;
  80. break;
  81. }
  82. }
  83. if(!found){
  84. if(db.transaction()){
  85. db.exec("create table usky_eval_data (eId text,eStartTime text,eEndTime text,ePatrolTime text,eLName text,ePlaceName text,eBindUser text,eUserName text,eBindDevice text,eDeviceName text,ePlanState text,eStayTime text,eBindTeam text,eTeamName text,eCreateTime text,ePlanType text,eLineOrder text,ePlanMode text,planId text,eDFlag text,eErrorTime text);");
  86. db.exec(QString("insert into usky_eval_data (eId,eStartTime,eEndTime,ePatrolTime,eLName,ePlaceName,eBindUser,eUserName,eBindDevice,eDeviceName,ePlanState,eStayTime,eBindTeam,eTeamName,eCreateTime,ePlanType,eLineOrder,ePlanMode,planId,eDFlag,eErrorTime) values ('%1', '%2', '%3', '%4', '%5', '%6', '%7', '%8', '%9', '%10', '%11', '%12', '%13', '%14', '%15', '%16', '%17', '%18', '%19', '%20', '%21');").arg(eId).arg(eStartTime).arg(eEndTime).arg(ePatrolTime).arg(eLName).arg(ePlaceName).arg(eBindUser).arg(eUserName).arg(eBindDevice).arg(eDeviceName).arg(ePlanState).arg(eStayTime).arg(eBindTeam).arg(eTeamName).arg(eCreateTime).arg(ePlanType).arg(eLineOrder).arg(ePlanMode).arg(planId).arg(eDFlag).arg(eErrorTime));
  87. db.commit();
  88. }
  89. }else{
  90. db.exec(QString("insert into usky_eval_data (eId,eStartTime,eEndTime,ePatrolTime,eLName,ePlaceName,eBindUser,eUserName,eBindDevice,eDeviceName,ePlanState,eStayTime,eBindTeam,eTeamName,eCreateTime,ePlanType,eLineOrder,ePlanMode,planId,eDFlag,eErrorTime) values ('%1', '%2', '%3', '%4', '%5', '%6', '%7', '%8', '%9', '%10', '%11', '%12', '%13', '%14', '%15', '%16', '%17', '%18', '%19', '%20', '%21');").arg(eId).arg(eStartTime).arg(eEndTime).arg(ePatrolTime).arg(eLName).arg(ePlaceName).arg(eBindUser).arg(eUserName).arg(eBindDevice).arg(eDeviceName).arg(ePlanState).arg(eStayTime).arg(eBindTeam).arg(eTeamName).arg(eCreateTime).arg(ePlanType).arg(eLineOrder).arg(ePlanMode).arg(planId).arg(eDFlag).arg(eErrorTime));
  91. db.commit();
  92. }
  93. }
  94. db.close();
  95. }