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/converinfo2.cpp |  114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 108 insertions(+), 6 deletions(-)

diff --git a/internal_system_v1/converinfo2.cpp b/internal_system_v1/converinfo2.cpp
index 6344e08..b9e8c48 100644
--- a/internal_system_v1/converinfo2.cpp
+++ b/internal_system_v1/converinfo2.cpp
@@ -100,9 +100,66 @@
 {
     if(m_curItem==nullptr)return;
     qDebug()<<"鍒犻櫎鍏徃淇℃伅,鑺傜偣锛�"<<m_curItem->text(0);
-    auto resList = m_curItem->takeChildren();
+    //auto resList = m_curItem->takeChildren();
 
-    qDebug()<<"鍒犻櫎鏁伴噺:"<<resList.size();
+    //qDebug()<<"鍒犻櫎鏁伴噺:"<<resList.size();
+
+    // 鍒犻櫎鏁版嵁搴撹〃閲岄潰瀵瑰簲鐨勫叕鍙镐俊鎭紝骞朵笖鍐嶆鍒锋柊涓嬫媺妗嗗拰鏍戠姸鍥�
+
+        // 鏁版嵁搴撹〃鏈夛細灏侀潰淇℃伅琛� all_company_info      缁煎悎淇℃伅琛� comprehensive_entry_info    涓夊悎涓�鐨勮〃 standing_book_info
+    QString name = m_curItem->text(0);
+    QStringList sp = name.split("(鏈骇)");
+    QStringList sp2 = name.split("涓嬬骇鏁�");
+    qDebug()<<"鎷嗗紑:"<<sp<<"姹囨��:"<<sp2;
+    if(sp.size() == 2){
+        name = sp.at(0);
+    }
+    if(sp2.size() == 2){ // 寰楅�掑綊鍒犻櫎搴曚笅鐨勬墍鏈夊崟浣�
+        name = sp2.at(0);
+    }
+    // 鍒犻櫎鎵�鏈夎〃涓繖涓悕瀛�
+    deleteAllByName(name);
+
+    // 鍒犻櫎瀹屼簡锛岃繕寰楀幓鍒锋柊涓嬫媺妗�
+    for(auto it=m_nameAndComInfos.begin();it!=m_nameAndComInfos.end();){
+        if(it.key() == name){
+            m_nameAndComInfos.erase(it++);
+            break;
+        }else{
+            it++;
+        }
+    }
+
+
+    // 鍘诲埛鏂版爲褰㈠浘
+    for(auto it=m_treeNodes.begin();it!=m_treeNodes.end();){
+        // 濡傛灉绛変簬閿紝閭d箞瑕佸垹闄ゅ搴旂殑鎵�鏈夌殑鍊�
+        if(it.key() == name){
+            // 鎶婃墍鏈夌殑鍊煎搴旂殑鍗曚綅淇℃伅閮藉垹鎺�
+            for(auto str:it.value()){
+                auto p = m_nameAndComInfos.find(str);
+                if(p != m_nameAndComInfos.end()){
+                    deleteAllByName(str); // 杩樺緱鍐嶅垹鎺夋暟鎹簱涓殑鍐呭
+                    m_nameAndComInfos.erase(p);
+                }
+            }
+            m_treeNodes.erase(it++);
+            break;
+        }
+        // 鍙槸鏌愪釜鍊硷紝鍙垹闄や竴涓嵆鍙�,閬嶅巻鍊奸噷闈㈢殑杩唬鍣紝鎵惧埌鍒犻櫎鍗冲彲
+        else{
+            auto p = it.value().find(name);
+            if(p != it.value().end()){
+                it.value().erase(p);
+            }
+            it++;
+        }
+    }
+
+    emit updateComboListSignal(m_nameAndComInfos);
+    createTreeNode();
+
+
 }
 
 void ConverInfo2::saveInfo()
@@ -777,11 +834,13 @@
 
                 if(upName.isValid()){
                     if(name.isValid()){
-                        m_treeNodes[upName.toString()].push_back(name.toString());
+                        //m_treeNodes[upName.toString()].push_back(name.toString());
+                        m_treeNodes[upName.toString()].insert(name.toString());
                     }
                 }else{
                     if(name.isValid()){
-                        m_treeNodes[name.toString()].push_back(name.toString());
+                        //m_treeNodes[name.toString()].push_back(name.toString());
+                        m_treeNodes[name.toString()].insert(name.toString());
                     }
                 }
 
@@ -1650,6 +1709,9 @@
 }
 
 void ConverInfo2::createTreeNode(){
+    // 鍏堟竻闄ゅ綋鍓嶆爲涓婄殑鎵�鏈夎妭鐐�
+    ui->treeWidget->clear();
+
     qDebug()<<"鏋勫缓鏍戝舰鍒楄〃"<<m_treeNodes.size();
     for(auto iter=m_treeNodes.begin();iter != m_treeNodes.end();iter++)
     {
@@ -1916,9 +1978,15 @@
             // 瀛樺悕瀛楀埌鍗曚綅鏍憁ap
             QString upName = query.value(21).toString();
             if(!upName.isEmpty()){
-                m_treeNodes[upName].push_back(name);
+                //m_treeNodes[upName].push_back(name);
+                m_treeNodes[upName].insert(name);
             }else{
-                m_treeNodes[name].push_back(name);
+                //m_treeNodes[name].push_back(name);
+                //m_treeNodes[upName].insert(name);
+                if(!name.isEmpty()){
+                    //m_treeNodes[name.toString()].push_back(name.toString());
+                    m_treeNodes[name].insert(name);
+                }
             }
             qDebug()<<"name"<<name<<"upName"<<upName;
 
@@ -1926,6 +1994,40 @@
         qDebug()<<"rowCnt:"<<rowCnt;
     }
 }
+
+void ConverInfo2::deleteAllByName(QString name)
+{
+    // 鏁版嵁搴撹〃鏈夛細灏侀潰淇℃伅琛� all_company_info
+    // 缁煎悎淇℃伅琛� comprehensive_entry_info
+    // 涓夊悎涓�鐨勮〃 standing_book_info
+
+    QString first_sql = QString("delete from all_company_info where name='%1'").arg(name);
+    qDebug()<<"first_sql:"<<first_sql;
+
+    QString second_sql = QString("delete from comprehensive_entry_info where name='%1'").arg(name);
+    qDebug()<<"second_sql:"<<second_sql;
+
+    QString three_sql = QString("delete from standing_book_info where 璐d换涓讳綋鍚嶇О='%1'").arg(name);
+    qDebug()<<"three_sql:"<<three_sql;
+
+
+    QSqlQuery query;
+    if(query.exec(first_sql))
+    {
+        qDebug()<<"first_sql run ok";
+    }
+    if(query.exec(second_sql))
+    {
+        qDebug()<<"second_sql run ok";
+    }
+    if(query.exec(three_sql))
+    {
+        qDebug()<<"three_sql run ok";
+    }
+
+
+
+}
 void ConverInfo2::addTreeWidgetNode(QVariant upName,QVariant name){
     // 娣诲姞宸﹁竟鏍戝舰鍥剧浉鍏�
     // 鑿滃崟鐩稿叧  褰撲笂绾у叕鍙镐负绌轰笂绾ф椂锛岃嚜宸卞綋鑷繁鐨勪笂绾э紝骞朵笖缃楀垪杩涘幓褰� 鏈骇

--
Gitblit v1.8.0