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

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

@@ -274,6 +274,7 @@ void RecognizeSystem::recognize(QTcpSocket *socket)
case TYPE_XMLANSWER_QUERY_DB__LIST_COMPUTERS:
case TYPE_XMLANSWER_QUERY_DB__LIST_CLASSROOMS:
case TYPE_XMLANSWER_QUERY_DB__LIST_TASKS:
case TYPE_XMLANSWER_QUERY_TASKS_AMM_FOR_TRAINEE:
{
QByteArray array;
stream.startTransaction();
@@ -670,6 +671,29 @@ void RecognizeSystem::xmlParserQueryToDB(PacketType packetType, QByteArray array
emit sigAnswerQueryToDB_ListTasks(listTasks);
}
break;
case TYPE_XMLANSWER_QUERY_TASKS_AMM_FOR_TRAINEE:
{
QList<TaskAmmFim> listTasks;
int trainee_id = 0;
QDomNode listNode = commonDOM.namedItem("ListTasksAMM");
trainee_id = listNode.toElement().attribute("trainee_id").toInt();
for(int i = 0; i < listNode.childNodes().count(); i++)
{
QDomNode taskNode = listNode.childNodes().at(i);
if(taskNode.nodeName() == "taskAMM")
{//Задача
TaskAmmFim task;
task.setID(taskNode.toElement().attribute("task_id").toInt());
task.ammProcedure.title = taskNode.toElement().attribute("title");
task.ammProcedure.dmCode = taskNode.toElement().attribute("dmCode");
listTasks.append(task);
}
}
emit sigAnswerQueryToDB_ListTasksAMMforTrainee(listTasks, trainee_id);
}
break;
};
}

View File

@@ -49,6 +49,7 @@ signals:
void sigAnswerQueryToDB_ListComputers(QList<Computer> listComputers);
void sigAnswerQueryToDB_ListClassrooms(QList<Classroom> listClassrooms);
void sigAnswerQueryToDB_ListTasks(QList<Task> listTasks);
void sigAnswerQueryToDB_ListTasksAMMforTrainee(QList<TaskAmmFim>listTasks, int trainee_id);
void sigAnswerQueryTasksXML_FIM(QByteArray array);
void sigAnswerQueryTasksXML_AMM(QByteArray array);
void sigShowServerDataList(QList<StreamingVersionData*> *versions);

View File

@@ -46,6 +46,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

@@ -148,6 +148,14 @@ QList<Task> ConnectorToServer::getListTasks()
return listTasks;
}
QList<TaskAmmFim> ConnectorToServer::getListTasksAMMforTrainee(int trainee_id)
{
if(mapTasksAMM.contains(trainee_id))
return mapTasksAMM.value(trainee_id);
else
return QList<TaskAmmFim>();
}
bool ConnectorToServer::isArchivedInstructor(int id)
{
for(Instructor instructor : listInstructors)
@@ -313,6 +321,17 @@ void ConnectorToServer::slot_AnswerQueryToDB_ListTasks(QList<Task> listTasks)
//emit signal_UpdateDB(false, true);
}
void ConnectorToServer::slot_AnswerQueryToDB_ListTasksAMMforTrainee(QList<TaskAmmFim> listTasks, int trainee_id)
{
//Удаляем старые задачи этого обучаемого
mapTasksAMM.remove(trainee_id);
//Добавляем новые
mapTasksAMM.insert(trainee_id, listTasks);
emit signal_UpdateTasksAMMforTrainee(trainee_id);
}
void ConnectorToServer::slot_AnswerQueryTasksXML_FIM(QByteArray array)
{
this->listTaskFimArray = array;
@@ -385,6 +404,8 @@ void ConnectorToServer::bindConnection()
connect(recognizeSystem,&RecognizeSystem::sigAnswerQueryToDB_ListClassrooms,this,&ConnectorToServer::slot_AnswerQueryToDB_ListClassrooms);
connect(recognizeSystem,&RecognizeSystem::sigAnswerQueryToDB_ListTasks,this,&ConnectorToServer::slot_AnswerQueryToDB_ListTasks);
connect(recognizeSystem,&RecognizeSystem::sigAnswerQueryToDB_ListTasksAMMforTrainee,this,&ConnectorToServer::slot_AnswerQueryToDB_ListTasksAMMforTrainee);
connect(recognizeSystem,&RecognizeSystem::sigAnswerQueryTasksXML_FIM,this,&ConnectorToServer::slot_AnswerQueryTasksXML_FIM);
connect(recognizeSystem,&RecognizeSystem::sigAnswerQueryTasksXML_AMM,this,&ConnectorToServer::slot_AnswerQueryTasksXML_AMM);
connect(recognizeSystem,&RecognizeSystem::sigAnimationActivated,this,&ConnectorToServer::activateLoadAnimation,Qt::AutoConnection);

View File

@@ -2,6 +2,7 @@
#define CONNECTORTOSERVER_H
#include <QObject>
#include <QMap>
#include <widgets/versionselectwidget.h>
#include <widgets/waitanimationwidget.h>
#include "Core\tcpclient.h"
@@ -44,6 +45,7 @@ public:
QList<Computer> getListComputers();
QList<Classroom> getListClassrooms();
QList<Task> getListTasks();
QList<TaskAmmFim> getListTasksAMMforTrainee(int trainee_id);
bool isArchivedInstructor(int id);
bool isAdminInstructor(int id);
@@ -72,6 +74,7 @@ public slots:
void slot_AnswerQueryToDB_ListComputers(QList<Computer> listComputers);
void slot_AnswerQueryToDB_ListClassrooms(QList<Classroom> listClassrooms);
void slot_AnswerQueryToDB_ListTasks(QList<Task> listTasks);
void slot_AnswerQueryToDB_ListTasksAMMforTrainee(QList<TaskAmmFim> listTasks, int trainee_id);
void slot_AnswerQueryTasksXML_FIM(QByteArray array);
void slot_AnswerQueryTasksXML_AMM(QByteArray array);
@@ -92,8 +95,11 @@ signals:
void signal_UpdateDB(bool treeInstructor, bool treeTrainee);
void signal_UpdateTasksFIM();
void signal_UpdateTasksAMM();
void signal_UpdateTasksFIM(); //Общий список
void signal_UpdateTasksAMM(); //Общий список
void signal_UpdateTasksFIMforTrainee(int trainee_id);
void signal_UpdateTasksAMMforTrainee(int trainee_id);
void signal_ConnectedToServer(bool state);
@@ -126,6 +132,7 @@ private:
QList<Computer> listComputers;
QList<Classroom> listClassrooms;
QList<Task> listTasks;
QMap<int, QList<TaskAmmFim>> mapTasksAMM;
QByteArray listTaskFimArray;
QByteArray listTaskAmmArray;