Bläddra i källkod

'导出流程数据'

zsf 1 år sedan
förälder
incheckning
0261d93547

+ 9 - 9
QFD/dbService/CNodeDataService.cpp

@@ -183,16 +183,16 @@ bool CNodeDataService::DeleteCNodeDataById(int id)
 //根据id删除
 bool CNodeDataService::DeleteAllNodeData()
 {
-    bool ret = false;
-    try {
-        qDebug() << __FUNCTION__ << __LINE__
-                 << SqlDBHelper::getDatabase().driver()->hasFeature(QSqlDriver::Transactions) << endl;
-        Transaction t(SqlDBHelper::getDatabase());
-        t.deleteFrom("t_node_data");
-        t.commit();
+
+    QSqlDatabase db = SqlDBHelper::getDatabase();
+    QSqlQuery query(db);
+    bool ret          = false;
+    QString deleteSql = QString("DELETE FROM t_node_data ");
+    if (query.exec(deleteSql)) {
         ret = true;
-    } catch (const DBException &ex) {
-        qDebug() << ex.lastError.text();
+        qDebug() << "t_node_data deleteSql success!";
+    } else {
+        qDebug() << query.lastError();
     }
     return ret;
 }

+ 9 - 7
QFD/dbService/ProjectService.cpp

@@ -230,14 +230,16 @@ bool ProjectService::DeleteById(int id)
 //根据id删除
 bool ProjectService::DeleteAll()
 {
-    bool ret = false;
-    try {
-        Transaction t(SqlDBHelper::getDatabase());
-        t.deleteFrom("t_project_info");
-        t.commit();
+
+    QSqlDatabase db = SqlDBHelper::getDatabase();
+    QSqlQuery query(db);
+    bool ret          = false;
+    QString deleteSql = QString("DELETE FROM t_project_info ");
+    if (query.exec(deleteSql)) {
         ret = true;
-    } catch (const DBException &ex) {
-        qDebug() << ex.lastError.text();
+        qDebug() << "t_project_info deleteSql success!";
+    } else {
+        qDebug() << query.lastError();
     }
     return ret;
 }

+ 70 - 0
QFD/dbService/SchemeProcessService.cpp

@@ -27,6 +27,28 @@ int SchemeProcessService::AddSchemeProcess(const SchemePlanManager::SchemeProces
     return ret;
 }
 
+int SchemeProcessService::SaveSchemeProcess(const SchemePlanManager::SchemeProcessInfo &schemeProcessInfo)
+{
+    int ret = -1;
+    try {
+        Transaction t(SqlDBHelper::getDatabase());
+        InsertQuery query = t.insertInto("t_scheme_process_info(`id`,`project_id`, `index_type`, `step`, `type`,  "
+                                         "`data_source`, `algorithm`,`efficiency_grades`, `is_checked`)");
+
+        NonQueryResult result =
+                query.values(schemeProcessInfo.id, schemeProcessInfo.projectId, schemeProcessInfo.indexType,
+                             schemeProcessInfo.step, schemeProcessInfo.type, schemeProcessInfo.dSource,
+                             schemeProcessInfo.algorithm, schemeProcessInfo.efficiencyGrades,
+                             schemeProcessInfo.isChecked)
+                        .exec();
+        t.commit();
+        ret = result.lastInsertId().toInt();
+    } catch (const DBException &ex) {
+        qDebug() << ex.lastError.text();
+    }
+    return ret;
+}
+
 bool SchemeProcessService::UpdateSchemeProcess(const SchemePlanManager::SchemeProcessInfo &schemeProcessInfo)
 {
     bool ret = false;
@@ -85,6 +107,39 @@ bool SchemeProcessService::QueryAllByProjectIdAndIndexType(
     return ret;
 }
 
+bool SchemeProcessService::QueryAllByProjectId(QList<SchemePlanManager::SchemeProcessInfo> &schemeProcessInfo,
+                                               int projectId)
+{
+    QSqlDatabase db = SqlDBHelper::getDatabase();
+    QSqlQuery query(db);
+    bool ret          = false;
+    QString selectSql = QString("SELECT `id`, `project_id`, `index_type`, `step`, `type`, `data_source`, "
+                                "`algorithm`, `efficiency_grades`,  `is_checked` FROM "
+                                "t_scheme_process_info where project_id = %1  order by step ")
+                                .arg(projectId);
+    if (query.exec(selectSql)) {
+        while (query.next()) {
+            if (query.isNull(0) == false) {
+                SchemePlanManager::SchemeProcessInfo info;
+                info.id               = query.value(0).toInt();
+                info.projectId        = query.value(1).toInt();
+                info.indexType        = query.value(2).toInt();
+                info.step             = query.value(3).toInt();
+                info.type             = (SchemePlanManager::SchemeProcessType)query.value(4).toInt();
+                info.dSource          = (SchemePlanManager::SchemeDataSource)query.value(5).toInt();
+                info.algorithm        = (SchemePlanManager::Algorithm)query.value(6).toInt();
+                info.efficiencyGrades = query.value(7).toInt();
+                info.isChecked        = query.value(8).toInt();
+                schemeProcessInfo.append(info);
+            }
+        }
+        ret = true;
+    } else {
+        qDebug() << query.lastError();
+    }
+    return ret;
+}
+
 bool SchemeProcessService::DeleteById(int id)
 {
     bool ret = false;
@@ -101,6 +156,21 @@ bool SchemeProcessService::DeleteById(int id)
     return ret;
 }
 
+bool SchemeProcessService::DeleteAll()
+{
+    QSqlDatabase db = SqlDBHelper::getDatabase();
+    QSqlQuery query(db);
+    bool ret          = false;
+    QString deleteSql = QString("DELETE FROM t_scheme_process_info ");
+    if (query.exec(deleteSql)) {
+        ret = true;
+        qDebug() << "deleteSql success!";
+    } else {
+        qDebug() << query.lastError();
+    }
+    return ret;
+}
+
 bool SchemeProcessService::AddAllSchemeProcess(QList<SchemePlanManager::SchemeProcessInfo> &schemeProcessInfos)
 {
     int ret = false;

+ 5 - 0
QFD/dbService/SchemeProcessService.h

@@ -9,6 +9,7 @@ public:
 
     //添加项目
     int AddSchemeProcess(const SchemePlanManager::SchemeProcessInfo &schemeProcessInfo);
+    int SaveSchemeProcess(const SchemePlanManager::SchemeProcessInfo &schemeProcessInfo);
     //更新项目
     bool UpdateSchemeProcess(const SchemePlanManager::SchemeProcessInfo &schemeProcessInfo);
 
@@ -16,8 +17,12 @@ public:
     bool QueryAllByProjectIdAndIndexType(QList<SchemePlanManager::SchemeProcessInfo> &schemeProcessInfo, int projectId,
                                          int indexType);
 
+    //查询所有
+    bool QueryAllByProjectId(QList<SchemePlanManager::SchemeProcessInfo> &schemeProcessInfo, int projectId);
+
     //根据id删除
     bool DeleteById(int id);
+    bool DeleteAll();
 
     //批量添加
     bool AddAllSchemeProcess(QList<SchemePlanManager::SchemeProcessInfo> &schemeProcessInfo);

+ 32 - 3
QFD/helper/ImportDataUtil.cpp

@@ -5,6 +5,8 @@
 #include "dbService/ProjectService.h"
 #include "dbService/CNodeDataService.h"
 #include "dbService/UserService.h"
+#include "SchemePlanManager.h"
+#include "dbService/SchemeProcessService.h"
 #include "CNode.h"
 
 ImportDataUtil::ImportDataUtil() { }
@@ -16,13 +18,16 @@ bool ImportDataUtil::importSystemData()
         // TODO 解析exportData数据
         QSettings exportData("exportData.ini", QSettings::IniFormat);
         exportData.setIniCodec("UTF-8");
-        QString projectInfo = exportData.value("EXPORTDATA/projectInfo", "").toString();
-        QString nodeDate    = exportData.value("EXPORTDATA/nodeDate", "").toString();
-        QString userInfo    = exportData.value("EXPORTDATA/userInfo", "").toString();
+        QString projectInfo   = exportData.value("EXPORTDATA/projectInfo", "").toString();
+        QString nodeDate      = exportData.value("EXPORTDATA/nodeDate", "").toString();
+        QString userInfo      = exportData.value("EXPORTDATA/userInfo", "").toString();
+        QString schemeProcess = exportData.value("EXPORTDATA/schemeProcess", "").toString();
         //清除表相关数据
         ProjectService().DeleteAll();
         CNodeDataService().DeleteAllNodeData();
         UserService().DeleteAllUser();
+        SchemeProcessService().DeleteAll();
+
         //插入工程
         QStringList proList = projectInfo.split(",");
         ProjectInfo proj;
@@ -79,6 +84,30 @@ bool ImportDataUtil::importSystemData()
                 qDebug() << "-------------retUser=" << retuser;
             }
         }
+
+        qDebug() << "-------------保存流程信息开始";
+        //保存流程信息
+        QStringList schemeProcessList = schemeProcess.split(";");
+        for (int i = 0; i < schemeProcessList.size(); i++) {
+            qDebug() << "-------------保存流程信息开始";
+            QStringList schemeList = schemeProcessList[i].split(",");
+            if (schemeList.size() > 1) {
+                SchemePlanManager::SchemeProcessInfo info;
+                info.id               = schemeList[0].toInt();
+                info.projectId        = schemeList[1].toInt();
+                info.indexType        = schemeList[2].toInt();
+                info.step             = schemeList[3].toInt();
+                info.type             = static_cast<SchemePlanManager::SchemeProcessType>(schemeList[4].toInt());
+                info.dSource          = static_cast<SchemePlanManager::SchemeDataSource>(schemeList[5].toInt());
+                info.algorithm        = static_cast<SchemePlanManager::Algorithm>(schemeList[6].toInt());
+                info.efficiencyGrades = schemeList[7].toInt();
+                QVariant tempValue    = schemeList[8];
+                info.isChecked        = tempValue.toBool();
+
+                int retscheme = SchemeProcessService().SaveSchemeProcess(info);
+                qDebug() << "-------------retscheme=" << retscheme;
+            }
+        }
         ret = true;
     } catch (const std::exception &e) {
         // 捕获到std::exception类型的异常

+ 35 - 3
QFD/view/HomeView.cpp

@@ -24,6 +24,8 @@
 #include "dbService/CNodeDataService.h"
 #include "dbService/UserService.h"
 #include "dbService/ClassSet.h"
+#include "SchemePlanManager.h"
+#include "dbService/SchemeProcessService.h"
 
 HomeView::HomeView(QWidget *parent) : QWidget(parent) { }
 
@@ -242,9 +244,10 @@ void HomeView::slotExportProject(ProjectInfo *proj)
     QSettings exportData("exportData.ini", QSettings::IniFormat);
     exportData.setIniCodec("UTF-8");
     //获取到需要导出数据
-    QString projectInfo = "";
-    QString nodeDate    = "";
-    QString userInfo    = "";
+    QString projectInfo   = "";
+    QString nodeDate      = "";
+    QString userInfo      = "";
+    QString schemeProcess = "";
     projectInfo.append(QString::number(proj->id))
             .append(",")
             .append(proj->projectName)
@@ -325,9 +328,38 @@ void HomeView::slotExportProject(ProjectInfo *proj)
         }
     }
 
