From 708abd6f59663758bd901947c3d79a5ab0ada870 Mon Sep 17 00:00:00 2001
From: wumu <mayi@mayi.com>
Date: 星期五, 13 十二月 2024 00:15:16 +0800
Subject: [PATCH] 1212

---
 internal_system_v1/searchinfo.cpp            |    4 
 internal_system_v1/threemergeproblemlist.cpp |  118 +++++++++-
 internal_system_v1/clientmainwindow.ui       |    4 
 internal_system_v1/converinfo2.h             |    3 
 internal_system_v1/converinfo2.cpp           |  467 ++++++++++++++++++++++++++++++++----------
 internal_system_v1/threemergeproblemlist.h   |    2 
 internal_system_v1/exporttofile.cpp          |   14 +
 7 files changed, 483 insertions(+), 129 deletions(-)

diff --git a/internal_system_v1/clientmainwindow.ui b/internal_system_v1/clientmainwindow.ui
index 1cf1f9b..babc988 100644
--- a/internal_system_v1/clientmainwindow.ui
+++ b/internal_system_v1/clientmainwindow.ui
@@ -11,14 +11,14 @@
    </rect>
   </property>
   <property name="windowTitle">
-   <string>IS v3.2</string>
+   <string>IS v3.3</string>
   </property>
   <widget class="QWidget" name="centralWidget">
    <layout class="QGridLayout" name="gridLayout_3">
     <item row="0" column="0">
      <widget class="QTabWidget" name="tabWidget">
       <property name="currentIndex">
-       <number>2</number>
+       <number>0</number>
       </property>
       <widget class="QWidget" name="tab">
        <attribute name="title">
diff --git a/internal_system_v1/converinfo2.cpp b/internal_system_v1/converinfo2.cpp
index c19c391..6344e08 100644
--- a/internal_system_v1/converinfo2.cpp
+++ b/internal_system_v1/converinfo2.cpp
@@ -767,6 +767,11 @@
                 // 鏈�鍚庡瓨鍒癿ap涓�
                 m_nameAndComInfos[name.toString()]=curComInfo;
 
+                // 鏇存柊鍒版暟鎹簱涓�
+                saveToSQL(curComInfo);
+                qDebug()<<"load Excel save to SQL ok:"<<name;
+
+
                 // 娣诲姞鏍戝舰鍒楄〃鑺傜偣
                 //addTreeWidgetNode(upName,name);
 
@@ -793,6 +798,9 @@
         emit loadProgress((cntIdx/allSize)*100);
         cntIdx++;
     }
+
+    // 鍐嶆鏌ヨ鏁版嵁搴撲腑鎵�鏈夌殑淇℃伅
+    readAllSQLData();
 
     createTreeNode(); // 鏋勫缓鏍戝舰鑺傜偣
 
@@ -986,125 +994,128 @@
 
 
     // 鏇存柊鍒版暟鎹簱
+    saveToSQL(curComInfo);
 
