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/clientmainwindow.cpp      |    6 
 internal_system_v1/searchinfo.cpp            |   58 +++++++
 internal_system_v1/threemergeproblemlist.cpp |  324 ++++++++++++++++++++++++++++++++++++++++
 internal_system_v1/threemergeproblemlist.ui  |   28 +++
 internal_system_v1/searchinfo.h              |    2 
 internal_system_v1/threemergeproblemlist.h   |   13 +
 6 files changed, 419 insertions(+), 12 deletions(-)

diff --git a/internal_system_v1/clientmainwindow.cpp b/internal_system_v1/clientmainwindow.cpp
index 00b85fe..709f0b4 100644
--- a/internal_system_v1/clientmainwindow.cpp
+++ b/internal_system_v1/clientmainwindow.cpp
@@ -92,7 +92,7 @@
 
     // 闂鏁存敼鍙拌处
     m_proRecStandingBook = new ProblemRectStandingBook(this);
-    ui->tabWidget->addTab(m_proRecStandingBook,"闂鏁存敼鍙拌处");
+    //ui->tabWidget->addTab(m_proRecStandingBook,"闂鏁存敼鍙拌处");
 
     // 鍏宠仈鍚勪釜鍔熻兘妲�
     connect(m_coverInfo,SIGNAL(sendComName(QString)),m_searchInfo,SLOT(addComName(QString)));
@@ -112,10 +112,10 @@
     ui->tabWidget->insertTab(0,m_conInfo2,"灏侀潰淇℃伅");
 
     m_problemList = new ProblemList(this);
-    ui->tabWidget->addTab(m_problemList,"闂娓呭崟");
+    //ui->tabWidget->addTab(m_problemList,"闂娓呭崟");
 
     m_problemRectifResult = new ProblemRectificationResult(this);
-    ui->tabWidget->addTab(m_problemRectifResult,"鏁存敼鎴愭灉");
+    //ui->tabWidget->addTab(m_problemRectifResult,"鏁存敼鎴愭灉");
 
     m_tableItemDelegate = new TableItemDelegate(); // 浠g悊 绂佺敤缂栬緫
     m_editDelegate = new QItemDelegate(this); // 鍙紪杈�
diff --git a/internal_system_v1/searchinfo.cpp b/internal_system_v1/searchinfo.cpp
index d476404..113389f 100644
--- a/internal_system_v1/searchinfo.cpp
+++ b/internal_system_v1/searchinfo.cpp
@@ -149,6 +149,9 @@
     // 缁煎悎褰曞叆淇℃伅琛� 鍒涘缓
     createTableComprehensiveEntryInfo("comprehensive_entry_info");
 
+    // 鏁存敼鍙拌处淇℃伅琛� 鍒涘缓
+    createTableStandingBook("standing_book_info");
+
 }
 
 // 缁煎悎褰曞叆淇℃伅琛� 浠ョ紪鐮佷綔涓烘寚鏍囧悕
@@ -361,6 +364,60 @@
             濉〃浜�       TEXT,\
             鑱旂郴鐢佃瘽       TEXT,\
             濉姤鏃ユ湡       TEXT\
