formhistory.cpp 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182
  1. #include "formhistory.h"
  2. #include "ui_formhistory.h"
  3. #include "sncdatabase.h"
  4. #include "respgetjsjcinfo.h"
  5. #include "respdljsjcresultfile.h"
  6. #include "respuserserviceverify.h"
  7. #include "respgetuserjsjcserviceinfo.h"
  8. #include "respgetusersso.h"
  9. #include "respgetuserjsjcserviceinfo.h"
  10. #include "respgetservertime.h"
  11. #include "respencrypt.h"
  12. #include "dialogsubmit.h"
  13. #include "xprogressbar.h"
  14. #include "dialogsubmitresponsedetail.h"
  15. FormHistory::FormHistory(QWidget *parent) :
  16. QWidget(parent),
  17. ui(new Ui::FormHistory)
  18. {
  19. ui->setupUi(this);
  20. initVariables();
  21. initUI();
  22. resetDataAreaUI();
  23. setAccountAreaUI(NotLogin);
  24. }
  25. FormHistory::~FormHistory()
  26. {
  27. m_timer->stop();
  28. m_upload->abort();
  29. m_sync->abort();
  30. m_upload->wait();
  31. m_sync->wait();
  32. m_cubews->abort();
  33. m_ssows->abort();
  34. m_timer->stop();
  35. m_movie->stop();
  36. delete m_upload;
  37. delete m_sync;
  38. delete m_cubews;
  39. delete m_ssows;
  40. delete m_movie;
  41. delete m_timer;
  42. delete ui;
  43. qDebug()<<QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")\
  44. <<"FormRiddle.FormHistory Destroyed.";
  45. }
  46. void FormHistory::initVariables()
  47. {
  48. m_isRefreshing = false;
  49. int interval = 5;
  50. m_timer = new QTimer();
  51. connect(m_timer,SIGNAL(timeout()),this,SLOT(onTimeOut()));
  52. m_timer->start(interval*1000);
  53. m_upload = new AutoUploadFile();
  54. m_sync = new AutoSyncData();
  55. connect(m_upload,SIGNAL(uploadFailed()),this,SLOT(onUploadFailed()));
  56. connect(m_upload,SIGNAL(uploadSucceed()),this,SLOT(onUploadSucceed()));
  57. connect(m_upload,SIGNAL(uploadProgressUpdated()),this,SLOT(onUploadProgressUpdated()));
  58. connect(m_sync,SIGNAL(dataSync()),this,SLOT(onDataSync()));
  59. m_movie = new QMovie(":/working.gif");
  60. m_movie->start();
  61. m_curLtfid = "";
  62. m_curQryid = "";
  63. m_lastLtfid = "";
  64. m_host = "";
  65. m_port = "";
  66. m_ssows = new WSSSO();
  67. m_cubews = new WSCube();
  68. m_shkjDealing = new FormShkjDealing();
  69. ui->verticalLayout->addWidget(m_shkjDealing);
  70. connect(m_upload,SIGNAL(uploadFailed()),m_shkjDealing,SLOT(onDataUpdated()));
  71. connect(m_upload,SIGNAL(uploadSucceed()),m_shkjDealing,SLOT(onDataUpdated()));
  72. connect(m_upload,SIGNAL(uploadProgressUpdated()),m_shkjDealing,SLOT(onDataUpdated()));
  73. connect(m_sync,SIGNAL(dataSync()),m_shkjDealing,SLOT(onDataUpdated()));
  74. }
  75. void FormHistory::initUI()
  76. {
  77. //初始化实号快检结果框背景显示图片quick_default_bg.jpg,通过qss文件里进行设置
  78. ui->widgetQuicikCheck->setProperty("class","highframe");
  79. ui->widgetExactCheck->setProperty("class","lowframe");
  80. //初始化快速检测 实号和未知状态的对应的显示图片quick_result_bg.jpg
  81. QPixmap quick_result_bg(":/quick_result_bg.jpg");
  82. int nHeight = quick_result_bg.height()/2;
  83. int nWidth = quick_result_bg.width();
  84. ui->labelBarShiHao->setPixmap(quick_result_bg.copy(QRect(0 , 1 * nHeight, nWidth, nHeight)));
  85. ui->labelBarWeizhi->setPixmap(quick_result_bg.copy(QRect(0 , 0 * nHeight, nWidth, nHeight)));
  86. //初始化预检测 实号、空、停、关机对应的显示图片forcast_result_bg.jpg
  87. QPixmap forcast_result_bg(":/forcast_result_bg.jpg");
  88. nHeight = forcast_result_bg.height()/4;
  89. nWidth = forcast_result_bg.width();
  90. ui->labelBarShiHao2->setPixmap(forcast_result_bg.copy(QRect(0 , 0 * nHeight, nWidth, nHeight)));
  91. ui->labelBarKong->setPixmap(forcast_result_bg.copy(QRect(0 , 1 * nHeight, nWidth, nHeight)));
  92. ui->labelBarTing->setPixmap(forcast_result_bg.copy(QRect(0 , 2 * nHeight, nWidth, nHeight)));
  93. ui->labelBarGuan->setPixmap(forcast_result_bg.copy(QRect(0 , 3 * nHeight, nWidth, nHeight)));
  94. //初始化图例图标实号、空、停、关机对应的显示图片sample_small.jpg
  95. QPixmap sample_small(":/sample_small.jpg");
  96. nHeight = sample_small.height();
  97. nWidth = sample_small.width()/10;
  98. ui->labelSampleShiHao->setPixmap(sample_small.copy(QRect(0 * nWidth , 0 , nWidth, nHeight)));
  99. ui->labelSampleWeizhi->setPixmap(sample_small.copy(QRect(1 * nWidth , 0 , nWidth, nHeight)));
  100. ui->labelSampleShiHao2->setPixmap(sample_small.copy(QRect(2 * nWidth , 0 , nWidth, nHeight)));
  101. ui->labelSampleKong->setPixmap(sample_small.copy(QRect(3 * nWidth , 0 , nWidth, nHeight)));
  102. ui->labelSampleTing->setPixmap(sample_small.copy(QRect(4 * nWidth , 0 , nWidth, nHeight)));
  103. ui->labelSampleGuan->setPixmap(sample_small.copy(QRect(5 * nWidth , 0 , nWidth, nHeight)));
  104. //初始化分割线
  105. ui->labelSplitLine->setStyleSheet("background:#dadedf");
  106. ui->labelSplitLine->setFixedHeight(1);
  107. //设置上述状态比例的默认宽度为0
  108. ui->labelBarShiHao->setFixedWidth(0);
  109. ui->labelBarWeizhi->setFixedWidth(0);
  110. ui->labelBarShiHao2->setFixedWidth(0);
  111. ui->labelBarKong->setFixedWidth(0);
  112. ui->labelBarTing->setFixedWidth(0);
  113. ui->labelBarGuan->setFixedWidth(0);
  114. //初始化widgettip样式
  115. ui->widgetTip->setProperty("class","silverbg");
  116. //初始化登录后显示的账户相关信息区域的样式
  117. ui->pushButtonCharge->setProperty("class","txt-green");
  118. ui->pushButtonLogin->setProperty("class","txt-green");
  119. ui->pushButtonRefreshUserState->setProperty("class","txt-green");
  120. ui->pushButtonQueryAll->setProperty("class","txt-green-autowidth");
  121. ui->pushButtonQueryDown->setProperty("class","txt-green-autowidth");
  122. ui->pushButtonQueryUnDown->setProperty("class","txt-green-autowidth");
  123. }
  124. void FormHistory::resetDataAreaUI()
  125. {
  126. resetDataListInfo();
  127. resetDataDetailInfo();
  128. resetUploadDataListInfo();
  129. }
  130. void FormHistory::resetUploadDataListInfo()
  131. {
  132. resetUploadTableWidget(11);
  133. ui->tableWidgetUpload->setEnabled(false);
  134. QTableWidgetItem *item = new QTableWidgetItem();
  135. item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
  136. item->setText(" 暂无信息");
  137. ui->tableWidgetUpload->setItem(5,7,item);
  138. }
  139. void FormHistory::resetUploadTableWidget(int rows)
  140. {
  141. QStringList headers;
  142. headers.append("文件ID");
  143. headers.append("状态");
  144. headers.append("文件类型");
  145. headers.append("文件名");
  146. headers.append("文件路径");
  147. headers.append("备注");
  148. headers.append("提交时间");
  149. headers.append("进度");
  150. headers.append("返回信息");
  151. headers.append("返回详情");
  152. headers.append("服务端操作状态");
  153. headers.append("进度");
  154. headers.append("详情");
  155. ui->tableWidgetUpload->setRowCount(0);
  156. ui->tableWidgetUpload->setColumnCount(0);
  157. ui->tableWidgetUpload->setEditTriggers(QAbstractItemView::NoEditTriggers);
  158. ui->tableWidgetUpload->setColumnCount(13);
  159. ui->tableWidgetUpload->setHorizontalHeaderLabels(headers);
  160. ui->tableWidgetUpload->setRowCount(rows);
  161. ui->tableWidgetUpload->setShowGrid(false);
  162. ui->tableWidgetUpload->setAlternatingRowColors(true);
  163. ui->tableWidgetUpload->setSelectionBehavior(QAbstractItemView::SelectRows);
  164. ui->tableWidgetUpload->setSelectionMode(QAbstractItemView::SingleSelection);
  165. ui->tableWidgetUpload->setColumnWidth(0,0);
  166. ui->tableWidgetUpload->setColumnWidth(1,40);
  167. ui->tableWidgetUpload->setColumnWidth(2,80);//
  168. ui->tableWidgetUpload->setColumnWidth(3,170);
  169. ui->tableWidgetUpload->setColumnWidth(4,0);
  170. ui->tableWidgetUpload->setColumnWidth(5,0);//
  171. ui->tableWidgetUpload->setColumnWidth(6,150);
  172. ui->tableWidgetUpload->setColumnWidth(7,0);
  173. ui->tableWidgetUpload->setColumnWidth(8,0);
  174. ui->tableWidgetUpload->setColumnWidth(9,0);
  175. ui->tableWidgetUpload->setColumnWidth(10,0);
  176. ui->tableWidgetUpload->setColumnWidth(11,150);
  177. ui->tableWidgetUpload->setColumnWidth(12,85);
  178. ui->tableWidgetUpload->hideColumn(0);
  179. ui->tableWidgetUpload->hideColumn(4);
  180. ui->tableWidgetUpload->hideColumn(5);
  181. ui->tableWidgetUpload->hideColumn(7);
  182. ui->tableWidgetUpload->hideColumn(8);
  183. ui->tableWidgetUpload->hideColumn(9);
  184. ui->tableWidgetUpload->hideColumn(10);
  185. ui->tableWidgetUpload->verticalHeader()->setVisible(false);
  186. ui->tableWidgetUpload->horizontalHeader()->setStyleSheet("font:12px");
  187. ui->tableWidgetUpload->horizontalHeader()->setResizeMode(QHeaderView::Fixed);
  188. ui->tableWidgetUpload->verticalHeader()->setResizeMode(QHeaderView::Fixed);
  189. ui->tableWidgetUpload->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
  190. ui->tableWidgetUpload->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
  191. ui->tableWidgetUpload->verticalHeader()->setFixedWidth(30);
  192. ui->tableWidgetUpload->setSortingEnabled(true);
  193. }
  194. void FormHistory::fetchUploadList(QMultiMap<QString, QString> map, int rowCount)
  195. {
  196. resetUploadDataListInfo();
  197. if(rowCount==0)
  198. {
  199. return ;
  200. }
  201. resetUploadTableWidget(rowCount);
  202. ui->tableWidgetUpload->setEnabled(true);
  203. QStringList keys;
  204. keys<<"fileid"<<"filestate"<<"filetype"<<"filename"<<"filepath";
  205. keys<<"memo"<<"srvrtime"<<"percent"<<"rtnmsg"<<"rtndetail"<<"optstatus";
  206. for(int col=0;col<keys.size();col++)
  207. {
  208. QStringList rows = map.values(keys.at(col));
  209. for(int row=0;row<rows.size();row++)
  210. {
  211. QTableWidgetItem *item = new QTableWidgetItem();
  212. item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  213. QString display = rows.at(row);
  214. QString tooltip = display;
  215. if(keys.at(col)=="filetype")
  216. {
  217. if(rows.at(row)=="1")
  218. display = "号码文件";
  219. else if(rows.at(row)=="2")
  220. display = "号段文件";
  221. else
  222. display = "未知";
  223. tooltip = display;
  224. }
  225. else if(keys.at(col)=="filename")
  226. {
  227. item->setTextAlignment(Qt::AlignLeft|Qt::AlignVCenter);
  228. }
  229. if(keys.at(col)=="filestate")
  230. {
  231. delete item;
  232. QLabel *lbl = new QLabel(this);
  233. lbl->setAlignment(Qt::AlignCenter|Qt::AlignHCenter);
  234. int v = display.toInt();
  235. if(v<0)
  236. lbl->setPixmap(QPixmap(":/wrong.png"));
  237. else if(v>=0 && v<=3)
  238. lbl->setMovie(m_movie);
  239. else
  240. lbl->setPixmap(QPixmap(":/right.png"));
  241. ui->tableWidgetUpload->setCellWidget(row,col,lbl);
  242. ui->tableWidgetUpload->item(row,0)->setData(Qt::UserRole,v);
  243. }
  244. else
  245. {
  246. item->setData(Qt::DisplayRole,display);
  247. item->setData(Qt::UserRole,rows.at(row));
  248. item->setData(Qt::ToolTipRole,tooltip);
  249. ui->tableWidgetUpload->setItem(row,col,item);
  250. }
  251. }
  252. }
  253. //显示进度条
  254. for(int row=0;row<rowCount;row++)
  255. {
  256. double percent = ui->tableWidgetUpload->item(row,7)->data(Qt::UserRole).toDouble();
  257. int state = ui->tableWidgetUpload->item(row,0)->data(Qt::UserRole).toInt();
  258. QString optstatus = ui->tableWidgetUpload->item(row,10)->data(Qt::UserRole).toString();
  259. XProgressBar *progress = new XProgressBar();
  260. progress->setProgress(state,percent);
  261. ui->tableWidgetUpload->setCellWidget(row,11,progress);
  262. }
  263. //显示文件信息
  264. for(int row=0;row<rowCount;row++)
  265. {
  266. QString filePath = ui->tableWidgetUpload->item(row,4)->data(Qt::UserRole).toString();
  267. QString fileMemo = ui->tableWidgetUpload->item(row,5)->data(Qt::UserRole).toString();
  268. QString tooltip = QString("文件:%1\r\n备注:%2").arg(filePath).arg(fileMemo);
  269. ui->tableWidgetUpload->item(row,3)->setData(Qt::ToolTipRole,tooltip);
  270. }
  271. //显示查看详情信息
  272. for(int row=0;row<rowCount;row++)
  273. {
  274. QPushButton *button = new QPushButton();
  275. button->setText("查看");
  276. button->setProperty("class","txt-green");
  277. button->setCursor(Qt::PointingHandCursor);
  278. connect(button,SIGNAL(clicked()),this,SLOT(onPushButtonViewsClicked()));
  279. QTableWidgetItem *item = ui->tableWidgetUpload->item(row,8);
  280. if(item)
  281. {
  282. if(item->data(Qt::UserRole).toString().isEmpty())
  283. {
  284. button->setEnabled(false);
  285. }
  286. }
  287. ui->tableWidgetUpload->setCellWidget(row,12,button);
  288. }
  289. ui->tableWidgetUpload->sortByColumn(0);
  290. ui->tableWidgetUpload->sortByColumn(0);
  291. }
  292. void FormHistory::resetDataListInfo()
  293. {
  294. resetTableWidget(11);
  295. ui->tableWidget->setEnabled(false);
  296. QTableWidgetItem *item = new QTableWidgetItem();
  297. item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
  298. item->setText(" 暂无信息");
  299. ui->tableWidget->setItem(5,7,item);
  300. }
  301. void FormHistory::resetDataDetailInfo()
  302. {
  303. ui->labelShiHao->setText("实号");
  304. ui->labelKong->setText("空号");
  305. ui->labelTing->setText("停机");
  306. ui->labelGuan->setText("关机");
  307. ui->labelValidNum->setText("实号");
  308. ui->labelInvalidNum->setText("未知");
  309. //设置上述状态比例的默认宽度为0
  310. ui->labelBarShiHao->setFixedWidth(0);
  311. ui->labelBarWeizhi->setFixedWidth(0);
  312. ui->labelBarShiHao2->setFixedWidth(0);
  313. ui->labelBarKong->setFixedWidth(0);
  314. ui->labelBarTing->setFixedWidth(0);
  315. ui->labelBarGuan->setFixedWidth(0);
  316. ui->pushButtonDownload->setEnabled(false);
  317. }
  318. void FormHistory::resetTableWidget(int newRows)
  319. {
  320. QStringList headers;
  321. headers.append("编号");
  322. headers.append("状态");
  323. headers.append("查询码");
  324. headers.append("详情");
  325. headers.append("号码总数");
  326. headers.append("无效号码(实时快检)");
  327. headers.append("无效号码(实时快检)");
  328. headers.append("无效号码(预检)");
  329. headers.append("无效号码(预检)");
  330. headers.append("提交时间");
  331. headers.append("完成时间");
  332. headers.append("实号数");
  333. headers.append("实号比例");
  334. headers.append("耗时(秒)");
  335. ui->tableWidget->setRowCount(0);
  336. ui->tableWidget->setColumnCount(0);
  337. ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
  338. ui->tableWidget->setColumnCount(14);
  339. ui->tableWidget->setHorizontalHeaderLabels(headers);
  340. ui->tableWidget->setRowCount(newRows);
  341. ui->tableWidget->setShowGrid(false);
  342. ui->tableWidget->setAlternatingRowColors(true);
  343. ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
  344. ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
  345. ui->tableWidget->setColumnWidth(0,65);
  346. ui->tableWidget->setColumnWidth(1,40);
  347. ui->tableWidget->setColumnWidth(2,150);
  348. ui->tableWidget->setColumnWidth(3,40);
  349. ui->tableWidget->setColumnWidth(4,80);//
  350. ui->tableWidget->setColumnWidth(5,80);
  351. ui->tableWidget->setColumnWidth(6,150);
  352. ui->tableWidget->setColumnWidth(7,140);//
  353. ui->tableWidget->setColumnWidth(8,80);
  354. ui->tableWidget->setColumnWidth(9,150);
  355. ui->tableWidget->setColumnWidth(10,100);//
  356. ui->tableWidget->setColumnWidth(11,70);
  357. ui->tableWidget->setColumnWidth(12,65);
  358. ui->tableWidget->setColumnWidth(13,70);
  359. ui->tableWidget->hideColumn(0);
  360. ui->tableWidget->hideColumn(5);
  361. ui->tableWidget->hideColumn(6);
  362. ui->tableWidget->hideColumn(7);
  363. ui->tableWidget->hideColumn(8);
  364. ui->tableWidget->hideColumn(10);
  365. ui->tableWidget->verticalHeader()->setVisible(false);
  366. ui->tableWidget->horizontalHeader()->setStyleSheet("font:12px");
  367. ui->tableWidget->horizontalHeader()->setResizeMode(QHeaderView::Fixed);
  368. ui->tableWidget->verticalHeader()->setResizeMode(QHeaderView::Fixed);
  369. ui->tableWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
  370. ui->tableWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
  371. ui->tableWidget->verticalHeader()->setFixedWidth(30);
  372. ui->tableWidget->setSortingEnabled(true);
  373. }
  374. bool FormHistory::eventFilter(QObject *object, QEvent *event)
  375. {
  376. if( event->type() == QEvent::KeyPress)
  377. {
  378. QKeyEvent * pKeyEvent = static_cast<QKeyEvent *>(event);
  379. if (pKeyEvent->key() == Qt::Key_Control||pKeyEvent->key() == Qt::Key_Shift)
  380. {
  381. //ui->tableWidgetDealing->setSelectionMode(QAbstractItemView::ExtendedSelection);
  382. //ui->tableWidgetFinished->setSelectionMode(QAbstractItemView::ExtendedSelection);
  383. return true;
  384. }
  385. }
  386. else if( event->type() == QEvent::KeyRelease)
  387. {
  388. QKeyEvent * pKeyEvent = static_cast<QKeyEvent *>(event);
  389. if (pKeyEvent->key() == Qt::Key_Control||pKeyEvent->key() == Qt::Key_Shift)
  390. {
  391. //ui->tableWidgetDealing->setSelectionMode(QAbstractItemView::MultiSelection);
  392. //ui->tableWidgetFinished->setSelectionMode(QAbstractItemView::MultiSelection);
  393. return true;
  394. }
  395. }
  396. return QWidget::eventFilter(object, event);
  397. }
  398. void FormHistory::setAccountAreaUI(AccountLoginState state)
  399. {
  400. switch(state)
  401. {
  402. case LoginOk:
  403. ui->labelTip->setText("实号快检服务已经连接!");
  404. ui->labelTip2->setText("");
  405. ui->pushButtonLogin->setVisible(false);
  406. if(m_regType=="temp")
  407. {
  408. ui->widgetAccountInfo->setVisible(false);
  409. }
  410. else
  411. {
  412. ui->widgetAccountInfo->setVisible(true);
  413. }
  414. refreshAccountInfo();
  415. break;
  416. case NotLogin:
  417. ui->labelTip->setText("您需要");
  418. ui->labelTip2->setText("才可以使用该功能!");
  419. ui->pushButtonLogin->setVisible(true);
  420. ui->widgetAccountInfo->setVisible(false);
  421. break;
  422. case NotBind:
  423. ui->labelTip->setText("实号快检服务尚未开通!");
  424. ui->pushButtonLogin->setVisible(false);
  425. ui->widgetAccountInfo->setVisible(false);
  426. break;
  427. case LoginError:
  428. ui->labelTip->setText("实号快检服务无法连接!");
  429. ui->pushButtonLogin->setVisible(false);
  430. ui->widgetAccountInfo->setVisible(false);
  431. break;
  432. }
  433. changeImage(state);
  434. }
  435. void FormHistory::changeImage(AccountLoginState state)
  436. {
  437. QPixmap pixamp(":/service_state.png");
  438. int nHeight = pixamp.height();
  439. int nWidth = pixamp.width()/4;
  440. ui->labelStateImage->setPixmap(pixamp.copy(QRect(state * nWidth , 0, nWidth, nHeight)));
  441. }
  442. void FormHistory::refreshAccountInfo()
  443. {
  444. QString json = m_cubews->getUserJSJCServiceInfo(m_ssoHash);
  445. bool succeed = false;
  446. if(!json.isEmpty())
  447. {
  448. RespGetUserJSJCServiceInfo resp(json);
  449. if(resp.getRtnCode()==1)
  450. {
  451. int downloads = resp.getMonthDownHmzs().toInt();
  452. int maxdownloads = resp.getMonthMaxDownHmzs().toInt();
  453. int downloadslimit = maxdownloads-downloads;
  454. int checks = resp.getDaySubmitHmzs().toInt();
  455. int maxchecks = resp.getDayMaxSubmitHmzs().toInt();
  456. int checkslimit = maxchecks-checks;
  457. ui->labelChecked->setText(QString("%1/%2").arg(checks).arg(checkslimit));
  458. ui->labelDownloaded->setText(QString("%1/%2").arg(downloads).arg(downloadslimit));
  459. succeed = true;
  460. }
  461. }
  462. if(!succeed)
  463. {
  464. ui->labelChecked->setText("N/A");
  465. ui->labelDownloaded->setText("N/A");
  466. }
  467. }
  468. bool FormHistory::checkLastClickTime(QObject *button)
  469. {
  470. QPushButton *btn = qobject_cast<QPushButton*>(button);
  471. QDateTime lasttime = m_clickTime.value(btn->objectName());
  472. if(!lasttime.isNull())
  473. {
  474. if(lasttime.addSecs(30)>QDateTime::currentDateTime())
  475. {
  476. QMessageBox::critical(this,"提示","您不可以频繁点击!",QMessageBox::Ok);
  477. return false;
  478. }
  479. }
  480. m_clickTime.insert(btn->objectName(),QDateTime::currentDateTime());
  481. return true;
  482. }
  483. void FormHistory::showMessage(int row)
  484. {
  485. QTableWidgetItem *itemMsg = ui->tableWidgetUpload->item(row,8);
  486. QTableWidgetItem *itemDetail = ui->tableWidgetUpload->item(row,9);
  487. QString errMsg = "";
  488. QString errDetail = "";
  489. if(itemMsg)
  490. {
  491. errMsg = itemMsg->data(Qt::UserRole).toString();
  492. }
  493. if(itemDetail)
  494. {
  495. errDetail = itemDetail->data(Qt::UserRole).toString();
  496. }
  497. if(errDetail.isEmpty())
  498. {
  499. if(!errMsg.isEmpty())
  500. {
  501. QMessageBox::critical(this,"提示",errMsg,QMessageBox::Ok);
  502. }
  503. }
  504. else
  505. {
  506. DialogSubmitResponseDetail dialog;
  507. dialog.setDetailText(errDetail);
  508. dialog.exec();
  509. }
  510. }
  511. void FormHistory::setAccountInfo(QMap<QString,QString> info)
  512. {
  513. m_shkjDealing ->setAccountInfo(info);
  514. m_ssoHash = info.value("ssohash");
  515. m_userCode = info.value("usercode");
  516. m_regType = info.value("regtype");
  517. // m_upload->setUserInfo("shkj","",m_userCode,m_ssoHash);
  518. // m_sync->setUserInfo("shkj","",m_userCode,m_ssoHash);
  519. if(!m_timer->isActive())
  520. m_timer->start();
  521. ui->tabWidget->setTabText(1,"下载检测结果");
  522. ui->tabWidget->setTabIcon(1,QIcon(""));
  523. if(!m_ssoHash.isEmpty())
  524. {
  525. setAccountAreaUI(LoginOk);
  526. }
  527. else
  528. {
  529. if(m_userCode.isEmpty())
  530. {
  531. setAccountAreaUI(NotLogin);
  532. }
  533. else
  534. {
  535. setAccountAreaUI(LoginError);
  536. }
  537. resetDataAreaUI();
  538. }
  539. }
  540. void FormHistory::setHost(QString host,QString port)
  541. {
  542. m_host = host;
  543. m_port = port;
  544. }
  545. void FormHistory::stopService()
  546. {
  547. if(m_timer)
  548. {
  549. m_timer->stop();
  550. }
  551. if(m_sync)
  552. {
  553. m_sync->abort();
  554. m_sync->wait();
  555. }
  556. if(m_upload)
  557. {
  558. m_upload->abort();
  559. m_upload->wait();
  560. }
  561. }
  562. void FormHistory::fetchList(QMultiMap<QString, QString> map, int rowCount)
  563. {
  564. resetDataListInfo();
  565. resetDataDetailInfo();
  566. if(rowCount==0)
  567. {
  568. resetDataListInfo();
  569. return ;
  570. }
  571. resetTableWidget(rowCount);
  572. ui->tableWidget->setEnabled(true);
  573. QStringList keys;
  574. keys<<"ltfid"<<"dealstatus"<<"uqrycode"<<"detail"<<"hmzs";
  575. keys<<"ltf_tj"<<"ltf_list";
  576. keys<<"forecast_tj"<<"forecast_list";
  577. keys<<"inserttime"<<"finishtime";
  578. for(int col=0;col<keys.size();col++)
  579. {
  580. QStringList rows = map.values(keys.at(col));
  581. for(int row=0;row<rows.size();row++)
  582. {
  583. QTableWidgetItem *item;
  584. item = new QTableWidgetItem();
  585. QString display = rows.at(row);
  586. QString tooltip = display;
  587. if(keys.at(col)=="uqrycode")
  588. {
  589. tooltip = "";
  590. }
  591. if(!display.isEmpty())
  592. {
  593. if(keys.at(col)=="hmzs")
  594. item->setData(Qt::DisplayRole,display.toInt());
  595. else
  596. item->setData(Qt::DisplayRole,display);
  597. }
  598. item->setData(Qt::UserRole,rows.at(row));
  599. item->setData(Qt::ToolTipRole,tooltip);
  600. item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  601. if(keys.at(col)=="detail")
  602. {
  603. delete item;
  604. QLabel *lbl = new QLabel(this);
  605. lbl->setAlignment(Qt::AlignCenter|Qt::AlignHCenter);
  606. if(display.isEmpty())
  607. lbl->setPixmap(QPixmap(":/no-information.png"));
  608. else
  609. lbl->setPixmap(QPixmap(":/information.png"));
  610. ui->tableWidget->setCellWidget(row,col,lbl);
  611. lbl->setToolTip(tooltip);
  612. }
  613. else if(keys.at(col)=="dealstatus")
  614. {
  615. delete item;
  616. QLabel *lbl = new QLabel(this);
  617. lbl->setAlignment(Qt::AlignCenter|Qt::AlignHCenter);
  618. if(display=="2")
  619. lbl->setPixmap(QPixmap(":/right.png"));
  620. else if(display=="3")
  621. lbl->setPixmap(QPixmap(":/down.png"));
  622. else
  623. lbl->setText("未知");
  624. ui->tableWidget->setCellWidget(row,col,lbl);
  625. ui->tableWidget->item(row,0)->setData(Qt::UserRole,display);
  626. //lbl->setToolTip(tooltip);
  627. }
  628. else
  629. {
  630. ui->tableWidget->setItem(row,col,item);
  631. }
  632. }
  633. }
  634. //填充耗时
  635. for(int row=0;row<rowCount;row++)
  636. {
  637. QDateTime inserttime = QDateTime::fromString(ui->tableWidget->item(row,9)->data(Qt::UserRole).toString(),
  638. "yyyy-MM-dd hh:mm:ss");
  639. QDateTime finishtime = QDateTime::fromString(ui->tableWidget->item(row,10)->data(Qt::UserRole).toString(),
  640. "yyyy-MM-dd hh:mm:ss");
  641. int seconds = inserttime.msecsTo(finishtime)/1000 ;
  642. if(seconds<0)
  643. {
  644. QLabel *lbl = new QLabel();
  645. lbl->setMovie(m_movie);
  646. lbl->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  647. ui->tableWidget->setCellWidget(row,13,lbl);
  648. }
  649. else
  650. {
  651. QTableWidgetItem *item = new QTableWidgetItem();
  652. item->setData(Qt::DisplayRole,seconds);
  653. item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  654. ui->tableWidget->setItem(row,13,item);
  655. }
  656. }
  657. //填充实号号码数及比例
  658. for(int row=0;row<rowCount;row++)
  659. {
  660. int total = 0;
  661. if(QRegExp("\\d+").exactMatch(ui->tableWidget->item(row,4)->data(Qt::UserRole).toString()))
  662. {
  663. total = ui->tableWidget->item(row,4)->data(Qt::UserRole).toInt();
  664. }
  665. int valid = 0;
  666. QStringList nums = ui->tableWidget->item(row,6)->data(Qt::UserRole).toString().split(",");
  667. if(nums.size()==3)
  668. valid = nums.at(2).toInt();
  669. QString rate = "N/A";
  670. if(total!=0)
  671. {
  672. rate = QString::number(100.0*valid/total ,'f', 0) + "%";
  673. }
  674. QTableWidgetItem *item = new QTableWidgetItem();
  675. item->setData(Qt::DisplayRole,valid);
  676. item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  677. ui->tableWidget->setItem(row,11,item);
  678. QTableWidgetItem *item2 = new QTableWidgetItem();
  679. item2->setData(Qt::DisplayRole,rate);
  680. item2->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  681. ui->tableWidget->setItem(row,12,item2);
  682. }
  683. ui->tableWidget->sortByColumn(0);
  684. ui->tableWidget->sortByColumn(0);
  685. displayLastSelected();
  686. }
  687. void FormHistory::displayDetail(QString hmzs, QStringList infos, QStringList nums,QString dealstatus)
  688. {
  689. double r11 = 0;//快速检测实号数
  690. double r31 = 0;//精准检测空号数
  691. double r32 = 0;//精准检测停机数
  692. double r33 = 0;//精准检测关机数
  693. double r34 = 0;//精准检测实号数
  694. int sum = hmzs.toInt();
  695. int barLength = 500;
  696. resetDataDetailInfo();
  697. if(infos.size()==2&&nums.size()==2)
  698. {
  699. int i=0;
  700. int j=0;
  701. QStringList list = infos.at(i++).split("|");
  702. QStringList list2 = nums.at(j++).split(",");
  703. if(list.size()==3 && list2.size()==3)
  704. {
  705. r11= list2.at(2).toDouble();
  706. QString rate = QString::number(100*(sum-r11)/sum,'f',2);
  707. ui->labelValidNum->setText(list.at(2));
  708. ui->labelInvalidNum->setText(QString("未知:%1(%2%)").arg(sum-r11).arg(rate));
  709. }
  710. list = infos.at(i++).split("|");
  711. list2 = nums.at(j++).split(",");
  712. if(list.size()==5 && list2.size()==4)
  713. {
  714. r31= list2.at(0).toDouble();//kong
  715. r32= list2.at(1).toDouble();//ting
  716. r33= list2.at(2).toDouble();//guan
  717. r34 = list2.at(3).toDouble();//shihao
  718. ui->labelKong->setText(list.at(0));
  719. ui->labelTing->setText(list.at(1));
  720. ui->labelGuan->setText(list.at(2));
  721. ui->labelShiHao->setText(list.at(3));
  722. }
  723. }
  724. if(sum>0)
  725. {
  726. ui->labelBarShiHao->setFixedWidth(barLength*r11/sum);
  727. ui->labelBarWeizhi->setFixedWidth(barLength*(1-r11/sum));
  728. ui->labelBarShiHao2->setFixedWidth(barLength*r34/sum);
  729. ui->labelBarKong->setFixedWidth(barLength*r31/sum);
  730. ui->labelBarTing->setFixedWidth(barLength*r32/sum);
  731. ui->labelBarGuan->setFixedWidth(barLength*r33/sum);
  732. }
  733. bool isok = (dealstatus=="2") || (dealstatus == "3");
  734. ui->pushButtonDownload->setEnabled(isok);
  735. }
  736. void FormHistory::queryUpload()
  737. {
  738. QMultiMap<QString,QString> list = SNCDataBase::getAllUpload("shkj","",m_userCode);
  739. int cols = list.uniqueKeys().size();
  740. int rows = 0;
  741. if(cols!=0)
  742. rows = list.size()/cols;
  743. fetchUploadList(list,rows);
  744. }
  745. void FormHistory::queryCheck(QString dealstatus)
  746. {
  747. m_curLtfid = "";
  748. m_curQryid = "";
  749. QMultiMap<QString,QString> list = SNCDataBase::getShkjCheckInfos(m_userCode,dealstatus);
  750. int cols = list.uniqueKeys().size();
  751. int rows = 0;
  752. if(cols!=0)
  753. rows = list.size()/cols;
  754. fetchList(list,rows);
  755. }
  756. void FormHistory::download()
  757. {
  758. if(m_ssoHash.isEmpty())
  759. {
  760. QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok);
  761. return;
  762. }
  763. if(m_curLtfid.isEmpty())
  764. {
  765. QMessageBox::critical(this,"提示","请先选择要下载的任务单!",QMessageBox::Ok);
  766. return ;
  767. }
  768. QString dealstatus;
  769. QString total;
  770. for(int i=0;i<ui->tableWidget->rowCount();i++)
  771. {
  772. QTableWidgetItem *item = ui->tableWidget->item(i,0);
  773. if(item)
  774. {
  775. if(m_curLtfid == item->data(Qt::DisplayRole).toString())
  776. {
  777. dealstatus = ui->tableWidget->item(i,0)->data(Qt::UserRole).toString();
  778. total = ui->tableWidget->item(i,4)->data(Qt::UserRole).toString();
  779. break;
  780. }
  781. }
  782. }
  783. if(dealstatus.isEmpty()||total.isEmpty())
  784. {
  785. QMessageBox::critical(this,"提示","无法获取下载文件必要的信息!",QMessageBox::Ok);
  786. return ;
  787. }
  788. if(dealstatus=="2")
  789. {
  790. if(QMessageBox::Yes!=QMessageBox::question(NULL,
  791. "确认",
  792. QString("您需要消耗%1条下载量,是否继续?").arg(total)
  793. ,QMessageBox::Yes,QMessageBox::No))
  794. {
  795. return ;
  796. }
  797. }
  798. else if(dealstatus=="3")
  799. {
  800. if(QMessageBox::Yes!=QMessageBox::question(NULL,
  801. "确认",
  802. QString("您已经下载过该文件,是否再次下载(再次下载不重复计费)?")
  803. ,QMessageBox::Yes,QMessageBox::No))
  804. {
  805. return ;
  806. }
  807. }
  808. QString json = m_cubews->userServiceVerify("DlJSJCresultFile",QString("%1,%2").arg(dealstatus).arg(total),m_ssoHash);
  809. if(!json.isEmpty())
  810. {
  811. RespUserServiceVerify response(json);
  812. if(response.getRtnCode()<=0)
  813. {
  814. QMessageBox::critical(this,"提示",response.getRtnMemo(),QMessageBox::Ok);
  815. return ;
  816. }
  817. }
  818. else
  819. {
  820. QMessageBox::critical(this,"提示",QString("无法验证用户信息"),QMessageBox::Ok);
  821. return ;
  822. }
  823. QString saveZipFileName = getSaveZipFileName();
  824. if(saveZipFileName.isEmpty())
  825. return ;
  826. json = m_cubews->dlJSJCresultFile(m_curLtfid,m_ssoHash);
  827. if(!json.isEmpty()){
  828. RespDlJSJCresultFile response(json);
  829. if(response.getRtnCode()==1)
  830. {
  831. QString fileName = saveZipFileName;
  832. QString fileContent = response.getFileContent();
  833. QByteArray array = QByteArray::fromBase64(fileContent.toAscii());
  834. QFile file(fileName);
  835. file.open(QIODevice::WriteOnly);
  836. file.write(array);
  837. file.close();
  838. // m_sync->setUserInfo("shkj","",m_userCode,m_ssoHash);
  839. QMessageBox::information(this,"提示","下载成功!",QMessageBox::Ok);
  840. refreshAccountInfo();
  841. }
  842. else
  843. {
  844. QMessageBox::critical(this,"提示",response.getRtnMemo(),QMessageBox::Ok);
  845. }
  846. }
  847. else
  848. {
  849. QMessageBox::warning(this,"提示","网络连接失败!",QMessageBox::Ok);
  850. }
  851. }
  852. void FormHistory::displayLastSelected()
  853. {
  854. int row = 0;
  855. int column = 0;
  856. if(m_lastLtfid.isEmpty())
  857. {
  858. row= 0;
  859. }
  860. else
  861. {
  862. for(int i=0;i<ui->tableWidget->rowCount();i++)
  863. {
  864. QTableWidgetItem *item = ui->tableWidget->item(i,10);
  865. if(item)
  866. {
  867. if(item->data(Qt::DisplayRole).toString()==m_lastLtfid)
  868. {
  869. row = i;
  870. break;
  871. }
  872. }
  873. }
  874. }
  875. ui->tableWidget->selectRow(row);
  876. on_tableWidget_cellClicked(row, column);
  877. }
  878. QString FormHistory::getSaveZipFileName()
  879. {
  880. QFileDialog::Options options;
  881. QString selectedFilter;
  882. QString exportDir = SNCDataBase::getExportDir();
  883. QString defaultZipFileName = QString("实号快检_%1.zip").arg(m_curQryid);
  884. QString saveZipFileName = QFileDialog::getSaveFileName(this,"另存为",exportDir + "\\" + defaultZipFileName,
  885. tr("ZIP Files (*.zip)"),
  886. &selectedFilter,
  887. options);
  888. if(!saveZipFileName.isEmpty())
  889. {
  890. QFileInfo fileInfo(saveZipFileName);
  891. exportDir = fileInfo.absolutePath();
  892. SNCDataBase::updateExportDir(exportDir);
  893. }
  894. return saveZipFileName;
  895. }
  896. void FormHistory::on_pushButtonDownload_clicked()
  897. {
  898. setCursor(Qt::WaitCursor);
  899. ui->pushButtonDownload->setEnabled(false);
  900. download();
  901. refreshAccountInfo();
  902. ui->pushButtonDownload->setEnabled(true);
  903. setCursor(Qt::ArrowCursor);
  904. }
  905. void FormHistory::on_pushButtonNew_clicked()
  906. {
  907. if(m_ssoHash.isEmpty())
  908. {
  909. QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok);
  910. return;
  911. }
  912. DialogSubmit dialog(this);
  913. connect(&dialog,SIGNAL(dataUpdated()),this,SLOT(onUploadFileCreated()));
  914. dialog.setUserCode(m_userCode);
  915. dialog.exec();
  916. queryUpload();
  917. }
  918. void FormHistory::on_pushButtonCharge_clicked()
  919. {
  920. if(m_ssoHash.isEmpty())
  921. {
  922. QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok);
  923. return;
  924. }
  925. if(!checkLastClickTime(sender()))
  926. return ;
  927. QString json = m_ssows->encrypt(m_ssoHash);
  928. RespEncrypt resp1(json);
  929. QString data = resp1.getEncryptData();
  930. json = m_ssows->getServerTime();
  931. RespGetServerTime resp2(json);
  932. QString authCode;
  933. QByteArray ba;
  934. QString str = SNCDataBase::getAuthCodeUrl().arg(resp2.getServerTime().mid(0,16));
  935. ba = QCryptographicHash::hash ( str.toAscii(), QCryptographicHash::Md5 );
  936. authCode.append(ba.toHex());
  937. QString url = SNCDataBase::getSSOPayUrl() + "?s=mf&r="+authCode+"&u="+data+"&p=zxcz_shkj";
  938. QDesktopServices::openUrl(QUrl(url));
  939. }
  940. void FormHistory::on_pushButtonLogin_clicked()
  941. {
  942. emit buttonLoginClick();
  943. }
  944. void FormHistory::onPushButtonViewsClicked()
  945. {
  946. QPushButton *btn = qobject_cast<QPushButton*>(sender());
  947. for(int i=0;i<ui->tableWidgetUpload->rowCount();i++)
  948. {
  949. QWidget *widget = ui->tableWidgetUpload->cellWidget(i,12);
  950. if(widget)
  951. {
  952. if(btn==qobject_cast<QPushButton*>(widget))
  953. {
  954. showMessage(i);
  955. break;
  956. }
  957. }
  958. }
  959. }
  960. void FormHistory::on_pushButtonRefreshUserState_clicked()
  961. {
  962. if(m_ssoHash.isEmpty())
  963. {
  964. QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok);
  965. return;
  966. }
  967. if(!checkLastClickTime(sender()))
  968. return ;
  969. setCursor(Qt::WaitCursor);
  970. refreshAccountInfo();
  971. setCursor(Qt::ArrowCursor);
  972. }
  973. void FormHistory::on_pushButtonQueryAll_clicked()
  974. {
  975. if(m_ssoHash.isEmpty())
  976. {
  977. QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok);
  978. return;
  979. }
  980. queryCheck("");
  981. }
  982. void FormHistory::on_pushButtonQueryUnDown_clicked()
  983. {
  984. if(m_ssoHash.isEmpty())
  985. {
  986. QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok);
  987. return;
  988. }
  989. queryCheck("2");
  990. }
  991. void FormHistory::on_pushButtonQueryDown_clicked()
  992. {
  993. if(m_ssoHash.isEmpty())
  994. {
  995. QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok);
  996. return;
  997. }
  998. queryCheck("3");
  999. }
  1000. void FormHistory::on_tableWidget_cellClicked(int row, int column)
  1001. {
  1002. QStringList infos,nums;
  1003. if(row>=0&&column>=0)
  1004. {
  1005. m_curLtfid = ui->tableWidget->item(row,0)->data(Qt::DisplayRole).toString();
  1006. m_curQryid = ui->tableWidget->item(row,2)->data(Qt::DisplayRole).toString();
  1007. m_lastLtfid = m_curLtfid;
  1008. QList<int> indexs;
  1009. indexs<<5<<7;
  1010. for(int i=0;i<indexs.size();i++)
  1011. {
  1012. QString str = ui->tableWidget->item(row,indexs.at(i))->data(Qt::DisplayRole).toString();
  1013. str.replace(" ","");
  1014. infos<<str;
  1015. str = ui->tableWidget->item(row,indexs.at(i)+1)->data(Qt::DisplayRole).toString();
  1016. str.replace(" ","");
  1017. nums<<str;
  1018. }
  1019. QString dealstatus = ui->tableWidget->item(row,0)->data(Qt::UserRole).toString();
  1020. displayDetail(ui->tableWidget->item(row,4)->data(Qt::DisplayRole).toString(),infos,nums,dealstatus);
  1021. }
  1022. }
  1023. void FormHistory::onUserStateChanged()
  1024. {
  1025. refreshAccountInfo();
  1026. }
  1027. void FormHistory::onTimeOut()
  1028. {
  1029. if(m_ssoHash.isEmpty())
  1030. return ;
  1031. if(!m_upload->isRunning())
  1032. {
  1033. m_upload->start();
  1034. }
  1035. if(!m_sync->isRunning())
  1036. {
  1037. m_sync->start();
  1038. }
  1039. }
  1040. void FormHistory::onUploadProgressUpdated()
  1041. {
  1042. queryUpload();
  1043. }
  1044. void FormHistory::on_tableWidgetUpload_cellDoubleClicked(int row, int column)
  1045. {
  1046. showMessage(row);
  1047. }
  1048. void FormHistory::on_tableWidget_cellDoubleClicked(int row, int column)
  1049. {
  1050. on_pushButtonDownload_clicked();
  1051. }
  1052. void FormHistory::onUploadFailed()
  1053. {
  1054. queryUpload();
  1055. }
  1056. void FormHistory::onUploadFileCreated()
  1057. {
  1058. queryUpload();
  1059. }
  1060. void FormHistory::onUploadSucceed()
  1061. {
  1062. queryUpload();
  1063. refreshAccountInfo();
  1064. }
  1065. void FormHistory::onDataSync()
  1066. {
  1067. queryCheck("");
  1068. queryUpload();
  1069. int count = SNCDataBase::getShkjToDown(m_userCode);
  1070. if(count>0)
  1071. {
  1072. ui->tabWidget->setTabText(1,QString("下载检测结果(%1)").arg(count));
  1073. ui->tabWidget->setTabIcon(1,QIcon(":/todown.png"));
  1074. }
  1075. else
  1076. {
  1077. ui->tabWidget->setTabText(1,QString("下载检测结果").arg(count));
  1078. }
  1079. }