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 |  622 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 564 insertions(+), 58 deletions(-)

diff --git a/internal_system_v1/threemergeproblemlist.cpp b/internal_system_v1/threemergeproblemlist.cpp
index 2b00b35..72b25cd 100644
--- a/internal_system_v1/threemergeproblemlist.cpp
+++ b/internal_system_v1/threemergeproblemlist.cpp
@@ -6,6 +6,12 @@
 #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),
@@ -14,6 +20,7 @@
     ui->setupUi(this);
 
     m_fdd = new FileDialogDelegate;
+    //m_noEdit = new ThreeComboBox;
 
     ui->statusbar->hide();
     ui->menubar->hide();
@@ -38,10 +45,17 @@
     ui->line->hide();
     ui->line_2->hide();
 
+    ui->groupBox->hide(); // 棣栨鍏堥殣钘�
+
+    // pdf鏂囦欢鐩稿叧
+    //m_pdfView = new QWebEngineView();
+
+
 }
 
 ThreeMergeProblemList::~ThreeMergeProblemList()
 {
+    //delete m_noEdit;
     delete ui;
 }
 
@@ -93,6 +107,15 @@
         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;
@@ -102,17 +125,17 @@
         // 瀛樺湪锛屽垯鏇存柊鍐呭鍗冲彲
         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())
+                      ",瀹¤椤圭洰='%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,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());
+                .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){
@@ -129,18 +152,18 @@
         // 涓嶅瓨鍦紝鍒欓渶瑕佹柊澧炴彃鍏�
         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())
+                      ",鏁存敼鎯呭喌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,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"));
+                .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){
@@ -155,7 +178,7 @@
 
 // path 涓烘枃浠跺畬鏁磋矾寰�
 // id涓哄瓙鐩綍鍚嶅瓧
-int ThreeMergeProblemList::saveFile(QString path, QString id,QString &absSavePath)
+int ThreeMergeProblemList::saveFile(QString path, QString id,QString &absSavePath,QString proName)
 {
     // 鏍规嵁id鏉ユ寚瀹氬瓙鐩綍杩涜鏂囦欢鐨勬嫹璐濆拰瀛樺偍
     // 榛樿淇濆瓨鍒板綋鍓峞vidence鐩綍涓嬬殑id瀛愮洰褰曚腑
@@ -165,7 +188,7 @@
         return -1;
     }
 
-    QString curPath = QString("./evidence/%1/").arg(id);
+    QString curPath = QString("./evidence/%1_%2/").arg(id).arg(proName);
     QDir dir;
     if(!dir.exists(curPath)){
         // 鍒欑洿鎺ュ垱寤�
@@ -188,12 +211,29 @@
     }
 
 }
+
+// 浣跨敤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); // 闂娓呭崟
@@ -225,6 +265,7 @@
         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){
@@ -285,24 +326,150 @@
     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,m_cbb_file_wri);
-    ui->tableWidget->setItemDelegateForColumn(17,m_cbb_file_wri);
-    ui->tableWidget->setItemDelegateForColumn(23,m_cbb_file_wri);
+    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,m_date_ymd);
-    ui->tableWidget->setItemDelegateForColumn(21,m_date_ymd);
-    ui->tableWidget->setItemDelegateForColumn(24,m_date_ymd);
-    ui->tableWidget->setItemDelegateForColumn(29,m_date_ymd);
-    ui->tableWidget->setItemDelegateForColumn(31,m_date_ymd);
-    ui->tableWidget->setItemDelegateForColumn(34,m_date_ymd);
+    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();
@@ -431,12 +598,14 @@
     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()));
 
 }
 
@@ -581,25 +750,26 @@
         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 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();
-            qDebug()<<"鎷疯礉鏂囦欢:"<<fid<<fpath;
+            QString proName = ui->tableWidget->item(row,7)->text(); // 椤圭洰鍚嶇О
+            qDebug()<<"鎷疯礉鏂囦欢:"<<fid<<proName<<fpath;
 
             QString absSavePath1,absSavePath2,absSavePath3;
 
-            int sflag1 = saveFile(fpath,fid,absSavePath1); // 淇濆瓨绗竴涓�
+            int sflag1 = saveFile(fpath,fid,absSavePath1,proName); // 淇濆瓨绗竴涓�
             if(sflag1==1){
-                ui->tableWidget->setItem(row,13,new QTableWidgetItem(absSavePath1));
+                ui->tableWidget->setItem(row,13+2,new QTableWidgetItem(absSavePath1));
             }