+    // schemeProcess
+    QList<SchemePlanManager::SchemeProcessInfo> schemeProcessList;
+    bool retScheme = SchemeProcessService().QueryAllByProjectId(schemeProcessList, proj->id);
+    if (retScheme && schemeProcessList.size() > 0) {
+        qDebug() << "---------------------------" << schemeProcessList.size();
+        foreach (SchemePlanManager::SchemeProcessInfo info, schemeProcessList) {
+            QString schemeValue = QString::number(info.id)
+                                          .append(",")
+                                          .append(QString::number(info.projectId))
+                                          .append(",")
+                                          .append(QString::number(info.indexType))
+                                          .append(",")
+                                          .append(QString::number(info.step))
+                                          .append(",")
+                                          .append(QString::number(info.type))
+                                          .append(",")
+                                          .append(QString::number(info.dSource))
+                                          .append(",")
+                                          .append(QString::number(info.algorithm))
+                                          .append(",")
+                                          .append(QString::number(info.efficiencyGrades))
+                                          .append(",")
+                                          .append(QString::number(info.isChecked));
+            // qDebug() << "----" << schemeProcess;
+            schemeProcess.append(schemeValue).append(";");
+        }
+    }
+
     exportData.setValue("EXPORTDATA/projectInfo", projectInfo);
     exportData.setValue("EXPORTDATA/nodeDate", nodeDate);
     exportData.setValue("EXPORTDATA/userInfo", userInfo);
+    exportData.setValue("EXPORTDATA/schemeProcess", schemeProcess);
 
     QString sysDbPath = QCoreApplication::applicationDirPath();
     sysDbPath += "/exportData.ini";