formmain.cpp 59 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840
  1. #include "formmain.h"
  2. #include "ui_formmain.h"
  3. #include "respgetuserinfo.h"
  4. #include "respsubminpnum.h"
  5. #include "respgetdealinfo.h"
  6. #include "respcancelbatch.h"
  7. #include "respgetcostinfo.h"
  8. #include "respgetchargeinfo.h"
  9. #include "respgetfinishedinfo.h"
  10. #include "respdlresultfile.h"
  11. #include "respgetservertime.h"
  12. #include "respencrypt.h"
  13. #include "sncdatabase.h"
  14. #include "zip.h"
  15. #include "dialogsubmit.h"
  16. #include "respgetuserblance.h"
  17. #include "dialogsubmitresponsedetail.h"
  18. FormMain::FormMain(QWidget *parent) :
  19. QWidget(parent),
  20. ui(new Ui::FormMain)
  21. {
  22. ui->setupUi(this);
  23. initVariables();
  24. initUI();
  25. resetUI();
  26. setAccountAreaUI(NotLogin);
  27. }
  28. FormMain::~FormMain()
  29. {
  30. if(m_timer)
  31. {
  32. m_timer->stop();
  33. delete m_timer;
  34. }
  35. if(m_numChkWs)
  36. {
  37. m_numChkWs->abort();
  38. delete m_numChkWs;
  39. }
  40. if(m_ssoWs)
  41. {
  42. m_ssoWs->abort();
  43. delete m_ssoWs;
  44. }
  45. if(m_upload)
  46. {
  47. m_upload->abort();
  48. m_upload->wait();
  49. delete m_upload;
  50. }
  51. if(m_sync)
  52. {
  53. m_sync->abort();
  54. m_sync->wait();
  55. delete m_sync;
  56. }
  57. if(m_movie)
  58. {
  59. m_movie->stop();
  60. delete m_movie;
  61. }
  62. delete ui;
  63. qDebug()<<QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")\
  64. <<"FormNumchk.FormMain Destroyed.";
  65. }
  66. void FormMain::initUI()
  67. {
  68. ui->pushButtonCharge->setProperty("class","txt-green");
  69. ui->pushButtonLogin->setProperty("class","txt-green");
  70. ui->pushButtonPay->setProperty("class","txt-green");
  71. ui->labelToPay->setStyleSheet("QLabel{color:red}");
  72. ui->pushButtonRefreshUserState->setProperty("class","txt-green");
  73. ui->pushButtonSelect->setProperty("class","txt-green-autowidth");
  74. ui->widgetExactCheck->setProperty("class","lowframe2");
  75. //初始化预检测 实号、空、停、关机对应的显示图片exact_result_bg.jpg
  76. QPixmap exact_result_bg(":/exact_result_bg.jpg");
  77. int nHeight = exact_result_bg.height()/10;
  78. int nWidth = exact_result_bg.width();
  79. ui->labelBarShiHao->setPixmap(exact_result_bg.copy(QRect(0 , 2 * nHeight, nWidth, nHeight)));
  80. ui->labelBarKong->setPixmap(exact_result_bg.copy(QRect(0 , 3 * nHeight, nWidth, nHeight)));
  81. ui->labelBarTing->setPixmap(exact_result_bg.copy(QRect(0 , 4 * nHeight, nWidth, nHeight)));
  82. ui->labelBarGuan->setPixmap(exact_result_bg.copy(QRect(0 , 5 * nHeight, nWidth, nHeight)));
  83. ui->labelBarHrxz->setPixmap(exact_result_bg.copy(QRect(0 , 6 * nHeight, nWidth, nHeight)));
  84. ui->labelBarWfjt->setPixmap(exact_result_bg.copy(QRect(0 , 7 * nHeight, nWidth, nHeight)));
  85. ui->labelBarLdtx->setPixmap(exact_result_bg.copy(QRect(0 , 8 * nHeight, nWidth, nHeight)));
  86. ui->labelBarOther->setPixmap(exact_result_bg.copy(QRect(0 , 9 * nHeight, nWidth, nHeight)));
  87. //初始化图例图标实号、空、停、关机对应的显示图片sample_small.jpg
  88. QPixmap sample_small(":/sample_small.jpg");
  89. nHeight = sample_small.height();
  90. nWidth = sample_small.width()/10;
  91. ui->labelSampleShiHao->setPixmap(sample_small.copy(QRect(2 * nWidth , 0 , nWidth, nHeight)));
  92. ui->labelSampleKong->setPixmap(sample_small.copy(QRect(3 * nWidth , 0 , nWidth, nHeight)));
  93. ui->labelSampleTing->setPixmap(sample_small.copy(QRect(4 * nWidth , 0 , nWidth, nHeight)));
  94. ui->labelSampleGuan->setPixmap(sample_small.copy(QRect(5 * nWidth , 0 , nWidth, nHeight)));
  95. ui->labelSampleHrxz->setPixmap(sample_small.copy(QRect(6 * nWidth , 0 , nWidth, nHeight)));
  96. ui->labelSampleWfjt->setPixmap(sample_small.copy(QRect(7 * nWidth , 0 , nWidth, nHeight)));
  97. ui->labelSampleLdtx->setPixmap(sample_small.copy(QRect(8 * nWidth , 0 , nWidth, nHeight)));
  98. ui->labelSampleOther->setPixmap(sample_small.copy(QRect(9 * nWidth , 0 , nWidth, nHeight)));
  99. ui->widgetTip->setProperty("class","silverbg");
  100. ui->pushButtonQueryFinishedAll->setProperty("class","txt-green-autowidth");
  101. ui->pushButtonQueryDown->setProperty("class","txt-green-autowidth");
  102. ui->pushButtonQueryToDown->setProperty("class","txt-green-autowidth");
  103. }
  104. void FormMain::initVariables()
  105. {
  106. //ui->tableWidgetFinished->installEventFilter(this);
  107. ui->tableWidgetDealing->installEventFilter(this);
  108. ui->tableWidgetCost->installEventFilter(this);
  109. ui->tableWidgetCharge->installEventFilter(this);
  110. //ui->tableWidgetFinished->installEventFilter(this);
  111. int intervals = 5;
  112. m_movie = new QMovie(":/working.gif");
  113. m_movie->start();
  114. m_upload = new AutoUploadFile();
  115. m_sync = new AutoSyncData();
  116. connect(m_upload,SIGNAL(uploadFailed()),this,SLOT(onUploadFailed()));
  117. connect(m_upload,SIGNAL(uploadSucceed()),this,SLOT(onUploadSucceed()));
  118. connect(m_upload,SIGNAL(uploadProgressUpdated()),this,SLOT(onUploadProgressUpdated()));
  119. connect(m_sync,SIGNAL(dataSync()),this,SLOT(onDataSync()));
  120. m_timer = new QTimer();
  121. connect(m_timer,SIGNAL(timeout()),this,SLOT(onTimeOut()));
  122. m_timer->start(intervals*1000);
  123. m_isQueryDealing = false;
  124. m_isQueryFinished = false;
  125. m_userHash = "";
  126. m_ssoHash = "";
  127. m_host = "";
  128. m_port = "";
  129. m_userCode = "";
  130. m_clientName = "";
  131. m_numChkWs = new WSNumChk();
  132. m_ssoWs = new WSSSO();
  133. }
  134. void FormMain::resetDealingDataAreaUI()
  135. {
  136. resetDealingDataListInfo();
  137. }
  138. void FormMain::resetDealingDataListInfo()
  139. {
  140. resetDealingTableWidget(16);
  141. ui->tableWidgetDealing->setEnabled(false);
  142. QTableWidgetItem *item = new QTableWidgetItem();
  143. item->setTextAlignment(Qt::AlignLeft|Qt::AlignVCenter);
  144. item->setText("暂无信息");
  145. ui->tableWidgetDealing->setItem(7,5,item);
  146. ui->tableWidgetDealing->setEnabled(false);
  147. }
  148. void FormMain::resetDealingTableWidget(int rows)
  149. {
  150. QStringList headers;
  151. headers.append("文件ID");
  152. headers.append("状态");
  153. headers.append("文件类型");
  154. headers.append("文件名");
  155. headers.append("文件路径");
  156. headers.append("备注");
  157. headers.append("提交时间");
  158. headers.append("进度");
  159. headers.append("返回信息");
  160. headers.append("返回详情");
  161. headers.append("是否审核");
  162. headers.append("服务端操作状态");
  163. headers.append("进度");
  164. headers.append("处理详情");
  165. ui->tableWidgetDealing->setRowCount(0);
  166. ui->tableWidgetDealing->setColumnCount(0);
  167. ui->tableWidgetDealing->setEditTriggers(QAbstractItemView::NoEditTriggers);
  168. ui->tableWidgetDealing->setColumnCount(14);
  169. ui->tableWidgetDealing->setHorizontalHeaderLabels(headers);
  170. ui->tableWidgetDealing->setRowCount(rows);
  171. ui->tableWidgetDealing->setShowGrid(false);
  172. ui->tableWidgetDealing->setAlternatingRowColors(true);
  173. ui->tableWidgetDealing->setSelectionBehavior(QAbstractItemView::SelectRows);
  174. ui->tableWidgetDealing->setSelectionMode(QAbstractItemView::SingleSelection);
  175. ui->tableWidgetDealing->setColumnWidth(0,0);
  176. ui->tableWidgetDealing->setColumnWidth(1,40);
  177. ui->tableWidgetDealing->setColumnWidth(2,80);//
  178. ui->tableWidgetDealing->setColumnWidth(3,170);
  179. ui->tableWidgetDealing->setColumnWidth(4,0);
  180. ui->tableWidgetDealing->setColumnWidth(5,0);//
  181. ui->tableWidgetDealing->setColumnWidth(6,150);
  182. ui->tableWidgetDealing->setColumnWidth(7,0);
  183. ui->tableWidgetDealing->setColumnWidth(8,0);
  184. ui->tableWidgetDealing->setColumnWidth(9,0);
  185. ui->tableWidgetDealing->setColumnWidth(10,0);
  186. ui->tableWidgetDealing->setColumnWidth(11,0);
  187. ui->tableWidgetDealing->setColumnWidth(12,150);
  188. ui->tableWidgetDealing->setColumnWidth(13,85);
  189. ui->tableWidgetDealing->hideColumn(0);
  190. ui->tableWidgetDealing->hideColumn(4);
  191. ui->tableWidgetDealing->hideColumn(5);
  192. ui->tableWidgetDealing->hideColumn(7);
  193. ui->tableWidgetDealing->hideColumn(8);
  194. ui->tableWidgetDealing->hideColumn(9);
  195. ui->tableWidgetDealing->hideColumn(10);
  196. ui->tableWidgetDealing->hideColumn(11);
  197. ui->tableWidgetDealing->verticalHeader()->setVisible(false);
  198. ui->tableWidgetDealing->horizontalHeader()->setStyleSheet("font:12px");
  199. ui->tableWidgetDealing->horizontalHeader()->setResizeMode(QHeaderView::Fixed);
  200. ui->tableWidgetDealing->verticalHeader()->setResizeMode(QHeaderView::Fixed);
  201. ui->tableWidgetDealing->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
  202. ui->tableWidgetDealing->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
  203. ui->tableWidgetDealing->verticalHeader()->setFixedWidth(30);
  204. ui->tableWidgetDealing->setSortingEnabled(true);
  205. }
  206. void FormMain::fetchDealingList(QMultiMap<QString, QString> map, int rowCount)
  207. {
  208. resetDealingDataListInfo();
  209. if(rowCount==0)
  210. {
  211. return ;
  212. }
  213. resetDealingTableWidget(rowCount);
  214. ui->tableWidgetDealing->setEnabled(true);
  215. QStringList keys;
  216. keys<<"fileid"<<"filestate"<<"filetype"<<"filename"<<"filepath";
  217. keys<<"memo"<<"srvrtime"<<"percent"<<"errmsg"<<"errdetail"<<"isverify"<<"optstatus";
  218. for(int col=0;col<keys.size();col++)
  219. {
  220. QStringList rows = map.values(keys.at(col));
  221. for(int row=0;row<rows.size();row++)
  222. {
  223. QTableWidgetItem *item = new QTableWidgetItem();
  224. item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  225. QString display = rows.at(row);
  226. QString tooltip = display;
  227. if(keys.at(col)=="filetype")
  228. {
  229. if(rows.at(row)=="1")
  230. display = "号码文件";
  231. else if(rows.at(row)=="2")
  232. display = "号段文件";
  233. else
  234. display = "未知";
  235. tooltip = display;
  236. }
  237. else if(keys.at(col)=="filename")
  238. {
  239. item->setTextAlignment(Qt::AlignLeft|Qt::AlignVCenter);
  240. }
  241. if(keys.at(col)=="filestate")
  242. {
  243. delete item;
  244. QLabel *lbl = new QLabel(this);
  245. lbl->setAlignment(Qt::AlignCenter|Qt::AlignHCenter);
  246. int v = display.toInt();
  247. if(v<0)
  248. lbl->setPixmap(QPixmap(":/wrong.png"));
  249. else if(v>=0 && v<=3)
  250. lbl->setMovie(m_movie);
  251. else
  252. lbl->setPixmap(QPixmap(":/right.png"));
  253. ui->tableWidgetDealing->setCellWidget(row,col,lbl);
  254. ui->tableWidgetDealing->item(row,0)->setData(Qt::UserRole,v);
  255. }
  256. else
  257. {
  258. item->setData(Qt::DisplayRole,display);
  259. item->setData(Qt::UserRole,rows.at(row));
  260. item->setData(Qt::ToolTipRole,tooltip);
  261. ui->tableWidgetDealing->setItem(row,col,item);
  262. }
  263. }
  264. }
  265. //显示进度条
  266. for(int row=0;row<rowCount;row++)
  267. {
  268. double percent = ui->tableWidgetDealing->item(row,7)->data(Qt::UserRole).toDouble();
  269. int filestate = ui->tableWidgetDealing->item(row,0)->data(Qt::UserRole).toInt();
  270. QString optstatus = ui->tableWidgetDealing->item(row,11)->data(Qt::UserRole).toString();
  271. QString isverify =ui->tableWidgetDealing->item(row,10)->data(Qt::UserRole).toString();
  272. if(filestate<3)
  273. {
  274. XProgressBar *progress = new XProgressBar();
  275. progress->setProgress(filestate,percent);
  276. ui->tableWidgetDealing->setCellWidget(row,12,progress);
  277. }
  278. else
  279. {
  280. if(isverify=="0")
  281. {
  282. QTableWidgetItem *item = new QTableWidgetItem();
  283. item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  284. item->setData(Qt::DisplayRole,"待审核");
  285. ui->tableWidgetDealing->setItem(row,12,item);
  286. }
  287. else if(isverify=="2")
  288. {
  289. QTableWidgetItem *item = new QTableWidgetItem();
  290. item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  291. item->setData(Qt::DisplayRole,"审核未通过");
  292. ui->tableWidgetDealing->setItem(row,12,item);
  293. }
  294. else
  295. {
  296. QString errmsg = "";
  297. if (optstatus=="0")
  298. {
  299. errmsg = "停止";
  300. }
  301. else if (optstatus=="1")
  302. {
  303. errmsg = "暂停";
  304. }
  305. else if (optstatus=="2")
  306. {
  307. errmsg = "检测中";
  308. filestate = 4;
  309. }
  310. else if (optstatus=="3")
  311. {
  312. errmsg = "处理中";
  313. filestate = 5;
  314. }
  315. else if (optstatus=="4")
  316. {
  317. errmsg = "用户删除";
  318. }
  319. else if (optstatus=="5")
  320. {
  321. errmsg = "异常并停止";
  322. }
  323. else if (optstatus=="5")
  324. {
  325. errmsg = "多次异常,任务终止";
  326. }
  327. else
  328. {
  329. errmsg = "未知状态";
  330. }
  331. if(optstatus=="3" || optstatus == "2")
  332. {
  333. XProgressBar *progress = new XProgressBar();
  334. progress->setProgress(filestate,percent);
  335. ui->tableWidgetDealing->setCellWidget(row,12,progress);
  336. }
  337. else
  338. {
  339. QTableWidgetItem *item = new QTableWidgetItem();
  340. item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  341. item->setData(Qt::DisplayRole,errmsg);
  342. ui->tableWidgetDealing->setItem(row,12,item);
  343. }
  344. }
  345. }
  346. }
  347. //显示文件信息
  348. for(int row=0;row<rowCount;row++)
  349. {
  350. QString filePath = ui->tableWidgetDealing->item(row,4)->data(Qt::UserRole).toString();
  351. QString fileMemo = ui->tableWidgetDealing->item(row,5)->data(Qt::UserRole).toString();
  352. QString tooltip = QString("文件:%1\r\n备注:%2").arg(filePath).arg(fileMemo);
  353. ui->tableWidgetDealing->item(row,3)->setData(Qt::ToolTipRole,tooltip);
  354. }
  355. //显示查看详情信息
  356. for(int row=0;row<rowCount;row++)
  357. {
  358. QPushButton *button = new QPushButton();
  359. button->setText("查看");
  360. button->setProperty("class","txt-green");
  361. button->setCursor(Qt::PointingHandCursor);
  362. connect(button,SIGNAL(clicked()),this,SLOT(onPushButtonViewsClicked()));
  363. QTableWidgetItem *item = ui->tableWidgetDealing->item(row,8);
  364. if(item)
  365. {
  366. if(item->data(Qt::UserRole).toString().isEmpty())
  367. {
  368. button->setEnabled(false);
  369. }
  370. }
  371. ui->tableWidgetDealing->setCellWidget(row,13,button);
  372. }
  373. ui->tableWidgetDealing->sortByColumn(0);
  374. ui->tableWidgetDealing->sortByColumn(0);
  375. }
  376. void FormMain::queryDealing()
  377. {
  378. QMultiMap<QString,QString> list = SNCDataBase::getAllUpload("bzjc",m_clientID,m_userCode);
  379. int cols = list.uniqueKeys().size();
  380. int rows = 0;
  381. if(cols!=0)
  382. rows = list.size()/cols;
  383. fetchDealingList(list,rows);
  384. }
  385. void FormMain::resetFinishedDataAreaUI()
  386. {
  387. resetFinishedDataListInfo();
  388. resetFinishedDataDetailInfo();
  389. }
  390. void FormMain::resetFinishedDataListInfo()
  391. {
  392. resetFinishedTableWidget(10);
  393. ui->tableWidgetFinished->setEnabled(false);
  394. QTableWidgetItem *item = new QTableWidgetItem();
  395. item->setTextAlignment(Qt::AlignLeft|Qt::AlignVCenter);
  396. item->setText(" 暂无信息");
  397. ui->tableWidgetFinished->setItem(5,5,item);
  398. ui->tableWidgetFinished->setEnabled(false);
  399. }
  400. void FormMain::resetFinishedDataDetailInfo()
  401. {
  402. ui->labelShiHao->setText("实号");
  403. ui->labelKong->setText("空号");
  404. ui->labelTing->setText("停机");
  405. ui->labelGuan->setText("关机");
  406. ui->labelWfjt->setText("无法接通");
  407. ui->labelLdtx->setText("来电提醒");
  408. ui->labelHrxz->setText("呼入限制");
  409. ui->labelOther->setText("其他");
  410. //设置上述状态比例的默认宽度为0
  411. ui->labelBarShiHao->setFixedWidth(0);
  412. ui->labelBarKong->setFixedWidth(0);
  413. ui->labelBarTing->setFixedWidth(0);
  414. ui->labelBarGuan->setFixedWidth(0);
  415. ui->labelBarWfjt->setFixedWidth(0);
  416. ui->labelBarLdtx->setFixedWidth(0);
  417. ui->labelBarHrxz->setFixedWidth(0);
  418. ui->labelBarOther->setFixedWidth(0);
  419. }
  420. void FormMain::resetFinishedTableWidget(int rows)
  421. {
  422. QStringList headers;
  423. headers.append("选择");
  424. headers.append("类型");
  425. headers.append("详情");
  426. headers.append("统计");
  427. headers.append("提交时间");
  428. headers.append("完成时间");
  429. headers.append("已检测");
  430. headers.append("费用");
  431. headers.append("赠送消耗");
  432. headers.append("状态");
  433. headers.append("放行");
  434. headers.append("下载");
  435. ui->tableWidgetFinished->setRowCount(0);
  436. ui->tableWidgetFinished->setColumnCount(0);
  437. ui->tableWidgetFinished->setEditTriggers(QAbstractItemView::NoEditTriggers);
  438. ui->tableWidgetFinished->setColumnCount(12);
  439. ui->tableWidgetFinished->setHorizontalHeaderLabels(headers);
  440. ui->tableWidgetFinished->setRowCount(rows);
  441. ui->tableWidgetFinished->setShowGrid(false);
  442. ui->tableWidgetFinished->setAlternatingRowColors(true);
  443. ui->tableWidgetFinished->setSelectionBehavior(QAbstractItemView::SelectRows);
  444. ui->tableWidgetFinished->setSelectionMode(QAbstractItemView::SingleSelection);
  445. ui->tableWidgetFinished->setColumnWidth(0,30);
  446. ui->tableWidgetFinished->setColumnWidth(1,40);
  447. ui->tableWidgetFinished->setColumnWidth(2,35);
  448. ui->tableWidgetFinished->setColumnWidth(3,40);
  449. ui->tableWidgetFinished->setColumnWidth(4,125);
  450. ui->tableWidgetFinished->setColumnWidth(5,125);
  451. ui->tableWidgetFinished->setColumnWidth(6,65);
  452. ui->tableWidgetFinished->setColumnWidth(7,75);
  453. ui->tableWidgetFinished->setColumnWidth(8,60);
  454. ui->tableWidgetFinished->setColumnWidth(9,30);
  455. ui->tableWidgetFinished->setColumnWidth(10,30);
  456. ui->tableWidgetFinished->setColumnWidth(11,60);
  457. ui->tableWidgetFinished->hideColumn(3);
  458. ui->tableWidgetFinished->verticalHeader()->setVisible(false);
  459. ui->tableWidgetFinished->horizontalHeader()->setStyleSheet("font:12px");
  460. ui->tableWidgetFinished->horizontalHeader()->setResizeMode(QHeaderView::Fixed);
  461. ui->tableWidgetFinished->verticalHeader()->setResizeMode(QHeaderView::Fixed);
  462. ui->tableWidgetFinished->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
  463. ui->tableWidgetFinished->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
  464. ui->tableWidgetFinished->verticalHeader()->setFixedWidth(30);
  465. ui->tableWidgetFinished->setSortingEnabled(true);
  466. }
  467. void FormMain::fetchFinishedList(QMultiMap<QString, QString> map, int rowCount)
  468. {
  469. resetFinishedDataListInfo();
  470. if(rowCount==0)
  471. {
  472. return ;
  473. }
  474. resetFinishedTableWidget(rowCount);
  475. ui->tableWidgetFinished->setEnabled(true);
  476. QStringList keys;
  477. keys<<"batchid"<<"batchtype"<<"detail"<<"resulttj"<<"submittime"<<"finishtime";
  478. keys<<"finishcount"<<"settlefee"<<"giftfee"<<"optstatus"<<"ispass"<<"isdeliver";
  479. for(int col=0;col<keys.size();col++)
  480. {
  481. QStringList rows = map.values(keys.at(col));
  482. for(int row=0;row<rows.size();row++)
  483. {
  484. QString display = rows.at(row);
  485. QString tooltip = display;
  486. QTableWidgetItem *item;
  487. item = new QTableWidgetItem();
  488. item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  489. QLabel *lbl ;
  490. lbl = new QLabel(this);
  491. lbl->setAlignment(Qt::AlignCenter|Qt::AlignHCenter);
  492. if(keys.at(col)=="batchid")
  493. {
  494. //item->setData(Qt::DisplayRole,display.toInt());
  495. item->setCheckState(Qt::Unchecked);
  496. }
  497. else if(keys.at(col)=="finishcount")
  498. {
  499. item->setData(Qt::DisplayRole,display.toInt());
  500. }
  501. else if(keys.at(col)=="settlefee")
  502. {
  503. item->setData(Qt::DisplayRole,display.toDouble());
  504. }
  505. else if(keys.at(col)=="giftfee")
  506. {
  507. item->setData(Qt::DisplayRole,display.toDouble());
  508. }
  509. else if(keys.at(col)=="detail")
  510. {
  511. if(display.isEmpty())
  512. lbl->setPixmap(QPixmap(":/no-information.png"));
  513. else
  514. lbl->setPixmap(QPixmap(":/information.png"));
  515. lbl->setToolTip(tooltip);
  516. }
  517. else if(keys.at(col)=="ispass")
  518. {
  519. if(display=="0")
  520. {
  521. lbl->setPixmap(QPixmap(":/reject.png"));
  522. tooltip = "未放行";
  523. }
  524. else
  525. {
  526. lbl->setPixmap(QPixmap(":/accept.png"));
  527. tooltip = "已放行";
  528. }
  529. lbl->setToolTip(tooltip);
  530. }
  531. else if(keys.at(col)=="optstatus")
  532. {
  533. if(rows.at(row)=="0")
  534. {
  535. tooltip = "停止";
  536. lbl->setPixmap(QPixmap(":/stop.png"));
  537. }
  538. else if(rows.at(row)=="1")
  539. {
  540. tooltip = "暂停";
  541. lbl->setPixmap(QPixmap(":/pause.png"));
  542. }
  543. else if(rows.at(row)=="2")
  544. {
  545. tooltip = "处理中";
  546. lbl->setPixmap(QPixmap(":/play.png"));
  547. }
  548. else if(rows.at(row)=="3")
  549. {
  550. tooltip = "处理完毕";
  551. lbl->setPixmap(QPixmap(":/accept.png"));
  552. }
  553. else if(rows.at(row)=="4")
  554. {
  555. tooltip = "用户删除";
  556. lbl->setPixmap(QPixmap(":/delete.png"));
  557. }
  558. else if(rows.at(row)=="5")
  559. {
  560. tooltip = "异常并终止";
  561. lbl->setPixmap(QPixmap(":/error.png"));
  562. }
  563. else if(rows.at(row)=="6")
  564. {
  565. tooltip = "多次异常";
  566. lbl->setPixmap(QPixmap(":/error.png"));
  567. }
  568. else
  569. {
  570. lbl->setText("其他");
  571. tooltip = "其他";
  572. }
  573. lbl->setToolTip(tooltip);
  574. }
  575. else if(keys.at(col)=="isdeliver")
  576. {
  577. if(rows.at(row)=="0")
  578. {
  579. tooltip = "未下载";
  580. lbl->setPixmap(QPixmap(":/todown.png"));
  581. }
  582. else
  583. {
  584. tooltip = "已下载";
  585. lbl->setPixmap(QPixmap(":/down.png"));
  586. }
  587. lbl->setToolTip(tooltip);
  588. }
  589. else if(keys.at(col)=="batchtype")
  590. {
  591. if(rows.at(row)=="1")
  592. display = "正常";
  593. else if(rows.at(row)=="2")
  594. display = "重测";
  595. else if(rows.at(row)=="3")
  596. display = "测试";
  597. else
  598. display = "其他";
  599. item->setData(Qt::DisplayRole,display);
  600. }
  601. else
  602. {
  603. item->setData(Qt::DisplayRole,display);
  604. }
  605. item->setData(Qt::UserRole,rows.at(row));
  606. item->setData(Qt::ToolTipRole,tooltip);
  607. if(keys.at(col)=="detail" || keys.at(col)=="optstatus" || keys.at(col)=="ispass")
  608. {
  609. delete item;
  610. ui->tableWidgetFinished->setCellWidget(row,col,lbl);
  611. }
  612. else if(keys.at(col)=="isdeliver")
  613. {
  614. delete item;
  615. delete lbl;
  616. QPushButton *btn = new QPushButton(this);
  617. btn->setText("");
  618. btn->setCursor(Qt::PointingHandCursor);
  619. btn->setProperty("class","imagebutton");
  620. connect(btn,SIGNAL(clicked()),this,SLOT(onSingleDownloadClick()));
  621. ui->tableWidgetFinished->setCellWidget(row,col,btn);
  622. }
  623. else
  624. {
  625. delete lbl;
  626. ui->tableWidgetFinished->setItem(row,col,item);
  627. }
  628. }
  629. }
  630. ui->tableWidgetFinished->sortByColumn(0);
  631. ui->tableWidgetFinished->sortByColumn(0);
  632. }
  633. void FormMain::queryFinished(QString isdeliver)
  634. {
  635. QMultiMap<QString,QString> list = SNCDataBase::getBzjcCheckFinishInfos(m_userCode,m_clientID,isdeliver);
  636. int cols = list.uniqueKeys().size();
  637. int rows = 0;
  638. if(cols!=0)
  639. rows = list.size()/cols;
  640. fetchFinishedList(list,rows);
  641. }
  642. void FormMain::download()
  643. {
  644. }
  645. void FormMain::setAccountInfo(QMap<QString,QString> info)
  646. {
  647. m_userHash = info.value("userhash");
  648. m_userCode = info.value("usercode");
  649. m_ssoHash = info.value("ssohash");
  650. //m_upload->setUserInfo("bzjc",m_clientID,m_userCode,m_userHash,m_host,m_port);
  651. //m_sync->setUserInfo("bzjc",m_clientID,m_userCode,m_userHash,m_host,m_port);
  652. ui->tabWidget->setTabText(1,"下载检测结果");
  653. ui->tabWidget->setTabIcon(1,QIcon(""));
  654. if(!m_timer->isActive())
  655. m_timer->start();
  656. if(!m_ssoHash.isEmpty())
  657. {
  658. if(!m_userHash.isEmpty())
  659. {
  660. setAccountAreaUI(LoginOk);
  661. }
  662. else
  663. {
  664. if(!m_userCode.isEmpty())
  665. {
  666. setAccountAreaUI(LoginError);
  667. }
  668. else
  669. {
  670. setAccountAreaUI(NotBind);
  671. }
  672. resetUI();
  673. }
  674. }
  675. else
  676. {
  677. resetUI();
  678. setAccountAreaUI(NotLogin);
  679. }
  680. }
  681. void FormMain::stopService()
  682. {
  683. if(m_timer)
  684. {
  685. m_timer->stop();
  686. }
  687. if(m_sync)
  688. {
  689. m_sync->abort();
  690. m_sync->wait();
  691. }
  692. if(m_upload)
  693. {
  694. m_upload->abort();
  695. m_upload->wait();
  696. }
  697. }
  698. void FormMain::setHost(QString host,QString port)
  699. {
  700. m_host = host;
  701. m_port = port;
  702. m_numChkWs->setHost(m_host,m_port);
  703. }
  704. void FormMain::setClientName(QString name)
  705. {
  706. m_clientName = name;
  707. }
  708. void FormMain::setClientID(QString clientID)
  709. {
  710. m_clientID = clientID;
  711. }
  712. void FormMain::updateUserState()
  713. {
  714. refreshAccountInfo();
  715. }
  716. void FormMain::resetUI()
  717. {
  718. resetDealingDataAreaUI();
  719. resetFinishedDataAreaUI();
  720. resetCostDataAreaUI();
  721. resetChargeDataAreaUI();
  722. ui->tabWidget->setCurrentIndex(0);
  723. ui->tabWidget->setStyleSheet("font:12px");
  724. }
  725. bool FormMain::eventFilter(QObject *object, QEvent *event)
  726. {
  727. if( event->type() == QEvent::KeyPress)
  728. {
  729. QKeyEvent * pKeyEvent = static_cast<QKeyEvent *>(event);
  730. if (pKeyEvent->key() == Qt::Key_Control||pKeyEvent->key() == Qt::Key_Shift)
  731. {
  732. //ui->tableWidgetDealing->setSelectionMode(QAbstractItemView::ExtendedSelection);
  733. //ui->tableWidgetFinished->setSelectionMode(QAbstractItemView::ExtendedSelection);
  734. return true;
  735. }
  736. }
  737. else if( event->type() == QEvent::KeyRelease)
  738. {
  739. QKeyEvent * pKeyEvent = static_cast<QKeyEvent *>(event);
  740. if (pKeyEvent->key() == Qt::Key_Control||pKeyEvent->key() == Qt::Key_Shift)
  741. {
  742. //ui->tableWidgetDealing->setSelectionMode(QAbstractItemView::MultiSelection);
  743. //ui->tableWidgetFinished->setSelectionMode(QAbstractItemView::MultiSelection);
  744. return true;
  745. }
  746. }
  747. return QWidget::eventFilter(object, event);
  748. }
  749. bool FormMain::addFileToZip(QString zipName, QStringList files)
  750. {
  751. Zip::ErrorCode ec;
  752. Zip uz;
  753. QFile file(zipName);
  754. if(!file.open(QIODevice::WriteOnly)){
  755. return false ;
  756. }
  757. file.close();
  758. ec = uz.createArchive(zipName);
  759. if (ec != Zip::Ok) {
  760. return false;
  761. }
  762. ec = uz.addFiles(files);
  763. if (ec != Zip::Ok) {
  764. uz.closeArchive();
  765. return false;
  766. }
  767. if (uz.closeArchive() != Zip::Ok) {
  768. return false;
  769. }
  770. return true;
  771. }
  772. void FormMain::displaySelected(QString detail)
  773. {
  774. QStringList list = detail.split("\r\n");
  775. if(list.size()!=8)
  776. {
  777. resetFinishedDataDetailInfo();
  778. return;
  779. }
  780. int i=0;
  781. QStringList rates;
  782. for(int i=0;i<list.size();i++)
  783. {
  784. QRegExp rx("\\((.+)\\)");
  785. int pos = rx.indexIn(list.at(i));
  786. if(pos>0)
  787. {
  788. QString match = rx.capturedTexts().at(1);
  789. rates<<match.replace("%","");
  790. }
  791. else
  792. {
  793. rates<<"0";
  794. }
  795. }
  796. ui->labelKong->setText(list.at(i++));
  797. ui->labelTing->setText(list.at(i++));
  798. ui->labelGuan->setText(list.at(i++));
  799. ui->labelHrxz->setText(list.at(i++));
  800. ui->labelWfjt->setText(list.at(i++));
  801. ui->labelLdtx->setText(list.at(i++));
  802. ui->labelShiHao->setText(list.at(i++));
  803. ui->labelOther->setText(list.at(i++));
  804. i = 0;
  805. int barLength = 650;
  806. ui->labelBarKong->setFixedWidth(rates.at(i++).toDouble()*barLength/100);
  807. ui->labelBarTing->setFixedWidth(rates.at(i++).toDouble()*barLength/100);
  808. ui->labelBarGuan->setFixedWidth(rates.at(i++).toDouble()*barLength/100);
  809. ui->labelBarWfjt->setFixedWidth(rates.at(i++).toDouble()*barLength/100);
  810. ui->labelBarHrxz->setFixedWidth(rates.at(i++).toDouble()*barLength/100);
  811. ui->labelBarLdtx->setFixedWidth(rates.at(i++).toDouble()*barLength/100);
  812. ui->labelBarShiHao->setFixedWidth(rates.at(i++).toDouble()*barLength/100);
  813. ui->labelBarOther->setFixedWidth(rates.at(i++).toDouble()*barLength/100);
  814. }
  815. void FormMain::resetCostDataAreaUI()
  816. {
  817. resetCostDataListInfo();
  818. ui->dateEditStart->setDate(QDate::currentDate().addDays(-7));
  819. ui->dateEditEnd->setDate(QDate::currentDate());
  820. ui->dateEditEnd->setMaximumDate(QDate::currentDate());
  821. ui->dateEditStart->setMinimumDate(QDate::currentDate().addDays(-7));
  822. }
  823. void FormMain::resetCostDataListInfo()
  824. {
  825. resetCostTableWidget(16);
  826. ui->tableWidgetCost->setEnabled(false);
  827. QTableWidgetItem *item = new QTableWidgetItem();
  828. item->setTextAlignment(Qt::AlignLeft|Qt::AlignVCenter);
  829. item->setText(" 暂无信息");
  830. ui->tableWidgetCost->setItem(7,3,item);
  831. ui->tableWidgetCost->setEnabled(false);
  832. }
  833. void FormMain::resetCostTableWidget(int rows)
  834. {
  835. QStringList headers;
  836. headers.append("编号");
  837. headers.append("所属用户");
  838. headers.append("提交时间");
  839. headers.append("完成时间");
  840. headers.append("提交数");
  841. headers.append("已检测");
  842. headers.append("单价");
  843. headers.append("费用");
  844. headers.append("赠送消耗");
  845. ui->tableWidgetCost->setRowCount(0);
  846. ui->tableWidgetCost->setColumnCount(0);
  847. ui->tableWidgetCost->setEditTriggers(QAbstractItemView::NoEditTriggers);
  848. ui->tableWidgetCost->setColumnCount(9);
  849. ui->tableWidgetCost->setHorizontalHeaderLabels(headers);
  850. ui->tableWidgetCost->setRowCount(rows);
  851. ui->tableWidgetCost->setShowGrid(false);
  852. ui->tableWidgetCost->setAlternatingRowColors(true);
  853. ui->tableWidgetCost->setSelectionBehavior(QAbstractItemView::SelectRows);
  854. ui->tableWidgetCost->setSelectionMode(QAbstractItemView::SingleSelection);
  855. ui->tableWidgetCost->setColumnWidth(0,50);
  856. ui->tableWidgetCost->setColumnWidth(1,115);
  857. ui->tableWidgetCost->setColumnWidth(2,140);
  858. ui->tableWidgetCost->setColumnWidth(3,125);
  859. ui->tableWidgetCost->setColumnWidth(4,45);
  860. ui->tableWidgetCost->setColumnWidth(5,45);
  861. ui->tableWidgetCost->setColumnWidth(6,50);
  862. ui->tableWidgetCost->setColumnWidth(7,50);
  863. ui->tableWidgetCost->setColumnWidth(8,55);
  864. ui->tableWidgetCost->horizontalHeader()->setStyleSheet("font:12px");
  865. ui->tableWidgetCost->horizontalHeader()->setResizeMode(QHeaderView::Fixed);
  866. ui->tableWidgetCost->verticalHeader()->setVisible(false);
  867. ui->tableWidgetCost->verticalHeader()->setResizeMode(QHeaderView::Fixed);
  868. ui->tableWidgetCost->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
  869. ui->tableWidgetCost->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
  870. ui->tableWidgetCost->verticalHeader()->setFixedWidth(30);
  871. ui->tableWidgetCost->setSortingEnabled(true);
  872. }
  873. void FormMain::fetchCostList(QMultiMap<QString, QString> map, int rowCount)
  874. {
  875. resetCostDataListInfo();
  876. if(rowCount==0)
  877. {
  878. return ;
  879. }
  880. resetCostTableWidget(rowCount);
  881. ui->tableWidgetCost->setEnabled(true);
  882. QStringList keys;
  883. keys<<"batchid"<<"usercode"<<"submittime"<<"finishtime"<<"numcount";
  884. keys<<"finishcount"<<"price"<<"settlefee"<<"giftfee";
  885. for(int col=0;col<keys.size();col++)
  886. {
  887. QStringList rows = map.values(keys.at(col));
  888. for(int row=0;row<rows.size();row++)
  889. {
  890. QString display = rows.at(row);
  891. QTableWidgetItem *item;
  892. item = new QTableWidgetItem();
  893. if(keys.at(col)=="submittime"||keys.at(col)=="finishtime")
  894. {
  895. display = rows.at(row);
  896. }
  897. if(!display.isEmpty())
  898. {
  899. if(keys.at(col)=="batchid")
  900. item->setData(Qt::DisplayRole,display.toInt());
  901. else if(keys.at(col)=="numcount")
  902. item->setData(Qt::DisplayRole,display.toInt());
  903. else if(keys.at(col)=="finishcount")
  904. item->setData(Qt::DisplayRole,display.toInt());
  905. else if(keys.at(col)=="price")
  906. item->setData(Qt::DisplayRole,display.toDouble());
  907. else if(keys.at(col)=="settlefee")
  908. item->setData(Qt::DisplayRole,display.toDouble());
  909. else if(keys.at(col)=="giftfee")
  910. item->setData(Qt::DisplayRole,display.toDouble());
  911. else
  912. item->setData(Qt::DisplayRole,display);
  913. }
  914. item->setData(Qt::UserRole,rows.at(row));
  915. item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  916. ui->tableWidgetCost->setItem(row,col,item);
  917. }
  918. }
  919. ui->tableWidgetCost->sortByColumn(0);
  920. ui->tableWidgetCost->sortByColumn(0);
  921. }
  922. void FormMain::queryCost(bool display)
  923. {
  924. QString dateStart = ui->dateEditStart_2->text();
  925. QString dateEnd = ui->dateEditEnd_2->text();
  926. QString json = m_numChkWs->getCostInfo(dateStart,dateEnd,m_userHash);
  927. if(!json.isEmpty()){
  928. RespGetCostInfo response(json);
  929. if(response.getRtnCode()<0)
  930. showMessage(response.getRtnCode(),display);
  931. else
  932. fetchCostList(response.getRs(),response.getRsCount());
  933. }
  934. else
  935. {
  936. showMessage(0,display);
  937. }
  938. }
  939. void FormMain::resetChargeDataAreaUI()
  940. {
  941. resetChargeDataListInfo();
  942. ui->dateEditStart_2->setDate(QDate::currentDate().addDays(-30));
  943. ui->dateEditEnd_2->setDate(QDate::currentDate());
  944. }
  945. void FormMain::resetChargeDataListInfo()
  946. {
  947. resetChargeTableWidget(16);
  948. ui->tableWidgetCharge->setEnabled(false);
  949. QTableWidgetItem *item = new QTableWidgetItem();
  950. item->setTextAlignment(Qt::AlignLeft|Qt::AlignVCenter);
  951. item->setText(" 暂无信息");
  952. ui->tableWidgetCharge->setItem(7,3,item);
  953. ui->tableWidgetCharge->setEnabled(false);
  954. }
  955. void FormMain::resetChargeTableWidget(int rows)
  956. {
  957. QStringList headers;
  958. headers.append("编号");
  959. headers.append("所属用户");
  960. headers.append("充值时间");
  961. headers.append("充值金额");
  962. headers.append("赠送金额");
  963. ui->tableWidgetCharge->setRowCount(0);
  964. ui->tableWidgetCharge->setColumnCount(0);
  965. ui->tableWidgetCharge->setEditTriggers(QAbstractItemView::NoEditTriggers);
  966. ui->tableWidgetCharge->setColumnCount(5);
  967. ui->tableWidgetCharge->setHorizontalHeaderLabels(headers);
  968. ui->tableWidgetCharge->setRowCount(rows);
  969. ui->tableWidgetCharge->setShowGrid(false);
  970. ui->tableWidgetCharge->setAlternatingRowColors(true);
  971. ui->tableWidgetCharge->setSelectionBehavior(QAbstractItemView::SelectRows);
  972. ui->tableWidgetCharge->setSelectionMode(QAbstractItemView::SingleSelection);
  973. ui->tableWidgetCharge->setColumnWidth(0,50);
  974. ui->tableWidgetCharge->setColumnWidth(1,115);
  975. ui->tableWidgetCharge->setColumnWidth(2,140);
  976. ui->tableWidgetCharge->setColumnWidth(3,195);
  977. ui->tableWidgetCharge->setColumnWidth(4,175);
  978. ui->tableWidgetCharge->verticalHeader()->setVisible(false);
  979. ui->tableWidgetCharge->horizontalHeader()->setStyleSheet("font:12px");
  980. ui->tableWidgetCharge->horizontalHeader()->setResizeMode(QHeaderView::Fixed);
  981. ui->tableWidgetCharge->verticalHeader()->setResizeMode(QHeaderView::Fixed);
  982. ui->tableWidgetCharge->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
  983. ui->tableWidgetCharge->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
  984. ui->tableWidgetCharge->verticalHeader()->setFixedWidth(30);
  985. ui->tableWidgetCharge->setSortingEnabled(true);
  986. }
  987. void FormMain::fetchChargeList(QMultiMap<QString, QString> map, int rowCount)
  988. {
  989. resetChargeDataListInfo();
  990. if(rowCount==0)
  991. {
  992. return ;
  993. }
  994. resetChargeTableWidget(rowCount);
  995. ui->tableWidgetCharge->setEnabled(true);
  996. QStringList keys;
  997. keys<<"chargeid"<<"usercode"<<"chargetime"<<"chargemoney";
  998. keys<<"giftmoney";
  999. for(int col=0;col<keys.size();col++)
  1000. {
  1001. QStringList rows = map.values(keys.at(col));
  1002. for(int row=0;row<rows.size();row++)
  1003. {
  1004. QString display = rows.at(row);
  1005. QTableWidgetItem *item;
  1006. item = new QTableWidgetItem();
  1007. if(keys.at(col)=="chargetime")
  1008. {
  1009. //display = rows.at(row).mid(6,10);
  1010. display = rows.at(row);
  1011. }
  1012. item->setData(Qt::UserRole,rows.at(row));
  1013. if(!display.isEmpty())
  1014. {
  1015. if(keys.at(col)=="chargeid")
  1016. item->setData(Qt::DisplayRole,display.toInt());
  1017. else if(keys.at(col)=="chargemoney")
  1018. item->setData(Qt::DisplayRole,display.toDouble());
  1019. else if(keys.at(col)=="giftmoney")
  1020. item->setData(Qt::DisplayRole,display.toDouble());
  1021. else
  1022. item->setData(Qt::DisplayRole,display);
  1023. }
  1024. item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
  1025. ui->tableWidgetCharge->setItem(row,col,item);
  1026. }
  1027. }
  1028. ui->tableWidgetCharge->sortByColumn(0);
  1029. ui->tableWidgetCharge->sortByColumn(0);
  1030. }
  1031. void FormMain::queryCharge(bool display)
  1032. {
  1033. QString dateStart = ui->dateEditStart_2->text();
  1034. QString dateEnd = ui->dateEditEnd_2->text();
  1035. QString json = m_numChkWs->getChargeInfo(dateStart,dateEnd,m_userHash);
  1036. if(!json.isEmpty())
  1037. {
  1038. RespGetChargeInfo response(json);
  1039. if(response.getRtnCode()==-1)
  1040. showMessage(-1,display);
  1041. else
  1042. fetchChargeList(response.getRs(),response.getRsCount());
  1043. }
  1044. else
  1045. {
  1046. showMessage(0,display);
  1047. }
  1048. }
  1049. QString FormMain::getSaveZipFileName()
  1050. {
  1051. QFileDialog::Options options;
  1052. QString selectedFilter;
  1053. QString exportDir = SNCDataBase::getExportDir();
  1054. QString defaultZipFileName = QString(m_clientName);
  1055. int count = 0;
  1056. QString str ="";
  1057. QString download = "";
  1058. for(int i=0;i<ui->tableWidgetFinished->rowCount();i++)
  1059. {
  1060. QTableWidgetItem *item = ui->tableWidgetFinished->item(i,0);
  1061. if(item)
  1062. {
  1063. if(item->checkState()==Qt::Checked)
  1064. {
  1065. count++;
  1066. str += "_" + item->text();
  1067. QWidget *widget = ui->tableWidgetFinished->cellWidget(i,10);
  1068. if(widget)
  1069. {
  1070. QLabel *lbl = qobject_cast<QLabel*>(widget);
  1071. if(lbl->toolTip()!="已放行")
  1072. {
  1073. download += item->data(Qt::UserRole).toString()+ " ";
  1074. }
  1075. }
  1076. }
  1077. }
  1078. }
  1079. if(count==0)
  1080. return "";
  1081. if(!download.isEmpty())
  1082. {
  1083. QMessageBox::critical(this,"提示","您选择的单子" + download + "现在还没有放行,暂时无法下载,请稍候再试!",QMessageBox::Ok);
  1084. return "";
  1085. }
  1086. defaultZipFileName += "_" + QString::number(count) + str ;
  1087. QString saveZipFileName = QFileDialog::getSaveFileName(this,"另存为",exportDir + "\\" + defaultZipFileName,
  1088. tr("ZIP Files (*.zip)"),
  1089. &selectedFilter,
  1090. options);
  1091. if(!saveZipFileName.isEmpty())
  1092. {
  1093. QFileInfo fileInfo(saveZipFileName);
  1094. exportDir = fileInfo.absolutePath();
  1095. SNCDataBase::updateExportDir(exportDir);
  1096. }
  1097. return saveZipFileName;
  1098. }
  1099. QString FormMain::getSaveFileName(QString id)
  1100. {
  1101. QFileDialog::Options options;
  1102. QString selectedFilter;
  1103. QString exportDir = SNCDataBase::getExportDir();
  1104. QString defaultZipFileName = m_clientName + "_" + id ;
  1105. QString saveZipFileName = QFileDialog::getSaveFileName(this,"另存为",exportDir + "\\" + defaultZipFileName,
  1106. tr("ZIP Files (*.zip)"),
  1107. &selectedFilter,
  1108. options);
  1109. if(!saveZipFileName.isEmpty())
  1110. {
  1111. QFileInfo fileInfo(saveZipFileName);
  1112. exportDir = fileInfo.absolutePath();
  1113. SNCDataBase::updateExportDir(exportDir);
  1114. }
  1115. return saveZipFileName;
  1116. }
  1117. void FormMain::setAccountAreaUI(AccountLoginState state)
  1118. {
  1119. m_state = state;
  1120. switch(state)
  1121. {
  1122. case LoginOk:
  1123. ui->labelTip->setText("空号检测服务已经连接!");
  1124. ui->widgetAccountInfo->setVisible(true);
  1125. ui->pushButtonLogin->setVisible(false);
  1126. ui->labelTip2->setText("");
  1127. refreshAccountInfo();
  1128. break;
  1129. case NotLogin:
  1130. ui->labelTip->setText("您需要");
  1131. ui->widgetAccountInfo->setVisible(false);
  1132. ui->pushButtonLogin->setVisible(true);
  1133. ui->widgetToPay->setVisible(false);
  1134. ui->labelTip2->setText("才可以使用该功能!");
  1135. break;
  1136. case NotBind:
  1137. ui->labelTip->setText("空号检测服务尚未开通!");
  1138. ui->widgetAccountInfo->setVisible(false);
  1139. ui->pushButtonLogin->setVisible(false);
  1140. ui->widgetToPay->setVisible(false);
  1141. ui->labelTip2->setText("");
  1142. break;
  1143. case LoginError:
  1144. ui->labelTip->setText("空号检测服务无法连接!");
  1145. ui->widgetAccountInfo->setVisible(false);
  1146. ui->pushButtonLogin->setVisible(false);
  1147. ui->widgetToPay->setVisible(false);
  1148. ui->labelTip2->setText("");
  1149. break;
  1150. }
  1151. changeImage(state);
  1152. }
  1153. void FormMain::changeImage(AccountLoginState state)
  1154. {
  1155. QPixmap pixamp(":/service_state.png");
  1156. int nHeight = pixamp.height();
  1157. int nWidth = pixamp.width()/4;
  1158. ui->labelStateImage->setPixmap(pixamp.copy(QRect(state * nWidth , 0, nWidth, nHeight)));
  1159. }
  1160. void FormMain::refreshAccountInfo()
  1161. {
  1162. bool succeed =false;
  1163. QString json = m_numChkWs->getUserBalance(m_userHash);
  1164. if(!json.isEmpty()){
  1165. RespGetUserBlance response (json);
  1166. if(response.getRtnCode()==1){
  1167. ui->labelGiftBalance->setText("¥" + response.getGiftMoney());
  1168. ui->labelUserBlance->setText("¥" + response.getBlance());
  1169. ui->labelValidNum->setText(response.getValidNum());
  1170. ui->labelToPay->setText(QString(" 待付总金额:¥%1 ").arg(response.getToPayMoney()));
  1171. succeed = true;
  1172. if(response.getToPayMoney().toDouble()==0)
  1173. {
  1174. ui->widgetToPay->setVisible(false);
  1175. }
  1176. else
  1177. {
  1178. ui->widgetToPay->setVisible(true);
  1179. }
  1180. }
  1181. }
  1182. if(!succeed)
  1183. {
  1184. ui->labelGiftBalance->setText("N/A");
  1185. ui->labelUserBlance->setText("N/A");
  1186. ui->labelValidNum->setText("N/A");
  1187. ui->labelToPay->setText("N/A");
  1188. ui->widgetToPay->setVisible(false);
  1189. }
  1190. }
  1191. bool FormMain::chkAccountState(AccountLoginState state)
  1192. {
  1193. bool ret = false;
  1194. switch(state)
  1195. {
  1196. case NotLogin:
  1197. QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok);
  1198. break;
  1199. case NotBind:
  1200. QMessageBox::critical(this,"提示","此项服务尚未开通,请开通后再操作!",QMessageBox::Ok);
  1201. break;
  1202. case LoginError:
  1203. QMessageBox::critical(this,"提示","此项服务暂时无法连接,请稍候重试!",QMessageBox::Ok);
  1204. break;
  1205. default:
  1206. ret = true;
  1207. }
  1208. return ret;
  1209. }
  1210. void FormMain::showMessage(int type, bool display)
  1211. {
  1212. QString msg = "";
  1213. switch(type)
  1214. {
  1215. case 0:
  1216. msg = "网络无法连接!";
  1217. break;
  1218. case -1:
  1219. msg = "登录超时,请重新登录!";
  1220. break;
  1221. case -2:
  1222. msg = "查询日期间隔超过限制!";
  1223. break;
  1224. case -3:
  1225. msg = "查询到的记录数超过限制 (请缩小查询日期范围)!";
  1226. break;
  1227. default:
  1228. break;
  1229. }
  1230. if(display)
  1231. {
  1232. QMessageBox::critical(this,"提示",msg,QMessageBox::Ok);
  1233. }
  1234. }
  1235. void FormMain::on_pushButtonUpload_clicked()
  1236. {
  1237. if(!chkAccountState(m_state))
  1238. return;
  1239. DialogSubmit dialog(this);
  1240. connect(&dialog,SIGNAL(dataUpdated()),this,SLOT(onDataUpdated()));
  1241. dialog.setUserCode(m_userCode);
  1242. dialog.setClientID(m_clientID);
  1243. dialog.exec();
  1244. queryDealing();
  1245. }
  1246. void FormMain::on_pushButtonQueryCharge_clicked()
  1247. {
  1248. if(!chkAccountState(m_state))
  1249. return;
  1250. if(!checkLastClickTime(sender()))
  1251. return ;
  1252. ui->labelQueryCharge->setText("正在查询,请稍候...");
  1253. ui->labelQueryCharge->setStyleSheet("QLabel{color:#08a61b;font:12px;font-weight: bold;}");
  1254. ui->pushButtonQueryCharge->setEnabled(false);
  1255. setCursor(Qt::WaitCursor);
  1256. queryCharge(true);
  1257. setCursor(Qt::ArrowCursor);
  1258. ui->labelQueryCharge->setText("");
  1259. ui->pushButtonQueryCharge->setEnabled(true);
  1260. }
  1261. void FormMain::on_pushButtonQueryCost_clicked()
  1262. {
  1263. if(!chkAccountState(m_state))
  1264. return;
  1265. if(!checkLastClickTime(sender()))
  1266. return ;
  1267. ui->labelQueryCost->setText("正在查询,请稍候...");
  1268. ui->labelQueryCost->setStyleSheet("QLabel{color:#08a61b;font:12px;font-weight: bold;}");
  1269. ui->pushButtonQueryCost->setEnabled(false);
  1270. setCursor(Qt::WaitCursor);
  1271. queryCost(true);
  1272. setCursor(Qt::ArrowCursor);
  1273. ui->labelQueryCost->setText("");
  1274. ui->pushButtonQueryCost->setEnabled(true);
  1275. }
  1276. void FormMain::on_pushButtonDownload_clicked()
  1277. {
  1278. if(!chkAccountState(m_state))
  1279. return;
  1280. bool nodata = false;
  1281. for(int i=0;i<ui->tableWidgetFinished->rowCount();i++)
  1282. {
  1283. if(!ui->tableWidgetFinished->item(i,0))
  1284. {
  1285. nodata = true;
  1286. break;
  1287. }
  1288. }
  1289. if(nodata)
  1290. {
  1291. QMessageBox::critical(this,"提示","没有可以下载的数据!",QMessageBox::Ok);
  1292. return ;
  1293. }
  1294. QString saveZipFileName = getSaveZipFileName();
  1295. if(saveZipFileName.isEmpty())
  1296. return ;
  1297. QDir dir;
  1298. if(!dir.exists(QDir::tempPath()+"/speednumcube"))
  1299. {
  1300. dir.mkdir(QDir::tempPath()+"/speednumcube");
  1301. }
  1302. QString tmpDir = QDir::tempPath()+"/speednumcube/";
  1303. QStringList files;
  1304. ui->pushButtonDownload->setEnabled(false);
  1305. for(int i=0;i<ui->tableWidgetFinished->rowCount();i++)
  1306. {
  1307. QTableWidgetItem *item = ui->tableWidgetFinished->item(i,0);
  1308. if(item->checkState()==Qt::Checked)
  1309. {
  1310. QString json = m_numChkWs->dlResultFile(item->data(Qt::UserRole).toString(),m_userHash);
  1311. if(!json.isEmpty()){
  1312. RespDlResultFile response(json);
  1313. if(response.getRtnCode()==2)
  1314. {
  1315. QString fileName = tmpDir + response.getFileName();
  1316. files.append(fileName);
  1317. QString fileContent = response.getFileContent();
  1318. QByteArray array = QByteArray::fromBase64(fileContent.toAscii());
  1319. QFile file(fileName);
  1320. file.open(QIODevice::WriteOnly);
  1321. file.write(array);
  1322. file.close();
  1323. }
  1324. else if(response.getRtnCode()==-1)
  1325. {
  1326. showMessage(-1,true);
  1327. break;
  1328. }
  1329. else
  1330. {
  1331. QMessageBox::critical(this,"结果",response.getRtnMemo(),QMessageBox::Ok);
  1332. }
  1333. }
  1334. else
  1335. {
  1336. showMessage(0,true);
  1337. break;
  1338. }
  1339. }
  1340. }
  1341. if(files.size()>0)
  1342. {
  1343. if(addFileToZip(saveZipFileName,files))
  1344. {
  1345. QMessageBox::information(this,"结果",QString("%0个检测结果文件下载成功!").arg(files.size()),QMessageBox::Ok);
  1346. QFileInfo fileinfo(saveZipFileName);
  1347. SNCDataBase::updateExportDir(fileinfo.absolutePath());
  1348. }
  1349. else
  1350. {
  1351. QMessageBox::critical(this,"结果","检测结果文件下载失败!",QMessageBox::Ok);
  1352. }
  1353. }
  1354. else
  1355. {
  1356. QMessageBox::critical(this,"结果","检测结果文件下载失败!",QMessageBox::Ok);
  1357. }
  1358. ui->pushButtonDownload->setEnabled(true);
  1359. }
  1360. void FormMain::onTimeOut()
  1361. {
  1362. if(m_userHash.isEmpty())
  1363. return ;
  1364. if(!m_upload->isRunning())
  1365. {
  1366. m_upload->start();
  1367. }
  1368. if(!m_sync->isRunning())
  1369. {
  1370. m_sync->start();
  1371. }
  1372. }
  1373. void FormMain::on_pushButtonCharge_clicked()
  1374. {
  1375. if(!chkAccountState(m_state))
  1376. return;
  1377. if(!checkLastClickTime(sender()))
  1378. return ;
  1379. QString json = m_ssoWs->encrypt(m_ssoHash);
  1380. RespEncrypt resp1(json);
  1381. QString data = resp1.getEncryptData();
  1382. json = m_ssoWs->getServerTime();
  1383. RespGetServerTime resp2(json);
  1384. QString authCode;
  1385. QByteArray ba;
  1386. QString str = SNCDataBase::getAuthCodeUrl().arg(resp2.getServerTime().mid(0,16));
  1387. ba = QCryptographicHash::hash ( str.toAscii(), QCryptographicHash::Md5 );
  1388. authCode.append(ba.toHex());
  1389. QString url = SNCDataBase::getSSOPayUrl() + "?s=mf&r="+authCode+"&u="+data+"&p=zxcz_"+m_clientID;
  1390. QDesktopServices::openUrl(QUrl(url));
  1391. }
  1392. void FormMain::on_tableWidgetFinished_cellClicked(int row, int column)
  1393. {
  1394. if(row>=0&&column>=0)
  1395. {
  1396. QString detail = ui->tableWidgetFinished->item(row,3)->data(Qt::UserRole).toString();
  1397. displaySelected(detail);
  1398. }
  1399. }
  1400. void FormMain::on_pushButtonLogin_clicked()
  1401. {
  1402. emit buttonLoginClick();
  1403. }
  1404. void FormMain::on_pushButtonRefreshUserState_clicked()
  1405. {
  1406. if(!checkLastClickTime(sender()))
  1407. return ;
  1408. setCursor(Qt::WaitCursor);
  1409. refreshAccountInfo();
  1410. setCursor(Qt::ArrowCursor);
  1411. }
  1412. void FormMain::onSingleDownloadClick()
  1413. {
  1414. QPushButton *btn = qobject_cast<QPushButton*>(sender());
  1415. QString ispass = "";
  1416. QString optstatus = "";
  1417. QString id = "";
  1418. for(int i=0;i<ui->tableWidgetFinished->rowCount();i++)
  1419. {
  1420. QWidget *widget = ui->tableWidgetFinished->cellWidget(i,13);
  1421. if(widget)
  1422. {
  1423. if(btn==qobject_cast<QPushButton*>(widget))
  1424. {
  1425. QTableWidgetItem *item;
  1426. item = ui->tableWidgetFinished->item(i,0);
  1427. if(item)
  1428. {
  1429. id = item->data(Qt::UserRole).toString();
  1430. }
  1431. QWidget *widget = ui->tableWidgetFinished->cellWidget(i,10);
  1432. if(widget)
  1433. {
  1434. QLabel *lbl = qobject_cast<QLabel*>(widget);
  1435. ispass = lbl->toolTip();
  1436. }
  1437. widget = ui->tableWidgetFinished->cellWidget(i,9);
  1438. if(widget)
  1439. {
  1440. QLabel *lbl = qobject_cast<QLabel*>(widget);
  1441. optstatus = lbl->toolTip();
  1442. }
  1443. break;
  1444. }
  1445. }
  1446. }
  1447. if(id.isEmpty())
  1448. {
  1449. QMessageBox::critical(this,"结果","未能获取有效的文件编号!",QMessageBox::Ok);
  1450. return ;
  1451. }
  1452. if(ispass!="已放行")
  1453. {
  1454. QMessageBox::critical(this,"结果","单子还未放行!",QMessageBox::Ok);
  1455. return ;
  1456. }
  1457. QString saveFile = getSaveFileName(id);
  1458. if(saveFile.isEmpty())
  1459. return ;
  1460. QString json = m_numChkWs->dlResultFile(id,m_userHash);
  1461. if(!json.isEmpty())
  1462. {
  1463. RespDlResultFile response(json);
  1464. if(response.getRtnCode()==2)
  1465. {
  1466. QString fileName = saveFile;
  1467. QString fileContent = response.getFileContent();
  1468. QByteArray array = QByteArray::fromBase64(fileContent.toAscii());
  1469. QFile file(fileName);
  1470. file.open(QIODevice::WriteOnly);
  1471. file.write(array);
  1472. file.close();
  1473. QMessageBox::information(this,"结果","单子下载成功",QMessageBox::Ok);
  1474. }
  1475. else
  1476. {
  1477. QMessageBox::critical(this,"结果",response.getRtnMemo(),QMessageBox::Ok);
  1478. }
  1479. }
  1480. else
  1481. {
  1482. showMessage(0,true);
  1483. }
  1484. }
  1485. void FormMain::on_pushButtonSelect_clicked()
  1486. {
  1487. Qt::CheckState state;
  1488. QTableWidgetItem *item = ui->tableWidgetFinished->item(0,0);
  1489. if(item)
  1490. {
  1491. state = item->checkState();
  1492. if(state==Qt::Checked)
  1493. {
  1494. state = Qt::Unchecked;
  1495. }
  1496. else
  1497. {
  1498. state = Qt::Checked;
  1499. }
  1500. }
  1501. else
  1502. {
  1503. return ;
  1504. }
  1505. for(int i=0;i<ui->tableWidgetFinished->rowCount();i++)
  1506. {
  1507. QTableWidgetItem *item = ui->tableWidgetFinished->item(i,0);
  1508. if(item)
  1509. {
  1510. item->setCheckState(state);
  1511. }
  1512. }
  1513. }
  1514. bool FormMain::checkLastClickTime(QObject *button)
  1515. {
  1516. QPushButton *btn = qobject_cast<QPushButton*>(button);
  1517. QDateTime lasttime = m_clickTime.value(btn->objectName());
  1518. if(!lasttime.isNull())
  1519. {
  1520. if(lasttime.addSecs(30)>QDateTime::currentDateTime())
  1521. {
  1522. QMessageBox::critical(this,"提示","您不可以频繁点击!",QMessageBox::Ok);
  1523. return false;
  1524. }
  1525. }
  1526. m_clickTime.insert(btn->objectName(),QDateTime::currentDateTime());
  1527. return true;
  1528. }
  1529. void FormMain::showMessage(int row)
  1530. {
  1531. QTableWidgetItem *itemMsg = ui->tableWidgetDealing->item(row,8);
  1532. QTableWidgetItem *itemDetail = ui->tableWidgetDealing->item(row,9);
  1533. QString errMsg = "";
  1534. QString errDetail = "";
  1535. if(itemMsg)
  1536. {
  1537. errMsg = itemMsg->data(Qt::UserRole).toString();
  1538. }
  1539. if(itemDetail)
  1540. {
  1541. errDetail = itemDetail->data(Qt::UserRole).toString();
  1542. }
  1543. if(errDetail.isEmpty())
  1544. {
  1545. if(!errMsg.isEmpty())
  1546. {
  1547. QMessageBox::critical(this,"提示",errMsg,QMessageBox::Ok);
  1548. }
  1549. }
  1550. else
  1551. {
  1552. DialogSubmitResponseDetail dialog;
  1553. dialog.setDetailText(errDetail);
  1554. dialog.exec();
  1555. }
  1556. }
  1557. void FormMain::on_pushButtonPay_clicked()
  1558. {
  1559. if(!chkAccountState(m_state))
  1560. return;
  1561. if(!checkLastClickTime(sender()))
  1562. return ;
  1563. QString json = m_ssoWs->encrypt(m_ssoHash);
  1564. RespEncrypt resp1(json);
  1565. QString data = resp1.getEncryptData();
  1566. json = m_ssoWs->getServerTime();
  1567. RespGetServerTime resp2(json);
  1568. QString authCode;
  1569. QByteArray ba;
  1570. QString str = SNCDataBase::getAuthCodeUrl().arg(resp2.getServerTime().mid(0,16));
  1571. ba = QCryptographicHash::hash ( str.toAscii(), QCryptographicHash::Md5 );
  1572. authCode.append(ba.toHex());
  1573. QString url = SNCDataBase::getSSOPayUrl() + "?s=mf&r="+authCode+"&u="+data+"&p=fk_"+m_clientID;
  1574. QDesktopServices::openUrl(QUrl(url));
  1575. }
  1576. void FormMain::onPushButtonViewsClicked()
  1577. {
  1578. QPushButton *btn = qobject_cast<QPushButton*>(sender());
  1579. for(int i=0;i<ui->tableWidgetDealing->rowCount();i++)
  1580. {
  1581. QWidget *widget = ui->tableWidgetDealing->cellWidget(i,13);
  1582. if(widget)
  1583. {
  1584. if(btn==qobject_cast<QPushButton*>(widget))
  1585. {
  1586. showMessage(i);
  1587. break;
  1588. }
  1589. }
  1590. }
  1591. }
  1592. void FormMain::on_pushButtonQueryFinishedAll_clicked()
  1593. {
  1594. queryFinished("");
  1595. }
  1596. void FormMain::on_pushButtonQueryToDown_clicked()
  1597. {
  1598. queryFinished("0");
  1599. }
  1600. void FormMain::on_pushButtonQueryDown_clicked()
  1601. {
  1602. queryFinished("1");
  1603. }
  1604. void FormMain::onUploadFailed()
  1605. {
  1606. queryDealing();
  1607. }
  1608. void FormMain::onUploadFileCreated()
  1609. {
  1610. queryDealing();
  1611. }
  1612. void FormMain::onUploadSucceed()
  1613. {
  1614. queryDealing();
  1615. refreshAccountInfo();
  1616. }
  1617. void FormMain::onDataSync()
  1618. {
  1619. queryFinished("");
  1620. queryDealing();
  1621. int count = SNCDataBase::getBzjcToDown(m_userCode,m_clientID);
  1622. if(count>0)
  1623. {
  1624. ui->tabWidget->setTabText(1,QString("下载检测结果(%1)").arg(count));
  1625. ui->tabWidget->setTabIcon(1,QIcon(":/todown.png"));
  1626. }
  1627. else
  1628. {
  1629. ui->tabWidget->setTabText(1,QString("下载检测结果").arg(count));
  1630. }
  1631. }
  1632. void FormMain::onUploadProgressUpdated()
  1633. {
  1634. queryDealing();
  1635. }
  1636. void FormMain::on_tableWidgetDealing_cellDoubleClicked(int row, int column)
  1637. {
  1638. showMessage(row);
  1639. }
  1640. void FormMain::on_tableWidgetFinished_cellDoubleClicked(int row, int column)
  1641. {
  1642. QString ispass = "";
  1643. QString optstatus = "";
  1644. QString id = "";
  1645. QTableWidgetItem *item;
  1646. item = ui->tableWidgetFinished->item(row,0);
  1647. if(item)
  1648. {
  1649. id = item->data(Qt::UserRole).toString();
  1650. }
  1651. QWidget *widget = ui->tableWidgetFinished->cellWidget(row,10);
  1652. if(widget)
  1653. {
  1654. QLabel *lbl = qobject_cast<QLabel*>(widget);
  1655. ispass = lbl->toolTip();
  1656. }
  1657. widget = ui->tableWidgetFinished->cellWidget(row,9);
  1658. if(widget)
  1659. {
  1660. QLabel *lbl = qobject_cast<QLabel*>(widget);
  1661. optstatus = lbl->toolTip();
  1662. }
  1663. if(id.isEmpty())
  1664. {
  1665. QMessageBox::critical(this,"结果","未能获取有效的文件编号!",QMessageBox::Ok);
  1666. return ;
  1667. }
  1668. if(ispass!="已放行")
  1669. {
  1670. QMessageBox::critical(this,"结果","单子还未放行!",QMessageBox::Ok);
  1671. return ;
  1672. }
  1673. QString saveFile = getSaveFileName(id);
  1674. if(saveFile.isEmpty())
  1675. return ;
  1676. QString json = m_numChkWs->dlResultFile(id,m_userHash);
  1677. if(!json.isEmpty())
  1678. {
  1679. RespDlResultFile response(json);
  1680. if(response.getRtnCode()==2)
  1681. {
  1682. QString fileName = saveFile;
  1683. QString fileContent = response.getFileContent();
  1684. QByteArray array = QByteArray::fromBase64(fileContent.toAscii());
  1685. QFile file(fileName);
  1686. file.open(QIODevice::WriteOnly);
  1687. file.write(array);
  1688. file.close();
  1689. QMessageBox::information(this,"结果","单子下载成功",QMessageBox::Ok);
  1690. }
  1691. else
  1692. {
  1693. QMessageBox::critical(this,"结果",response.getRtnMemo(),QMessageBox::Ok);
  1694. }
  1695. }
  1696. else
  1697. {
  1698. showMessage(0,true);
  1699. }
  1700. }