Сделал выдачу tasksFIM.xml из сервера по запросу GUI-клиента

This commit is contained in:
krivoshein
2025-01-17 14:29:27 +03:00
parent 24fb521e03
commit 1950690f82
24 changed files with 342 additions and 91 deletions

View File

@@ -179,6 +179,25 @@ void DataParser::createQueryToDBMessage(ClientQueryToDB *queryToDB, int id, void
file.close();
}
void DataParser::createQueryTasksXMLMessage(QString type)
{
QFile file(tempName);
file.open(QIODevice::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("QueryTasksXML");
xmlWriter.writeAttribute("Type", type);
xmlWriter.writeEndElement();
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
file.close();
}
void DataParser::createDeAuthMessage(ClientDeAutorization *deAuth)
{
QFile file(tempName);

View File

@@ -24,6 +24,7 @@ public:
void createAuthMessage(ClientAutorization *auth);
void createToClientMessage(ToClientMessage *toClientMessage);
void createQueryToDBMessage(ClientQueryToDB *queryToDB, int id = 0, void* data = nullptr);
void createQueryTasksXMLMessage(QString type);
void createDeAuthMessage(ClientDeAutorization *deAuth);
void createAuthData(ServerAuthorization *serverAuth);
void createAuthDataOffline(QString username,QString pass);

View File

@@ -3,6 +3,8 @@
#include <QDir>
#include <QDomDocument>
#include "instructor.h"
#include "tasksAmmFim.h"
#include "fimtaskswidget.h"
RecognizeSystem::RecognizeSystem(QObject *parent):
@@ -276,6 +278,22 @@ void RecognizeSystem::recognize(QTcpSocket *socket)
break;
};
//xml-ответы на запросы AdditionalFiles
if(packetType == PacketType::TYPE_XMLANSWER_QUERY_TASKS_XML_FIM ||
packetType == PacketType::TYPE_XMLANSWER_QUERY_TASKS_XML_AMM)
{
QByteArray array;
stream.startTransaction();
stream >> array;
if(!stream.commitTransaction())
continue;
xmlParserQueryTasksXML(packetType, array);
packetType = PacketType::TYPE_NONE;
}
packetType = PacketType::TYPE_NONE;
}
}
@@ -547,6 +565,19 @@ void RecognizeSystem::xmlParserQueryToDB(PacketType packetType, QByteArray array
};
}
void RecognizeSystem::xmlParserQueryTasksXML(PacketType packetType, QByteArray array)
{
QList<TaskAmmFim> listTaskAmmFim;
//парсинг XML
listTaskAmmFim = FIMtasksWidget::loadTasksAmmFimFromXML(array);
if(packetType == TYPE_XMLANSWER_QUERY_TASKS_XML_FIM)
emit sigAnswerQueryTasksXML_FIM(listTaskAmmFim);
else if(packetType == TYPE_XMLANSWER_QUERY_TASKS_XML_AMM)
emit sigAnswerQueryTasksXML_AMM(listTaskAmmFim);
}
void RecognizeSystem::checkAccessType(QString type)
{
if(type == "instructor")

View File

@@ -11,6 +11,7 @@
#include "trainee.h"
#include "group.h"
#include "Datas.h"
#include "tasksAmmFim.h"
class RecognizeSystem : public QObject
@@ -48,6 +49,9 @@ signals:
void sigAnswerQueryToDB_ListClassrooms(QList<Classroom> listClassrooms);
void sigAnswerQueryToDB_ListTasks(QList<Task> listTasks);
void sigAnswerQueryTasksXML_FIM(QList<TaskAmmFim> listTaskFim);
void sigAnswerQueryTasksXML_AMM(QList<TaskAmmFim> listTaskAmm);
private:
QList<QString> *folderList;
//MainWindow *mainWindow;
@@ -63,6 +67,7 @@ private:
void xmlParser(QByteArray array);
void xmlParserQueryToDB(PacketType packetType, QByteArray array);
void xmlParserQueryTasksXML(PacketType packetType, QByteArray array);
void checkAccessType(QString type);
};

View File