-    // 鍏堝垽鏂槸涓嶆槸宸茬粡瀛樺湪鍏徃鍚嶄簡锛岃嫢宸插瓨鍦紝鍒欐洿鏂帮紝涓嶅瓨鍦ㄥ垯鎻掑叆
-    QString sql = QString("select id,name from all_company_info where name='%1'").arg(name);
-    qDebug()<<"sql:"<<sql;
-    QSqlQuery query;
-    int rowCnt = 0;
-    if(query.exec(sql)){
-        qDebug()<<"size:"<<query.size();
+//    // 鍏堝垽鏂槸涓嶆槸宸茬粡瀛樺湪鍏徃鍚嶄簡锛岃嫢宸插瓨鍦紝鍒欐洿鏂帮紝涓嶅瓨鍦ㄥ垯鎻掑叆
+//    QString sql = QString("select id,name from all_company_info where name='%1'").arg(name);
+//    qDebug()<<"sql:"<<sql;
+//    QSqlQuery query;
+//    int rowCnt = 0;
+//    if(query.exec(sql)){
+//        qDebug()<<"size:"<<query.size();
 
-        while (query.next()) {
-            rowCnt++;
-        }
-    }
-    if(rowCnt == 0){
-        // 涓嶅瓨鍦紝鍒欐彃鍏ヤ竴鏉℃柊鏁版嵁
-        qDebug()<<"涓嶅瓨鍦�:"<<name;
-        sql = QString("insert into all_company_info (name,\
-code,\
-鏈烘瀯绫诲瀷,\
-涓昏涓氬姟娲诲姩,\
-琛屼笟浠g爜,\
-鍗曚綅娉ㄥ唽鍦板強鍖哄煙,\
-鍖哄煙浠g爜,\
-鍩庝埂浠g爜,\
-鍗曚綅瑙勬ā,\
-浠庝笟鏈熸湯浜烘暟,\
-娉曞畾浠h〃浜�,\
-鎵ц浼氳鏍囧噯绫诲埆,\
-闀块�斿尯鍙�,\
-鍥哄畾鐢佃瘽,\
-閭斂缂栫爜,\
-鐢靛瓙閭,\
-缃戝潃,\
-鏄惁鏈変笂涓�绾ф硶浜�,\
-涓婁竴绾х粺淇′唬鐮�,\
-鍘熺粍缁囦唬鐮�,\
-涓婄骇鍗曚綅鍚嶇О,\
-鏄惁璁剧疆鎬诲璁″笀,\
-鎬诲璁″笀鑱屼綅灞傜骇,\
-鎬诲浠昏亴鏂瑰紡,\
-鏄惁璁剧疆鍐呭鏈烘瀯,\
-鍐呭鏈烘瀯鍚嶇О,\
-棰嗗鏈烘瀯,\
-鏄惁鐙珛璁剧疆鍐呭鏈烘瀯,\
-璐㈠姟閮ㄩ棬,\
-娉曞姟閮ㄩ棬,\
-鍐呴儴鎺у埗閮ㄩ棬,\
-绾閮ㄩ棬,\
-鍏朵粬閮ㄩ棬,\
-鍐呭灞傜骇,\
-缂栧埗鏁伴噺,\
-瀹炴湁浜烘暟閲�,\
-涓撹亴浜哄憳鏁伴噺,\
-鎷ユ湁CIA浜烘暟,\
-纭曞+瀛﹀巻浠ヤ笂浜烘暟,\
-鏈浜烘暟,\
-涓撶鍙婁互涓嬩汉鏁�,\
-楂樼骇鑱岀О浜烘暟,\
-涓骇鑱岀О浜烘暟,\
-鍒濈骇鑱岀О浜烘暟,\
-鏃犺亴绉颁汉鏁�,\
-浜斿崄宀佷互涓婁汉鏁�,\
-涓夊崄鑷充簲鍗佸瞾宀佷汉鏁�,\
-涓夊崄宀佷互涓嬩汉鏁�,\
-瀹¤鏁伴噺,\
-浼氳鏁伴噺,\
-缁忔祹鏁伴噺,\
-娉曞緥鏁伴噺,\
-绠$悊鏁伴噺,\
-淇℃伅鎶�鏈暟閲�,\
-宸ョ▼鏁伴噺,\
-鍏朵粬鏁伴噺,\
-缁熻璐熻矗浜�,\
-濉〃浜�,\
-鑱旂郴鐢佃瘽,\
-濉姤鏃ユ湡) 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,%47,%48,%49,%50,\
-%51,%52,%53,%54,%55,%56,'%57','%58','%59','%60'\
-)").arg(name).arg(creditCode).arg(comType).arg(business).arg(businessCode).arg(addr).arg(areaCode).arg(townCode).arg(scale).arg(people).
-                arg(representative).arg(standardType).arg(trunkCode).arg(fixedTel).arg(postCode).arg(email).arg(webSite).arg(hasUpLegal).arg(upCreditCode).arg(oldCreditCode).
-                arg(upName).arg(hasChiefDesigner).arg(ChiefDesignerLevel).arg(employmentMode).arg(hasSetIntervalAudit).arg(internalName).arg(leadingOrganization).arg(hasSetSeparateIA).arg(financeDepartment).arg(legalDepartment).
-                arg(internalConDepart).arg(disceplineInDepart).arg(otherDepart).arg(intavalAuditLeval).arg(organazationNum).arg(realNum).arg(professionalNum).arg(CIANum).arg(masterNum).arg(undergraduatesNum).
-                arg(juniorNum).arg(seniorNum).arg(intermediateNum).arg(primaryNum).arg(noTitleNum).arg(upFiftyOldNum).arg(upThirtyOldNum).arg(downThirtyOldNum).arg(auditNum).arg(accountingNum).
-                arg(economyNum).arg(lawNum).arg(managerNum).arg(itNum).arg(engineeringNum).arg(otherNum).arg(statisticalConOfficer).arg(personFilling).arg(officerTel).arg(fillingDateTime);
+//        while (query.next()) {
+//            rowCnt++;
+//        }
+//    }
+//    if(rowCnt == 0){
+//        // 涓嶅瓨鍦紝鍒欐彃鍏ヤ竴鏉℃柊鏁版嵁
+//        qDebug()<<"涓嶅瓨鍦�:"<<name;
+//        sql = QString("insert into all_company_info (name,\
+//code,\
+//鏈烘瀯绫诲瀷,\
+//涓昏涓氬姟娲诲姩,\
+//琛屼笟浠g爜,\
+//鍗曚綅娉ㄥ唽鍦板強鍖哄煙,\
+//鍖哄煙浠g爜,\
+//鍩庝埂浠g爜,\
+//鍗曚綅瑙勬ā,\
+//浠庝笟鏈熸湯浜烘暟,\
+//娉曞畾浠h〃浜�,\
+//鎵ц浼氳鏍囧噯绫诲埆,\
+//闀块�斿尯鍙�,\
+//鍥哄畾鐢佃瘽,\
+//閭斂缂栫爜,\
+//鐢靛瓙閭,\
+//缃戝潃,\
+//鏄惁鏈変笂涓�绾ф硶浜�,\
+//涓婁竴绾х粺淇′唬鐮�,\
+//鍘熺粍缁囦唬鐮�,\
+//涓婄骇鍗曚綅鍚嶇О,\
+//鏄惁璁剧疆鎬诲璁″笀,\
+//鎬诲璁″笀鑱屼綅灞傜骇,\
+//鎬诲浠昏亴鏂瑰紡,\
+//鏄惁璁剧疆鍐呭鏈烘瀯,\
+//鍐呭鏈烘瀯鍚嶇О,\
+//棰嗗鏈烘瀯,\
+//鏄惁鐙珛璁剧疆鍐呭鏈烘瀯,\
+//璐㈠姟閮ㄩ棬,\
+//娉曞姟閮ㄩ棬,\
+//鍐呴儴鎺у埗閮ㄩ棬,\
+//绾閮ㄩ棬,\
+//鍏朵粬閮ㄩ棬,\
+//鍐呭灞傜骇,\
+//缂栧埗鏁伴噺,\
+//瀹炴湁浜烘暟閲�,\
+//涓撹亴浜哄憳鏁伴噺,\
+//鎷ユ湁CIA浜烘暟,\
+//纭曞+瀛﹀巻浠ヤ笂浜烘暟,\
+//鏈浜烘暟,\
+//涓撶鍙婁互涓嬩汉鏁�,\
+//楂樼骇鑱岀О浜烘暟,\
+//涓骇鑱岀О浜烘暟,\
+//鍒濈骇鑱岀О浜烘暟,\
+//鏃犺亴绉颁汉鏁�,\
+//浜斿崄宀佷互涓婁汉鏁�,\
+//涓夊崄鑷充簲鍗佸瞾宀佷汉鏁�,\
+//涓夊崄宀佷互涓嬩汉鏁�,\
+//瀹¤鏁伴噺,\
+//浼氳鏁伴噺,\
+//缁忔祹鏁伴噺,\
+//娉曞緥鏁伴噺,\
+//绠$悊鏁伴噺,\
+//淇℃伅鎶�鏈暟閲�,\
+//宸ョ▼鏁伴噺,\
+//鍏朵粬鏁伴噺,\
+//缁熻璐熻矗浜�,\
+//濉〃浜�,\
+//鑱旂郴鐢佃瘽,\
+//濉姤鏃ユ湡) 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,%47,%48,%49,%50,\
+//%51,%52,%53,%54,%55,%56,'%57','%58','%59','%60'\
+//)").arg(name).arg(creditCode).arg(comType).arg(business).arg(businessCode).arg(addr).arg(areaCode).arg(townCode).arg(scale).arg(people).
+//                arg(representative).arg(standardType).arg(trunkCode).arg(fixedTel).arg(postCode).arg(email).arg(webSite).arg(hasUpLegal).arg(upCreditCode).arg(oldCreditCode).
+//                arg(upName).arg(hasChiefDesigner).arg(ChiefDesignerLevel).arg(employmentMode).arg(hasSetIntervalAudit).arg(internalName).arg(leadingOrganization).arg(hasSetSeparateIA).arg(financeDepartment).arg(legalDepartment).
+//                arg(internalConDepart).arg(disceplineInDepart).arg(otherDepart).arg(intavalAuditLeval).arg(organazationNum).arg(realNum).arg(professionalNum).arg(CIANum).arg(masterNum).arg(undergraduatesNum).
+//                arg(juniorNum).arg(seniorNum).arg(intermediateNum).arg(primaryNum).arg(noTitleNum).arg(upFiftyOldNum).arg(upThirtyOldNum).arg(downThirtyOldNum).arg(auditNum).arg(accountingNum).
+//                arg(economyNum).arg(lawNum).arg(managerNum).arg(itNum).arg(engineeringNum).arg(otherNum).arg(statisticalConOfficer).arg(personFilling).arg(officerTel).arg(fillingDateTime);
 
 
-        qDebug()<<"sql insert:"<<sql;
-        if(query.exec(sql)){
-            qDebug()<<"insert ok";
-        }else{
-            qDebug()<<"insert fail:"<<query.lastError().text();
-        }
+//        qDebug()<<"sql insert:"<<sql;
+//        if(query.exec(sql)){
+//            qDebug()<<"insert ok";
+//        }else{
+//            qDebug()<<"insert fail:"<<query.lastError().text();
+//        }
 
-    }else{
-        // 鏇存柊
-        qDebug()<<"瀛樺湪:"<<name;
-        sql = QString("update all_company_info set name='%1',code='%2',鏈烘瀯绫诲瀷='%3',涓昏涓氬姟娲诲姩='%4',琛屼笟浠g爜='%5',鍗曚綅娉ㄥ唽鍦板強鍖哄煙='%6',鍖哄煙浠g爜='%7',鍩庝埂浠g爜='%8',鍗曚綅瑙勬ā='%9',浠庝笟鏈熸湯浜烘暟=%10\
-,娉曞畾浠h〃浜�='%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,鎷ユ湁CIA浜烘暟=%38,纭曞+瀛﹀巻浠ヤ笂浜烘暟=%39,鏈浜烘暟=%40\
-,涓撶鍙婁互涓嬩汉鏁�=%41,楂樼骇鑱岀О浜烘暟=%42,涓骇鑱岀О浜烘暟=%43,鍒濈骇鑱岀О浜烘暟=%44,鏃犺亴绉颁汉鏁�=%45,浜斿崄宀佷互涓婁汉鏁�=%46,涓夊崄鑷充簲鍗佸瞾宀佷汉鏁�=%47,涓夊崄宀佷互涓嬩汉鏁�=%48,瀹¤鏁伴噺=%49,浼氳鏁伴噺=%50\
-,缁忔祹鏁伴噺=%51,娉曞緥鏁伴噺=%52,绠$悊鏁伴噺=%53,淇℃伅鎶�鏈暟閲�=%54,宸ョ▼鏁伴噺=%55,鍏朵粬鏁伴噺=%56,缁熻璐熻矗浜�='%57',濉〃浜�='%58',鑱旂郴鐢佃瘽='%59',濉姤鏃ユ湡='%60'").
-                arg(name).arg(creditCode).arg(comType).arg(business).arg(businessCode).arg(addr).arg(areaCode).arg(townCode).arg(scale).arg(people).
-                arg(representative).arg(standardType).arg(trunkCode).arg(fixedTel).arg(postCode).arg(email).arg(webSite).arg(hasUpLegal).arg(upCreditCode).arg(oldCreditCode).
-                arg(upName).arg(hasChiefDesigner).arg(ChiefDesignerLevel).arg(employmentMode).arg(hasSetIntervalAudit).arg(internalName).arg(leadingOrganization).arg(hasSetSeparateIA).arg(financeDepartment).arg(legalDepartment).
-                arg(internalConDepart).arg(disceplineInDepart).arg(otherDepart).arg(intavalAuditLeval).arg(organazationNum).arg(realNum).arg(professionalNum).arg(CIANum).arg(masterNum).arg(undergraduatesNum).
-                arg(juniorNum).arg(seniorNum).arg(intermediateNum).arg(primaryNum).arg(noTitleNum).arg(upFiftyOldNum).arg(upThirtyOldNum).arg(downThirtyOldNum).arg(auditNum).arg(accountingNum).
-                arg(economyNum).arg(lawNum).arg(managerNum).arg(itNum).arg(engineeringNum).arg(otherNum).arg(statisticalConOfficer).arg(personFilling).arg(officerTel).arg(fillingDateTime);
+//    }else{
+//        // 鏇存柊
+//        qDebug()<<"瀛樺湪:"<<name;
+//        sql = QString("update all_company_info set name='%1',code='%2',鏈烘瀯绫诲瀷='%3',涓昏涓氬姟娲诲姩='%4',琛屼笟浠g爜='%5',鍗曚綅娉ㄥ唽鍦板強鍖哄煙='%6',鍖哄煙浠g爜='%7',鍩庝埂浠g爜='%8',鍗曚綅瑙勬ā='%9',浠庝笟鏈熸湯浜烘暟=%10\
+//,娉曞畾浠h〃浜�='%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,鎷ユ湁CIA浜烘暟=%38,纭曞+瀛﹀巻浠ヤ笂浜烘暟=%39,鏈浜烘暟=%40\
+//,涓撶鍙婁互涓嬩汉鏁�=%41,楂樼骇鑱岀О浜烘暟=%42,涓骇鑱岀О浜烘暟=%43,鍒濈骇鑱岀О浜烘暟=%44,鏃犺亴绉颁汉鏁�=%45,浜斿崄宀佷互涓婁汉鏁�=%46,涓夊崄鑷充簲鍗佸瞾宀佷汉鏁�=%47,涓夊崄宀佷互涓嬩汉鏁�=%48,瀹¤鏁伴噺=%49,浼氳鏁伴噺=%50\
+//,缁忔祹鏁伴噺=%51,娉曞緥鏁伴噺=%52,绠$悊鏁伴噺=%53,淇℃伅鎶�鏈暟閲�=%54,宸ョ▼鏁伴噺=%55,鍏朵粬鏁伴噺=%56,缁熻璐熻矗浜�='%57',濉〃浜�='%58',鑱旂郴鐢佃瘽='%59',濉姤鏃ユ湡='%60'").
+//                arg(name).arg(creditCode).arg(comType).arg(business).arg(businessCode).arg(addr).arg(areaCode).arg(townCode).arg(scale).arg(people).
+//                arg(representative).arg(standardType).arg(trunkCode).arg(fixedTel).arg(postCode).arg(email).arg(webSite).arg(hasUpLegal).arg(upCreditCode).arg(oldCreditCode).
+//                arg(upName).arg(hasChiefDesigner).arg(ChiefDesignerLevel).arg(employmentMode).arg(hasSetIntervalAudit).arg(internalName).arg(leadingOrganization).arg(hasSetSeparateIA).arg(financeDepartment).arg(legalDepartment).
+//                arg(internalConDepart).arg(disceplineInDepart).arg(otherDepart).arg(intavalAuditLeval).arg(organazationNum).arg(realNum).arg(professionalNum).arg(CIANum).arg(masterNum).arg(undergraduatesNum).
+//                arg(juniorNum).arg(seniorNum).arg(intermediateNum).arg(primaryNum).arg(noTitleNum).arg(upFiftyOldNum).arg(upThirtyOldNum).arg(downThirtyOldNum).arg(auditNum).arg(accountingNum).
+//                arg(economyNum).arg(lawNum).arg(managerNum).arg(itNum).arg(engineeringNum).arg(otherNum).arg(statisticalConOfficer).arg(personFilling).arg(officerTel).arg(fillingDateTime);
 
-        qDebug()<<"update sql:"<<sql;
-        if(query.exec(sql)){
-            qDebug()<<"update ok";
-        }else{
-            qDebug()<<"update fail:"<<query.lastError().text();
-        }
-    }
+//        qDebug()<<"update sql:"<<sql;
+//        if(query.exec(sql)){
+//            qDebug()<<"update ok";
+//        }else{
+//            qDebug()<<"update fail:"<<query.lastError().text();
+//        }
+//    }
+
+    // 鐙珛鍑烘潵涓�涓嚱鏁帮紝浼犱竴涓粨鏋勪綋灏眔k
 }
 
 void ConverInfo2::readExcelFromPath(QString path)
