From 3155bf43ed7cd48b48878e5b8bc5520d73ede601 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Wed, 22 Jan 2025 17:32:06 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B8=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=B0=D0=BD=D0=B0=20=D1=82=D0=B0=D0=B1=D0=BB?= =?UTF-8?q?=D0=B8=D1=86=D0=B0=20=D0=91=D0=94=20tasks=5Famm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DataBaseLMS/databaselms.cpp | 23 +++++++++++++++++++++ DataBaseLMS/databaselms.h | 5 +++++ DataBaseLMS/interfacedatabaselms.cpp | 15 ++++++++++++++ DataBaseLMS/interfacedatabaselms.h | 4 ++++ DataBaseLMS/tasksAmmFim.h | 4 ++++ ServerLMS/Systems/Parsers/processparser.cpp | 17 +++++++++++++++ ServerLMS/Systems/processingsystem.cpp | 13 ++++++++++++ ServerLMS/providerdblms.cpp | 15 ++++++++++++++ ServerLMS/providerdblms.h | 5 +++++ 9 files changed, 101 insertions(+) diff --git a/DataBaseLMS/databaselms.cpp b/DataBaseLMS/databaselms.cpp index 668b07e..4fc22c1 100644 --- a/DataBaseLMS/databaselms.cpp +++ b/DataBaseLMS/databaselms.cpp @@ -447,6 +447,27 @@ int DataBaseLMS::updateGroup(Group group) return queryExecInt(queryStr); } +int DataBaseLMS::insertTaskAMM(int id_trainee) +{ + QString queryStr = QString("INSERT INTO public.tasks_amm (name, trainee_task) " + "VALUES (DEFAULT, %1) " + "RETURNING tasks_amm.task_id").arg( + QString::number(id_trainee)); + + return queryExecInt(queryStr); +} + +int DataBaseLMS::updateTaskAMM(TaskAmmFim task) +{ + QString queryStr = QString("UPDATE public.tasks_amm SET name = '%1' " + "WHERE task_id = %2 " + "RETURNING tasks_amm.task_id").arg( + task.ammProcedure.dmCode, + QString::number(task.getID()) ); + + return queryExecInt(queryStr); +} + Trainee DataBaseLMS::selectTrainee(int id_trainee) { Trainee trainee; @@ -735,6 +756,7 @@ QList DataBaseLMS::selectTasksOfTrainee(int trainee_id) { QList tasks; + /* QString queryStr = QString("SELECT tasks.task_id, tasks.name " "FROM public.trainees " "JOIN public.trainees_tasks ON trainees_tasks.trainee_id = trainees.trainee_id " @@ -755,6 +777,7 @@ QList DataBaseLMS::selectTasksOfTrainee(int trainee_id) tasks.append(task); } } + */ return tasks; } diff --git a/DataBaseLMS/databaselms.h b/DataBaseLMS/databaselms.h index 98240df..6d73f30 100644 --- a/DataBaseLMS/databaselms.h +++ b/DataBaseLMS/databaselms.h @@ -7,6 +7,7 @@ #include "instructor.h" #include "trainee.h" #include "group.h" +#include "tasksAmmFim.h" class DataBaseLMS { @@ -52,6 +53,10 @@ protected: int deleteGroup(int group_id); int updateGroup(Group group); + //Задача + int insertTaskAMM(int id_trainee); + int updateTaskAMM(TaskAmmFim task); + //Обучаемый Trainee selectTrainee(int id_trainee); QList selectAllTraineesInGroup(int id_group); diff --git a/DataBaseLMS/interfacedatabaselms.cpp b/DataBaseLMS/interfacedatabaselms.cpp index 0767ce2..b02f468 100644 --- a/DataBaseLMS/interfacedatabaselms.cpp +++ b/DataBaseLMS/interfacedatabaselms.cpp @@ -281,6 +281,21 @@ int InterfaceDataBaseLMS::editGroup(Group group) return updateGroup(group); } +int InterfaceDataBaseLMS::newTaskAMM(int id_trainee) +{ + return insertTaskAMM(id_trainee); +} + +int InterfaceDataBaseLMS::delTaskAMM(int id) +{ + return 0; +} + +int InterfaceDataBaseLMS::editTaskAMM(TaskAmmFim task) +{ + return updateTaskAMM(task); +} + int InterfaceDataBaseLMS::newTrainee(int id_group) { return insertTrainee(id_group); diff --git a/DataBaseLMS/interfacedatabaselms.h b/DataBaseLMS/interfacedatabaselms.h index dd08015..0744b3e 100644 --- a/DataBaseLMS/interfacedatabaselms.h +++ b/DataBaseLMS/interfacedatabaselms.h @@ -69,6 +69,10 @@ public: int delGroup(int id); int editGroup(Group group); + int newTaskAMM(int id_trainee); + int delTaskAMM(int id); + int editTaskAMM(TaskAmmFim task); + int newTrainee(int id_group); int delTrainee(int id); int editTrainee(Trainee trainee); diff --git a/DataBaseLMS/tasksAmmFim.h b/DataBaseLMS/tasksAmmFim.h index 3f278d3..aadeeb8 100644 --- a/DataBaseLMS/tasksAmmFim.h +++ b/DataBaseLMS/tasksAmmFim.h @@ -72,6 +72,10 @@ public: public: void initialize(int id, QString type, QString title, QString status, QString created_date, QString changed_date); void addMalfunction(Malfunction malfunction); + +public: + void setID(int id){this->id = id;}; + int getID(){return id;}; public: int id; // для идентификации в БД diff --git a/ServerLMS/Systems/Parsers/processparser.cpp b/ServerLMS/Systems/Parsers/processparser.cpp index 49a3d24..083ea51 100644 --- a/ServerLMS/Systems/Parsers/processparser.cpp +++ b/ServerLMS/Systems/Parsers/processparser.cpp @@ -1,4 +1,5 @@ #include "processparser.h" +#include "tasksAmmFim.h" ProcessParser::ProcessParser(QObject *parent) : QObject(parent) { @@ -139,6 +140,7 @@ void ProcessParser::queryToDb(QXmlStreamReader &xmlReader,ClientHandler *client) Instructor instructor; Trainee trainee; Group group; + TaskAmmFim task; void* data = nullptr; /*Перебираем все атрибуты тега*/ @@ -205,6 +207,17 @@ void ProcessParser::queryToDb(QXmlStreamReader &xmlReader,ClientHandler *client) else if(name == "name") group.setName(value); break; + + case TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_AMM_TO_TRAINEE: + if(name == "title") + task.ammProcedure.title = value; + else if(name == "dmCode") + task.ammProcedure.dmCode = value; + break; + case TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_FIM_TO_TRAINEE: + if(name == "title") + task.title = value; + break; }; } } @@ -223,6 +236,10 @@ void ProcessParser::queryToDb(QXmlStreamReader &xmlReader,ClientHandler *client) case TypeQueryToDB::TYPE_QUERY_EDIT_GROUP: data = &group; break; + case TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_AMM_TO_TRAINEE: + case TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_FIM_TO_TRAINEE: + data = &task; + break; }; processingSystem->processingClientQueryToDB(client, queryToDB, id, data); diff --git a/ServerLMS/Systems/processingsystem.cpp b/ServerLMS/Systems/processingsystem.cpp index 5a6a737..7312f02 100644 --- a/ServerLMS/Systems/processingsystem.cpp +++ b/ServerLMS/Systems/processingsystem.cpp @@ -226,6 +226,19 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu emit sigAuthChanged(); break; } + + case TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_AMM_TO_TRAINEE: + { + int id_new; + id_new = providerDBLMS->newTaskAMM(id); + if(id_new) + { + (*(TaskAmmFim*)data).setID(id_new); + providerDBLMS->editTaskAMM(*(TaskAmmFim*)data); + } + //emit sigTasksChanged(); + break; + } } //client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_DB_LIST_INSTRUCTORS); diff --git a/ServerLMS/providerdblms.cpp b/ServerLMS/providerdblms.cpp index baca6c3..cadfb13 100644 --- a/ServerLMS/providerdblms.cpp +++ b/ServerLMS/providerdblms.cpp @@ -299,3 +299,18 @@ int ProviderDBLMS::editGroup(Group group) { return dbLMS->editGroup(group); } + +int ProviderDBLMS::newTaskAMM(int id_trainee) +{ + return dbLMS->newTaskAMM(id_trainee); +} + +int ProviderDBLMS::delTaskAMM(int id) +{ + return 0; +} + +int ProviderDBLMS::editTaskAMM(TaskAmmFim task) +{ + return dbLMS->editTaskAMM(task); +} diff --git a/ServerLMS/providerdblms.h b/ServerLMS/providerdblms.h index 06fcc75..bf53901 100644 --- a/ServerLMS/providerdblms.h +++ b/ServerLMS/providerdblms.h @@ -4,6 +4,7 @@ #include #include #include "interfacedatabaselms.h" +#include "tasksAmmFim.h" class ProviderDBLMS : public QObject { @@ -41,6 +42,10 @@ public: int delGroup(int id); int editGroup(Group group); + int newTaskAMM(int id_trainee); + int delTaskAMM(int id); + int editTaskAMM(TaskAmmFim task); + Q_SIGNALS: //сигнал о блокировке авторизации void signal_BlockAutorization(bool block);