-            int sflag2 = saveFile(spath,fid,absSavePath2); // 淇濆瓨绗簩涓�
+            int sflag2 = saveFile(spath,fid,absSavePath2,proName); // 淇濆瓨绗簩涓�
             if(sflag2==1){
-                ui->tableWidget->setItem(row,17,new QTableWidgetItem(absSavePath2));
+                ui->tableWidget->setItem(row,17+2,new QTableWidgetItem(absSavePath2));
             }
-            int sflag3 = saveFile(tpath,fid,absSavePath3); // 淇濆瓨绗笁涓�
+            int sflag3 = saveFile(tpath,fid,absSavePath3,proName); // 淇濆瓨绗笁涓�
             if(sflag3==1){
-                ui->tableWidget->setItem(row,23,new QTableWidgetItem(absSavePath3));
+                ui->tableWidget->setItem(row,23+2,new QTableWidgetItem(absSavePath3));
             }
             qDebug()<<"save falg:"<<sflag1<<sflag2<<sflag3;
             if(sflag1 || sflag2 || sflag3){
@@ -765,11 +935,11 @@
 
     }else if(curText == "娑夊強閲戦" || strcmp(curText.toLocal8Bit().data(),"娑夊強閲戦")==0){
         qDebug()<<"娑夊強閲戦";
-        condition = QString(" where 娑夊強閲戦='%1'").arg(ui->lineEdit_sbook_condition->text());
+        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());
+        condition = QString(" where 鏁撮】閲戦 <=%1").arg(ui->lineEdit_sbook_condition->text());
 
     }
 
@@ -779,10 +949,10 @@
     QVector<QVector<QString>> res;
     int rows = selectSQL(sql,res);
     if(rows > 0){
-        ui->tableWidget->setRowCount(rows);
+        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,j,new QTableWidgetItem(res[i][j]));
+                ui->tableWidget->setItem(i+3,j,new QTableWidgetItem(res[i][j]));
             }
         }
     }else{
@@ -794,31 +964,32 @@
 void ThreeMergeProblemList::on_pushButton_save_3_clicked()
 {
     int hasContentRow=0;
-    for(int i=0;i<ui->tableWidget->rowCount();++i){
+    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)->text();
-            QString spath = ui->tableWidget->item(i,17)->text();
-            QString tpath = ui->tableWidget->item(i,23)->text();
+            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();
-            qDebug()<<"鎷疯礉鏂囦欢:"<<fid<<fpath;
+            QString proName = ui->tableWidget->item(i,7)->text(); // 椤圭洰鍚嶇О
+            qDebug()<<"鎷疯礉鏂囦欢:"<<fid<<proName<<fpath;
 
             QString absSavePath1,absSavePath2,absSavePath3;
 
-            int sflag1 = saveFile(fpath,fid,absSavePath1); // 淇濆瓨绗竴涓�
+            int sflag1 = saveFile(fpath,fid,absSavePath1,proName); // 淇濆瓨绗竴涓�
             if(sflag1==1){
-                ui->tableWidget->setItem(i,13,new QTableWidgetItem(absSavePath1));
+                ui->tableWidget->setItem(i,13+2,new QTableWidgetItem(absSavePath1));
             }
-            int sflag2 = saveFile(spath,fid,absSavePath2); // 淇濆瓨绗簩涓�
+            int sflag2 = saveFile(spath,fid,absSavePath2,proName); // 淇濆瓨绗簩涓�
             if(sflag2==1){
-                ui->tableWidget->setItem(i,17,new QTableWidgetItem(absSavePath2));
+                ui->tableWidget->setItem(i,17+2,new QTableWidgetItem(absSavePath2));
             }
-            int sflag3 = saveFile(tpath,fid,absSavePath3); // 淇濆瓨绗笁涓�
+            int sflag3 = saveFile(tpath,fid,absSavePath3,proName); // 淇濆瓨绗笁涓�
             if(sflag3==1){
-                ui->tableWidget->setItem(i,23,new QTableWidgetItem(absSavePath3));
+                ui->tableWidget->setItem(i,23+2,new QTableWidgetItem(absSavePath3));
             }
             qDebug()<<"save falg:"<<sflag1<<sflag2<<sflag3;
             if(sflag1 || sflag2 || sflag3){
@@ -827,6 +998,341 @@
 
         }
     }
-    QMessageBox::information(this,"淇濆瓨鎻愮ず",QString("鎬昏鏁颁负%1,鎴愬姛%2琛岋紝澶辫触%3琛屻��").arg(ui->tableWidget->rowCount())
-                             .arg(hasContentRow).arg(ui->tableWidget->rowCount()-hasContentRow));
+    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