@@ -1685,6 +1696,236 @@
     return QMainWindow::eventFilter(watched,event);
 
 }
+
+void ConverInfo2::saveToSQL(ComInfo &info)
+{
+    // 鏇存柊鍒版暟鎹簱
+
+    // 鍏堝垽鏂槸涓嶆槸宸茬粡瀛樺湪鍏徃鍚嶄簡锛岃嫢宸插瓨鍦紝鍒欐洿鏂帮紝涓嶅瓨鍦ㄥ垯鎻掑叆
+    QString sql = QString("select id,name from all_company_info where name='%1'").arg(QString::fromLocal8Bit(info.name));
+    qDebug()<<"sql:"<<sql;
+    QSqlQuery query;
+    int rowCnt = 0;
+    if(query.exec(sql)){
+        qDebug()<<"size:"<<query.size();
+
+        while (query.next()) {
+            rowCnt++;
+        }
+        qDebug()<<"rowCnt:"<<rowCnt;
+    }
+    if(rowCnt == 0){
+        // 涓嶅瓨鍦紝鍒欐彃鍏ヤ竴鏉℃柊鏁版嵁
+        qDebug()<<"涓嶅瓨鍦�:"<<QString::fromLocal8Bit(info.name);
+        sql = QString("insert into all_company_info (name,\
+code,\
+鏈烘瀯绫诲瀷,\
+涓昏涓氬姟娲诲姩,\
+琛屼笟浠g爜,\
+鍗曚綅娉ㄥ唽鍦板強鍖哄煙,\
+鍖哄煙浠g爜,\
+鍩庝埂浠g爜,\
+鍗曚綅瑙勬ā,\
+浠庝笟鏈熸湯浜烘暟,\
+娉曞畾浠h〃浜�,\
+鎵ц浼氳鏍囧噯绫诲埆,\
+闀块�斿尯鍙�,\
+鍥哄畾鐢佃瘽,\
+閭斂缂栫爜,\
+鐢靛瓙閭,\
+缃戝潃,\
+鏄惁鏈変笂涓�绾ф硶浜�,\
+涓婁竴绾х粺淇′唬鐮�,\
+鍘熺粍缁囦唬鐮�,\
+涓婄骇鍗曚綅鍚嶇О,\
+鏄惁璁剧疆鎬诲璁″笀,\
+鎬诲璁″笀鑱屼綅灞傜骇,\
+鎬诲浠昏亴鏂瑰紡,\
+鏄惁璁剧疆鍐呭鏈烘瀯,\
+鍐呭鏈烘瀯鍚嶇О,\
+棰嗗鏈烘瀯,\
+鏄惁鐙珛璁剧疆鍐呭鏈烘瀯,\
+璐㈠姟閮ㄩ棬,\
+娉曞姟閮ㄩ棬,\
+鍐呴儴鎺у埗閮ㄩ棬,\
+绾閮ㄩ棬,\
+鍏朵粬閮ㄩ棬,\
+鍐呭灞傜骇,\
+缂栧埗鏁伴噺,\
+瀹炴湁浜烘暟閲�,\
+涓撹亴浜哄憳鏁伴噺,\
+鎷ユ湁CIA浜烘暟,\
+纭曞+瀛﹀巻浠ヤ笂浜烘暟,\
+鏈浜烘暟,\
+涓撶鍙婁互涓嬩汉鏁�,\
+楂樼骇鑱岀О浜烘暟,\
+涓骇鑱岀О浜烘暟,\
+鍒濈骇鑱岀О浜烘暟,\
+鏃犺亴绉颁汉鏁�,\
+浜斿崄宀佷互涓婁汉鏁�,\
+涓夊崄鑷充簲鍗佸瞾宀佷汉鏁�,\
+涓夊崄宀佷互涓嬩汉鏁�,\
+瀹¤鏁伴噺,\
+浼氳鏁伴噺,\
+缁忔祹鏁伴噺,\
+娉曞緥鏁伴噺,\
+绠$悊鏁伴噺,\
+淇℃伅鎶�鏈暟閲�,\
+宸ョ▼鏁伴噺,\
+鍏朵粬鏁伴噺,\
+缁熻璐熻矗浜�,\
+濉〃浜�,\
+鑱旂郴鐢佃瘽,\
+濉姤鏃ユ湡) 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,%47,%48,%49,%50,\
+%51,%52,%53,%54,%55,%56,'%57','%58','%59','%60'\
+)").arg(QString::fromLocal8Bit(info.name)).arg(QString::fromLocal8Bit(info.creditCode)).arg(QString::fromLocal8Bit(info.comType)).arg(QString::fromLocal8Bit(info.business)).arg(QString::fromLocal8Bit(info.businessCode)).arg(QString::fromLocal8Bit(info.addr)).arg(QString::fromLocal8Bit(info.areaCode)).arg(QString::fromLocal8Bit(info.townCode)).arg(QString::fromLocal8Bit(info.scale)).arg(info.people).
+                arg(QString::fromLocal8Bit(info.representative)).arg(QString::fromLocal8Bit(info.standardType)).arg(QString::fromLocal8Bit(info.trunkCode)).arg(QString::fromLocal8Bit(info.fixedTel)).arg(info.postCode).arg(QString::fromLocal8Bit(info.email)).arg(QString::fromLocal8Bit(info.webSite)).arg(QString::fromLocal8Bit(info.hasUpLegal)).arg(QString::fromLocal8Bit(info.upCreditCode)).arg(QString::fromLocal8Bit(info.oldCreditCode)).
+                arg(QString::fromLocal8Bit(info.upName)).arg(QString::fromLocal8Bit(info.hasChiefDesigner)).arg(QString::fromLocal8Bit(info.ChiefDesignerLevel)).arg(QString::fromLocal8Bit(info.employmentMode)).arg(QString::fromLocal8Bit(info.hasSetIntervalAudit)).arg(QString::fromLocal8Bit(info.internalName)).arg(QString::fromLocal8Bit(info.leadingOrganization)).arg(QString::fromLocal8Bit(info.hasSetSeparateIA)).arg(info.financeDepartment).arg(info.legalDepartment).
+                arg(info.internalConDepart).arg(info.disceplineInDepart).arg(info.otherDepart).arg(QString::fromLocal8Bit(info.intavalAuditLeval)).arg(info.organazationNum).arg(info.realNum).arg(info.professionalNum).arg(info.CIANum).arg(info.masterNum).arg(info.undergraduatesNum).
+                arg(info.juniorNum).arg(info.seniorNum).arg(info.intermediateNum).arg(info.primaryNum).arg(info.noTitleNum).arg(info.upFiftyOldNum).arg(info.upThirtyOldNum).arg(info.downThirtyOldNum).arg(info.auditNum).arg(info.accountingNum).
+                arg(info.economyNum).arg(info.lawNum).arg(info.managerNum).arg(info.itNum).arg(info.engineeringNum).arg(info.otherNum).arg(QString::fromLocal8Bit(info.statisticalConOfficer)).arg(QString::fromLocal8Bit(info.personFilling)).arg(QString::fromLocal8Bit(info.officerTel)).arg(QString::fromLocal8Bit(info.fillingDateTime));
+
+
+        qDebug()<<"sql insert:"<<sql;
+        if(query.exec(sql)){
+            qDebug()<<"insert ok";
+        }else{
+            qDebug()<<"insert fail:"<<query.lastError().text();
+        }
+
+    }else{
+        // 鏇存柊
+        qDebug()<<"瀛樺湪:"<<QString::fromLocal8Bit(info.name);
+        sql = QString("update all_company_info set name='%1',code='%2',鏈烘瀯绫诲瀷='%3',涓昏涓氬姟娲诲姩='%4',琛屼笟浠g爜='%5',鍗曚綅娉ㄥ唽鍦板強鍖哄煙='%6',鍖哄煙浠g爜='%7',鍩庝埂浠g爜='%8',鍗曚綅瑙勬ā='%9',浠庝笟鏈熸湯浜烘暟=%10\
+,娉曞畾浠h〃浜�='%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,鎷ユ湁CIA浜烘暟=%38,纭曞+瀛﹀巻浠ヤ笂浜烘暟=%39,鏈浜烘暟=%40\
+,涓撶鍙婁互涓嬩汉鏁�=%41,楂樼骇鑱岀О浜烘暟=%42,涓骇鑱岀О浜烘暟=%43,鍒濈骇鑱岀О浜烘暟=%44,鏃犺亴绉颁汉鏁�=%45,浜斿崄宀佷互涓婁汉鏁�=%46,涓夊崄鑷充簲鍗佸瞾宀佷汉鏁�=%47,涓夊崄宀佷互涓嬩汉鏁�=%48,瀹¤鏁伴噺=%49,浼氳鏁伴噺=%50\
+,缁忔祹鏁伴噺=%51,娉曞緥鏁伴噺=%52,绠$悊鏁伴噺=%53,淇℃伅鎶�鏈暟閲�=%54,宸ョ▼鏁伴噺=%55,鍏朵粬鏁伴噺=%56,缁熻璐熻矗浜�='%57',濉〃浜�='%58',鑱旂郴鐢佃瘽='%59',濉姤鏃ユ湡='%60' where name='%1'").arg(QString::fromLocal8Bit(info.name)).arg(QString::fromLocal8Bit(info.creditCode)).arg(QString::fromLocal8Bit(info.comType)).arg(QString::fromLocal8Bit(info.business)).arg(QString::fromLocal8Bit(info.businessCode)).arg(QString::fromLocal8Bit(info.addr)).arg(QString::fromLocal8Bit(info.areaCode)).arg(QString::fromLocal8Bit(info.townCode)).arg(QString::fromLocal8Bit(info.scale)).arg(info.people).
+                arg(QString::fromLocal8Bit(info.representative)).arg(QString::fromLocal8Bit(info.standardType)).arg(QString::fromLocal8Bit(info.trunkCode)).arg(QString::fromLocal8Bit(info.fixedTel)).arg(info.postCode).arg(QString::fromLocal8Bit(info.email)).arg(QString::fromLocal8Bit(info.webSite)).arg(QString::fromLocal8Bit(info.hasUpLegal)).arg(QString::fromLocal8Bit(info.upCreditCode)).arg(QString::fromLocal8Bit(info.oldCreditCode)).
+                arg(QString::fromLocal8Bit(info.upName)).arg(QString::fromLocal8Bit(info.hasChiefDesigner)).arg(QString::fromLocal8Bit(info.ChiefDesignerLevel)).arg(QString::fromLocal8Bit(info.employmentMode)).arg(QString::fromLocal8Bit(info.hasSetIntervalAudit)).arg(QString::fromLocal8Bit(info.internalName)).arg(QString::fromLocal8Bit(info.leadingOrganization)).arg(QString::fromLocal8Bit(info.hasSetSeparateIA)).arg(info.financeDepartment).arg(info.legalDepartment).
+                arg(info.internalConDepart).arg(info.disceplineInDepart).arg(info.otherDepart).arg(QString::fromLocal8Bit(info.intavalAuditLeval)).arg(info.organazationNum).arg(info.realNum).arg(info.professionalNum).arg(info.CIANum).arg(info.masterNum).arg(info.undergraduatesNum).
+                arg(info.juniorNum).arg(info.seniorNum).arg(info.intermediateNum).arg(info.primaryNum).arg(info.noTitleNum).arg(info.upFiftyOldNum).arg(info.upThirtyOldNum).arg(info.downThirtyOldNum).arg(info.auditNum).arg(info.accountingNum).
+                arg(info.economyNum).arg(info.lawNum).arg(info.managerNum).arg(info.itNum).arg(info.engineeringNum).arg(info.otherNum).arg(QString::fromLocal8Bit(info.statisticalConOfficer)).arg(QString::fromLocal8Bit(info.personFilling)).arg(QString::fromLocal8Bit(info.officerTel)).arg(QString::fromLocal8Bit(info.fillingDateTime));
+                /*.
+                arg(QString::fromLocal8Bit(info.name)).arg(QString::fromLocal8Bit(info.creditCode)).arg(info.comType).arg(info.business).arg(info.businessCode).arg(info.addr).arg(info.areaCode).arg(info.townCode).arg(info.scale).arg(info.people).
+                arg(info.representative).arg(info.standardType).arg(info.trunkCode).arg(info.fixedTel).arg(info.postCode).arg(info.email).arg(info.webSite).arg(info.hasUpLegal).arg(info.upCreditCode).arg(info.oldCreditCode).
+                arg(info.upName).arg(info.hasChiefDesigner).arg(info.ChiefDesignerLevel).arg(info.employmentMode).arg(info.hasSetIntervalAudit).arg(info.internalName).arg(info.leadingOrganization).arg(info.hasSetSeparateIA).arg(info.financeDepartment).arg(info.legalDepartment).
+                arg(info.internalConDepart).arg(info.disceplineInDepart).arg(info.otherDepart).arg(info.intavalAuditLeval).arg(info.organazationNum).arg(info.realNum).arg(info.professionalNum).arg(info.CIANum).arg(info.masterNum).arg(info.undergraduatesNum).
+                arg(info.juniorNum).arg(info.seniorNum).arg(info.intermediateNum).arg(info.primaryNum).arg(info.noTitleNum).arg(info.upFiftyOldNum).arg(info.upThirtyOldNum).arg(info.downThirtyOldNum).arg(info.auditNum).arg(info.accountingNum).
+                arg(info.economyNum).arg(info.lawNum).arg(info.managerNum).arg(info.itNum).arg(info.engineeringNum).arg(info.otherNum).arg(info.statisticalConOfficer).arg(info.personFilling).arg(info.officerTel).arg(info.fillingDateTime);*/
+
+        qDebug()<<"update sql:"<<sql;
+        if(query.exec(sql)){
+            qDebug()<<"update ok";
+        }else{
+            qDebug()<<"update fail:"<<query.lastError().text();
+        }
+    }
+}
+
+void ConverInfo2::readAllSQLData()
+{
+    QString sql = QString("select * from all_company_info");
+    qDebug()<<"sql:"<<sql;
+    QSqlQuery query;
+    int rowCnt = 0;
+    if(query.exec(sql)){
+        qDebug()<<"size:"<<query.size();
+
+
+        while (query.next()) {
+            rowCnt++;
+            ComInfo info; // 鍗曚綅淇℃伅缁撴瀯浣�
+            // 鍩烘湰鎯呭喌
+            strcpy(info.name,query.value(1).toString().toLocal8Bit().data());
+            strcpy(info.creditCode,query.value(2).toString().toLocal8Bit().data());
+            strcpy(info.comType,query.value(3).toString().toLocal8Bit().data());
+            strcpy(info.business,query.value(4).toString().toLocal8Bit().data());
+            strcpy(info.businessCode,query.value(5).toString().toLocal8Bit().data());
+            strcpy(info.addr,query.value(6).toString().toLocal8Bit().data());
+            strcpy(info.areaCode,query.value(7).toString().toLocal8Bit().data());
+            strcpy(info.townCode,query.value(8).toString().toLocal8Bit().data());
+            strcpy(info.scale,query.value(9).toString().toLocal8Bit().data());
+            info.people = query.value(10).toInt();
+            strcpy(info.representative,query.value(11).toString().toLocal8Bit().data());
+            strcpy(info.standardType,query.value(12).toString().toLocal8Bit().data());
+            strcpy(info.trunkCode,query.value(13).toString().toLocal8Bit().data());
+            strcpy(info.fixedTel,query.value(14).toString().toLocal8Bit().data());
+            strcpy(info.postCode,query.value(15).toString().toLocal8Bit().data());
+            strcpy(info.email,query.value(16).toString().toLocal8Bit().data());
+            strcpy(info.webSite,query.value(17).toString().toLocal8Bit().data());
+            // 鍗曚綅缁勭粐缁撴瀯鎯呭喌
+            strcpy(info.hasUpLegal,query.value(18).toString().toLocal8Bit().data());
+            strcpy(info.upCreditCode,query.value(19).toString().toLocal8Bit().data());
+            strcpy(info.oldCreditCode,query.value(20).toString().toLocal8Bit().data());
+            strcpy(info.upName,query.value(21).toString().toLocal8Bit().data());
+
+            // 鎬诲璁″笀涓庡唴閮ㄥ璁℃満鏋勫熀鏈儏鍐�
+            strcpy(info.hasChiefDesigner,query.value(22).toString().toLocal8Bit().data());
+            strcpy(info.ChiefDesignerLevel,query.value(23).toString().toLocal8Bit().data());
+            strcpy(info.employmentMode,query.value(24).toString().toLocal8Bit().data());
+            strcpy(info.hasSetIntervalAudit,query.value(25).toString().toLocal8Bit().data());
+            strcpy(info.internalName,query.value(26).toString().toLocal8Bit().data());
+            strcpy(info.leadingOrganization,query.value(27).toString().toLocal8Bit().data());
+            strcpy(info.hasSetSeparateIA,query.value(28).toString().toLocal8Bit().data());
+            info.financeDepartment = query.value(29).toBool();
+            info.legalDepartment = query.value(30).toBool();
+            info.internalConDepart = query.value(31).toBool();
+            info.disceplineInDepart = query.value(32).toBool();
+            info.otherDepart = query.value(33).toBool();
+            strcpy(info.intavalAuditLeval,query.value(34).toString().toLocal8Bit().data());
+
+            // 鍐呴儴瀹¤浜哄憳閰嶅鍩烘湰鎯呭喌
+            info.organazationNum = query.value(35).toInt();
+            info.realNum = query.value(36).toInt();
+            info.professionalNum = query.value(37).toInt();
+            info.CIANum = query.value(38).toInt();
+            info.masterNum = query.value(39).toInt();
+            info.undergraduatesNum = query.value(40).toInt();
+            info.juniorNum = query.value(41).toInt();
+            info.seniorNum = query.value(42).toInt();
+            info.intermediateNum = query.value(43).toInt();
+            info.primaryNum = query.value(44).toInt();
+            info.noTitleNum = query.value(45).toInt();
+            info.upFiftyOldNum = query.value(46).toInt();
+            info.upThirtyOldNum = query.value(47).toInt();
+            info.downThirtyOldNum = query.value(48).toInt();
+            info.auditNum = query.value(49).toInt();
+            info.accountingNum = query.value(50).toInt();
+            info.economyNum = query.value(51).toInt();
+            info.lawNum = query.value(52).toInt();
+            info.managerNum = query.value(53).toInt();
+            info.itNum = query.value(54).toInt();
+            info.engineeringNum = query.value(55).toInt();
+            info.otherNum = query.value(56).toInt();
+
+            // 鍚庨潰鐨�4涓俊鎭�
+            strcpy(info.statisticalConOfficer,query.value(57).toString().toLocal8Bit().data());
+            strcpy(info.personFilling,query.value(58).toString().toLocal8Bit().data());
+            strcpy(info.officerTel,query.value(59).toString().toLocal8Bit().data());
+            strcpy(info.fillingDateTime,query.value(60).toString().toLocal8Bit().data());
+
+            // 瀛樹俊鎭埌map
+            QString name = query.value(1).toString();
+            m_nameAndComInfos[query.value(1).toString()] = info;
+            // 瀛樺悕瀛楀埌鍗曚綅鏍憁ap
+            QString upName = query.value(21).toString();
+            if(!upName.isEmpty()){
+                m_treeNodes[upName].push_back(name);
+            }else{
+                m_treeNodes[name].push_back(name);
+            }
+            qDebug()<<"name"<<name<<"upName"<<upName;
+
+        }
+        qDebug()<<"rowCnt:"<<rowCnt;
+    }
+}
 void ConverInfo2::addTreeWidgetNode(QVariant upName,QVariant name){
     // 娣诲姞宸﹁竟鏍戝舰鍥剧浉鍏�
     // 鑿滃崟鐩稿叧  褰撲笂绾у叕鍙镐负绌轰笂绾ф椂锛岃嚜宸卞綋鑷繁鐨勪笂绾э紝骞朵笖缃楀垪杩涘幓褰� 鏈骇
diff --git a/internal_system_v1/converinfo2.h b/internal_system_v1/converinfo2.h
index c683c90..4256570 100644
--- a/internal_system_v1/converinfo2.h
+++ b/internal_system_v1/converinfo2.h
@@ -34,6 +34,9 @@
 
     bool eventFilter(QObject *watched, QEvent *event);
 
+    void saveToSQL(ComInfo &info);
+    void readAllSQLData(); // 灏嗘暟鎹簱琛ㄤ腑鐨勬暟鎹鍑烘潵鏀惧埌2涓猰ap涓紝涓�涓槸鏁版嵁map锛屼竴涓槸鍗曚綅鏍憁ap
+
 signals:
     void loadFinished(); // 鍔犺浇瀹屾垚鐨勪俊鍙�
     void loadProgress(int); // 鍔犺浇杩涘害
diff --git a/internal_system_v1/exporttofile.cpp b/internal_system_v1/exporttofile.cpp
index 1f5e8db..252144e 100644
--- a/internal_system_v1/exporttofile.cpp
+++ b/internal_system_v1/exporttofile.cpp
@@ -23,6 +23,10 @@
     QDir dir(demoPath);
     if(!dir.exists()){
         demoPath = QDir::currentPath()+"/release/Data/闄勪欢2_鍐呭缁�01琛╛鍗曚綅鍙婂唴閮ㄥ璁℃満鏋勫熀鏈儏鍐佃〃-1.301鐗坃demo.xls";
+        QDir dir_realse(demoPath);
+        if(!dir_realse.exists()){
+            demoPath = QDir::currentPath()+"/Data/闄勪欢2_鍐呭缁�01琛╛鍗曚綅鍙婂唴閮ㄥ璁℃満鏋勫熀鏈儏鍐佃〃-1.301鐗坃demo.xls";
+        }
     }
     QString dt = QDateTime::currentDateTime().toString("yyyyMMdd-HHmmss");
     QString savePath = QFileDialog::getSaveFileName(nullptr,"淇濆瓨鏂囦欢",QDir::currentPath()+QString("/鍐呭缁�01琛╛%1_%2.xls").arg(QString::fromLocal8Bit(info.name)).arg(dt),"Excel File(*.xls;*.xlsx)");
@@ -232,7 +236,13 @@
     QDir dir(demoPath);
     if(!dir.exists()){
         demoPath = QDir::currentPath()+"/release/Data/涓夊悎涓�.xlsx";
+        QDir dir_realese(demoPath);
+        if(!dir_realese.exists()){
+            demoPath = QDir::currentPath()+"/Data/涓夊悎涓�.xlsx";
+        }
     }
+
+    //QMessageBox::information(nullptr,"涓夊悎涓�璺緞",demoPath);
     QString dt = QDateTime::currentDateTime().toString("yyyyMMdd-HHmmss");
     QString savePath = QFileDialog::getSaveFileName(nullptr,"淇濆瓨鏂囦欢",QDir::currentPath()+QString("/涓夊悎涓�_%1_%2.xls").arg(name).arg(dt),"Excel File(*.xls;*.xlsx)");
     qDebug()<<"savepath:"<<savePath << endl << "demoPath:"<<demoPath;
@@ -358,6 +368,10 @@
     QDir dir(demoPath);
     if(!dir.exists()){
         demoPath = QDir::currentPath()+"/release/Data/闄勪欢4_鍐呭缁�03琛╛鍐呴儴瀹¤缁熻缁煎悎琛�.xls";
+        QDir dir_realse(demoPath);
+        if(!dir_realse.exists()){
+            demoPath = QDir::currentPath()+"/Data/闄勪欢4_鍐呭缁�03琛╛鍐呴儴瀹¤缁熻缁煎悎琛�.xls";
+        }
     }
     QString dt = QDateTime::currentDateTime().toString("yyyyMMdd-HHmmss");
     QString savePath = QFileDialog::getSaveFileName(nullptr,"淇濆瓨鏂囦欢",QDir::currentPath()+QString("/缁煎悎琛╛%1_%2.xls").arg(name).arg(dt),"Excel File(*.xls;*.xlsx)");
diff --git a/internal_system_v1/searchinfo.cpp b/internal_system_v1/searchinfo.cpp
index 4f25da6..7e42287 100644
--- a/internal_system_v1/searchinfo.cpp
+++ b/internal_system_v1/searchinfo.cpp
@@ -190,8 +190,8 @@
             _030257     TEXT,\
             _030258     TEXT,\
             _030260     TEXT,\
-            _030300     TEXT,\
-            _030301     TEXT,\
+_030300     TEXT,\
+_030301     TEXT,\
             _030302     TEXT,\
             _030303     TEXT,\
             _030304     TEXT,\
diff --git a/internal_system_v1/threemergeproblemlist.cpp b/internal_system_v1/threemergeproblemlist.cpp
index 406cf6a..7a94827 100644
--- a/internal_system_v1/threemergeproblemlist.cpp
+++ b/internal_system_v1/threemergeproblemlist.cpp
@@ -122,17 +122,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'"
-                      ",瀹¤鏈熼棿宸叉暣鏀�='%16',鏁存敼閲戦='%17',鏁存敼鎯呭喌1='%18',鏁存敼鎯呭喌浣愯瘉璧勬枡1='%19',鏁存敼缁撴灉='%20',鏁存敼瀹屾垚鏃堕棿='%21',灏氭湭鏁存敼鍒颁綅鐨勫師鍥�='%22',鏁存敼棰勮瀹屾垚鏃堕棿='%23'"
+                      ",瀹¤椤圭洰='%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'"
-                      ",鏁存敼鎴愭灉_鏁伴噺=%43, where id=%44").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())
+                      ",鏁存敼鎴愭灉_鏁伴噺=%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()).arg(ui->tableWidget->item(row,13+2)->text()).arg(ui->tableWidget->item(row,14+2)->text()).arg(ui->tableWidget->item(row,15+2)->text()).arg(ui->tableWidget->item(row,16+2)->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()).arg(ui->tableWidget->item(row,26+2)->text()).arg(ui->tableWidget->item(row,27+2)->text()).arg(ui->tableWidget->item(row,28+2)->text()).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,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()).arg(ui->tableWidget->item(row,37+5+2)->text()).arg(ui->tableWidget->item(row,38+5+2)->text()).arg(ui->tableWidget->item(row,0)->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){
@@ -153,14 +153,14 @@
                       ",瀹¤鏈熼棿宸叉暣鏀�,鏁存敼閲戦,鏁存敼鎯呭喌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'"
