Индикация и возм обновл docs из ГУИ

This commit is contained in:
2025-11-12 15:22:15 +03:00
parent 650b0525a3
commit 98821a7533
22 changed files with 468 additions and 269 deletions

View File

@@ -141,3 +141,30 @@ void CommonClientHandler::slot_sendTaskToClient(QString fullNameClient,QString t
}
}
void CommonClientHandler::slot_DocsChanged()
{
//Проходим все открытые сокеты
foreach(int idSocket, clientsMap->keys())
{
ClientHandler *handler = clientsMap->value(idSocket);
//Проверяем, есть ли клиенты TYPE_GUI
if(handler->getClient()->getTypeClient() == TypeClientAutorization::TYPE_GUI)
{//Отправляем этому клиенту оповещение об изменении docs.xml
/*
ClientQueryTasksXML clientQueryTasksXML;
clientQueryTasksXML.Type = "amm";
processingSystem->processingClientQueryTasksXML(handler, clientQueryTasksXML);
*/
handler->sendPacketType(PacketType::TYPE_XMLANSWER_DOCS_CHANGED);
}
if(handler->getClient()->getClientType() == TypeClientAutorization::TYPE_UNITY_CLIENT)
{
handler->sendPacketType(PacketType::TYPE_XMLANSWER_DOCS_CHANGED);
}
}
}

View File

@@ -25,6 +25,8 @@ public:
void slot_sendPacketToAllClients(PacketType packetType);
bool slotSendMessage(QString loginFrom, QString loginTo, QString text);
void slot_sendTaskToClient(QString fullNameClient, QString textTask);
void slot_DocsChanged();
signals:
void sigSendToLogger(QString text);
private:

View File

@@ -16,6 +16,16 @@ DocsUpdater::~DocsUpdater()
}
void DocsUpdater::lockAccessToDocs()
{
mtxAccess.lock();
}
void DocsUpdater::unLockAccessToDocs()
{
mtxAccess.unlock();
}
bool DocsUpdater::slot_update()
{
QMutexLocker locker(&mtxAccess);
@@ -39,6 +49,7 @@ bool DocsUpdater::slot_update()
if(! Tools::saveDOMtoXML(pathDocsFile, &docTasksDOM))
return false;
//emit signal_DocsChanged();
return true;
}

View File

@@ -13,6 +13,9 @@ class DocsUpdater : public QObject
public:
DocsUpdater(UpdateController* updateController, QObject *parent = nullptr);
~DocsUpdater();
public:
void lockAccessToDocs();
void unLockAccessToDocs();
public slots:
bool slot_update();

View File

@@ -3,13 +3,15 @@
#include <clienthandler.h>
ProcessingSystem::ProcessingSystem(ProviderDBLMS* providerDBLMS, UpdateController* updateController, QObject *parent):
ProcessingSystem::ProcessingSystem(ProviderDBLMS* providerDBLMS, UpdateController* updateController, DocsUpdater* docsUpdater, QObject *parent):
QObject(parent),
updateController(nullptr),
docsUpdater(nullptr),
providerDBLMS(nullptr)
{
this->providerDBLMS = providerDBLMS;
this->updateController = updateController;
this->docsUpdater = docsUpdater;
}
void ProcessingSystem::initialize(MultiThreadServer *server, DataParser *dataParser,
@@ -514,8 +516,10 @@ void ProcessingSystem::processingClientQueryTasksXML(ClientHandler *client, Clie
{
nameFile = tasksAMMfileName;
pathFile = updateController->getPathAdditionalFile(nameFile);
docsUpdater->lockAccessToDocs();
client->sendFileBlock(pathFile);
client->sendPacketType(PacketType::TYPE_XMLANSWER_QUERY_TASKS_XML_AMM);
docsUpdater->unLockAccessToDocs();
}
}

View File

@@ -10,6 +10,7 @@
//#include "instructorsandtraineeswidget.h"
#include "chatsystem.h"
#include "providerdblms.h"
#include "docsupdater.h"
class SendSystem;
class ServerLMSWidget;
@@ -24,7 +25,7 @@ class ProcessingSystem : public QObject
{
Q_OBJECT
public:
explicit ProcessingSystem(ProviderDBLMS* providerDBLMS, UpdateController* updateController, QObject *parent = nullptr);
explicit ProcessingSystem(ProviderDBLMS* providerDBLMS, UpdateController* updateController, DocsUpdater* docsUpdater, QObject *parent = nullptr);
void initialize(MultiThreadServer *server,
DataParser* dataParser,
@@ -70,6 +71,7 @@ private:
MultiThreadServer *server;
DataParser *dataParser;
UpdateController *updateController;
DocsUpdater* docsUpdater;
ProviderDBLMS* providerDBLMS;
ChatSystem *chatSystem;
void sendTaskListToUnity(ClientHandler *client);