Browse Source

'添加方案流程'

zsf 1 year ago
parent
commit
d8b10d6758

+ 4 - 2
QFD/common/SchemePlanManager.h

@@ -98,8 +98,10 @@ public:
         /// 效能分级, 选择灰色聚类算法计算效能评估时用到
         int efficiencyGrades = 0;
 
-        bool isOptional;  // 是否可选
-        bool isChecked;   // 选中状态
+        bool isOptional;     // 是否可选
+        bool isChecked;      // 选中状态
+        QString createTime;  //创建时间
+        QString updateTime;  //更新时间
     };
 
     explicit SchemePlanManager(QObject *parent = nullptr);

+ 105 - 0
QFD/dbService/SchemeProcessService.cpp

@@ -0,0 +1,105 @@
+#include "SchemeProcessService.h"
+#include "SqlDBHelper.h"
+#include <QDebug>
+
+SchemeProcessService::SchemeProcessService(QObject *parent) { }
+
+int SchemeProcessService::AddSchemeProcess(const SchemePlanManager::SchemeProcessInfo &schemeProcessInfo)
+{
+    int ret = -1;
+    try {
+        Transaction t(SqlDBHelper::getDatabase());
+        InsertQuery query = t.insertInto(
+                "t_scheme_process_info(`project_id`, `index_type`, `step`, `type`, `name`, "
+                "`data_source`, `algorithm`,`efficiency_grades`, `is_optional`,`is_checked`, `create_time`)");
+
+        NonQueryResult result =
+                query.values(schemeProcessInfo.projectId, schemeProcessInfo.indexType, schemeProcessInfo.step,
+                             schemeProcessInfo.type, schemeProcessInfo.name, schemeProcessInfo.dSource,
+                             schemeProcessInfo.algorithm, schemeProcessInfo.efficiencyGrades,
+                             schemeProcessInfo.isChecked, schemeProcessInfo.isOptional,
+                             QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"))
+                        .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;
+    try {
+        Transaction t(SqlDBHelper::getDatabase());
+        t.update("t_scheme_process_info")
+                .set("project_id", schemeProcessInfo.projectId)
+                .set("index_type", schemeProcessInfo.indexType)
+                .set("step", schemeProcessInfo.step)
+                .set("type", schemeProcessInfo.type)
+                .set("name", schemeProcessInfo.name)
+                .set("data_source", schemeProcessInfo.dSource)
+                .set("algorithm", schemeProcessInfo.algorithm)
+                .set("efficiency_grades", schemeProcessInfo.efficiencyGrades)
+                .set("is_optional", schemeProcessInfo.isOptional)
+                .set("is_checked", schemeProcessInfo.isChecked)
+                .set("update_time", QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"))
+                .where("id = ?", schemeProcessInfo.id);
+        t.commit();
+        ret = true;
+    } catch (const DBException &ex) {
+        qDebug() << ex.lastError.text();
+    }
+    return ret;
+}
+
+bool SchemeProcessService::QueryAllByProjectIdAndIndexType(
+        QList<SchemePlanManager::SchemeProcessInfo *> *schemeProcessInfo)
+{
+    QSqlDatabase db = SqlDBHelper::getDatabase();
+    QSqlQuery query(db);
+    bool ret          = false;
+    QString selectSql = QString("SELECT `id`, `project_id`, `index_type`, `step`, `type`, `name`, `data_source`, "
+                                "`algorithm`, `efficiency_grades`, `is_optional`, `is_checked` FROM "
+                                "t_scheme_process_info order by create_time desc");
+    if (query.exec(selectSql)) {
+        while (query.next()) {
+            if (query.isNull(0) == false) {
+                SchemePlanManager::SchemeProcessInfo *info = new SchemePlanManager::SchemeProcessInfo();
+                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->name             = query.value(5).toString();
+                info->dSource          = (SchemePlanManager::SchemeDataSource)query.value(6).toInt();
+                info->algorithm        = (SchemePlanManager::Algorithm)query.value(7).toInt();
+                info->efficiencyGrades = query.value(8).toInt();
+                info->isOptional       = query.value(9).toInt();
+                info->isChecked        = query.value(10).toInt();
+                schemeProcessInfo->append(info);
+            }
+        }
+        ret = true;
+    } else {
+        qDebug() << query.lastError();
+    }
+    return ret;
+}
+
+bool SchemeProcessService::DeleteById(int id)
+{
+    bool ret = false;
+    try {
+        qDebug() << __FUNCTION__ << __LINE__
+                 << SqlDBHelper::getDatabase().driver()->hasFeature(QSqlDriver::Transactions) << endl;
+        Transaction t(SqlDBHelper::getDatabase());
+        t.deleteFrom("t_scheme_process_info").where("id = ?", id);
+        t.commit();
+        ret = true;
+    } catch (const DBException &ex) {
+        qDebug() << ex.lastError.text();
+    }
+    return ret;
+}

+ 22 - 0
QFD/dbService/SchemeProcessService.h

@@ -0,0 +1,22 @@
+#ifndef SCHEMEPROCESSSERVICE_H
+#define SCHEMEPROCESSSERVICE_H
+#include <SchemePlanManager.h>
+
+class SchemeProcessService
+{
+public:
+    SchemeProcessService(QObject *parent = nullptr);
+
+    //添加项目
+    int AddSchemeProcess(const SchemePlanManager::SchemeProcessInfo &schemeProcessInfo);
+    //更新项目
+    bool UpdateSchemeProcess(const SchemePlanManager::SchemeProcessInfo &schemeProcessInfo);
+
+    //查询所有
+    bool QueryAllByProjectIdAndIndexType(QList<SchemePlanManager::SchemeProcessInfo *> *schemeProcessInfo);
+
+    //根据id删除
+    bool DeleteById(int id);
+};
+
+#endif  // SCHEMEPROCESSSERVICE_H

+ 2 - 0
QFD/dbService/dbService.pri

@@ -10,6 +10,7 @@ HEADERS += \
     $$PWD/ProjectMindRelationService.h \
     $$PWD/ProjectService.h \
     $$PWD/ReturnMessage.h \
+    $$PWD/SchemeProcessService.h \
     $$PWD/SqlDBHelper.h \
     $$PWD/UserConfigService.h \
     $$PWD/UserService.h
@@ -26,6 +27,7 @@ SOURCES += \
     $$PWD/ProjectMindRelationService.cpp \
     $$PWD/ProjectService.cpp \
     $$PWD/ReturnMessage.cpp \
+    $$PWD/SchemeProcessService.cpp \
     $$PWD/SqlDBHelper.cpp \
     $$PWD/UserConfigService.cpp \
     $$PWD/UserService.cpp