Передача назначенных задач из сервера в ГУИ

This commit is contained in:
krivoshein
2025-01-28 13:19:33 +03:00
parent eebe56dd6c
commit c7c665bebd
26 changed files with 236 additions and 11 deletions

View File

@@ -28,6 +28,9 @@ enum PacketType
TYPE_XMLANSWER_QUERY_DB__LIST_CLASSROOMS = 104,
TYPE_XMLANSWER_QUERY_DB__LIST_TASKS = 105,
TYPE_XMLANSWER_QUERY_TASKS_AMM_FOR_TRAINEE = 106,
TYPE_XMLANSWER_QUERY_TASKS_FIM_FOR_TRAINEE = 107,
//xml-ответы на запросы AdditionalFiles
TYPE_XMLANSWER_QUERY_TASKS_XML_FIM = 130,
TYPE_XMLANSWER_QUERY_TASKS_XML_AMM = 131,

View File

@@ -107,3 +107,27 @@ QByteArray DBAnswerParser::listTasks(bool result, QList<Task> *listTasks)
//TODO
return QByteArray();
}
QByteArray DBAnswerParser::listTasksAMMofTrainee(bool result, QList<TaskAmmFim> *listTasks, int trainee_id)
{
QDomDocument commonDOM;
if(! dataParser->loadBlankXML(":/resources/blankXML/ListTasksAMM.xml", &commonDOM))
return QByteArray();
QDomNode listNode = commonDOM.namedItem("ListTasksAMM");
listNode.toElement().setAttribute("trainee_id", QString::number(trainee_id));
for(TaskAmmFim task : *listTasks)
{
//Задача
QDomNode taskNode = commonDOM.createElement("taskAMM");
listNode.appendChild(taskNode);
taskNode.toElement().setAttribute("task_id", QString::number(task.getID()));
taskNode.toElement().setAttribute("title", task.ammProcedure.title);
taskNode.toElement().setAttribute("dmCode", task.ammProcedure.dmCode);
}
dataParser->saveDOMtoXML("ListTasksAMM.xml", &commonDOM);
return commonDOM.toByteArray();
}

View File

@@ -19,6 +19,8 @@ public:
QByteArray listComputers(bool result, QList<Computer> *listComputers);
QByteArray listClassrooms(bool result, QList<Classroom> *listClassrooms);
QByteArray listTasks(bool result, QList<Task> *listTasks);
QByteArray listTasksAMMofTrainee(bool result, QList<TaskAmmFim> *listTasks, int trainee_id);
signals:
private:

View File

@@ -238,6 +238,15 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu
providerDBLMS->editTaskAMM(*(TaskAmmFim*)data);
}
//emit sigTasksChanged();
//break;
}
case TypeQueryToDB::TYPE_QUERY_GET_TASKS_AMM_FOR_TRAINEE:
{
QList<TaskAmmFim> listTasks = providerDBLMS->GetListTasksAMMofTrainee(id);
arrayAnswer = dataParser->DbAnswer()->listTasksAMMofTrainee(true, &listTasks, id);
client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_TASKS_AMM_FOR_TRAINEE);
break;
}
@@ -251,6 +260,11 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu
providerDBLMS->editTaskFIM(*(TaskAmmFim*)data);
}
//emit sigTasksChanged();
//break;
}
case TypeQueryToDB::TYPE_QUERY_GET_TASKS_FIM_FOR_TRAINEE:
{
break;
}
}

View File

@@ -329,3 +329,21 @@ int ProviderDBLMS::editTaskFIM(TaskAmmFim task)
{
return dbLMS->editTaskFIM(task);
}
QList<TaskAmmFim> ProviderDBLMS::GetListTasksAMMofTrainee(int id_trainee)
{
QList<TaskAmmFim> listTasks;
mtxAccess.lock();
if(! dbLMS->DBisConnected())
{
mtxAccess.unlock();
return listTasks;
}
listTasks = dbLMS->getListTasksAMMofTrainee(id_trainee);
mtxAccess.unlock();
return listTasks;
}

View File

@@ -50,6 +50,8 @@ public:
int delTaskFIM(int id);
int editTaskFIM(TaskAmmFim task);
QList<TaskAmmFim> GetListTasksAMMofTrainee(int id_trainee);
Q_SIGNALS:
//сигнал о блокировке авторизации
void signal_BlockAutorization(bool block);

View File

@@ -5,5 +5,6 @@
<file>resources/blankXML/ListTrainees.xml</file>
<file>resources/icons/switchOff.png</file>
<file>resources/icons/switchOn.png</file>
<file>resources/blankXML/ListTasksAMM.xml</file>
</qresource>
</RCC>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<ListTasksAMM>
</ListTasksAMM>