|
@@ -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;
|
|
|
|
+}
|