@@ -40,7 +40,11 @@ enum PacketType{
TYPE_XMLANSWER_QUERY_DB__LIST_TRAINEES = 102,
TYPE_XMLANSWER_QUERY_DB__LIST_COMPUTERS = 103,
TYPE_XMLANSWER_QUERY_DB__LIST_CLASSROOMS = 104,
TYPE_XMLANSWER_QUERY_DB__LIST_TASKS = 105
TYPE_XMLANSWER_QUERY_DB__LIST_TASKS = 105,
//xml-ответы на запросы AdditionalFiles
TYPE_XMLANSWER_QUERY_TASKS_XML_FIM = 130,
TYPE_XMLANSWER_QUERY_TASKS_XML_AMM = 131
};
Q_DECLARE_METATYPE(PacketType)

View File

@@ -80,11 +80,34 @@ bool ConnectorToServer::sendMessageForClient(int id, QString login, QString text
return true;
}
bool ConnectorToServer::sendQueryTasksXML(QString type)
{
if (!client->getIsConnected())
{
return false;
}
dataParser->createQueryTasksXMLMessage(type);
emit signal_sendXMLmsgGUItoServer();
return true;
}
void ConnectorToServer::SetConnectToServer()
{
emit sigSetConnect(dataParser->getServerSettings(),connectionThread);
}
QList<TaskAmmFim> ConnectorToServer::getListTaskFim()
{
return listTaskFim;
}
QList<TaskAmmFim> ConnectorToServer::getListTaskAmm()
{
return listTaskAmm;
}
QList<Instructor> ConnectorToServer::getListInstructors()
{
return listInstructors;
@@ -274,6 +297,18 @@ void ConnectorToServer::slot_AnswerQueryToDB_ListTasks(QList<Task> listTasks)
//emit signal_UpdateDB(false, true);
}
void ConnectorToServer::slot_AnswerQueryTasksXML_FIM(QList<TaskAmmFim> listTaskFim)
{
this->listTaskFim = listTaskFim;
emit signal_UpdateTasksFIM();
}
void ConnectorToServer::slot_AnswerQueryTasksXML_AMM(QList<TaskAmmFim> listTaskAmm)
{
this->listTaskAmm = listTaskAmm;
emit signal_UpdateTasksAMM();
}
void ConnectorToServer::slot_msgToClientReady(QString login, QString text)
{
int id = getIdTraineeByLogin(login);
@@ -310,6 +345,9 @@ 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::sigAnswerQueryTasksXML_FIM,this,&ConnectorToServer::slot_AnswerQueryTasksXML_FIM);
connect(recognizeSystem,&RecognizeSystem::sigAnswerQueryTasksXML_AMM,this,&ConnectorToServer::slot_AnswerQueryTasksXML_AMM);
connect(client,&TCPClient::signal_ConnectedToServer,this,&ConnectorToServer::signal_ConnectedToServer);
}

View File

@@ -25,8 +25,14 @@ public:
bool sendQueryToDB(TypeQueryToDB typeQuery, int id = 0, void* data = nullptr);
bool sendMessageForClient(int id, QString login, QString text);
bool sendQueryTasksXML(QString type);
void SetConnectToServer();
public:
QList<TaskAmmFim> getListTaskFim();
QList<TaskAmmFim> getListTaskAmm();
public:
//Запросы к БД (локальной)
QList<Instructor> getListInstructors();
@@ -61,6 +67,9 @@ public slots:
void slot_AnswerQueryToDB_ListClassrooms(QList<Classroom> listClassrooms);
void slot_AnswerQueryToDB_ListTasks(QList<Task> listTasks);
void slot_AnswerQueryTasksXML_FIM(QList<TaskAmmFim> listTaskFim);
void slot_AnswerQueryTasksXML_AMM(QList<TaskAmmFim> listTaskAmm);
void slot_msgToClientReady(QString login, QString text);
signals:
@@ -76,6 +85,9 @@ signals:
void signal_UpdateDB(bool treeInstructor, bool treeTrainee);
void signal_UpdateTasksFIM();
void signal_UpdateTasksAMM();
void signal_ConnectedToServer(bool state);
void signal_InitMessanger(QList<Trainee> listTrainees);
@@ -102,6 +114,9 @@ private:
QList<Computer> listComputers;
QList<Classroom> listClassrooms;
QList<Task> listTasks;
QList<TaskAmmFim> listTaskFim;
QList<TaskAmmFim> listTaskAmm;
};
#endif // CONNECTORTOSERVER_H