formupload.cpp 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. #include "formupload.h"
  2. #include "ui_formupload.h"
  3. #include "dialogsubmitresponsedetail.h"
  4. #include "sncdatabase.h"
  5. #include "wscube2.h"
  6. #include "respgetusershkjserviceinfo.h"
  7. FormUpload::FormUpload(QWidget *parent) :
  8. QWidget(parent),
  9. ui(new Ui::FormUpload)
  10. {
  11. ui->setupUi(this);
  12. initVariables();
  13. resetUI();
  14. }
  15. void FormUpload::setAccountInfo(QMap<QString, QString> info)
  16. {
  17. m_account = info;
  18. m_timer->start();
  19. }
  20. FormUpload::~FormUpload()
  21. {
  22. m_timer->stop();
  23. delete m_timer;
  24. delete ui;
  25. qDebug()<<QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")\
  26. <<"FormRiddle.FormUpload Destroyed.";
  27. }
  28. void FormUpload::resetUI()
  29. {
  30. ui->lineEditFilePath->setText("");
  31. ui->lineEditMemo->setText("");
  32. ui->lineEditFilePath->setReadOnly(true);
  33. }
  34. void FormUpload::on_pushButtonOpen_clicked()
  35. {
  36. QString selectedFilter;
  37. QFileDialog::Options options;
  38. QString suffix = "Text Files;Zip File (*.txt;*.zip;*.7z;*.rar)";
  39. QString importDir = SNCDataBase::getImportDir();
  40. if(importDir.isEmpty())
  41. {
  42. importDir = QDesktopServices::storageLocation(QDesktopServices::DesktopLocation);
  43. }
  44. QString fileName = QFileDialog::getOpenFileName(this,"打开文件",importDir,suffix,&selectedFilter,options);
  45. QFileInfo fileInfo(fileName);
  46. if(!fileInfo.absolutePath().isEmpty())
  47. SNCDataBase::updateImportDir(fileInfo.absolutePath());
  48. if(fileName.isEmpty())
  49. return ;
  50. if(fileInfo.suffix()=="zip" || fileInfo.suffix()=="rar" ||fileInfo.suffix()=="7z")
  51. {
  52. QMessageBox::information(this,"提示","您选择的是压缩文件,上传完毕后将被整合成一个文件!",QMessageBox::Ok);
  53. }
  54. resetUI();
  55. ui->lineEditFilePath->setText(fileName);
  56. }
  57. void FormUpload::on_pushButtonSubmit_clicked()
  58. {
  59. QString filePath = ui->lineEditFilePath->text();
  60. if(!QFile::exists(filePath))
  61. {
  62. QMessageBox::critical(this,"提示","文件不存在!",QMessageBox::Ok);
  63. return ;
  64. }
  65. QString memo = ui->lineEditMemo->text();
  66. QString fileType ;
  67. if(ui->radioButtonNum->isChecked())
  68. fileType = "1";
  69. if(ui->radioButtonSeg->isChecked())
  70. fileType = "2";
  71. QString taskType = "1";
  72. QFileInfo fileInfo(filePath);
  73. QString fileName = fileInfo.fileName();
  74. QString usercode = m_account.value("usercode");
  75. SNCDataBase::addFileUpload("shkj","",usercode,fileName,filePath,fileType,taskType,memo);
  76. emit dataUpdated();
  77. emit buttonCloseClicked();
  78. }
  79. void FormUpload::on_pushButtonClose_clicked()
  80. {
  81. emit buttonCloseClicked();
  82. }
  83. void FormUpload::onTimeOut()
  84. {
  85. WSCube2 cube;
  86. QString json = cube.getUserSHKJServiceInfo(m_account.value("ssohash"));
  87. RespGetUserSHKJServiceInfo resp(json);
  88. if(resp.getRtnCode()==1)
  89. {
  90. double daymax = resp.getShkjDayMaxSubmitHmzs().toDouble()/10000;
  91. double daysubmit = resp.getShkjDaySubmitHmzs().toDouble()/10000;
  92. double monthdown = resp.getMonthDownShzs().toDouble()/10000;
  93. double monthdownmax = resp.getMonthMaxDownShzs().toDouble()/10000;
  94. double r;
  95. r = qMin(daymax-daysubmit,monthdownmax-monthdown);
  96. r = daymax-daysubmit;
  97. if(r<=0)
  98. ui->pushButtonSubmit->setEnabled(true);
  99. ui->labelTip->setText(QString("<font color=red>本日最大可提交%1万,已累计提交%2万,还可提交%3万</font>").arg(daymax).arg(daysubmit).arg(r));
  100. }
  101. else
  102. {
  103. ui->labelTip->setText(QString("<font color=red>无法获取实号快检的资费信息,错误原因:%1</font>").arg(resp.getRtnMemo()));
  104. }
  105. m_timer->stop();
  106. }
  107. void FormUpload::initVariables()
  108. {
  109. m_timer = new QTimer();
  110. m_timer->setInterval(100);
  111. m_timer->stop();
  112. connect(m_timer,SIGNAL(timeout()),this,SLOT(onTimeOut()));
  113. }