Browse Source

删除专家配置的同时删除专家数据, 并更新页面

chengxr 1 year ago
parent
commit
dc7a7dec69

+ 14 - 0
QFD/dbService/NodeMatrixService.cpp

@@ -655,6 +655,20 @@ bool NodeMatrixService::deleteMeasureData(int projId, QString index, QString uui
     return ret;
 }
 
+bool NodeMatrixService::deleteExpertData(int projId, int expertId)
+{
+    bool ret = false;
+    try {
+        Transaction t(SqlDBHelper::getDatabase());
+        t.deleteFrom("t_node_matrix_info").where("engineer_id = ? and expert_id = ?", projId, expertId);
+        t.commit();
+        ret = true;
+    } catch (const DBException &ex) {
+        qDebug() << ex.lastError.text();
+    }
+    return ret;
+}
+
 bool NodeMatrixService::hasMeasureData(int projId, QString index)
 {
     QSqlDatabase db = SqlDBHelper::getDatabase();

+ 2 - 0
QFD/dbService/NodeMatrixService.h

@@ -74,6 +74,8 @@ public:
     /*删除实测数据*/
     bool deleteMeasureData(int projId, QString index, QString uuid);
 
+    bool deleteExpertData(int projId, int expertId);
+
     /*查询是否已录入数据*/
     bool hasMeasureData(int projId, QString index);
     bool hasExpertData(int projId, QString index, int expertId);

+ 12 - 2
QFD/widgets/ConfigExpertDataWidget.cpp

@@ -200,6 +200,9 @@ void ConfigExpertDataWidget::loadNodeData()
 
 void ConfigExpertDataWidget::selectFirstImported()
 {
+    if (m_configList.size() <= 0) {
+        return;
+    }
     int index = 0;
     for (int i = 0; i < m_configList.count(); i++) {
         UserConfig *config = m_configList[i];
@@ -337,8 +340,15 @@ void ConfigExpertDataWidget::slotAddUser(QFUser *user)
 void ConfigExpertDataWidget::slotRemoveConfig(UserConfig *config)
 {
     qDebug() << __FUNCTION__ << __LINE__ << config->userName << endl;
-    UserConfigService().DeleteUserConfigById(config->id);
-    loadData();
+    bool ret = UserConfigService().DeleteUserConfigById(config->id);
+    if (ret) {
+        ret = NodeMatrixService().deleteExpertData(config->engineerId, config->userId);
+
+        if (ret) {
+            loadData();
+            selectFirstImported();
+        }
+    }
 }
 
 void ConfigExpertDataWidget::slotImportData(UserConfig *config)