From d64822b8be629c4592da0b9c3eabed4500174752 Mon Sep 17 00:00:00 2001 From: wumu <mayi@mayi.com> Date: 星期一, 13 五月 2024 00:50:27 +0800 Subject: [PATCH] 0512 --- internal_system_v1/threemergeproblemlist.cpp | 324 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 320 insertions(+), 4 deletions(-) diff --git a/internal_system_v1/threemergeproblemlist.cpp b/internal_system_v1/threemergeproblemlist.cpp index 5326204..2b00b35 100644 --- a/internal_system_v1/threemergeproblemlist.cpp +++ b/internal_system_v1/threemergeproblemlist.cpp @@ -4,6 +4,8 @@ #include <QSqlQuery> #include <QSqlError> #include <QMessageBox> +#include <QDir> +#include <QFileDevice> ThreeMergeProblemList::ThreeMergeProblemList(QWidget *parent) : QMainWindow(parent), @@ -17,8 +19,24 @@ ui->menubar->hide(); initUi(); // 鍒濆鍖栨墍鏈夌晫闈� - //ui->tableWidget_2->hide(); - //ui->tableWidget_3->hide(); + // 闅愯棌 + //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(); } @@ -27,6 +45,149 @@ 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; + } + // 鍙栧嚭绱㈠紩鍙锋潵鍒ゆ柇涓�涓� + 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',鏁存敼鎯呭喌1='%16',鏁存敼鎯呭喌浣愯瘉璧勬枡1='%17',鏁存敼缁撴灉='%18',鏁存敼瀹屾垚鏃堕棿='%19',灏氭湭鏁存敼鍒颁綅鐨勫師鍥�='%20',鏁存敼棰勮瀹屾垚鏃堕棿='%21'" + ",鏁存敼鎯呭喌2='%22',鏁存敼鎯呭喌浣愯瘉璧勬枡2='%23',鏁存敼妫�鏌ョ粨鏋淿妫�鏌ユ椂闂�='%24',鏁存敼妫�鏌ョ粨鏋淿妫�鏌ユ柟寮�='%25',鏁存敼妫�鏌ョ粨鏋淿妫�鏌ョ粨鏋�='%26',宸叉暣鏀筥绾犳闂='%27',宸叉暣鏀筥瀹屽杽鍒跺害='%28',宸叉暣鏀筥瀹屾垚鏃堕棿='%29'" + ",姝e湪鏁存敼_涓昏鍘熷洜='%30',姝e湪鏁存敼_瀹屾垚鏃堕檺='%31',灏氭湭鏁存敼_涓昏鍘熷洜='%32',灏氭湭鏁存敼_璐d换閮ㄩ棬鎴栬矗浠讳汉='%33',灏氭湭鏁存敼_瀹屾垚鏃堕檺='%34',鍒跺害寤鸿_淇鍒跺害='%35',鍒跺害寤鸿_鏂板鍒跺害='%36',璧勯噾鏀跺洖_鎸藉洖鎹熷け='%37'" + ",璧勯噾鏀跺洖_鍏朵粬='%38',璧勯噾鏀跺洖_瀹″噺='%39' where id=%40").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,14)->text()).arg(ui->tableWidget->item(row,15)->text()).arg(ui->tableWidget->item(row,16)->text()) + .arg(ui->tableWidget->item(row,17)->text()).arg(ui->tableWidget->item(row,18)->text()).arg(ui->tableWidget->item(row,19)->text()).arg(ui->tableWidget->item(row,20)->text()).arg(ui->tableWidget->item(row,21)->text()).arg(ui->tableWidget->item(row,22)->text()) + .arg(ui->tableWidget->item(row,23)->text()).arg(ui->tableWidget->item(row,24)->text()).arg(ui->tableWidget->item(row,25)->text()).arg(ui->tableWidget->item(row,26)->text()).arg(ui->tableWidget->item(row,27)->text()).arg(ui->tableWidget->item(row,28)->text()) + .arg(ui->tableWidget->item(row,29)->text()).arg(ui->tableWidget->item(row,30)->text()).arg(ui->tableWidget->item(row,31)->text()).arg(ui->tableWidget->item(row,32)->text()).arg(ui->tableWidget->item(row,33)->text()).arg(ui->tableWidget->item(row,34)->text()) + .arg(ui->tableWidget->item(row,35)->text()).arg(ui->tableWidget->item(row,36)->text()).arg(ui->tableWidget->item(row,37)->text()).arg(ui->tableWidget->item(row,38)->text()).arg(ui->tableWidget->item(row,39)->text()).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')").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,14)->text()).arg(ui->tableWidget->item(row,15)->text()).arg(ui->tableWidget->item(row,16)->text()) + .arg(ui->tableWidget->item(row,17)->text()).arg(ui->tableWidget->item(row,18)->text()).arg(ui->tableWidget->item(row,19)->text()).arg(ui->tableWidget->item(row,20)->text()).arg(ui->tableWidget->item(row,21)->text()).arg(ui->tableWidget->item(row,22)->text()) + .arg(ui->tableWidget->item(row,23)->text()).arg(ui->tableWidget->item(row,24)->text()).arg(ui->tableWidget->item(row,25)->text()).arg(ui->tableWidget->item(row,26)->text()).arg(ui->tableWidget->item(row,27)->text()).arg(ui->tableWidget->item(row,28)->text()) + .arg(ui->tableWidget->item(row,29)->text()).arg(ui->tableWidget->item(row,30)->text()).arg(ui->tableWidget->item(row,31)->text()).arg(ui->tableWidget->item(row,32)->text()).arg(ui->tableWidget->item(row,33)->text()).arg(ui->tableWidget->item(row,34)->text()) + .arg(ui->tableWidget->item(row,35)->text()).arg(ui->tableWidget->item(row,36)->text()).arg(ui->tableWidget->item(row,37)->text()).arg(ui->tableWidget->item(row,38)->text()).arg(ui->tableWidget->item(row,39)->text()).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) +{ + // 鏍规嵁id鏉ユ寚瀹氬瓙鐩綍杩涜鏂囦欢鐨勬嫹璐濆拰瀛樺偍 + // 榛樿淇濆瓨鍒板綋鍓峞vidence鐩綍涓嬬殑id瀛愮洰褰曚腑 + QFile sourceFile(path); + if(!sourceFile.exists()){ + qDebug()<<"target file not exist:"<<path; + return -1; + } + + QString curPath = QString("./evidence/%1/").arg(id); + 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; + } + +} void ThreeMergeProblemList::initUi() { initProblemRectBookUi(); // 鍒濆鍖栨暣鏀瑰彴璐� @@ -269,9 +430,13 @@ // 鍙抽敭鑿滃崟 m_menuRectBook = new QMenu(this); 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())); } @@ -355,6 +520,8 @@ } + + void ThreeMergeProblemList::showMenuSlot(QPoint) { m_menu->exec(QCursor::pos()); @@ -396,12 +563,61 @@ { int row = ui->tableWidget->currentRow(); if(row>=0){ - qDebug()<<"ok"; + qDebug()<<"delete ok"; ui->tableWidget->removeRow(row); }else{ - qDebug()<<"fail"; + 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)->text(); + QString spath = ui->tableWidget->item(row,17)->text(); + QString tpath = ui->tableWidget->item(row,23)->text(); + QString fid = ui->tableWidget->item(row,0)->text(); + qDebug()<<"鎷疯礉鏂囦欢:"<<fid<<fpath; + + QString absSavePath1,absSavePath2,absSavePath3; + + int sflag1 = saveFile(fpath,fid,absSavePath1); // 淇濆瓨绗竴涓� + if(sflag1==1){ + ui->tableWidget->setItem(row,13,new QTableWidgetItem(absSavePath1)); + } + int sflag2 = saveFile(spath,fid,absSavePath2); // 淇濆瓨绗簩涓� + if(sflag2==1){ + ui->tableWidget->setItem(row,17,new QTableWidgetItem(absSavePath2)); + } + int sflag3 = saveFile(tpath,fid,absSavePath3); // 淇濆瓨绗笁涓� + if(sflag3==1){ + ui->tableWidget->setItem(row,23,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() @@ -514,3 +730,103 @@ 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); + for(int i=0;i<res.size();++i){ + for(int j=0;j<res.at(0).size()-1;++j){ // 鍘绘帀璁板綍鏃堕棿 + ui->tableWidget->setItem(i,j,new QTableWidgetItem(res[i][j])); + } + } + }else{ + QMessageBox::information(this,"鏌ヨ澶辫触","鍙兘鏌ヨ鐨勫唴瀹逛笉姝g‘鎴栬�呮病鏈夎褰曠浉搴旂殑鏁版嵁"); + } + +} + +void ThreeMergeProblemList::on_pushButton_save_3_clicked() +{ + int hasContentRow=0; + for(int i=0;i<ui->tableWidget->rowCount();++i){ + int row = saveDataLine(i); + if(row > 0) { + hasContentRow++; + + // 闇�瑕佸皢鏂囦欢鎷疯礉鍒癷d鐩綍 + QString fpath = ui->tableWidget->item(i,13)->text(); + QString spath = ui->tableWidget->item(i,17)->text(); + QString tpath = ui->tableWidget->item(i,23)->text(); + QString fid = ui->tableWidget->item(i,0)->text(); + qDebug()<<"鎷疯礉鏂囦欢:"<<fid<<fpath; + + QString absSavePath1,absSavePath2,absSavePath3; + + int sflag1 = saveFile(fpath,fid,absSavePath1); // 淇濆瓨绗竴涓� + if(sflag1==1){ + ui->tableWidget->setItem(i,13,new QTableWidgetItem(absSavePath1)); + } + int sflag2 = saveFile(spath,fid,absSavePath2); // 淇濆瓨绗簩涓� + if(sflag2==1){ + ui->tableWidget->setItem(i,17,new QTableWidgetItem(absSavePath2)); + } + int sflag3 = saveFile(tpath,fid,absSavePath3); // 淇濆瓨绗笁涓� + if(sflag3==1){ + ui->tableWidget->setItem(i,23,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()) + .arg(hasContentRow).arg(ui->tableWidget->rowCount()-hasContentRow)); +} -- Gitblit v1.8.0