+                      ",鏁存敼鎴愭灉_鏁伴噺,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()).arg(ui->tableWidget->item(row,13+2)->text()).arg(ui->tableWidget->item(row,14+2)->text()).arg(ui->tableWidget->item(row,15+2)->text()).arg(ui->tableWidget->item(row,16+2)->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()).arg(ui->tableWidget->item(row,26+2)->text()).arg(ui->tableWidget->item(row,27+2)->text()).arg(ui->tableWidget->item(row,28+2)->text()).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,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()).arg(ui->tableWidget->item(row,37+5+2)->text()).arg(ui->tableWidget->item(row,38+5+2)->text()).arg(QDateTime::currentDateTime().toString("yyyy/MM/dd HH:mm:ss"));
+                .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){
@@ -346,6 +346,8 @@
     typeLabels<<"鍏朵腑锛氬厷绾鍒�"<<"鏀垮姟澶勫垎"<<"鍐呴儴绾緥澶勫垎"<<"鏃犲鍒�";
     m_cbb_type = new ComboBoxDelegate(typeLabels,this);
     ui->tableWidget->setItemDelegateForColumn(26,m_cbb_type);
+
+
 
         // 妫�鏌ョ粨鏋�
     QStringList checkResLabels;
@@ -993,8 +995,8 @@
 
         }
     }
-    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()
@@ -1155,6 +1157,14 @@
 
     // 鑾峰彇琛ㄦ牸鏁版嵁锛屾坊鍔犲埌淇℃伅涓�
     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();
         // 鍙戠幇闂
@@ -1231,3 +1241,87 @@
     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澶辫触 瀹¤鍙戠幇闂鏁存敼锛堥噾棰濈被锛�";
+        }
+    }
+}
diff --git a/internal_system_v1/threemergeproblemlist.h b/internal_system_v1/threemergeproblemlist.h
index 6b60c14..acd0557 100644
--- a/internal_system_v1/threemergeproblemlist.h
+++ b/internal_system_v1/threemergeproblemlist.h
@@ -89,6 +89,8 @@
 
     void on_pushButton_save_export_clicked();
 
+    void on_tableWidget_cellChanged(int row, int column);
+
 private:
     Ui::ThreeMergeProblemList *ui;
     QMenu *m_menu; // 闂娓呭崟鑿滃崟

--
Gitblit v1.8.0