| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542 |
- #include "formbzjcdealing.h"
- #include "ui_formbzjcdealing.h"
- #include "xprogressbar.h"
- #include "sncdatabase.h"
- #include "dialogsubmitresponsedetail.h"
- #include "dialogsubmit.h"
- FormBzjcDealing::FormBzjcDealing(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::FormBzjcDealing)
- {
- ui->setupUi(this);
- initVariables();
- initUI();
- setTableWidgetNoData(ui->tableWidget);
- }
- FormBzjcDealing::~FormBzjcDealing()
- {
- m_movie->stop();
- m_movieBig->stop();
- delete m_movieBig;
- delete m_movie;
- delete ui;
- qDebug()<<QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")\
- <<"FormRiddle.FormBzjcDealing Destroyed.";
- }
- void FormBzjcDealing::initVariables()
- {
- m_movie = new QMovie(":/working.gif");
- m_movie->start();
- m_movieBig = new QMovie(":/fetchfromserver.gif");
- m_movieBig->start();
- m_blanceOut = false;
- m_state = NotLogin;
- m_keys<<"optstatus"<<"batchid"<<"detail"<<"submittime"<<"numcount"<<"dlcount"<<"isverify"<<"tftime"<<"finishcount";
- m_headers<<"状态"<<"任务单号"<<"详情"<<"提交时间"<<"号码总数"<<"已检测"<<"是否审核"<<"交付时间"<<"检测进度";
- }
- void FormBzjcDealing::setAccountInfo(QMap<QString, QString> info)
- {
- m_account = info;
- QString ssoHash = info.value("ssohash");
- QString userCode = info.value("usercode");
- QString userHash = info.value("userhash");
- if(!ssoHash.isEmpty())
- {
- if(!userHash.isEmpty())
- {
- m_state = LoginOk;
- setTableWidgetSyncData(ui->tableWidget);
- }
- else
- {
- if(!userCode.isEmpty())
- {
- m_state = LoginError;
- }
- else
- {
- m_state = NotBind;
- }
- }
- }
- else
- {
- m_state = NotLogin;
- }
- if(m_state!=LoginOk)
- {
- setTableWidgetNoData(ui->tableWidget);
- }
- }
- void FormBzjcDealing::setClientName(QString name)
- {
- m_clientName = name;
- }
- void FormBzjcDealing::setClientID(QString clientID)
- {
- m_clientID = clientID;
- }
- void FormBzjcDealing::initUI()
- {
- ui->tableWidget->setColumnCount(m_headers.size());
- ui->tableWidget->setHorizontalHeaderLabels(m_headers);
- ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
- ui->tableWidget->setShowGrid(false);
- ui->tableWidget->setAlternatingRowColors(true);
- ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
- ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
- 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);
- ui->tableWidget->setColumnWidth(0,30);
- ui->tableWidget->setColumnWidth(1,135);
- ui->tableWidget->setColumnWidth(2,0);//
- ui->tableWidget->setColumnWidth(3,130);
- ui->tableWidget->setColumnWidth(4,130);
- ui->tableWidget->setColumnWidth(5,79);//
- ui->tableWidget->setColumnWidth(6,0);
- ui->tableWidget->setColumnWidth(7,0);
- ui->tableWidget->setColumnWidth(8,170);
- m_headers<<"状态"<<"任务单号"<<"详情"<<"提交时间"<<"号码总数"<<"已检测"<<"是否审核"<<"交付时间"<<"检测进度";
- }
- void FormBzjcDealing::setTableWidgetNoData(QTableWidget *tableWidget)
- {
- prepareTableWidgetCells(tableWidget,10);
- tableWidget->setEnabled(false);
- QTableWidgetItem *item = new QTableWidgetItem();
- item->setTextAlignment(Qt::AlignLeft|Qt::AlignVCenter);
- item->setText(" 暂无信息");
- tableWidget->setItem(5,4,item);
- }
- void FormBzjcDealing::setTableWidgetSyncData(QTableWidget *tableWidget)
- {
- prepareTableWidgetCells(tableWidget,10);
- tableWidget->setEnabled(false);
- QLabel *lbl = new QLabel();
- QTableWidgetItem *item = new QTableWidgetItem(" 正在读取...");
- lbl->setMovie(m_movieBig);
- item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
- tableWidget->setItem(5,4,item);
- tableWidget->setCellWidget(5,4,lbl);
- }
- void FormBzjcDealing::prepareTableWidgetCells(QTableWidget *tableWidget, int rows)
- {
- tableWidget->setRowCount(0);
- tableWidget->setRowCount(rows);
- }
- void FormBzjcDealing::fillDataList(QTableWidget *tableWidget,QStringList keys,
- QMultiMap<QString, QString> list, int rowCount)
- {
- setTableWidgetNoData(tableWidget);
- if(rowCount==0)
- {
- return ;
- }
- prepareTableWidgetCells(tableWidget,rowCount);
- tableWidget->setEnabled(true);
- for(int row = 0;row < rowCount;row++)
- {
- QMap<QString,QString> map;
- for(int col=0;col<keys.size();col++)
- {
- QString key = keys.at(col);
- QString value = list.values(key).at(row);
- map.insert(key,value);
- }
- for(int col=0;col<keys.size();col++)
- {
- QString key = keys.at(col);
- QString value = list.values(key).at(row);
- setCellElement(tableWidget,row,col,key,value,map);
- }
- }
- tableWidget->sortByColumn(0);
- tableWidget->sortByColumn(0);
- }
- void FormBzjcDealing::setCellElement(QTableWidget *tableWidget, int row, int col,
- QString key,QString value,QMap<QString,QString> data)
- {
- QTableWidgetItem* item = new QTableWidgetItem();
- QVariant display = value;
- QVariant tooltip = value;
- item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
- //进行数据翻译
- if(key=="batchid")
- {
- QString detail = data.value("detail");
- tooltip = detail;
- }
- else if(key=="numcount")
- {
- display = data.value("numcount").toInt();
- tooltip = data.value("numcount");
- }
- else if(key=="dlcount")
- {
- display = data.value("finishcount").toInt();
- tooltip = data.value("finishcount");
- }
- //设置单元格显示形式,是用item填充还是widget填充
- if(key=="optstatus")
- {
- delete item;
- QLabel *lbl = new QLabel();
- lbl->setAlignment(Qt::AlignCenter|Qt::AlignHCenter);
- QString optstatus = data.value("optstatus");
- QString isverify = data.value("isverify");
- QString tftime = data.value("tftime");
- if(isverify == "0")
- {
- if(tftime.isEmpty())
- {
- if(m_blanceOut)
- lbl->setToolTip("等待付款");
- else
- lbl->setToolTip("等待审核");
- lbl->setPixmap(QPixmap(":/task_lock.png"));
- }
- else if(tftime>"2000-01-01 00:00:00")
- {
- lbl->setToolTip("等待检测");
- lbl->setPixmap(QPixmap(":/task_hourglass.png"));
- }
- else
- {
- if(m_blanceOut)
- lbl->setToolTip("等待付款");
- else
- lbl->setToolTip("等待审核");
- lbl->setPixmap(QPixmap(":/task_lock.png"));
- }
- if(optstatus=="-1")
- {
- lbl->setToolTip("服务端已经删除或失效");
- lbl->setPixmap(QPixmap(":/task_error.png"));
- }
- }
- else if(isverify == "2")
- {
- lbl->setPixmap(QPixmap(":/task_error.png"));
- lbl->setToolTip("审核未通过");
- }
- else // if(isverify == "1")
- {
- if(optstatus == "-1")
- {
- lbl->setToolTip("文件已经失效");
- lbl->setPixmap(QPixmap(":/task_warning.png"));
- }
- else if(optstatus == "0")
- {
- lbl->setToolTip("停止");
- //lbl->setPixmap(QPixmap(":/task_stop.png"));
- }
- else if(optstatus == "1")
- {
- lbl->setToolTip("暂停");
- lbl->setPixmap(QPixmap(":/task_pause.png"));
- }
- else if(optstatus == "2")
- {
- lbl->setToolTip("正在检测");
- lbl->setPixmap(QPixmap(":/task_play.png"));
- }
- else if(optstatus == "3")
- {
- lbl->setToolTip("正在处理");
- lbl->setPixmap(QPixmap(":/task_play.png"));
- }
- else if(optstatus == "4" || optstatus == "5" || optstatus == "6")
- {
- lbl->setToolTip("发生错误");
- lbl->setPixmap(QPixmap(":/task_error.png"));
- }
- else
- {
- lbl->setToolTip("上传成功");
- lbl->setPixmap(QPixmap(":/task_ok.png"));
- }
- }
- tableWidget->setCellWidget(row,col,lbl);
- }
- else if(key=="finishcount")
- {
- delete item;
- int numcount = data.value("numcount").toInt();
- int finishcount = data.value("finishcount").toInt();
- double percent =0;
- if(numcount>0)
- percent = finishcount*100.0/numcount;
- QLabel *lbl = new QLabel();
- lbl->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
- XProgressBar *progress = 0;
- QString optstatus = data.value("optstatus");
- QString isverify = data.value("isverify");
- QString tftime = data.value("tftime");
- if(isverify == "0")
- {
- if(tftime.isEmpty())
- {
- if(m_blanceOut)
- lbl->setText("等待付款");
- else
- lbl->setText("等待审核");
- }
- else if(tftime>"2000-01-01 00:00:00")
- {
- lbl->setText("等待检测");
- }
- else
- {
- if(m_blanceOut)
- lbl->setText("等待付款");
- else
- lbl->setText("等待审核");
- }
- if(optstatus=="-1")
- {
- lbl->setText("服务端已经删除或失效");
- }
- }
- else if(isverify == "2")
- {
- lbl->setText("审核未通过");
- }
- else // if(isverify == "1")
- {
- if(optstatus == "-1")
- {
- lbl->setText("文件已经失效");
- }
- else if(optstatus == "0")
- {
- lbl->setText("停止");
- //modify by xxw on 2016-7-23
- //把停止改为状态显示
- delete lbl;
- lbl = 0;
- progress = new XProgressBar();
- }
- else if(optstatus == "1")
- {
- lbl->setText("暂停");
- }
- else if(optstatus == "2")
- {
- lbl->setText("正在检测");
- delete lbl;
- lbl = 0;
- progress = new XProgressBar();
- }
- else if(optstatus == "3")
- {
- lbl->setText("正在处理");
- }
- else if(optstatus == "4" || optstatus == "5" || optstatus == "6")
- {
- lbl->setText("发生错误");
- }
- else
- {
- lbl->setText("未知" + optstatus);
- }
- }
- if(lbl)
- {
- tableWidget->setCellWidget(row,col,lbl);
- }
- else
- {
- progress->setProgress(3,percent);
- tableWidget->setCellWidget(row,col,progress);
- }
- }
- else
- {
- item->setData(Qt::DisplayRole,display);
- item->setData(Qt::UserRole,value);
- item->setData(Qt::ToolTipRole,tooltip);
- tableWidget->setItem(row,col,item);
- }
- }
- void FormBzjcDealing::query()
- {
- QString userCode = m_account.value("usercode");
- QMultiMap<QString,QString> list = SNCDataBase::getBzjcCheckDealingInfos(userCode,m_clientID);
- int cols = list.uniqueKeys().size();
- int rows = 0;
- if(cols!=0)
- rows = list.size()/cols;
- if(list.size()==0)
- {
- setTableWidgetNoData(ui->tableWidget);
- return ;
- }
- QStringList ids;
- QString curId;
- for(int i=0;i<ui->tableWidget->rowCount();i++)
- {
- QTableWidgetItem *item = ui->tableWidget->item(i,0);
- if(item)
- {
- if(item->checkState()==Qt::Checked)
- {
- ids<<item->data(Qt::UserRole).toString();
- }
- if(item->isSelected())
- {
- curId = item->data(Qt::UserRole).toString();
- }
- }
- }
- fillDataList(ui->tableWidget,m_keys,list,rows);
- for(int i=0;i<ui->tableWidget->rowCount();i++)
- {
- if(curId.isEmpty())
- {
- ui->tableWidget->selectRow(i);
- ui->tableWidget->setFocus();
- break;
- }
- QTableWidgetItem *item = ui->tableWidget->item(i,0);
- if(item)
- {
- QString id = item->data(Qt::UserRole).toString();
- if(curId==id)
- {
- ui->tableWidget->selectRow(i);
- ui->tableWidget->setFocus();
- }
- for(int i=0;i<ids.size();i++)
- {
- if(id==ids.at(i))
- {
- item->setCheckState(Qt::Checked);
- break;
- }
- }
- }
- }
- }
- void FormBzjcDealing::showRtnMessage(int row)
- {
- QTableWidgetItem *itemMsg = ui->tableWidget->item(row,8);
- QTableWidgetItem *itemDetail = ui->tableWidget->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 FormBzjcDealing::onPushButtonViewsClicked()
- {
- QPushButton *btn = qobject_cast<QPushButton*>(sender());
- for(int i=0;i<ui->tableWidget->rowCount();i++)
- {
- QWidget *widget = ui->tableWidget->cellWidget(i,ui->tableWidget->columnCount()-1);
- if(widget)
- {
- if(btn==qobject_cast<QPushButton*>(widget))
- {
- showRtnMessage(i);
- break;
- }
- }
- }
- }
- void FormBzjcDealing::onDataUpdated()
- {
- query();
- }
- void FormBzjcDealing::on_tableWidget_cellDoubleClicked(int row, int column)
- {
- showRtnMessage(row);
- }
- bool FormBzjcDealing::chkAccountState(AccountLoginState state)
- {
- bool ret = false;
- switch(state)
- {
- case NotLogin:
- QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok);
- break;
- case NotBind:
- QMessageBox::critical(this,"提示","此项服务尚未开通,请开通后再操作!",QMessageBox::Ok);
- break;
- case LoginError:
- QMessageBox::critical(this,"提示","此项服务暂时无法连接,请稍候重试!",QMessageBox::Ok);
- break;
- default:
- ret = true;
- }
- return ret;
- }
- //add by xw on 2015-11-1 for 5.4.8
- //客户如果余额不足,上传完数据后检测进度的状态请改为“等待付款”,如果余额够就显示为“等待审核”
- void FormBzjcDealing::onBalanceOut()
- {
- m_blanceOut = true;
- }
- void FormBzjcDealing::onBalanceIn()
- {
- m_blanceOut = false;
- }
|