From 20ffcfb5507daf34f81346ca3dfa4c031e7b2fe3 Mon Sep 17 00:00:00 2001 From: wumu <mayi@mayi.com> Date: 星期日, 27 四月 2025 22:13:53 +0800 Subject: [PATCH] 0427 --- internal_system_v1/threemergeproblemlist.cpp | 1123 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1,123 insertions(+), 0 deletions(-) diff --git a/internal_system_v1/threemergeproblemlist.cpp b/internal_system_v1/threemergeproblemlist.cpp index 8cc2e65..72b25cd 100644 --- a/internal_system_v1/threemergeproblemlist.cpp +++ b/internal_system_v1/threemergeproblemlist.cpp @@ -4,27 +4,472 @@ #include <QSqlQuery> #include <QSqlError> #include <QMessageBox> +#include <QDir> +#include <QFileDevice> +#include <QDesktopServices> +#include <QFileDialog> + +#include "noedititemdelegate.h" + +#pragma execution_character_set("utf-8") ThreeMergeProblemList::ThreeMergeProblemList(QWidget *parent) : QMainWindow(parent), ui(new Ui::ThreeMergeProblemList) { ui->setupUi(this); + + m_fdd = new FileDialogDelegate; + //m_noEdit = new ThreeComboBox; + ui->statusbar->hide(); ui->menubar->hide(); initUi(); // 鍒濆鍖栨墍鏈夌晫闈� + + // 闅愯棌 + //ui->comboBox_company->hide(); + + ui->tableWidget_2->hide(); + ui->pushButton_save->hide(); + ui->pushButton_addRow->hide(); + ui->label_5->hide(); + ui->label->hide(); + + + ui->tableWidget_3->hide(); + ui->pushButton_save_2->hide(); + ui->pushButton_addRow_2->hide(); + ui->label_6->hide(); + ui->label_2->hide(); + + ui->line->hide(); + ui->line_2->hide(); + + ui->groupBox->hide(); // 棣栨鍏堥殣钘� + + // pdf鏂囦欢鐩稿叧 + //m_pdfView = new QWebEngineView(); + } ThreeMergeProblemList::~ThreeMergeProblemList() { + //delete m_noEdit; delete ui; } +// 鎷跨粨鏋滈泦鐨剆ql +int ThreeMergeProblemList::selectSQL(QString sql,QVector<QVector<QString>> &result) +{ + int rows = -1; + QSqlQuery query; + if(query.exec(sql)) + { + qDebug()<<QString("selectSQL ok..."); + + while(query.next()){ // 娣诲姞缁撴灉闆� + int idx = 0; + QVariant var; + QVector<QString> lines; + while((var = query.value(idx++)).isValid()){ + lines.append(var.toString()); + } + result.append(lines); + } + rows = result.size(); + + }else{ + qDebug()<<QString("selectSQL fail...")<<query.lastError().text(); + } + return rows; +} + +// 鎷夸慨鏀规潯鏁扮殑sql +int ThreeMergeProblemList::changeSQL(QString sql) +{ + int rows = -1; + QSqlQuery query; + if(query.exec(sql)) + { + qDebug()<<QString("changeSQL ok..."); + rows = query.numRowsAffected(); + + }else{ + qDebug()<<QString("changeSQL fail...")<<query.lastError().text(); + } + return rows; +} + +int ThreeMergeProblemList::saveDataLine(int row) +{ + if(ui->tableWidget->item(row,0)==nullptr) { + qDebug()<<"褰撳墠琛岄涓虹┖"<<row; + return 0; + } + // 澶勭悊涓虹┖鐨勯潪棣栧垪鍗曞厓锛岃嚜鍔ㄨˉ闆� + for(int i=3;i<ui->tableWidget->columnCount();++i){ + if(ui->tableWidget->item(row,i) == nullptr){ + qDebug()<<"鍙戠幇绌洪」:"<<row<<i; + ui->tableWidget->setItem(row,i,new QTableWidgetItem(" ")); + } + } + + + // 鍙栧嚭绱㈠紩鍙锋潵鍒ゆ柇涓�涓� + QString sql = QString("select id from standing_book_info where id=%1").arg(ui->tableWidget->item(row,0)->text()); + qDebug()<<"id sql:"<<sql; + QVector<QVector<QString>> res; + int rows = selectSQL(sql,res); + if( rows > 0){ + // 瀛樺湪锛屽垯鏇存柊鍐呭鍗冲彲 + qDebug()<<"id宸插瓨鍦紝闇�鏇存柊鏁版嵁鍗冲彲"; + sql = QString("update standing_book_info set 瀹¤绫诲埆='%1',瀹¤骞村害='%2',瀹¤鍗曚綅='%3',瀹¤鏂瑰紡='%4',璐d换涓讳綋鍚嶇О='%5'" + ",瀹¤椤圭洰='%6',瀹¤椤圭洰鍚嶇О='%7',闂绫诲埆='%8',闂瀹氭��='%9',闂鎻忚堪='%10',闂瀹氭�ф硶瑙勪緷鎹�='%11',瀹¤鍙戠幇闂閲戦瀹氭��='%12',瀹¤鍙戠幇闂涓暟瀹氭��='%13',娑夊強閲戦=%14,闂鎻忚堪浣愯瘉璧勬枡='%15'" + ",瀹¤鏈熼棿宸叉暣鏀�='%16',鏁存敼閲戦=%17,鏁存敼鎯呭喌1='%18',鏁存敼鎯呭喌浣愯瘉璧勬枡1='%19',鏁存敼缁撴灉='%20',鏁存敼瀹屾垚鏃堕棿='%21',灏氭湭鏁存敼鍒颁綅鐨勫師鍥�='%22',鏁存敼棰勮瀹屾垚鏃堕棿='%23'" + ",鏁存敼鎯呭喌2='%24',鏁存敼鎯呭喌浣愯瘉璧勬枡2='%25',澶勫垎绫诲瀷='%26',澶勫垎浜烘暟=%27,绉婚�佽缁嗕俊鎭�='%28',澶勭悊缁撴灉='%29',娑夋浜哄憳=%30,鏁存敼妫�鏌ョ粨鏋淿妫�鏌ユ椂闂�='%31',鏁存敼妫�鏌ョ粨鏋淿妫�鏌ユ柟寮�='%32',鏁存敼妫�鏌ョ粨鏋淿妫�鏌ョ粨鏋�='%33',宸叉暣鏀筥绾犳闂='%34',宸叉暣鏀筥瀹屽杽鍒跺害='%35',宸叉暣鏀筥瀹屾垚鏃堕棿='%36'" + ",姝e湪鏁存敼_涓昏鍘熷洜='%37',姝e湪鏁存敼_瀹屾垚鏃堕檺='%38',灏氭湭鏁存敼_涓昏鍘熷洜='%39',灏氭湭鏁存敼_璐d换閮ㄩ棬鎴栬矗浠讳汉='%40',灏氭湭鏁存敼_瀹屾垚鏃堕檺='%41',鏁存敼鎴愭灉_閲戦绫绘暣鏀规垚鏋�='%42',鏁存敼鎴愭灉_閲戦=%43,鏁存敼鎴愭灉_闈為噾棰濈被鏁存敼鎴愭灉='%44'" + ",鏁存敼鎴愭灉_鏁伴噺=%45 where id=%46").arg(ui->tableWidget->item(row,1)->text()).arg(ui->tableWidget->item(row,2)->text()).arg(ui->tableWidget->item(row,3)->text()).arg(ui->tableWidget->item(row,4)->text()) + .arg(ui->tableWidget->item(row,5)->text()).arg(ui->tableWidget->item(row,6)->text()).arg(ui->tableWidget->item(row,7)->text()).arg(ui->tableWidget->item(row,8)->text()).arg(ui->tableWidget->item(row,9)->text()).arg(ui->tableWidget->item(row,10)->text()) + .arg(ui->tableWidget->item(row,11)->text()).arg(ui->tableWidget->item(row,12)->text()).arg(ui->tableWidget->item(row,13)->text()).arg(ui->tableWidget->item(row,12+2)->text().toDouble()).arg(ui->tableWidget->item(row,13+2)->text()).arg(ui->tableWidget->item(row,14+2)->text()).arg(ui->tableWidget->item(row,15+2)->text().toDouble()).arg(ui->tableWidget->item(row,16+2)->text()) + .arg(ui->tableWidget->item(row,17+2)->text()).arg(ui->tableWidget->item(row,18+2)->text()).arg(ui->tableWidget->item(row,19+2)->text()).arg(ui->tableWidget->item(row,20+2)->text()).arg(ui->tableWidget->item(row,21+2)->text()).arg(ui->tableWidget->item(row,22+2)->text()) + .arg(ui->tableWidget->item(row,23+2)->text()).arg(ui->tableWidget->item(row,24+2)->text()).arg(ui->tableWidget->item(row,25+2)->text().toInt()).arg(ui->tableWidget->item(row,26+2)->text()).arg(ui->tableWidget->item(row,27+2)->text()).arg(ui->tableWidget->item(row,28+2)->text().toInt()).arg(ui->tableWidget->item(row,24+5+2)->text()).arg(ui->tableWidget->item(row,25+5+2)->text()).arg(ui->tableWidget->item(row,26+5+2)->text()).arg(ui->tableWidget->item(row,27+5+2)->text()).arg(ui->tableWidget->item(row,28+5+2)->text()) + .arg(ui->tableWidget->item(row,29+5+2)->text()).arg(ui->tableWidget->item(row,30+5+2)->text()).arg(ui->tableWidget->item(row,31+5+2)->text()).arg(ui->tableWidget->item(row,32+5+2)->text()).arg(ui->tableWidget->item(row,33+5+2)->text()).arg(ui->tableWidget->item(row,34+5+2)->text()) + .arg(ui->tableWidget->item(row,35+5+2)->text()).arg(ui->tableWidget->item(row,36+5+2)->text().toDouble()).arg(ui->tableWidget->item(row,37+5+2)->text()).arg(ui->tableWidget->item(row,38+5+2)->text().toInt()).arg(ui->tableWidget->item(row,0)->text()); + qDebug()<<sql; + rows = changeSQL(sql); + if(rows > 0){ + qDebug()<<"change ok"; + }else{ + qDebug()<<"change fail"; + } + }else{ + // rows涓�-1 璇存槑sql璇彞鏈夐棶棰� + if(rows == -1){ + qDebug()<<"sql error"; + return -1; + } + // 涓嶅瓨鍦紝鍒欓渶瑕佹柊澧炴彃鍏� + qDebug()<<"涓嶅瓨鍦╥d锛屾彃鍏ユ暟鎹�"; + sql = QString("insert into standing_book_info (瀹¤绫诲埆,瀹¤骞村害,瀹¤鍗曚綅,瀹¤鏂瑰紡,璐d换涓讳綋鍚嶇О" + ",瀹¤椤圭洰,瀹¤椤圭洰鍚嶇О,闂绫诲埆,闂瀹氭��,闂鎻忚堪,闂瀹氭�ф硶瑙勪緷鎹�,瀹¤鍙戠幇闂閲戦瀹氭��,瀹¤鍙戠幇闂涓暟瀹氭��,娑夊強閲戦,闂鎻忚堪浣愯瘉璧勬枡" + ",瀹¤鏈熼棿宸叉暣鏀�,鏁存敼閲戦,鏁存敼鎯呭喌1,鏁存敼鎯呭喌浣愯瘉璧勬枡1,鏁存敼缁撴灉,鏁存敼瀹屾垚鏃堕棿,灏氭湭鏁存敼鍒颁綅鐨勫師鍥�,鏁存敼棰勮瀹屾垚鏃堕棿" + ",鏁存敼鎯呭喌2,鏁存敼鎯呭喌浣愯瘉璧勬枡2,澶勫垎绫诲瀷,澶勫垎浜烘暟,绉婚�佽缁嗕俊鎭�,澶勭悊缁撴灉,娑夋浜哄憳,鏁存敼妫�鏌ョ粨鏋淿妫�鏌ユ椂闂�,鏁存敼妫�鏌ョ粨鏋淿妫�鏌ユ柟寮�,鏁存敼妫�鏌ョ粨鏋淿妫�鏌ョ粨鏋�,宸叉暣鏀筥绾犳闂,宸叉暣鏀筥瀹屽杽鍒跺害,宸叉暣鏀筥瀹屾垚鏃堕棿" + ",姝e湪鏁存敼_涓昏鍘熷洜,姝e湪鏁存敼_瀹屾垚鏃堕檺,灏氭湭鏁存敼_涓昏鍘熷洜,灏氭湭鏁存敼_璐d换閮ㄩ棬鎴栬矗浠讳汉,灏氭湭鏁存敼_瀹屾垚鏃堕檺,鏁存敼鎴愭灉_閲戦绫绘暣鏀规垚鏋�,鏁存敼鎴愭灉_閲戦,鏁存敼鎴愭灉_闈為噾棰濈被鏁存敼鎴愭灉" + ",鏁存敼鎴愭灉_鏁伴噺,log_time) values ('%1','%2','%3','%4','%5','%6','%7','%8','%9','%10','%11','%12','%13',%14,'%15','%16',%17,'%18','%19','%20','%21','%22','%23','%24','%25'" + ",'%26',%27,'%28','%29',%30,'%31','%32','%33','%34','%35','%36','%37','%38','%39','%40','%41','%42',%43,'%44',%45,'%46')").arg(ui->tableWidget->item(row,1)->text()).arg(ui->tableWidget->item(row,2)->text()).arg(ui->tableWidget->item(row,3)->text()).arg(ui->tableWidget->item(row,4)->text()) + .arg(ui->tableWidget->item(row,5)->text()).arg(ui->tableWidget->item(row,6)->text()).arg(ui->tableWidget->item(row,7)->text()).arg(ui->tableWidget->item(row,8)->text()).arg(ui->tableWidget->item(row,9)->text()).arg(ui->tableWidget->item(row,10)->text()) + .arg(ui->tableWidget->item(row,11)->text()).arg(ui->tableWidget->item(row,12)->text()).arg(ui->tableWidget->item(row,13)->text()).arg(ui->tableWidget->item(row,12+2)->text().toDouble()).arg(ui->tableWidget->item(row,13+2)->text()).arg(ui->tableWidget->item(row,14+2)->text()).arg(ui->tableWidget->item(row,15+2)->text().toDouble()).arg(ui->tableWidget->item(row,16+2)->text()) + .arg(ui->tableWidget->item(row,17+2)->text()).arg(ui->tableWidget->item(row,18+2)->text()).arg(ui->tableWidget->item(row,19+2)->text()).arg(ui->tableWidget->item(row,20+2)->text()).arg(ui->tableWidget->item(row,21+2)->text()).arg(ui->tableWidget->item(row,22+2)->text()) + .arg(ui->tableWidget->item(row,23+2)->text()).arg(ui->tableWidget->item(row,24+2)->text()).arg(ui->tableWidget->item(row,25+2)->text().toInt()).arg(ui->tableWidget->item(row,26+2)->text()).arg(ui->tableWidget->item(row,27+2)->text()).arg(ui->tableWidget->item(row,28+2)->text().toInt()).arg(ui->tableWidget->item(row,24+5+2)->text()).arg(ui->tableWidget->item(row,25+5+2)->text()).arg(ui->tableWidget->item(row,26+5+2)->text()).arg(ui->tableWidget->item(row,27+5+2)->text()).arg(ui->tableWidget->item(row,28+5+2)->text()) + .arg(ui->tableWidget->item(row,29+5+2)->text()).arg(ui->tableWidget->item(row,30+5+2)->text()).arg(ui->tableWidget->item(row,31+5+2)->text()).arg(ui->tableWidget->item(row,32+5+2)->text()).arg(ui->tableWidget->item(row,33+5+2)->text()).arg(ui->tableWidget->item(row,34+5+2)->text()) + .arg(ui->tableWidget->item(row,35+5+2)->text()).arg(ui->tableWidget->item(row,36+5+2)->text().toDouble()).arg(ui->tableWidget->item(row,37+5+2)->text()).arg(ui->tableWidget->item(row,38+5+2)->text().toInt()).arg(QDateTime::currentDateTime().toString("yyyy/MM/dd HH:mm:ss")); + qDebug()<<sql; + rows = changeSQL(sql); + if(rows > 0){ + qDebug()<<"insert ok"; + }else{ + qDebug()<<"insert fail"; + } + + } + return rows; +} + +// path 涓烘枃浠跺畬鏁磋矾寰� +// id涓哄瓙鐩綍鍚嶅瓧 +int ThreeMergeProblemList::saveFile(QString path, QString id,QString &absSavePath,QString proName) +{ + // 鏍规嵁id鏉ユ寚瀹氬瓙鐩綍杩涜鏂囦欢鐨勬嫹璐濆拰瀛樺偍 + // 榛樿淇濆瓨鍒板綋鍓峞vidence鐩綍涓嬬殑id瀛愮洰褰曚腑 + QFile sourceFile(path); + if(!sourceFile.exists()){ + qDebug()<<"target file not exist:"<<path; + return -1; + } + + QString curPath = QString("./evidence/%1_%2/").arg(id).arg(proName); + QDir dir; + if(!dir.exists(curPath)){ + // 鍒欑洿鎺ュ垱寤� + if(!dir.mkpath(curPath)){ + qDebug()<<"create path fail:"<<curPath; + return 0; // 鍒涘缓澶辫触 + } + } + // 鎴愬姛 + // 寮�濮嬫嫹璐濇枃浠跺埌鎸囧畾浣嶇疆 + QFileInfo finfo(path); + QString distinationPath = curPath+finfo.fileName(); + if(sourceFile.copy(distinationPath)){ + qDebug()<<"copy ok:"<<distinationPath; + absSavePath = distinationPath; + return 1; + }else{ + qDebug()<<"copy fail:"<<distinationPath<<sourceFile.errorString(); + return -2; + } + +} + +// 浣跨敤web鎶�鏈� 鍔犺浇pdf鏂囦欢 +int ThreeMergeProblemList::loadPdfFile(QString path) +{ +// QString dirPath = QApplication::applicationDirPath(); +// qDebug()<<"pdf:"<<path<<dirPath; +// qDebug()<<QDir::currentPath(); +// qDebug()<<path.mid(1); +// QString pdfJS = "file://"+QDir::currentPath()+"/web/viewer.html"; +// QString link = "?file="; +// QString fullPath = pdfJS+link+QDir::currentPath()+path.mid(1); +// qDebug()<<"fullPath"<<fullPath; +// m_pdfView->page()->load(QUrl::fromUserInput(fullPath)); + + return 0; +} void ThreeMergeProblemList::initUi() { + initProblemRectBookUi(); // 鍒濆鍖栨暣鏀瑰彴璐� initProblemListUi(); // 鍒濆鍖栭棶棰樻竻鍗曠晫闈� initProblemResultUi(); // 鍒濆鍖栭棶棰樺鐞嗙粨鏋滅晫闈� + + ui->tableWidget->setRowCount(4); // 璁剧疆鍒濆琛屾暟 + ui->tableWidget->setMinimumHeight(500); // 鏁存敼鍙拌处 + ui->tableWidget_2->setMinimumHeight(500); // 鏁存敼缁撴灉 + ui->tableWidget_3->setMinimumHeight(500); // 闂娓呭崟 + + ui->tableWidget->setItemDelegateForColumn(1,m_fdd); + + // 鑷�傚簲鎿嶄綔 + ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); + ui->tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); + + ui->tableWidget->resizeColumnsToContents(); + ui->tableWidget->resizeRowsToContents(); + + // 鎺у埗琛ㄥご棰滆壊 + // 鑷畾涔夌殑鏂瑰紡鏈夌己闄锋槸瀹规槗璁╁搴旈」閿佹 + //m_custonHV = new CustomHeaderView(Qt::Horizontal,ui->tableWidget); + //ui->tableWidget->setHorizontalHeader(m_custonHV); + + // 缁欐寚瀹氶」鏀硅儗鏅鑹� + //ui->tableWidget->horizontalHeaderItem(1)->setBackground(QBrush(Qt::red)); + //ui->tableWidget->horizontalHeaderItem(3)->setBackground(QBrush(Qt::blue)); + +// QTableWidgetItem *item_1 = new QTableWidgetItem("瀹¤绫诲埆"); +// item_1->setForeground(QBrush(QColor("#FF1493"))); +// ui->tableWidget->setHorizontalHeaderItem(1,item_1); + + for(int i=0;i<14;++i){ + QString label = ui->tableWidget->horizontalHeaderItem(i)->text(); + QTableWidgetItem *item_1 = new QTableWidgetItem(label); + item_1->setForeground(QBrush(QColor("#ff00ff"))); + ui->tableWidget->setHorizontalHeaderItem(i,item_1); + //ui->tableWidget->setItem(1,i,item_1); + } + + for(int i=14;i<14+10;++i){ + QString label = ui->tableWidget->horizontalHeaderItem(i)->text(); + QTableWidgetItem *item_1 = new QTableWidgetItem(label); + item_1->setForeground(QBrush(QColor("#00aaff"))); + ui->tableWidget->setHorizontalHeaderItem(i,item_1); + } + + for(int i=24;i<24+3;++i){ + QString label = ui->tableWidget->horizontalHeaderItem(i)->text(); + QTableWidgetItem *item_1 = new QTableWidgetItem(label); + item_1->setForeground(QBrush(QColor("#00aa00"))); + ui->tableWidget->setHorizontalHeaderItem(i,item_1); + } + + for(int i=27;i<27+8;++i){ + QString label = ui->tableWidget->horizontalHeaderItem(i)->text(); + QTableWidgetItem *item_1 = new QTableWidgetItem(label); + item_1->setForeground(QBrush(QColor("#007a50"))); + ui->tableWidget->setHorizontalHeaderItem(i,item_1); + } + + for(int i=35;i<35+5;++i){ + QString label = ui->tableWidget->horizontalHeaderItem(i)->text(); + QTableWidgetItem *item_1 = new QTableWidgetItem(label); + item_1->setForeground(QBrush(QColor("#500a50"))); + ui->tableWidget->setHorizontalHeaderItem(i,item_1); + } + + // 澶勭悊鍏蜂綋鏌愬垪鐨勬儏鍐� + // 瀹¤绫诲埆 + QStringList nwLabels; + nwLabels << "鍐呭"<<"澶栧"; + m_cbb_nw = new ComboBoxDelegate(nwLabels,this); + ui->tableWidget->setItemDelegateForColumn(1,m_cbb_nw); + + // 瀹¤骞村害 + m_date_year = new DateDelegate(this); + ui->tableWidget->setItemDelegateForColumn(2,m_date_year); + + // 瀹¤鍗曚綅 + QStringList comLabels; + comLabels << "瀹¤灞�"<<"瀹¤鍘�"<<"瀹¤缃�"<<"鍏朵粬"; + m_cbb_company = new ComboBoxDelegate(comLabels,this); + ui->tableWidget->setItemDelegateForColumn(3,m_cbb_company); + + // 瀹¤鏂瑰紡 + QStringList wayLabels; + wayLabels << "灏卞湴瀹¤"<<"鎶ラ�佸璁�"; + m_cbb_way = new ComboBoxDelegate(wayLabels,this); + ui->tableWidget->setItemDelegateForColumn(4,m_cbb_way); + + // 瀹¤椤圭洰 + QStringList proLabels; + proLabels <<" "<< "璐交钀藉疄鍥藉閲嶅ぇ鏀跨瓥鎺柦瀹¤"<<"璐㈡斂璐㈠姟鏀舵敮瀹¤"<<"鍥哄畾璧勪骇鎶曡祫瀹¤"<<"鍐呴儴鎺у埗鍜岄闄╃鐞嗗璁�" + <<"缁忔祹璐d换瀹¤"<<"淇℃伅绯荤粺瀹¤"<<"澧冨瀹¤"<<"鍏朵粬"; + m_cbb_way = new ComboBoxDelegate(proLabels,this); + ui->tableWidget->setItemDelegateForColumn(6,m_cbb_way); + + // 瀹¤鍙戠幇闂閲戦瀹氭�� + QStringList moneyLabels; + moneyLabels<<"鍏朵腑锛氱哗鏁堢被闂閲戦"<<"鍚堣鎬ч棶棰橀噾棰�"<<"鍏朵腑锛氫細璁℃牳绠楁柟闈�"<<"杩濊浣跨敤璧勯噾"<<"鎴暀銆佹矇娣�璧勯噾"<<"鎹熷け娴垂"<<"鎸敤璧勯噾"<<"鍋锋紡绋庤垂"<<"杩濊鍙栧緱鏀跺叆"<<"鍏朵粬"; + m_cbb_money = new ComboBoxDelegate(moneyLabels,this); + ui->tableWidget->setItemDelegateForColumn(12,m_cbb_money); + + // 瀹¤鍙戠幇闂涓暟瀹氭�� + QStringList cntLabels; + cntLabels<<"鍏朵腑锛氶噾棰濈被闂涓暟"<<"闈為噾棰濈被闂涓暟"<<"鍏朵腑锛氬浗瀹舵斂绛栨帾鏂借惤瀹炴柟闈�"<<"鍙戝睍瑙勫垝涓庢垬鐣ュ喅绛栨柟闈�"<<"鍐呴儴鎺у埗涓庨闄╃鐞嗘柟闈�"<<"鍏朵粬"; + m_cbb_cnt = new ComboBoxDelegate(cntLabels,this); + ui->tableWidget->setItemDelegateForColumn(13,m_cbb_cnt); + + // 鏁存敼缁撴灉 + QStringList resLabels; + resLabels<<"绔嬭鏁存敼"<<"鍒嗛樁娈垫暣鏀�"<<"灏氭湭鏁存敼"; + m_cbb_result = new ComboBoxDelegate(resLabels,this); + ui->tableWidget->setItemDelegateForColumn(20,m_cbb_result); + + // 澶勫垎绫诲瀷 + QStringList typeLabels; + typeLabels<<"鍏朵腑锛氬厷绾鍒�"<<"鏀垮姟澶勫垎"<<"鍐呴儴绾緥澶勫垎"<<"鏃犲鍒�"; + m_cbb_type = new ComboBoxDelegate(typeLabels,this); + ui->tableWidget->setItemDelegateForColumn(26,m_cbb_type); + + + + // 妫�鏌ョ粨鏋� + QStringList checkResLabels; + checkResLabels<<"宸插畬鎴�"<<"鏈畬鎴�"; + m_cbb_check_res = new ComboBoxDelegate(checkResLabels,this); + ui->tableWidget->setItemDelegateForColumn(33,m_cbb_check_res); + + // 閲戦绫绘暣鏀规垚鏋� + QStringList moneyResLabels; + moneyResLabels<<"鍏朵腑锛氳皟鏁翠細璁¤处鐩�"<<"鏀跺洖璧勯噾"<<"鎸藉洖鎹熷け"<<"褰掕繕鍘熻祫閲戞笭閬�"<<"琛ョ即绋庤垂"<<"鍏朵粬"; + m_cbb_money_res = new ComboBoxDelegate(moneyResLabels,this); + ui->tableWidget->setItemDelegateForColumn(42,m_cbb_money_res); + + // 闈為噾棰濈被鏁存敼鎴愭灉 + QStringList noMoneyResLabels; + noMoneyResLabels<<"鍏朵腑锛氭柊鍒跺畾鍒跺害"<<"淇瀹屽杽鍒跺害"<<"浼樺寲瀹屽杽涓氬姟娴佺▼"<<"鍏朵粬"; + m_cbb_no_money_res = new ComboBoxDelegate(noMoneyResLabels,this); + ui->tableWidget->setItemDelegateForColumn(44,m_cbb_no_money_res); + + + // 闂鎻忚堪浣愯瘉璧勬枡(涓婁紶鍙栬瘉鍗�) 褰曞叆鎴栬�呬笂浼� + //ui->tableWidget->setItemDelegateForColumn(13,m_fdd); + QStringList fwLabels; + fwLabels << "褰曞叆(鐩存帴杈撳叆鍚庡洖杞﹀嵆鍙�)"<<"涓婁紶"; + m_cbb_file_wri = new ComboBoxDelegate(fwLabels,this,true); + ui->tableWidget->setItemDelegateForColumn(13+2,m_cbb_file_wri); + ui->tableWidget->setItemDelegateForColumn(17+2,m_cbb_file_wri); + ui->tableWidget->setItemDelegateForColumn(23+2,m_cbb_file_wri); + + // 澶勭悊骞存湀鏃ユ椂闂� + m_date_ymd = new DateDelegate(this,"yyyy/MM/dd"); + ui->tableWidget->setItemDelegateForColumn(19+2,m_date_ymd); + ui->tableWidget->setItemDelegateForColumn(21+2,m_date_ymd); + ui->tableWidget->setItemDelegateForColumn(24+2+5,m_date_ymd); + ui->tableWidget->setItemDelegateForColumn(29+2+5,m_date_ymd); + ui->tableWidget->setItemDelegateForColumn(31+2+5,m_date_ymd); + ui->tableWidget->setItemDelegateForColumn(34+2+5,m_date_ymd); + + + // 灏嗘爣棰樺鍏ョ涓夎 + for(int i=0;i<ui->tableWidget->columnCount();++i){ + QString label = ui->tableWidget->horizontalHeaderItem(i)->text(); + QTableWidgetItem *item = new QTableWidgetItem(label); + if(i < 16){ + item->setBackground(QBrush(QColor("#ff00ff"))); + }else if(i < 16+10){ + item->setBackground(QBrush(QColor("#00aaff"))); + } + + ui->tableWidget->setItem(2,i,item); + } + + // 骞朵笖绂佺敤缂栬緫鍔熻兘 + //ui->tableWidget->setItemDelegateForRow(1,m_noEdit); + //ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); + m_noEdit = new TableItemDelegate; + ui->tableWidget->setItemDelegateForRow(0,m_noEdit); + ui->tableWidget->setItemDelegateForRow(1,m_noEdit); + ui->tableWidget->setItemDelegateForRow(2,m_noEdit); + + + // 鍚堝苟绗竴琛岀殑鎯呭喌锛岃繘琛屽垎绫� + + + ui->tableWidget->setItem(0,1,new QTableWidgetItem("鍙戠幇闂")); + ui->tableWidget->setItem(0,16,new QTableWidgetItem("鏁存敼鎯呭喌")); + // 澶勫垎缁撴灉锛堣兘鑷姩缁熻缁煎悎瀹¤缁熻琛ㄤ腑锛氭牴鎹璁″缓璁粰浜堝厷绾�佹斂鍔″拰鍐呴儴绾緥澶勫垎锛� + ui->tableWidget->setItem(0,26,new QTableWidgetItem("澶勫垎缁撴灉")); + // 绉婚�佷俊鎭紙鑳借嚜鍔ㄧ粺璁$患鍚堝璁$粺璁¤〃涓細鍚戝徃娉曟満鍏崇Щ閫佹垨鎶ュ憡妗堜欢绾跨储锛� + ui->tableWidget->setItem(0,28,new QTableWidgetItem("绉婚�佷俊鎭�")); + ui->tableWidget->setItem(0,31,new QTableWidgetItem("鏁存敼妫�鏌ョ粨鏋�")); + ui->tableWidget->setItem(0,34,new QTableWidgetItem("鏁存敼绫诲瀷")); + ui->tableWidget->setItem(1,34,new QTableWidgetItem("宸叉暣鏀�")); + ui->tableWidget->setItem(1,37,new QTableWidgetItem("姝e湪鏁存敼")); + ui->tableWidget->setItem(1,39,new QTableWidgetItem("灏氭湭鏁存敼")); + ui->tableWidget->setItem(0,42,new QTableWidgetItem("鏁存敼鎴愭灉")); + ui->tableWidget->setItem(1,42,new QTableWidgetItem("闂鏁存敼锛堥噾棰濈被锛�")); + ui->tableWidget->setItem(1,44,new QTableWidgetItem("闂鏁存敼锛堥潪閲戦绫伙級")); + + + ui->tableWidget->setSpan(0,1,2,15); // 鍙戠幇闂 + ui->tableWidget->item(0,1)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget->setSpan(0,16,2,10); // 鏁存敼鎯呭喌 + ui->tableWidget->item(0,16)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget->setSpan(0,26,2,2); // 澶勫垎缁撴灉 + ui->tableWidget->item(0,26)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget->setSpan(0,28,2,3); // 绉婚�佷俊鎭� + ui->tableWidget->item(0,28)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget->setSpan(0,31,2,3); // 鏁存敼妫�鏌ョ粨鏋� + ui->tableWidget->item(0,31)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget->setSpan(0,34,1,8); // 鏁存敼绫诲瀷 + ui->tableWidget->item(0,34)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget->setSpan(1,34,1,3); // 宸叉暣鏀� + ui->tableWidget->item(1,34)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget->setSpan(1,37,1,2); // 姝e湪鏁存敼 + ui->tableWidget->item(1,37)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget->setSpan(1,39,1,3); // 灏氭湭鏁存敼 + ui->tableWidget->item(1,39)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget->setSpan(0,42,1,4); // 鏁存敼鎴愭灉 + ui->tableWidget->item(0,42)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget->setSpan(1,42,1,2); // 闂鏁存敼锛堥噾棰濈被锛� + ui->tableWidget->item(1,42)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget->setSpan(1,44,1,2); // 闂鏁存敼锛堥潪閲戦绫伙級 + ui->tableWidget->item(1,44)->setTextAlignment(Qt::AlignCenter); + + + // 闅愯棌鍒楁爣棰� + ui->tableWidget->horizontalHeader()->setVisible(false); // 鍔犺浇鍏徃鍚� readCompanyFromSQL(); @@ -135,6 +580,7 @@ ui->tableWidget_2->setItemDelegateForRow(i,new TableItemDelegate()); } + // 鍙抽敭鑿滃崟 m_menuResult = new QMenu(this); m_menuResult->addAction("鍒犻櫎褰撳墠琛�"); @@ -144,6 +590,23 @@ // 鍔犺浇涓嬫媺妗嗙殑鍏徃鍚� //readCompanyFromSQL(); +} + +void ThreeMergeProblemList::initProblemRectBookUi() +{ + // 鍙抽敭鑿滃崟 + m_menuRectBook = new QMenu(this); + m_menuRectBook->addAction("鍒犻櫎褰撳墠琛�"); + m_menuRectBook->addAction("淇濆瓨褰撳墠琛�"); + m_menuRectBook->addAction("鏌ョ湅宸插瓨浣愯瘉"); + + ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu); + connect(ui->tableWidget,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(showMenuSlotRectBook(QPoint))); + + connect(m_menuRectBook->actions().at(0),SIGNAL(triggered(bool)),this,SLOT(deleteActionRectBook())); + connect(m_menuRectBook->actions().at(1),SIGNAL(triggered(bool)),this,SLOT(saveActionRectBook())); + connect(m_menuRectBook->actions().at(2),SIGNAL(triggered(bool)),this,SLOT(showSaveFile())); + } void ThreeMergeProblemList::readCompanyFromSQL() @@ -165,6 +628,68 @@ } } + +void ThreeMergeProblemList::loadDataFromSQL(const QString &arg1) +{ + // 闂鍙拌处 + + + // 闂娓呭崟 + // 瑕佹竻闄や笂涓�瀹跺叕鍙哥殑鏁版嵁 + ui->tableWidget_3->setRowCount(4); + ui->tableWidget_3->setRowCount(7); + // 鍔犺浇琛ㄦ牸淇℃伅 + qDebug()<<"current :"<<arg1; + + QString sql = QString("select * from problem_list_info where name='%1'").arg(arg1); + QSqlQuery query; + if(query.exec(sql)){ + qDebug()<<QString("select problem_list_info ok"); + int row=0; + while(query.next()){ // 娣诲姞琛屾暟鎹� + for(int i=0;i<14;++i){ + ui->tableWidget_3->setItem(row+4,i,new QTableWidgetItem(query.value(2+i).toString())); + } + row++; + ui->tableWidget_3->setRowCount(ui->tableWidget_3->rowCount()+1); // 澧炲姞涓�涓柊鐨勮 + } + qDebug()<<"row:"<<row; + + }else{ + qDebug()<<QString("select problem_list_info fail...")<<query.lastError().text(); + + } + + // 闂鏁存敼缁撴灉 + // 瑕佹竻闄や笂涓�瀹跺叕鍙哥殑鏁版嵁 + ui->tableWidget_2->setRowCount(3); + ui->tableWidget_2->setRowCount(6); + // 鍔犺浇琛ㄦ牸淇℃伅 + //qDebug()<<"current :"<<arg1; + + sql = QString("select * from rectify_result_info where name='%1'").arg(arg1); + //QString sql = QString("select * from rectify_result_info where name='%1'").arg(arg1); + //QSqlQuery query; + if(query.exec(sql)){ + qDebug()<<QString("select rectify_result_info ok"); + int row=0; + while(query.next()){ // 娣诲姞琛屾暟鎹� + for(int i=0;i<10;++i){ + ui->tableWidget_2->setItem(row+3,i,new QTableWidgetItem(query.value(2+i).toString())); + } + row++; + ui->tableWidget_2->setRowCount(ui->tableWidget_2->rowCount()+1); // 澧炲姞涓�涓柊鐨勮 + } + qDebug()<<"row:"<<row; + + }else{ + qDebug()<<QString("select rectify_result_info fail...")<<query.lastError().text(); + + } + +} + + void ThreeMergeProblemList::showMenuSlot(QPoint) { @@ -198,6 +723,72 @@ } } +void ThreeMergeProblemList::showMenuSlotRectBook(QPoint) +{ + m_menuRectBook->exec(QCursor::pos()); +} + +void ThreeMergeProblemList::deleteActionRectBook() +{ + int row = ui->tableWidget->currentRow(); + if(row>=0){ + qDebug()<<"delete ok"; + ui->tableWidget->removeRow(row); + }else{ + qDebug()<<"delete fail"; + } +} + +void ThreeMergeProblemList::saveActionRectBook() +{ + // 鍗曡淇濆瓨锛屽厛鍒ゆ柇id鍙锋槸涓嶆槸瀛樺湪锛屽瓨鍦ㄥ垯鏄洿鏂帮紝涓嶅瓨鍦ㄥ垯鏄彃鍏� + + int row = ui->tableWidget->currentRow(); + auto item = ui->tableWidget->currentItem(); + if(row>=0 && item){ + qDebug()<<"save ok"<< row << item->row()<<item->column(); + int rows = saveDataLine(row); + if(rows>0){ + // 闇�瑕佸皢鏂囦欢鎷疯礉鍒癷d鐩綍 + QString fpath = ui->tableWidget->item(row,13+2)->text(); + QString spath = ui->tableWidget->item(row,17+2)->text(); + QString tpath = ui->tableWidget->item(row,23+2)->text(); + QString fid = ui->tableWidget->item(row,0)->text(); + QString proName = ui->tableWidget->item(row,7)->text(); // 椤圭洰鍚嶇О + qDebug()<<"鎷疯礉鏂囦欢:"<<fid<<proName<<fpath; + + QString absSavePath1,absSavePath2,absSavePath3; + + int sflag1 = saveFile(fpath,fid,absSavePath1,proName); // 淇濆瓨绗竴涓� + if(sflag1==1){ + ui->tableWidget->setItem(row,13+2,new QTableWidgetItem(absSavePath1)); + } + int sflag2 = saveFile(spath,fid,absSavePath2,proName); // 淇濆瓨绗簩涓� + if(sflag2==1){ + ui->tableWidget->setItem(row,17+2,new QTableWidgetItem(absSavePath2)); + } + int sflag3 = saveFile(tpath,fid,absSavePath3,proName); // 淇濆瓨绗笁涓� + if(sflag3==1){ + ui->tableWidget->setItem(row,23+2,new QTableWidgetItem(absSavePath3)); + } + qDebug()<<"save falg:"<<sflag1<<sflag2<<sflag3; + if(sflag1 || sflag2 || sflag3){ + saveDataLine(row); + } + + QMessageBox::information(this,"淇濆瓨鎴愬姛","鏁版嵁鍐欏叆鎴愬姛"); + }else{ + QMessageBox::information(this,"淇濆瓨澶辫触","鏁版嵁鍐欏叆澶辫触锛岃妫�鏌ユ槸鍚︽瘡椤归兘鏈夋暟鎹簡"); + } + + + }else{ + qDebug()<<"save fail"; + QMessageBox::information(this,"淇濆瓨澶辫触","娌℃湁鎸囧畾鐩爣琛屾垨鏈夌┖椤�...璇烽�夋嫨鏈夊唴瀹圭殑鐩爣琛屼繚瀛�"); + } +} + + // 澧炲姞鍒扮涓�涓〃鏍肩殑琛� void ThreeMergeProblemList::on_pushButton_addRow_3_clicked() { @@ -213,3 +804,535 @@ { ui->tableWidget_2->insertRow(ui->tableWidget_2->rowCount()); } + +void ThreeMergeProblemList::on_comboBox_company_currentIndexChanged(const QString &arg1) +{ + loadDataFromSQL(arg1); +} + +void ThreeMergeProblemList::on_pushButton_save_2_clicked() +{ + // 闂娓呭崟淇濆瓨 + + QString sql = QString("insert into problem_list_info (name,搴忓彿,鎽樿,妫�鏌ユ椂闂�,妫�鏌ユ柟寮�,绾犳闂,瀹屽杽鍒跺害\ +,瀹屾垚鏃堕棿,涓昏鍘熷洜,瀹屾垚鏃堕檺,涓昏鍘熷洜1,璐d换閮ㄩ棬鎴栬矗浠讳汉,瀹屾垚鏃堕檺1,鏄惁閿�鍙�,閿�鍙锋椂闂�) values "); + QString name = ui->comboBox_company->currentText(); + + for(int i=4;i<ui->tableWidget_3->rowCount();++i){ + QStringList labels; + + for(int j=0;j<ui->tableWidget_3->columnCount();++j){ + QTableWidgetItem *item = ui->tableWidget_3->item(i,j);; + qDebug() <<i<<j <<item; + if(item){ + qDebug()<<"OK"; + labels<<item->data(Qt::EditRole).toString(); + }else{ + labels<<" "; + } + } + qDebug()<<labels; + if(labels.at(0)==" ")continue; + if(name.size()==0){ + QMessageBox::information(this,"鍗曚綅淇℃伅涓虹┖ ","璇疯緭鍏ュ崟浣嶅悕绉�"); + continue; + } + sql += QString("('%1',").arg(name); + for(int k=0;k<labels.size()-1;++k){ + sql += QString("'%1',").arg(labels[k]); + } + sql += QString("'%1'),").arg(labels.back()); + } + sql = sql.left(sql.size()-1); // 鍘绘帀鏈�鍚庝竴涓�楀彿 + qDebug()<<"sql="<<sql; + QSqlQuery query; + if(query.exec(sql)) + { + qDebug()<<QString("insert problem_list_info ok..."); + QMessageBox::information(this,"OK","娣诲姞鎴愬姛"); + }else{ + qDebug()<<QString("insert problem_list_info fail...")<<query.lastError().text(); + QMessageBox::information(this,"娣诲姞澶辫触","鍙兘娣诲姞鐨勬暟鎹笉鍏ㄥ鑷寸殑锛屽緱纭姣忚鐨勯椤规湁鏁版嵁"); + } +} + +void ThreeMergeProblemList::on_pushButton_save_clicked() +{ + // 闂鏁存敼淇濆瓨 + + QString sql = QString("insert into rectify_result_info (name,淇鍒跺害,鏂板鍒跺害,鎸藉洖鎹熷け,鍓旈櫎,瀹″噺,澶勭悊浜�,瀹h疮鍩硅,鍏朵粬,瀹℃牳缁撴灉,娉ㄩ攢) values "); + QString name = ui->comboBox_company->currentText(); + + for(int i=3;i<ui->tableWidget_2->rowCount();++i){ + QStringList labels; + + for(int j=0;j<ui->tableWidget_2->columnCount();++j){ + QTableWidgetItem *item = ui->tableWidget_2->item(i,j);; + qDebug() <<i<<j <<item; + if(item){ + qDebug()<<"OK"; + labels<<item->data(Qt::EditRole).toString(); + }else{ + labels<<" "; + } + } + qDebug()<<labels; + if(labels.at(0)==" ")continue; + if(name.size()==0){ + QMessageBox::information(this,"鍗曚綅淇℃伅涓虹┖ ","璇疯緭鍏ュ崟浣嶅悕绉�"); + continue; + } + sql += QString("('%1',").arg(name); + for(int k=0;k<labels.size()-1;++k){ + sql += QString("'%1',").arg(labels[k]); + } + sql += QString("'%1'),").arg(labels.back()); + } + sql = sql.left(sql.size()-1); // 鍘绘帀鏈�鍚庝竴涓�楀彿 + qDebug()<<"sql="<<sql; + QSqlQuery query; + if(query.exec(sql)) + { + qDebug()<<QString("insert rectify_result_info ok..."); + QMessageBox::information(this,"OK","娣诲姞鎴愬姛"); + }else{ + qDebug()<<QString("insert rectify_result_info fail...")<<query.lastError().text(); + QMessageBox::information(this,"娣诲姞澶辫触","鍙兘娣诲姞鐨勬暟鎹笉鍏ㄥ鑷寸殑锛屽緱纭姣忚鐨勯椤规湁鏁版嵁"); + } +} + +void ThreeMergeProblemList::on_pushButton_search_clicked() +{ + QString curText = ui->comboBox_standing_book_condt->currentText(); + + QString sql = "select * from standing_book_info "; + QString condition = ""; + if(curText == "鍏ㄩ儴" || strcmp(curText.toLocal8Bit().data(),"鍏ㄩ儴")==0){ + qDebug()<<"鍏ㄩ儴"; + }else if(curText == "瀹¤绫诲埆" || strcmp(curText.toLocal8Bit().data(),"瀹¤绫诲埆")==0){ + qDebug()<<"瀹¤绫诲埆"; + condition = QString(" where 瀹¤绫诲埆='%1'").arg(ui->lineEdit_sbook_condition->text()); + + }else if(curText == "瀹¤骞村害" || strcmp(curText.toLocal8Bit().data(),"瀹¤骞村害")==0){ + qDebug()<<"瀹¤骞村害"; + condition = QString(" where 瀹¤骞村害='%1'").arg(ui->lineEdit_sbook_condition->text()); + + }else if(curText == "闂绫诲埆" || strcmp(curText.toLocal8Bit().data(),"闂绫诲埆")==0){ + qDebug()<<"闂绫诲埆"; + condition = QString(" where 闂绫诲埆='%1'").arg(ui->lineEdit_sbook_condition->text()); + + }else if(curText == "瀹¤鏂瑰紡" || strcmp(curText.toLocal8Bit().data(),"瀹¤鏂瑰紡")==0){ + qDebug()<<"瀹¤鏂瑰紡"; + condition = QString(" where 瀹¤鏂瑰紡='%1'").arg(ui->lineEdit_sbook_condition->text()); + + }else if(curText == "璐d换涓讳綋鍚嶇О" || strcmp(curText.toLocal8Bit().data(),"璐d换涓讳綋鍚嶇О")==0){ + qDebug()<<"璐d换涓讳綋鍚嶇О"; + condition = QString(" where 璐d换涓讳綋鍚嶇О='%1'").arg(ui->lineEdit_sbook_condition->text()); + + }else if(curText == "瀹¤鍗曚綅" || strcmp(curText.toLocal8Bit().data(),"瀹¤鍗曚綅")==0){ + qDebug()<<"瀹¤鍗曚綅"; + condition = QString(" where 瀹¤鍗曚綅='%1'").arg(ui->lineEdit_sbook_condition->text()); + + }else if(curText == "娑夊強閲戦" || strcmp(curText.toLocal8Bit().data(),"娑夊強閲戦")==0){ + qDebug()<<"娑夊強閲戦"; + condition = QString(" where 娑夊強閲戦 <=%1").arg(ui->lineEdit_sbook_condition->text()); + + }else if(curText == "鏁撮】閲戦" || strcmp(curText.toLocal8Bit().data(),"鏁撮】閲戦")==0){ + qDebug()<<"鏁撮】閲戦"; + condition = QString(" where 鏁撮】閲戦 <=%1").arg(ui->lineEdit_sbook_condition->text()); + + } + + + sql += condition; + qDebug()<<sql; + QVector<QVector<QString>> res; + int rows = selectSQL(sql,res); + if(rows > 0){ + ui->tableWidget->setRowCount(rows+3); + for(int i=0;i<res.size();++i){ + for(int j=0;j<res.at(0).size()-1;++j){ // 鍘绘帀璁板綍鏃堕棿 + ui->tableWidget->setItem(i+3,j,new QTableWidgetItem(res[i][j])); + } + } + }else{ + QMessageBox::information(this,"鏌ヨ澶辫触","鍙兘鏌ヨ鐨勫唴瀹逛笉姝g‘鎴栬�呮病鏈夎褰曠浉搴旂殑鏁版嵁"); + } + +} + +void ThreeMergeProblemList::on_pushButton_save_3_clicked() +{ + int hasContentRow=0; + for(int i=3;i<ui->tableWidget->rowCount();++i){ + int row = saveDataLine(i); + if(row > 0) { + hasContentRow++; + + // 闇�瑕佸皢鏂囦欢鎷疯礉鍒癷d鐩綍 + QString fpath = ui->tableWidget->item(i,13+2)->text(); + QString spath = ui->tableWidget->item(i,17+2)->text(); + QString tpath = ui->tableWidget->item(i,23+2)->text(); + QString fid = ui->tableWidget->item(i,0)->text(); + QString proName = ui->tableWidget->item(i,7)->text(); // 椤圭洰鍚嶇О + qDebug()<<"鎷疯礉鏂囦欢:"<<fid<<proName<<fpath; + + QString absSavePath1,absSavePath2,absSavePath3; + + int sflag1 = saveFile(fpath,fid,absSavePath1,proName); // 淇濆瓨绗竴涓� + if(sflag1==1){ + ui->tableWidget->setItem(i,13+2,new QTableWidgetItem(absSavePath1)); + } + int sflag2 = saveFile(spath,fid,absSavePath2,proName); // 淇濆瓨绗簩涓� + if(sflag2==1){ + ui->tableWidget->setItem(i,17+2,new QTableWidgetItem(absSavePath2)); + } + int sflag3 = saveFile(tpath,fid,absSavePath3,proName); // 淇濆瓨绗笁涓� + if(sflag3==1){ + ui->tableWidget->setItem(i,23+2,new QTableWidgetItem(absSavePath3)); + } + qDebug()<<"save falg:"<<sflag1<<sflag2<<sflag3; + if(sflag1 || sflag2 || sflag3){ + saveDataLine(i); + } + + } + } + QMessageBox::information(this,"淇濆瓨鎻愮ず",QString("鎬昏鏁颁负%1,鎴愬姛%2琛岋紝澶辫触%3琛屻��").arg(ui->tableWidget->rowCount()-3) + .arg(hasContentRow).arg(ui->tableWidget->rowCount()-3-hasContentRow)); +} + +void ThreeMergeProblemList::on_pushButton_moreSearch_clicked() +{ + QString sql = "select * from standing_book_info "; + + QVector<QString> vecCon; // 淇濆瓨鎵�鏈夋潯浠� + + if(ui->checkBox_type->isChecked()){ + QString condition= QString(" 瀹¤绫诲埆='%1' ").arg(ui->comboBox_type->currentText()); + vecCon.append(condition); + } + if(ui->checkBox_year->isChecked()){ + QString condition= QString(" 瀹¤骞村害='%1' ").arg(ui->dateEdit_year->text()); + vecCon.append(condition); + } + if(ui->checkBox_com->isChecked()){ + QString condition= QString(" 瀹¤鍗曚綅='%1' ").arg(ui->comboBox_com->currentText()); + vecCon.append(condition); + } + if(ui->checkBox_way->isChecked()){ + QString condition= QString(" 瀹¤鏂瑰紡='%1' ").arg(ui->comboBox_way->currentText()); + vecCon.append(condition); + } + if(ui->checkBox_mainCom->isChecked()){ + QString condition= QString(" 璐d换涓讳綋鍚嶇О='%1' ").arg(ui->comboBox_mainCom->currentText()); + vecCon.append(condition); + } + if(ui->checkBox_pro->isChecked()){ + QString condition= QString(" 瀹¤椤圭洰='%1' ").arg(ui->comboBox_pro->currentText()); + vecCon.append(condition); + } + if(ui->checkBox_proName->isChecked()){ + QString condition= QString(" 瀹¤椤圭洰鍚嶇О='%1' ").arg(ui->comboBox_proName->currentText()); + vecCon.append(condition); + } + if(ui->checkBox_qtype->isChecked()){ + QString condition= QString(" 闂绫诲埆='%1' ").arg(ui->comboBox_qtype->currentText()); + vecCon.append(condition); + } + if(ui->checkBox_qdx->isChecked()){ + QString condition= QString(" 闂瀹氭��='%1'").arg(ui->comboBox_qdx->currentText()); + vecCon.append(condition); + } + if(ui->checkBox_about_money->isChecked()){ + QString condition= QString(" 娑夊強閲戦 >= %1 and 娑夊強閲戦 <= %2").arg(ui->comboBox_about_bgMonney->currentText()).arg(ui->comboBox_about_edMoney->currentText()); + vecCon.append(condition); + } + if(ui->checkBox_changeMoney->isChecked()){ + QString condition= QString(" 鏁存敼閲戦>=%1 and 鏁存敼閲戦<=%2").arg(ui->comboBox_change_bgMoney->currentText()).arg(ui->comboBox_change_edMoney->currentText()); + vecCon.append(condition); + } + if(ui->checkBox_change_over_time->isChecked()){ + QString condition= QString(" 鏁存敼瀹屾垚鏃堕棿='%1' ").arg(ui->dateEdit_change_over_time->text()); + vecCon.append(condition); + } + if(ui->checkBox_change_expected_time->isChecked()){ + QString condition= QString(" 鏁存敼棰勮瀹屾垚鏃堕棿='%1' ").arg(ui->dateEdit_change_expected_time->text()); + vecCon.append(condition); + } + + if(ui->checkBox_punish_type->isChecked()){ + QString condition= QString(" 澶勫垎绫诲瀷='%1' ").arg(ui->comboBox_punish_type->currentText()); + vecCon.append(condition); + } + if(ui->checkBox_transfer->isChecked()){ + QString condition= QString(" 绉婚�佽缁嗕俊鎭�='%1' ").arg(ui->comboBox_transfer->currentText()); + vecCon.append(condition); + } + + + QString condition; + if(vecCon.size() == 1){ + condition += QString(" where %1").arg(vecCon.at(0)); + }else if(vecCon.size() > 1){ + condition += QString(" where %1").arg(vecCon.at(0)); + for(int i=1;i<vecCon.size();++i){ + condition += QString(" and %1 ").arg(vecCon.at(i)); + } + } + sql += condition; + qDebug()<<sql; + + QVector<QVector<QString>> res; + int rows = selectSQL(sql,res); + if(rows > 0){ + ui->tableWidget->setRowCount(rows+3); + for(int i=0;i<res.size();++i){ + for(int j=0;j<res.at(0).size()-1;++j){ // 鍘绘帀璁板綍鏃堕棿 + ui->tableWidget->setItem(i+3,j,new QTableWidgetItem(res[i][j])); + } + } + }else{ + QMessageBox::information(this,"鏌ヨ澶辫触","鍙兘鏌ヨ鐨勫唴瀹逛笉姝g‘鎴栬�呮病鏈夎褰曠浉搴旂殑鏁版嵁"); + } + +} + +void ThreeMergeProblemList::on_pushButton_multiSearch_clicked() +{ + static int cnt=0; + if(cnt%2 == 1){ + ui->groupBox->hide(); + ui->pushButton_multiSearch->setText("澶氱淮搴︽暟鎹煡璇煈�"); + }else{ + ui->groupBox->show(); + ui->pushButton_multiSearch->setText("澶氱淮搴︽暟鎹煡璇煈�"); + } + cnt++; +} + +void ThreeMergeProblemList::showSaveFile() +{ + int row = ui->tableWidget->currentRow(); + auto item = ui->tableWidget->currentItem(); + if(row>=0 && item){ + qDebug()<<"row"<<row; + // 鍙栦笅鏍� 13 17 23 + auto item_13 = ui->tableWidget->item(row,13+2); + auto item_17 = ui->tableWidget->item(row,17+2); + auto item_23 = ui->tableWidget->item(row,23+2); + if(item_13){ + qDebug()<<item_13->text(); + QString text = item_13->text(); + QStringList listPath = text.split("/"); + if(listPath.size() > 2){ + qDebug()<<"鍙戠幇鏂囦欢"<<listPath.back(); + QString type = listPath.back().split(".").back(); + qDebug()<<"type"<<type; + if(type == "pdf"){ + loadPdfFile(text); + } + } + } + if(item_17){ + qDebug()<<item_17->text(); + } + if(item_23){ + qDebug()<<item_23->text(); + } + } + + // 浠ョ郴缁熼粯璁ょ殑鏂瑰紡鎵撳紑鎸囧畾鐨勬枃浠� + QUrl file_path = QFileDialog::getOpenFileUrl(); + if(QDesktopServices::openUrl(file_path)){ + qDebug()<<"open ok:"<<file_path; + }else{ + qDebug()<<"open fail:"<<file_path; + } +} + +void ThreeMergeProblemList::updateComboList(QMap<QString, ComInfo> & nameAndComInfos) +{ + ui->comboBox_company->clear(); + + for(auto it = nameAndComInfos.begin();it != nameAndComInfos.end();++it){ + ui->comboBox_company->addItem(it.key()); + } +} + +void ThreeMergeProblemList::on_pushButton_save_export_clicked() +{ + qDebug()<<"涓夊悎涓�瀵煎嚭淇濆瓨"; + QVector<ThreeMergeInfo> infos; + QString name = ui->comboBox_company->currentText(); + + // 鑾峰彇琛ㄦ牸鏁版嵁锛屾坊鍔犲埌淇℃伅涓� + for(int i=3;i<ui->tableWidget->rowCount();++i){ // 浠庣涓夎寮�濮� + + // 鍏堝绌洪」杩涜鐗规畩澶勭悊 + for(int j=0;j<ui->tableWidget->columnCount();++j){ + if(ui->tableWidget->item(i,j) == nullptr){ + ui->tableWidget->setItem(i,j,new QTableWidgetItem(" ")); + qDebug()<<"save find out empty:"<<i<<j; + } + } + ThreeMergeInfo rowInfo; + rowInfo.id = ui->tableWidget->item(i,0)->text().toInt(); + // 鍙戠幇闂 + strcpy(rowInfo.audit_type,ui->tableWidget->item(i,1)->text().toLocal8Bit().data()); + strcpy(rowInfo.audit_year,ui->tableWidget->item(i,2)->text().toLocal8Bit().data()); + strcpy(rowInfo.audit_unit,ui->tableWidget->item(i,3)->text().toLocal8Bit().data()); + strcpy(rowInfo.audit_method,ui->tableWidget->item(i,4)->text().toLocal8Bit().data()); + strcpy(rowInfo.responsible_subject_name,ui->tableWidget->item(i,5)->text().toLocal8Bit().data()); + strcpy(rowInfo.audit_item,ui->tableWidget->item(i,6)->text().toLocal8Bit().data()); + strcpy(rowInfo.audit_item_name,ui->tableWidget->item(i,7)->text().toLocal8Bit().data()); + strcpy(rowInfo.pro_type,ui->tableWidget->item(i,8)->text().toLocal8Bit().data()); + strcpy(rowInfo.problem_qualification,ui->tableWidget->item(i,9)->text().toLocal8Bit().data()); + strcpy(rowInfo.problem_desript,ui->tableWidget->item(i,10)->text().toLocal8Bit().data()); + strcpy(rowInfo.problem_qualifi_basis,ui->tableWidget->item(i,11)->text().toLocal8Bit().data()); + strcpy(rowInfo.problem_money_basis,ui->tableWidget->item(i,12)->text().toLocal8Bit().data()); + strcpy(rowInfo.problem_num_basis,ui->tableWidget->item(i,13)->text().toLocal8Bit().data()); + rowInfo.money_involved = ui->tableWidget->item(i,14)->text().toDouble(); + strcpy(rowInfo.problem_desript_evidence_material,ui->tableWidget->item(i,15)->text().toLocal8Bit().data()); + + // 鏁存敼鎯呭喌 + strcpy(rowInfo.audit_rectified,ui->tableWidget->item(i,16)->text().toLocal8Bit().data()); + rowInfo.rectify_money = ui->tableWidget->item(i,17)->text().toDouble(); + strcpy(rowInfo.rectify_situation_1,ui->tableWidget->item(i,18)->text().toLocal8Bit().data()); + strcpy(rowInfo.rectify_situation_evidence_mat_1,ui->tableWidget->item(i,19)->text().toLocal8Bit().data()); + strcpy(rowInfo.rectify_res,ui->tableWidget->item(i,20)->text().toLocal8Bit().data()); + strcpy(rowInfo.rectify_complete_time,ui->tableWidget->item(i,21)->text().toLocal8Bit().data()); + strcpy(rowInfo.rectify_not_over_reason,ui->tableWidget->item(i,22)->text().toLocal8Bit().data()); + strcpy(rowInfo.rectify_will_complete_time,ui->tableWidget->item(i,23)->text().toLocal8Bit().data()); + strcpy(rowInfo.rectify_situation_2,ui->tableWidget->item(i,24)->text().toLocal8Bit().data()); + strcpy(rowInfo.rectify_situation_evidence_mat_2,ui->tableWidget->item(i,25)->text().toLocal8Bit().data()); + + // 澶勫垎缁撴灉 + strcpy(rowInfo.punish_type,ui->tableWidget->item(i,26)->text().toLocal8Bit().data()); + rowInfo.punish_person_num = ui->tableWidget->item(i,27)->text().toInt(); + + // 绉婚�佷俊鎭� + strcpy(rowInfo.transfer_info,ui->tableWidget->item(i,28)->text().toLocal8Bit().data()); + strcpy(rowInfo.punish_res,ui->tableWidget->item(i,29)->text().toLocal8Bit().data()); + rowInfo.involved_person_num = ui->tableWidget->item(i,30)->text().toInt(); + + // 鏁翠釜妫�鏌ョ粨鏋� + strcpy(rowInfo.rectify_check_time,ui->tableWidget->item(i,31)->text().toLocal8Bit().data()); + strcpy(rowInfo.rectify_check_mothod,ui->tableWidget->item(i,32)->text().toLocal8Bit().data()); + strcpy(rowInfo.rectify_check_res,ui->tableWidget->item(i,33)->text().toLocal8Bit().data()); + + // 鏁存敼绫诲瀷-宸叉暣鏀� + strcpy(rowInfo.correct_problem,ui->tableWidget->item(i,34)->text().toLocal8Bit().data()); + strcpy(rowInfo.improve_the_system,ui->tableWidget->item(i,35)->text().toLocal8Bit().data()); + strcpy(rowInfo.complete_time,ui->tableWidget->item(i,36)->text().toLocal8Bit().data()); + + // 鏁存敼绫诲瀷-姝e湪鏁存敼 + strcpy(rowInfo.during_main_reason,ui->tableWidget->item(i,37)->text().toLocal8Bit().data()); + strcpy(rowInfo.during_end_complete_time,ui->tableWidget->item(i,38)->text().toLocal8Bit().data()); + + // 鏁存敼绫诲瀷-灏氭湭鏁存敼 + strcpy(rowInfo.not_main_reason,ui->tableWidget->item(i,39)->text().toLocal8Bit().data()); + strcpy(rowInfo.departen_or_person,ui->tableWidget->item(i,40)->text().toLocal8Bit().data()); + strcpy(rowInfo.not_end_complete_time,ui->tableWidget->item(i,41)->text().toLocal8Bit().data()); + + // 鏁存敼缁撴灉-闂鏁存敼锛堥噾棰濈被锛� + strcpy(rowInfo.money_res,ui->tableWidget->item(i,42)->text().toLocal8Bit().data()); + rowInfo.money_res_money = ui->tableWidget->item(i,43)->text().toDouble(); + + // 鏁存敼缁撴灉-闂鏁存敼锛堥潪閲戦绫伙級 + strcpy(rowInfo.no_money_res,ui->tableWidget->item(i,44)->text().toLocal8Bit().data()); + rowInfo.no_money_res_num = ui->tableWidget->item(i,45)->text().toInt(); + + // 鏀惧埌vector涓� + infos.append(rowInfo); + + } + + + ExportToFile etf; + etf.saveToExcelFromThreeMergePro(name,infos); +} + +void ThreeMergeProblemList::on_tableWidget_cellChanged(int row, int column) +{ + qDebug()<<"cellChanged:"<<row<<column; + QTableWidgetItem *item = ui->tableWidget->item(row,5); + if(row < 3 || !item) return; // 闃叉寮傚父 + if(column == 26) // 琛ㄧず鏄鍒嗙被鍨嬭淇敼浜嗭紝閭e氨鍙互鑷姩鍘昏幏鍙栨暟鎹簱涓殑鏁版嵁鍑烘潵锛屽悓姝ュ埌鍚屼竴琛屽幓浜� + { + QString rectify_type = ui->tableWidget->item(row,column)->text(); + QString name = ui->tableWidget->item(row,5)->text(); + QMap<QString,QString> typeInfos; + typeInfos["鍏朵腑锛氬厷绾鍒�"] = "_030901"; + typeInfos["鏀垮姟澶勫垎"] = "_030902"; + typeInfos["鍐呴儴绾緥澶勫垎"] = "_030903"; + + QString sql = QString("select %1,_031001 from comprehensive_entry_info where name='%2'").arg(typeInfos[rectify_type]).arg(name); + qDebug()<<"sql:"<<sql; + QSqlQuery query; + if(query.exec(sql)){ + qDebug()<<"鎵ц鎴愭灉锛岃褰曠粨鏋� 澶勫垎绫诲瀷:"<<rectify_type; + int cnt=0; + int involved_person_cnt = 0; + while(query.next()){ + cnt += query.value(0).toInt(); + involved_person_cnt += query.value(1).toInt(); + } + qDebug()<<"鏌ュ埌cnt="<<cnt <<" 娑夋浜哄憳:"<<involved_person_cnt; + ui->tableWidget->setItem(row,27,new QTableWidgetItem(QString::number(cnt))); + ui->tableWidget->setItem(row,30,new QTableWidgetItem(QString::number(involved_person_cnt))); + }else { + qDebug()<<"鏌ヨ澶辫触 澶勫垎绫诲瀷"<<rectify_type; + } + + }else if(column == 42) // 琛ㄧず鏄噾棰濈被鏁存敼鎴愭灉瑙﹀彂浜� + { + QMap<QString,QString> moneyInfos; + moneyInfos["鍏朵腑锛氳皟鏁翠細璁¤处鐩�"] = "_030701"; + moneyInfos["鏀跺洖璧勯噾"] = "_030702"; + moneyInfos["鎸藉洖鎹熷け"] = "_030703"; + moneyInfos["褰掕繕鍘熻祫閲戞笭閬�"] = "_030704"; + moneyInfos["琛ョ即绋庤垂"] = "_030705"; + moneyInfos["鍏朵粬"] = "_030706"; + + QString currentText = ui->tableWidget->item(row,42)->text(); + QString name = ui->tableWidget->item(row,5)->text(); + QString sql = QString("select %1 from comprehensive_entry_info where name='%2'").arg(moneyInfos[currentText]).arg(name); + qDebug()<<"sql:"<<sql; + QSqlQuery query; + if(query.exec(sql)){ + double cnt=0; + while (query.next()) { + cnt += query.value(0).toDouble(); + } + ui->tableWidget->setItem(row,43,new QTableWidgetItem(QString::number(cnt))); + }else{ + qDebug()<<"鎵цsql澶辫触 瀹¤鍙戠幇闂鏁存敼锛堥噾棰濈被锛�"; + } + + + }else if(column == 44) // 琛ㄧず鏄潪閲戦绫绘暣鏀规垚鏋滆Е鍙戜簡 + { + + QMap<QString,QString> noMoneyInfos; + noMoneyInfos["鍏朵腑锛氭柊鍒跺畾鍒跺害"] = "_030801"; + noMoneyInfos["淇瀹屽杽鍒跺害"] = "_030802"; + noMoneyInfos["浼樺寲瀹屽杽涓氬姟娴佺▼"] = "_030803"; + noMoneyInfos["鍏朵粬"] = "_030804"; + + QString currentText = ui->tableWidget->item(row,44)->text(); + QString name = ui->tableWidget->item(row,5)->text(); + QString sql = QString("select %1 from comprehensive_entry_info where name='%2'").arg(noMoneyInfos[currentText]).arg(name); + qDebug()<<"sql:"<<sql; + QSqlQuery query; + if(query.exec(sql)){ + int cnt=0; + while (query.next()) { + cnt += query.value(0).toInt(); + } + ui->tableWidget->setItem(row,45,new QTableWidgetItem(QString::number(cnt))); + }else{ + qDebug()<<"鎵цsql澶辫触 瀹¤鍙戠幇闂鏁存敼锛堥噾棰濈被锛�"; + } + } +} -- Gitblit v1.8.0