+        )").arg(tableName);
+    QSqlQuery query;
+    if(query.exec(sql))
+    {
+        qDebug()<<QString("create %1 ok...").arg(tableName);
+    }else{
+        qDebug()<<QString("create %1 fail...").arg(tableName)<<query.lastError().text();
+    }
+}
+
+// 鏁存敼鍙拌处
+void SearchInfo::createTableStandingBook(QString tableName){
+    QString sql = QString("CREATE TABLE %1 (\
+            id       INTEGER      PRIMARY KEY AUTOINCREMENT,\
+            瀹¤绫诲埆     TEXT,\
+            瀹¤骞村害     TEXT,\
+            瀹¤鍗曚綅     TEXT,\
+            瀹¤鏂瑰紡     TEXT,\
+            璐d换涓讳綋鍚嶇О     TEXT,\
+            瀹¤椤圭洰     TEXT,\
+            瀹¤椤圭洰鍚嶇О     TEXT,\
+            闂绫诲埆     TEXT,\
+            闂瀹氭��     TEXT,\
+            闂鎻忚堪     TEXT,\
+            闂瀹氭�ф硶瑙勪緷鎹�     TEXT,\
+            娑夊強閲戦     TEXT,\
+            闂鎻忚堪浣愯瘉璧勬枡     TEXT,\
+            瀹¤鏈熼棿宸叉暣鏀�     TEXT,\
+            鏁存敼閲戦     TEXT,\
+            鏁存敼鎯呭喌1     TEXT,\
+            鏁存敼鎯呭喌浣愯瘉璧勬枡1     TEXT,\
+            鏁存敼缁撴灉     TEXT,\
+            鏁存敼瀹屾垚鏃堕棿     TEXT,\
+            灏氭湭鏁存敼鍒颁綅鐨勫師鍥�     TEXT,\
+            鏁存敼棰勮瀹屾垚鏃堕棿     TEXT,\
+            鏁存敼鎯呭喌2     TEXT,\
+            鏁存敼鎯呭喌浣愯瘉璧勬枡2     TEXT,\
+            鏁存敼妫�鏌ョ粨鏋淿妫�鏌ユ椂闂�     TEXT,\
+            鏁存敼妫�鏌ョ粨鏋淿妫�鏌ユ柟寮�     TEXT,\
+            鏁存敼妫�鏌ョ粨鏋淿妫�鏌ョ粨鏋�     TEXT,\
+            宸叉暣鏀筥绾犳闂     TEXT,\
+            宸叉暣鏀筥瀹屽杽鍒跺害     TEXT,\
+            宸叉暣鏀筥瀹屾垚鏃堕棿     TEXT,\
+            姝e湪鏁存敼_涓昏鍘熷洜     TEXT,\
+            姝e湪鏁存敼_瀹屾垚鏃堕檺     TEXT,\
+            灏氭湭鏁存敼_涓昏鍘熷洜     TEXT,\
+            灏氭湭鏁存敼_璐d换閮ㄩ棬鎴栬矗浠讳汉     TEXT,\
+            灏氭湭鏁存敼_瀹屾垚鏃堕檺     TEXT,\
+            鍒跺害寤鸿_淇鍒跺害     TEXT,\
+            鍒跺害寤鸿_鏂板鍒跺害     TEXT,\
+            璧勯噾鏀跺洖_鎸藉洖鎹熷け     TEXT,\
+            璧勯噾鏀跺洖_鍏朵粬     TEXT,\
+            璧勯噾鏀跺洖_瀹″噺     TEXT,\
+            log_time  TEXT\
         )").arg(tableName);
     QSqlQuery query;
     if(query.exec(sql))
@@ -674,6 +731,7 @@
         return;
     }
     QString path = QFileDialog::getOpenFileName(this,"閫夋嫨琛ㄦ牸妯℃澘:鍗曚綅鍐呴儴瀹¤涓氬姟鎯呭喌琛�","./","excel(*鍗曚綅鍐呴儴瀹¤涓氬姟鎯呭喌琛�.xls)");
+    if(path.isNull()) return;
     ui->label_excel_path->setText(path);
     QStringList paths = path.split(".");
     QString newPath = paths.at(0)+"_"+ui->comboBox_company->currentText()+"."+paths.at(1);
diff --git a/internal_system_v1/searchinfo.h b/internal_system_v1/searchinfo.h
index ba60255..22e659d 100644
--- a/internal_system_v1/searchinfo.h
+++ b/internal_system_v1/searchinfo.h
@@ -31,6 +31,8 @@
     void createTableProblemListInfo(QString tableName);  // 闂娓呭崟鍒楄〃淇℃伅琛�
     void createTableComprehensiveEntryInfo(QString tableName); // 缁煎悎褰曞叆淇℃伅琛�
 
