| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182 |
- #include "formhistory.h"
- #include "ui_formhistory.h"
- #include "sncdatabase.h"
- #include "respgetjsjcinfo.h"
- #include "respdljsjcresultfile.h"
- #include "respuserserviceverify.h"
- #include "respgetuserjsjcserviceinfo.h"
- #include "respgetusersso.h"
- #include "respgetuserjsjcserviceinfo.h"
- #include "respgetservertime.h"
- #include "respencrypt.h"
- #include "dialogsubmit.h"
- #include "xprogressbar.h"
- #include "dialogsubmitresponsedetail.h"
- FormHistory::FormHistory(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::FormHistory)
- {
- ui->setupUi(this);
- initVariables();
- initUI();
- resetDataAreaUI();
- setAccountAreaUI(NotLogin);
- }
- FormHistory::~FormHistory()
- {
- m_timer->stop();
- m_upload->abort();
- m_sync->abort();
- m_upload->wait();
- m_sync->wait();
- m_cubews->abort();
- m_ssows->abort();
- m_timer->stop();
- m_movie->stop();
- delete m_upload;
- delete m_sync;
- delete m_cubews;
- delete m_ssows;
- delete m_movie;
- delete m_timer;
- delete ui;
- qDebug()<<QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")\
- <<"FormRiddle.FormHistory Destroyed.";
- }
- void FormHistory::initVariables()
- {
- m_isRefreshing = false;
- int interval = 5;
- m_timer = new QTimer();
- connect(m_timer,SIGNAL(timeout()),this,SLOT(onTimeOut()));
- m_timer->start(interval*1000);
- m_upload = new AutoUploadFile();
- m_sync = new AutoSyncData();
- connect(m_upload,SIGNAL(uploadFailed()),this,SLOT(onUploadFailed()));
- connect(m_upload,SIGNAL(uploadSucceed()),this,SLOT(onUploadSucceed()));
- connect(m_upload,SIGNAL(uploadProgressUpdated()),this,SLOT(onUploadProgressUpdated()));
- connect(m_sync,SIGNAL(dataSync()),this,SLOT(onDataSync()));
- m_movie = new QMovie(":/working.gif");
- m_movie->start();
- m_curLtfid = "";
- m_curQryid = "";
- m_lastLtfid = "";
- m_host = "";
- m_port = "";
- m_ssows = new WSSSO();
- m_cubews = new WSCube();
- m_shkjDealing = new FormShkjDealing();
- ui->verticalLayout->addWidget(m_shkjDealing);
- connect(m_upload,SIGNAL(uploadFailed()),m_shkjDealing,SLOT(onDataUpdated()));
- connect(m_upload,SIGNAL(uploadSucceed()),m_shkjDealing,SLOT(onDataUpdated()));
- connect(m_upload,SIGNAL(uploadProgressUpdated()),m_shkjDealing,SLOT(onDataUpdated()));
- connect(m_sync,SIGNAL(dataSync()),m_shkjDealing,SLOT(onDataUpdated()));
- }
- void FormHistory::initUI()
- {
- //初始化实号快检结果框背景显示图片quick_default_bg.jpg,通过qss文件里进行设置
- ui->widgetQuicikCheck->setProperty("class","highframe");
- ui->widgetExactCheck->setProperty("class","lowframe");
- //初始化快速检测 实号和未知状态的对应的显示图片quick_result_bg.jpg
- QPixmap quick_result_bg(":/quick_result_bg.jpg");
- int nHeight = quick_result_bg.height()/2;
- int nWidth = quick_result_bg.width();
- ui->labelBarShiHao->setPixmap(quick_result_bg.copy(QRect(0 , 1 * nHeight, nWidth, nHeight)));
- ui->labelBarWeizhi->setPixmap(quick_result_bg.copy(QRect(0 , 0 * nHeight, nWidth, nHeight)));
- //初始化预检测 实号、空、停、关机对应的显示图片forcast_result_bg.jpg
- QPixmap forcast_result_bg(":/forcast_result_bg.jpg");
- nHeight = forcast_result_bg.height()/4;
- nWidth = forcast_result_bg.width();
- ui->labelBarShiHao2->setPixmap(forcast_result_bg.copy(QRect(0 , 0 * nHeight, nWidth, nHeight)));
- ui->labelBarKong->setPixmap(forcast_result_bg.copy(QRect(0 , 1 * nHeight, nWidth, nHeight)));
- ui->labelBarTing->setPixmap(forcast_result_bg.copy(QRect(0 , 2 * nHeight, nWidth, nHeight)));
- ui->labelBarGuan->setPixmap(forcast_result_bg.copy(QRect(0 , 3 * nHeight, nWidth, nHeight)));
- //初始化图例图标实号、空、停、关机对应的显示图片sample_small.jpg
- QPixmap sample_small(":/sample_small.jpg");
- nHeight = sample_small.height();
- nWidth = sample_small.width()/10;
- ui->labelSampleShiHao->setPixmap(sample_small.copy(QRect(0 * nWidth , 0 , nWidth, nHeight)));
- ui->labelSampleWeizhi->setPixmap(sample_small.copy(QRect(1 * nWidth , 0 , nWidth, nHeight)));
- ui->labelSampleShiHao2->setPixmap(sample_small.copy(QRect(2 * nWidth , 0 , nWidth, nHeight)));
- ui->labelSampleKong->setPixmap(sample_small.copy(QRect(3 * nWidth , 0 , nWidth, nHeight)));
- ui->labelSampleTing->setPixmap(sample_small.copy(QRect(4 * nWidth , 0 , nWidth, nHeight)));
- ui->labelSampleGuan->setPixmap(sample_small.copy(QRect(5 * nWidth , 0 , nWidth, nHeight)));
- //初始化分割线
- ui->labelSplitLine->setStyleSheet("background:#dadedf");
- ui->labelSplitLine->setFixedHeight(1);
- //设置上述状态比例的默认宽度为0
- ui->labelBarShiHao->setFixedWidth(0);
- ui->labelBarWeizhi->setFixedWidth(0);
- ui->labelBarShiHao2->setFixedWidth(0);
- ui->labelBarKong->setFixedWidth(0);
- ui->labelBarTing->setFixedWidth(0);
- ui->labelBarGuan->setFixedWidth(0);
- //初始化widgettip样式
- ui->widgetTip->setProperty("class","silverbg");
- //初始化登录后显示的账户相关信息区域的样式
- ui->pushButtonCharge->setProperty("class","txt-green");
- ui->pushButtonLogin->setProperty("class","txt-green");
- ui->pushButtonRefreshUserState->setProperty("class","txt-green");
- ui->pushButtonQueryAll->setProperty("class","txt-green-autowidth");
- ui->pushButtonQueryDown->setProperty("class","txt-green-autowidth");
- ui->pushButtonQueryUnDown->setProperty("class","txt-green-autowidth");
- }
- void FormHistory::resetDataAreaUI()
- {
- resetDataListInfo();
- resetDataDetailInfo();
- resetUploadDataListInfo();
- }
- void FormHistory::resetUploadDataListInfo()
- {
- resetUploadTableWidget(11);
- ui->tableWidgetUpload->setEnabled(false);
- QTableWidgetItem *item = new QTableWidgetItem();
- item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
- item->setText(" 暂无信息");
- ui->tableWidgetUpload->setItem(5,7,item);
- }
- void FormHistory::resetUploadTableWidget(int rows)
- {
- QStringList headers;
- headers.append("文件ID");
- headers.append("状态");
- headers.append("文件类型");
- headers.append("文件名");
- headers.append("文件路径");
- headers.append("备注");
- headers.append("提交时间");
- headers.append("进度");
- headers.append("返回信息");
- headers.append("返回详情");
- headers.append("服务端操作状态");
- headers.append("进度");
- headers.append("详情");
- ui->tableWidgetUpload->setRowCount(0);
- ui->tableWidgetUpload->setColumnCount(0);
- ui->tableWidgetUpload->setEditTriggers(QAbstractItemView::NoEditTriggers);
- ui->tableWidgetUpload->setColumnCount(13);
- ui->tableWidgetUpload->setHorizontalHeaderLabels(headers);
- ui->tableWidgetUpload->setRowCount(rows);
- ui->tableWidgetUpload->setShowGrid(false);
- ui->tableWidgetUpload->setAlternatingRowColors(true);
- ui->tableWidgetUpload->setSelectionBehavior(QAbstractItemView::SelectRows);
- ui->tableWidgetUpload->setSelectionMode(QAbstractItemView::SingleSelection);
- ui->tableWidgetUpload->setColumnWidth(0,0);
- ui->tableWidgetUpload->setColumnWidth(1,40);
- ui->tableWidgetUpload->setColumnWidth(2,80);//
- ui->tableWidgetUpload->setColumnWidth(3,170);
- ui->tableWidgetUpload->setColumnWidth(4,0);
- ui->tableWidgetUpload->setColumnWidth(5,0);//
- ui->tableWidgetUpload->setColumnWidth(6,150);
- ui->tableWidgetUpload->setColumnWidth(7,0);
- ui->tableWidgetUpload->setColumnWidth(8,0);
- ui->tableWidgetUpload->setColumnWidth(9,0);
- ui->tableWidgetUpload->setColumnWidth(10,0);
- ui->tableWidgetUpload->setColumnWidth(11,150);
- ui->tableWidgetUpload->setColumnWidth(12,85);
- ui->tableWidgetUpload->hideColumn(0);
- ui->tableWidgetUpload->hideColumn(4);
- ui->tableWidgetUpload->hideColumn(5);
- ui->tableWidgetUpload->hideColumn(7);
- ui->tableWidgetUpload->hideColumn(8);
- ui->tableWidgetUpload->hideColumn(9);
- ui->tableWidgetUpload->hideColumn(10);
- ui->tableWidgetUpload->verticalHeader()->setVisible(false);
- ui->tableWidgetUpload->horizontalHeader()->setStyleSheet("font:12px");
- ui->tableWidgetUpload->horizontalHeader()->setResizeMode(QHeaderView::Fixed);
- ui->tableWidgetUpload->verticalHeader()->setResizeMode(QHeaderView::Fixed);
- ui->tableWidgetUpload->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- ui->tableWidgetUpload->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
- ui->tableWidgetUpload->verticalHeader()->setFixedWidth(30);
- ui->tableWidgetUpload->setSortingEnabled(true);
- }
- void FormHistory::fetchUploadList(QMultiMap<QString, QString> map, int rowCount)
- {
- resetUploadDataListInfo();
- if(rowCount==0)
- {
- return ;
- }
- resetUploadTableWidget(rowCount);
- ui->tableWidgetUpload->setEnabled(true);
- QStringList keys;
- keys<<"fileid"<<"filestate"<<"filetype"<<"filename"<<"filepath";
- keys<<"memo"<<"srvrtime"<<"percent"<<"rtnmsg"<<"rtndetail"<<"optstatus";
- for(int col=0;col<keys.size();col++)
- {
- QStringList rows = map.values(keys.at(col));
- for(int row=0;row<rows.size();row++)
- {
- QTableWidgetItem *item = new QTableWidgetItem();
- item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
- QString display = rows.at(row);
- QString tooltip = display;
- if(keys.at(col)=="filetype")
- {
- if(rows.at(row)=="1")
- display = "号码文件";
- else if(rows.at(row)=="2")
- display = "号段文件";
- else
- display = "未知";
- tooltip = display;
- }
- else if(keys.at(col)=="filename")
- {
- item->setTextAlignment(Qt::AlignLeft|Qt::AlignVCenter);
- }
- if(keys.at(col)=="filestate")
- {
- delete item;
- QLabel *lbl = new QLabel(this);
- lbl->setAlignment(Qt::AlignCenter|Qt::AlignHCenter);
- int v = display.toInt();
- if(v<0)
- lbl->setPixmap(QPixmap(":/wrong.png"));
- else if(v>=0 && v<=3)
- lbl->setMovie(m_movie);
- else
- lbl->setPixmap(QPixmap(":/right.png"));
- ui->tableWidgetUpload->setCellWidget(row,col,lbl);
- ui->tableWidgetUpload->item(row,0)->setData(Qt::UserRole,v);
- }
- else
- {
- item->setData(Qt::DisplayRole,display);
- item->setData(Qt::UserRole,rows.at(row));
- item->setData(Qt::ToolTipRole,tooltip);
- ui->tableWidgetUpload->setItem(row,col,item);
- }
- }
- }
- //显示进度条
- for(int row=0;row<rowCount;row++)
- {
- double percent = ui->tableWidgetUpload->item(row,7)->data(Qt::UserRole).toDouble();
- int state = ui->tableWidgetUpload->item(row,0)->data(Qt::UserRole).toInt();
- QString optstatus = ui->tableWidgetUpload->item(row,10)->data(Qt::UserRole).toString();
- XProgressBar *progress = new XProgressBar();
- progress->setProgress(state,percent);
- ui->tableWidgetUpload->setCellWidget(row,11,progress);
- }
- //显示文件信息
- for(int row=0;row<rowCount;row++)
- {
- QString filePath = ui->tableWidgetUpload->item(row,4)->data(Qt::UserRole).toString();
- QString fileMemo = ui->tableWidgetUpload->item(row,5)->data(Qt::UserRole).toString();
- QString tooltip = QString("文件:%1\r\n备注:%2").arg(filePath).arg(fileMemo);
- ui->tableWidgetUpload->item(row,3)->setData(Qt::ToolTipRole,tooltip);
- }
- //显示查看详情信息
- for(int row=0;row<rowCount;row++)
- {
- QPushButton *button = new QPushButton();
- button->setText("查看");
- button->setProperty("class","txt-green");
- button->setCursor(Qt::PointingHandCursor);
- connect(button,SIGNAL(clicked()),this,SLOT(onPushButtonViewsClicked()));
- QTableWidgetItem *item = ui->tableWidgetUpload->item(row,8);
- if(item)
- {
- if(item->data(Qt::UserRole).toString().isEmpty())
- {
- button->setEnabled(false);
- }
- }
- ui->tableWidgetUpload->setCellWidget(row,12,button);
- }
- ui->tableWidgetUpload->sortByColumn(0);
- ui->tableWidgetUpload->sortByColumn(0);
- }
- void FormHistory::resetDataListInfo()
- {
- resetTableWidget(11);
- ui->tableWidget->setEnabled(false);
- QTableWidgetItem *item = new QTableWidgetItem();
- item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
- item->setText(" 暂无信息");
- ui->tableWidget->setItem(5,7,item);
- }
- void FormHistory::resetDataDetailInfo()
- {
- ui->labelShiHao->setText("实号");
- ui->labelKong->setText("空号");
- ui->labelTing->setText("停机");
- ui->labelGuan->setText("关机");
- ui->labelValidNum->setText("实号");
- ui->labelInvalidNum->setText("未知");
- //设置上述状态比例的默认宽度为0
- ui->labelBarShiHao->setFixedWidth(0);
- ui->labelBarWeizhi->setFixedWidth(0);
- ui->labelBarShiHao2->setFixedWidth(0);
- ui->labelBarKong->setFixedWidth(0);
- ui->labelBarTing->setFixedWidth(0);
- ui->labelBarGuan->setFixedWidth(0);
- ui->pushButtonDownload->setEnabled(false);
- }
- void FormHistory::resetTableWidget(int newRows)
- {
- QStringList headers;
- headers.append("编号");
- headers.append("状态");
- headers.append("查询码");
- headers.append("详情");
- headers.append("号码总数");
- headers.append("无效号码(实时快检)");
- headers.append("无效号码(实时快检)");
- headers.append("无效号码(预检)");
- headers.append("无效号码(预检)");
- headers.append("提交时间");
- headers.append("完成时间");
- headers.append("实号数");
- headers.append("实号比例");
- headers.append("耗时(秒)");
- ui->tableWidget->setRowCount(0);
- ui->tableWidget->setColumnCount(0);
- ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
- ui->tableWidget->setColumnCount(14);
- ui->tableWidget->setHorizontalHeaderLabels(headers);
- ui->tableWidget->setRowCount(newRows);
- ui->tableWidget->setShowGrid(false);
- ui->tableWidget->setAlternatingRowColors(true);
- ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
- ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
- ui->tableWidget->setColumnWidth(0,65);
- ui->tableWidget->setColumnWidth(1,40);
- ui->tableWidget->setColumnWidth(2,150);
- ui->tableWidget->setColumnWidth(3,40);
- ui->tableWidget->setColumnWidth(4,80);//
- ui->tableWidget->setColumnWidth(5,80);
- ui->tableWidget->setColumnWidth(6,150);
- ui->tableWidget->setColumnWidth(7,140);//
- ui->tableWidget->setColumnWidth(8,80);
- ui->tableWidget->setColumnWidth(9,150);
- ui->tableWidget->setColumnWidth(10,100);//
- ui->tableWidget->setColumnWidth(11,70);
- ui->tableWidget->setColumnWidth(12,65);
- ui->tableWidget->setColumnWidth(13,70);
- ui->tableWidget->hideColumn(0);
- ui->tableWidget->hideColumn(5);
- ui->tableWidget->hideColumn(6);
- ui->tableWidget->hideColumn(7);
- ui->tableWidget->hideColumn(8);
- ui->tableWidget->hideColumn(10);
- ui->tableWidget->verticalHeader()->setVisible(false);
- ui->tableWidget->horizontalHeader()->setStyleSheet("font:12px");
- ui->tableWidget->horizontalHeader()->setResizeMode(QHeaderView::Fixed);
- ui->tableWidget->verticalHeader()->setResizeMode(QHeaderView::Fixed);
- ui->tableWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- ui->tableWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
- ui->tableWidget->verticalHeader()->setFixedWidth(30);
- ui->tableWidget->setSortingEnabled(true);
- }
- bool FormHistory::eventFilter(QObject *object, QEvent *event)
- {
- if( event->type() == QEvent::KeyPress)
- {
- QKeyEvent * pKeyEvent = static_cast<QKeyEvent *>(event);
- if (pKeyEvent->key() == Qt::Key_Control||pKeyEvent->key() == Qt::Key_Shift)
- {
- //ui->tableWidgetDealing->setSelectionMode(QAbstractItemView::ExtendedSelection);
- //ui->tableWidgetFinished->setSelectionMode(QAbstractItemView::ExtendedSelection);
- return true;
- }
- }
- else if( event->type() == QEvent::KeyRelease)
- {
- QKeyEvent * pKeyEvent = static_cast<QKeyEvent *>(event);
- if (pKeyEvent->key() == Qt::Key_Control||pKeyEvent->key() == Qt::Key_Shift)
- {
- //ui->tableWidgetDealing->setSelectionMode(QAbstractItemView::MultiSelection);
- //ui->tableWidgetFinished->setSelectionMode(QAbstractItemView::MultiSelection);
- return true;
- }
- }
- return QWidget::eventFilter(object, event);
- }
- void FormHistory::setAccountAreaUI(AccountLoginState state)
- {
- switch(state)
- {
- case LoginOk:
- ui->labelTip->setText("实号快检服务已经连接!");
- ui->labelTip2->setText("");
- ui->pushButtonLogin->setVisible(false);
- if(m_regType=="temp")
- {
- ui->widgetAccountInfo->setVisible(false);
- }
- else
- {
- ui->widgetAccountInfo->setVisible(true);
- }
- refreshAccountInfo();
- break;
- case NotLogin:
- ui->labelTip->setText("您需要");
- ui->labelTip2->setText("才可以使用该功能!");
- ui->pushButtonLogin->setVisible(true);
- ui->widgetAccountInfo->setVisible(false);
- break;
- case NotBind:
- ui->labelTip->setText("实号快检服务尚未开通!");
- ui->pushButtonLogin->setVisible(false);
- ui->widgetAccountInfo->setVisible(false);
- break;
- case LoginError:
- ui->labelTip->setText("实号快检服务无法连接!");
- ui->pushButtonLogin->setVisible(false);
- ui->widgetAccountInfo->setVisible(false);
- break;
- }
- changeImage(state);
- }
- void FormHistory::changeImage(AccountLoginState state)
- {
- QPixmap pixamp(":/service_state.png");
- int nHeight = pixamp.height();
- int nWidth = pixamp.width()/4;
- ui->labelStateImage->setPixmap(pixamp.copy(QRect(state * nWidth , 0, nWidth, nHeight)));
- }
- void FormHistory::refreshAccountInfo()
- {
- QString json = m_cubews->getUserJSJCServiceInfo(m_ssoHash);
- bool succeed = false;
- if(!json.isEmpty())
- {
- RespGetUserJSJCServiceInfo resp(json);
- if(resp.getRtnCode()==1)
- {
- int downloads = resp.getMonthDownHmzs().toInt();
- int maxdownloads = resp.getMonthMaxDownHmzs().toInt();
- int downloadslimit = maxdownloads-downloads;
- int checks = resp.getDaySubmitHmzs().toInt();
- int maxchecks = resp.getDayMaxSubmitHmzs().toInt();
- int checkslimit = maxchecks-checks;
- ui->labelChecked->setText(QString("%1/%2").arg(checks).arg(checkslimit));
- ui->labelDownloaded->setText(QString("%1/%2").arg(downloads).arg(downloadslimit));
- succeed = true;
- }
- }
- if(!succeed)
- {
- ui->labelChecked->setText("N/A");
- ui->labelDownloaded->setText("N/A");
- }
- }
- bool FormHistory::checkLastClickTime(QObject *button)
- {
- QPushButton *btn = qobject_cast<QPushButton*>(button);
- QDateTime lasttime = m_clickTime.value(btn->objectName());
- if(!lasttime.isNull())
- {
- if(lasttime.addSecs(30)>QDateTime::currentDateTime())
- {
- QMessageBox::critical(this,"提示","您不可以频繁点击!",QMessageBox::Ok);
- return false;
- }
- }
- m_clickTime.insert(btn->objectName(),QDateTime::currentDateTime());
- return true;
- }
- void FormHistory::showMessage(int row)
- {
- QTableWidgetItem *itemMsg = ui->tableWidgetUpload->item(row,8);
- QTableWidgetItem *itemDetail = ui->tableWidgetUpload->item(row,9);
- QString errMsg = "";
- QString errDetail = "";
- if(itemMsg)
- {
- errMsg = itemMsg->data(Qt::UserRole).toString();
- }
- if(itemDetail)
- {
- errDetail = itemDetail->data(Qt::UserRole).toString();
- }
- if(errDetail.isEmpty())
- {
- if(!errMsg.isEmpty())
- {
- QMessageBox::critical(this,"提示",errMsg,QMessageBox::Ok);
- }
- }
- else
- {
- DialogSubmitResponseDetail dialog;
- dialog.setDetailText(errDetail);
- dialog.exec();
- }
- }
- void FormHistory::setAccountInfo(QMap<QString,QString> info)
- {
- m_shkjDealing ->setAccountInfo(info);
- m_ssoHash = info.value("ssohash");
- m_userCode = info.value("usercode");
- m_regType = info.value("regtype");
- // m_upload->setUserInfo("shkj","",m_userCode,m_ssoHash);
- // m_sync->setUserInfo("shkj","",m_userCode,m_ssoHash);
- if(!m_timer->isActive())
- m_timer->start();
- ui->tabWidget->setTabText(1,"下载检测结果");
- ui->tabWidget->setTabIcon(1,QIcon(""));
- if(!m_ssoHash.isEmpty())
- {
- setAccountAreaUI(LoginOk);
- }
- else
- {
- if(m_userCode.isEmpty())
- {
- setAccountAreaUI(NotLogin);
- }
- else
- {
- setAccountAreaUI(LoginError);
- }
- resetDataAreaUI();
- }
- }
- void FormHistory::setHost(QString host,QString port)
- {
- m_host = host;
- m_port = port;
- }
- void FormHistory::stopService()
- {
- if(m_timer)
- {
- m_timer->stop();
- }
- if(m_sync)
- {
- m_sync->abort();
- m_sync->wait();
- }
- if(m_upload)
- {
- m_upload->abort();
- m_upload->wait();
- }
- }
- void FormHistory::fetchList(QMultiMap<QString, QString> map, int rowCount)
- {
- resetDataListInfo();
- resetDataDetailInfo();
- if(rowCount==0)
- {
- resetDataListInfo();
- return ;
- }
- resetTableWidget(rowCount);
- ui->tableWidget->setEnabled(true);
- QStringList keys;
- keys<<"ltfid"<<"dealstatus"<<"uqrycode"<<"detail"<<"hmzs";
- keys<<"ltf_tj"<<"ltf_list";
- keys<<"forecast_tj"<<"forecast_list";
- keys<<"inserttime"<<"finishtime";
- for(int col=0;col<keys.size();col++)
- {
- QStringList rows = map.values(keys.at(col));
- for(int row=0;row<rows.size();row++)
- {
- QTableWidgetItem *item;
- item = new QTableWidgetItem();
- QString display = rows.at(row);
- QString tooltip = display;
- if(keys.at(col)=="uqrycode")
- {
- tooltip = "";
- }
- if(!display.isEmpty())
- {
- if(keys.at(col)=="hmzs")
- item->setData(Qt::DisplayRole,display.toInt());
- else
- item->setData(Qt::DisplayRole,display);
- }
- item->setData(Qt::UserRole,rows.at(row));
- item->setData(Qt::ToolTipRole,tooltip);
- item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
- if(keys.at(col)=="detail")
- {
- delete item;
- QLabel *lbl = new QLabel(this);
- lbl->setAlignment(Qt::AlignCenter|Qt::AlignHCenter);
- if(display.isEmpty())
- lbl->setPixmap(QPixmap(":/no-information.png"));
- else
- lbl->setPixmap(QPixmap(":/information.png"));
- ui->tableWidget->setCellWidget(row,col,lbl);
- lbl->setToolTip(tooltip);
- }
- else if(keys.at(col)=="dealstatus")
- {
- delete item;
- QLabel *lbl = new QLabel(this);
- lbl->setAlignment(Qt::AlignCenter|Qt::AlignHCenter);
- if(display=="2")
- lbl->setPixmap(QPixmap(":/right.png"));
- else if(display=="3")
- lbl->setPixmap(QPixmap(":/down.png"));
- else
- lbl->setText("未知");
- ui->tableWidget->setCellWidget(row,col,lbl);
- ui->tableWidget->item(row,0)->setData(Qt::UserRole,display);
- //lbl->setToolTip(tooltip);
- }
- else
- {
- ui->tableWidget->setItem(row,col,item);
- }
- }
- }
- //填充耗时
- for(int row=0;row<rowCount;row++)
- {
- QDateTime inserttime = QDateTime::fromString(ui->tableWidget->item(row,9)->data(Qt::UserRole).toString(),
- "yyyy-MM-dd hh:mm:ss");
- QDateTime finishtime = QDateTime::fromString(ui->tableWidget->item(row,10)->data(Qt::UserRole).toString(),
- "yyyy-MM-dd hh:mm:ss");
- int seconds = inserttime.msecsTo(finishtime)/1000 ;
- if(seconds<0)
- {
- QLabel *lbl = new QLabel();
- lbl->setMovie(m_movie);
- lbl->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
- ui->tableWidget->setCellWidget(row,13,lbl);
- }
- else
- {
- QTableWidgetItem *item = new QTableWidgetItem();
- item->setData(Qt::DisplayRole,seconds);
- item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
- ui->tableWidget->setItem(row,13,item);
- }
- }
- //填充实号号码数及比例
- for(int row=0;row<rowCount;row++)
- {
- int total = 0;
- if(QRegExp("\\d+").exactMatch(ui->tableWidget->item(row,4)->data(Qt::UserRole).toString()))
- {
- total = ui->tableWidget->item(row,4)->data(Qt::UserRole).toInt();
- }
- int valid = 0;
- QStringList nums = ui->tableWidget->item(row,6)->data(Qt::UserRole).toString().split(",");
- if(nums.size()==3)
- valid = nums.at(2).toInt();
- QString rate = "N/A";
- if(total!=0)
- {
- rate = QString::number(100.0*valid/total ,'f', 0) + "%";
- }
- QTableWidgetItem *item = new QTableWidgetItem();
- item->setData(Qt::DisplayRole,valid);
- item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
- ui->tableWidget->setItem(row,11,item);
- QTableWidgetItem *item2 = new QTableWidgetItem();
- item2->setData(Qt::DisplayRole,rate);
- item2->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
- ui->tableWidget->setItem(row,12,item2);
- }
- ui->tableWidget->sortByColumn(0);
- ui->tableWidget->sortByColumn(0);
- displayLastSelected();
- }
- void FormHistory::displayDetail(QString hmzs, QStringList infos, QStringList nums,QString dealstatus)
- {
- double r11 = 0;//快速检测实号数
- double r31 = 0;//精准检测空号数
- double r32 = 0;//精准检测停机数
- double r33 = 0;//精准检测关机数
- double r34 = 0;//精准检测实号数
- int sum = hmzs.toInt();
- int barLength = 500;
- resetDataDetailInfo();
- if(infos.size()==2&&nums.size()==2)
- {
- int i=0;
- int j=0;
- QStringList list = infos.at(i++).split("|");
- QStringList list2 = nums.at(j++).split(",");
- if(list.size()==3 && list2.size()==3)
- {
- r11= list2.at(2).toDouble();
- QString rate = QString::number(100*(sum-r11)/sum,'f',2);
- ui->labelValidNum->setText(list.at(2));
- ui->labelInvalidNum->setText(QString("未知:%1(%2%)").arg(sum-r11).arg(rate));
- }
- list = infos.at(i++).split("|");
- list2 = nums.at(j++).split(",");
- if(list.size()==5 && list2.size()==4)
- {
- r31= list2.at(0).toDouble();//kong
- r32= list2.at(1).toDouble();//ting
- r33= list2.at(2).toDouble();//guan
- r34 = list2.at(3).toDouble();//shihao
- ui->labelKong->setText(list.at(0));
- ui->labelTing->setText(list.at(1));
- ui->labelGuan->setText(list.at(2));
- ui->labelShiHao->setText(list.at(3));
- }
- }
- if(sum>0)
- {
- ui->labelBarShiHao->setFixedWidth(barLength*r11/sum);
- ui->labelBarWeizhi->setFixedWidth(barLength*(1-r11/sum));
- ui->labelBarShiHao2->setFixedWidth(barLength*r34/sum);
- ui->labelBarKong->setFixedWidth(barLength*r31/sum);
- ui->labelBarTing->setFixedWidth(barLength*r32/sum);
- ui->labelBarGuan->setFixedWidth(barLength*r33/sum);
- }
- bool isok = (dealstatus=="2") || (dealstatus == "3");
- ui->pushButtonDownload->setEnabled(isok);
- }
- void FormHistory::queryUpload()
- {
- QMultiMap<QString,QString> list = SNCDataBase::getAllUpload("shkj","",m_userCode);
- int cols = list.uniqueKeys().size();
- int rows = 0;
- if(cols!=0)
- rows = list.size()/cols;
- fetchUploadList(list,rows);
- }
- void FormHistory::queryCheck(QString dealstatus)
- {
- m_curLtfid = "";
- m_curQryid = "";
- QMultiMap<QString,QString> list = SNCDataBase::getShkjCheckInfos(m_userCode,dealstatus);
- int cols = list.uniqueKeys().size();
- int rows = 0;
- if(cols!=0)
- rows = list.size()/cols;
- fetchList(list,rows);
- }
- void FormHistory::download()
- {
- if(m_ssoHash.isEmpty())
- {
- QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok);
- return;
- }
- if(m_curLtfid.isEmpty())
- {
- QMessageBox::critical(this,"提示","请先选择要下载的任务单!",QMessageBox::Ok);
- return ;
- }
- QString dealstatus;
- QString total;
- for(int i=0;i<ui->tableWidget->rowCount();i++)
- {
- QTableWidgetItem *item = ui->tableWidget->item(i,0);
- if(item)
- {
- if(m_curLtfid == item->data(Qt::DisplayRole).toString())
- {
- dealstatus = ui->tableWidget->item(i,0)->data(Qt::UserRole).toString();
- total = ui->tableWidget->item(i,4)->data(Qt::UserRole).toString();
- break;
- }
- }
- }
- if(dealstatus.isEmpty()||total.isEmpty())
- {
- QMessageBox::critical(this,"提示","无法获取下载文件必要的信息!",QMessageBox::Ok);
- return ;
- }
- if(dealstatus=="2")
- {
- if(QMessageBox::Yes!=QMessageBox::question(NULL,
- "确认",
- QString("您需要消耗%1条下载量,是否继续?").arg(total)
- ,QMessageBox::Yes,QMessageBox::No))
- {
- return ;
- }
- }
- else if(dealstatus=="3")
- {
- if(QMessageBox::Yes!=QMessageBox::question(NULL,
- "确认",
- QString("您已经下载过该文件,是否再次下载(再次下载不重复计费)?")
- ,QMessageBox::Yes,QMessageBox::No))
- {
- return ;
- }
- }
- QString json = m_cubews->userServiceVerify("DlJSJCresultFile",QString("%1,%2").arg(dealstatus).arg(total),m_ssoHash);
- if(!json.isEmpty())
- {
- RespUserServiceVerify response(json);
- if(response.getRtnCode()<=0)
- {
- QMessageBox::critical(this,"提示",response.getRtnMemo(),QMessageBox::Ok);
- return ;
- }
- }
- else
- {
- QMessageBox::critical(this,"提示",QString("无法验证用户信息"),QMessageBox::Ok);
- return ;
- }
- QString saveZipFileName = getSaveZipFileName();
- if(saveZipFileName.isEmpty())
- return ;
- json = m_cubews->dlJSJCresultFile(m_curLtfid,m_ssoHash);
- if(!json.isEmpty()){
- RespDlJSJCresultFile response(json);
- if(response.getRtnCode()==1)
- {
- QString fileName = saveZipFileName;
- QString fileContent = response.getFileContent();
- QByteArray array = QByteArray::fromBase64(fileContent.toAscii());
- QFile file(fileName);
- file.open(QIODevice::WriteOnly);
- file.write(array);
- file.close();
- // m_sync->setUserInfo("shkj","",m_userCode,m_ssoHash);
- QMessageBox::information(this,"提示","下载成功!",QMessageBox::Ok);
- refreshAccountInfo();
- }
- else
- {
- QMessageBox::critical(this,"提示",response.getRtnMemo(),QMessageBox::Ok);
- }
- }
- else
- {
- QMessageBox::warning(this,"提示","网络连接失败!",QMessageBox::Ok);
- }
- }
- void FormHistory::displayLastSelected()
- {
- int row = 0;
- int column = 0;
- if(m_lastLtfid.isEmpty())
- {
- row= 0;
- }
- else
- {
- for(int i=0;i<ui->tableWidget->rowCount();i++)
- {
- QTableWidgetItem *item = ui->tableWidget->item(i,10);
- if(item)
- {
- if(item->data(Qt::DisplayRole).toString()==m_lastLtfid)
- {
- row = i;
- break;
- }
- }
- }
- }
- ui->tableWidget->selectRow(row);
- on_tableWidget_cellClicked(row, column);
- }
- QString FormHistory::getSaveZipFileName()
- {
- QFileDialog::Options options;
- QString selectedFilter;
- QString exportDir = SNCDataBase::getExportDir();
- QString defaultZipFileName = QString("实号快检_%1.zip").arg(m_curQryid);
- QString saveZipFileName = QFileDialog::getSaveFileName(this,"另存为",exportDir + "\\" + defaultZipFileName,
- tr("ZIP Files (*.zip)"),
- &selectedFilter,
- options);
- if(!saveZipFileName.isEmpty())
- {
- QFileInfo fileInfo(saveZipFileName);
- exportDir = fileInfo.absolutePath();
- SNCDataBase::updateExportDir(exportDir);
- }
- return saveZipFileName;
- }
- void FormHistory::on_pushButtonDownload_clicked()
- {
- setCursor(Qt::WaitCursor);
- ui->pushButtonDownload->setEnabled(false);
- download();
- refreshAccountInfo();
- ui->pushButtonDownload->setEnabled(true);
- setCursor(Qt::ArrowCursor);
- }
- void FormHistory::on_pushButtonNew_clicked()
- {
- if(m_ssoHash.isEmpty())
- {
- QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok);
- return;
- }
- DialogSubmit dialog(this);
- connect(&dialog,SIGNAL(dataUpdated()),this,SLOT(onUploadFileCreated()));
- dialog.setUserCode(m_userCode);
- dialog.exec();
- queryUpload();
- }
- void FormHistory::on_pushButtonCharge_clicked()
- {
- if(m_ssoHash.isEmpty())
- {
- QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok);
- return;
- }
- if(!checkLastClickTime(sender()))
- return ;
- QString json = m_ssows->encrypt(m_ssoHash);
- RespEncrypt resp1(json);
- QString data = resp1.getEncryptData();
- json = m_ssows->getServerTime();
- RespGetServerTime resp2(json);
- QString authCode;
- QByteArray ba;
- QString str = SNCDataBase::getAuthCodeUrl().arg(resp2.getServerTime().mid(0,16));
- ba = QCryptographicHash::hash ( str.toAscii(), QCryptographicHash::Md5 );
- authCode.append(ba.toHex());
- QString url = SNCDataBase::getSSOPayUrl() + "?s=mf&r="+authCode+"&u="+data+"&p=zxcz_shkj";
- QDesktopServices::openUrl(QUrl(url));
- }
- void FormHistory::on_pushButtonLogin_clicked()
- {
- emit buttonLoginClick();
- }
- void FormHistory::onPushButtonViewsClicked()
- {
- QPushButton *btn = qobject_cast<QPushButton*>(sender());
- for(int i=0;i<ui->tableWidgetUpload->rowCount();i++)
- {
- QWidget *widget = ui->tableWidgetUpload->cellWidget(i,12);
- if(widget)
- {
- if(btn==qobject_cast<QPushButton*>(widget))
- {
- showMessage(i);
- break;
- }
- }
- }
- }
- void FormHistory::on_pushButtonRefreshUserState_clicked()
- {
- if(m_ssoHash.isEmpty())
- {
- QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok);
- return;
- }
- if(!checkLastClickTime(sender()))
- return ;
- setCursor(Qt::WaitCursor);
- refreshAccountInfo();
- setCursor(Qt::ArrowCursor);
- }
- void FormHistory::on_pushButtonQueryAll_clicked()
- {
- if(m_ssoHash.isEmpty())
- {
- QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok);
- return;
- }
- queryCheck("");
- }
- void FormHistory::on_pushButtonQueryUnDown_clicked()
- {
- if(m_ssoHash.isEmpty())
- {
- QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok);
- return;
- }
- queryCheck("2");
- }
- void FormHistory::on_pushButtonQueryDown_clicked()
- {
- if(m_ssoHash.isEmpty())
- {
- QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok);
- return;
- }
- queryCheck("3");
- }
- void FormHistory::on_tableWidget_cellClicked(int row, int column)
- {
- QStringList infos,nums;
- if(row>=0&&column>=0)
- {
- m_curLtfid = ui->tableWidget->item(row,0)->data(Qt::DisplayRole).toString();
- m_curQryid = ui->tableWidget->item(row,2)->data(Qt::DisplayRole).toString();
- m_lastLtfid = m_curLtfid;
- QList<int> indexs;
- indexs<<5<<7;
- for(int i=0;i<indexs.size();i++)
- {
- QString str = ui->tableWidget->item(row,indexs.at(i))->data(Qt::DisplayRole).toString();
- str.replace(" ","");
- infos<<str;
- str = ui->tableWidget->item(row,indexs.at(i)+1)->data(Qt::DisplayRole).toString();
- str.replace(" ","");
- nums<<str;
- }
- QString dealstatus = ui->tableWidget->item(row,0)->data(Qt::UserRole).toString();
- displayDetail(ui->tableWidget->item(row,4)->data(Qt::DisplayRole).toString(),infos,nums,dealstatus);
- }
- }
- void FormHistory::onUserStateChanged()
- {
- refreshAccountInfo();
- }
- void FormHistory::onTimeOut()
- {
- if(m_ssoHash.isEmpty())
- return ;
- if(!m_upload->isRunning())
- {
- m_upload->start();
- }
- if(!m_sync->isRunning())
- {
- m_sync->start();
- }
- }
- void FormHistory::onUploadProgressUpdated()
- {
- queryUpload();
- }
- void FormHistory::on_tableWidgetUpload_cellDoubleClicked(int row, int column)
- {
- showMessage(row);
- }
- void FormHistory::on_tableWidget_cellDoubleClicked(int row, int column)
- {
- on_pushButtonDownload_clicked();
- }
- void FormHistory::onUploadFailed()
- {
- queryUpload();
- }
- void FormHistory::onUploadFileCreated()
- {
- queryUpload();
- }
- void FormHistory::onUploadSucceed()
- {
- queryUpload();
- refreshAccountInfo();
- }
- void FormHistory::onDataSync()
- {
- queryCheck("");
- queryUpload();
- int count = SNCDataBase::getShkjToDown(m_userCode);
- if(count>0)
- {
- ui->tabWidget->setTabText(1,QString("下载检测结果(%1)").arg(count));
- ui->tabWidget->setTabIcon(1,QIcon(":/todown.png"));
- }
- else
- {
- ui->tabWidget->setTabText(1,QString("下载检测结果").arg(count));
- }
- }
|