+    void createTableStandingBook(QString tableName);  // 鏁存敼鍙拌处
+
 private slots:
     void on_pushButton_search_clicked();
 
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));
+}
diff --git a/internal_system_v1/threemergeproblemlist.h b/internal_system_v1/threemergeproblemlist.h
index 1600cd2..ccbab03 100644
--- a/internal_system_v1/threemergeproblemlist.h
+++ b/internal_system_v1/threemergeproblemlist.h
@@ -32,6 +32,11 @@
     void readCompanyFromSQL();
 
     void loadDataFromSQL(const QString &arg1);
+    int selectSQL(QString sql,QVector<QVector<QString>> &result); // 鎷跨粨鏋滈泦鐨剆ql
+    int changeSQL(QString sql); // 鎷挎潯鏁扮殑sql
+    int saveDataLine(int row); // 淇濆瓨鎸囧畾琛� 鍏堝垽鏂搴旂殑绱㈠紩id鏄惁瀛樺湪锛屽瓨鍦ㄥ垯鏇存柊锛屼笉瀛樺湪鍒欐柊寤烘彃鍏�
+    int saveFile(QString path, QString id,QString &absSavePath); // 鏍规嵁id鏉ユ寚瀹氬瓙鐩綍杩涜鏂囦欢鐨勬嫹璐濆拰瀛樺偍
+
 private slots:
     // 闂娓呭崟
     void showMenuSlot(QPoint);
@@ -43,7 +48,8 @@
 
     // 鏁存敼鍙拌处
     void showMenuSlotRectBook(QPoint);
-    void deleteActionRectBook();
+    void deleteActionRectBook(); // 鍒犻櫎褰撳墠琛�
+    void saveActionRectBook();  // 淇濆瓨鍗曡 褰撳墠
 
     void on_pushButton_addRow_3_clicked();
 
@@ -57,6 +63,11 @@
 
     void on_pushButton_save_clicked();
 
+
+    void on_pushButton_search_clicked();
+
+    void on_pushButton_save_3_clicked();
+
 private:
     Ui::ThreeMergeProblemList *ui;
     QMenu *m_menu; // 闂娓呭崟鑿滃崟
diff --git a/internal_system_v1/threemergeproblemlist.ui b/internal_system_v1/threemergeproblemlist.ui
index f4522ed..a60a22a 100644
--- a/internal_system_v1/threemergeproblemlist.ui
+++ b/internal_system_v1/threemergeproblemlist.ui
@@ -593,7 +593,12 @@
            </widget>
           </item>
           <item row="1" column="4">
-           <widget class="QComboBox" name="comboBox">
+           <widget class="QComboBox" name="comboBox_standing_book_condt">
+            <item>
+             <property name="text">
+              <string>鍏ㄩ儴</string>
+             </property>
+            </item>
             <item>
              <property name="text">
               <string>瀹¤绫诲埆</string>
@@ -611,7 +616,12 @@
             </item>
             <item>
              <property name="text">
-              <string>閲戦</string>
+              <string>娑夊強閲戦</string>
+             </property>
+            </item>
+            <item>
+             <property name="text">
+              <string>鏁存敼閲戦</string>
              </property>
             </item>
             <item>
@@ -619,10 +629,20 @@
               <string>瀹¤鏂瑰紡</string>
              </property>
             </item>
+            <item>
+             <property name="text">
+              <string>璐d换涓讳綋鍚嶇О</string>
+             </property>
+            </item>
+            <item>
+             <property name="text">
+              <string>瀹¤鍗曚綅</string>
+             </property>
+            </item>
            </widget>
           </item>
           <item row="1" column="5">
-           <widget class="QLineEdit" name="lineEdit">
+           <widget class="QLineEdit" name="lineEdit_sbook_condition">
             <property name="placeholderText">
              <string>璇疯緭鍏ュ乏杈归�夐」鐨勫搴旀潯浠�</string>
             </property>
@@ -636,7 +656,7 @@
            </widget>
           </item>
           <item row="1" column="6">
-           <widget class="QPushButton" name="pushButton">
+           <widget class="QPushButton" name="pushButton_search">
             <property name="text">
              <string>鏌ヨ宸插綍</string>
             </property>

--
Gitblit v1.8.0