Отправка списков задач при назначении новой

This commit is contained in:
krivoshein
2025-03-18 17:47:14 +03:00
parent 0574be1369
commit 8f92c9487a
3 changed files with 61 additions and 1 deletions

View File

@@ -86,7 +86,7 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien
client->sendXmlAnswer(arrayAnswer); client->sendXmlAnswer(arrayAnswer);
client->sendVersion(); client->sendVersion();
//Отправка списка задач клиенту Юнити //Отправка списков задач клиенту Юнити
if(client->getClient()->getIsUnity()) if(client->getClient()->getIsUnity())
{ {
QString login = client->getClient()->getLogin(); QString login = client->getClient()->getLogin();
@@ -257,6 +257,27 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu
{ {
int id_new; int id_new;
id_new = providerDBLMS->newTaskAMM(*(TaskAmmFim*)data, id); id_new = providerDBLMS->newTaskAMM(*(TaskAmmFim*)data, id);
if(id_new)
{//Отправка списка задач AMM клиенту Юнити
QString login = providerDBLMS->getLoginTraineeById(id);
//Проходим все открытые сокеты, ищем нужный
foreach(int idSocket, server->getClientsMap().keys())
{
ClientHandler *handler = server->getClientsMap().value(idSocket);
if(handler->getClient()->getLogin() == login)
{
if(handler->getClient()->getIsUnity())
{//Отправляем ему
//AMM
QList<TaskAmmFim> listTasksAMM = providerDBLMS->GetListTasksAMMofTrainee(id);
QByteArray arrayAnswerTasksAMM = dataParser->DbAnswer()->listTasksAMMofTrainee(true, &listTasksAMM, id);
handler->sendXmlAnswer(arrayAnswerTasksAMM, PacketType::TYPE_XMLANSWER_QUERY_TASKS_AMM_FOR_TRAINEE);
}
}
}
}
/* /*
if(id_new) if(id_new)
{ {
@@ -282,6 +303,26 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu
int id_new; int id_new;
id_new = providerDBLMS->newTaskFIM(*(TaskAmmFim*)data, id); id_new = providerDBLMS->newTaskFIM(*(TaskAmmFim*)data, id);
if(id_new)
{//Отправка списка задач FIM клиенту Юнити
QString login = providerDBLMS->getLoginTraineeById(id);
//Проходим все открытые сокеты, ищем нужный
foreach(int idSocket, server->getClientsMap().keys())
{
ClientHandler *handler = server->getClientsMap().value(idSocket);
if(handler->getClient()->getLogin() == login)
{
if(handler->getClient()->getIsUnity())
{//Отправляем ему
//FIM
QList<TaskAmmFim> listTasksFIM = providerDBLMS->GetListTasksFIMofTrainee(id);
QByteArray arrayAnswerFIM = dataParser->DbAnswer()->listTasksFIMofTrainee(true, &listTasksFIM, id);
handler->sendXmlAnswer(arrayAnswerFIM, PacketType::TYPE_XMLANSWER_QUERY_TASKS_FIM_FOR_TRAINEE);
}
}
}
}
/* /*
if(id_new) if(id_new)
{ {

View File

@@ -240,6 +240,24 @@ int ProviderDBLMS::getIdTraineeByLogin(QString login)
return id_trainee; return id_trainee;
} }
QString ProviderDBLMS::getLoginTraineeById(int id_trainee)
{
QString login = "";
qDebug() << "ProviderDBLMS " << QThread::currentThreadId();
mtxAccess.lock();
if(! dbLMS->DBisConnected())
{
mtxAccess.unlock();
return login;
}
login = dbLMS->getTrainee(id_trainee).getLogin();
mtxAccess.unlock();
return login;
}
QList<Instructor> ProviderDBLMS::GetListAllInstructors() QList<Instructor> ProviderDBLMS::GetListAllInstructors()
{ {
QList<Instructor> listInstructors; QList<Instructor> listInstructors;

View File

@@ -30,6 +30,7 @@ public:
// //
int getIdTraineeByLogin(QString login); int getIdTraineeByLogin(QString login);
QString getLoginTraineeById(int id_trainee);
QList<Instructor> GetListAllInstructors(); QList<Instructor> GetListAllInstructors();
QList<Trainee> GetListAllTrainees(); QList<Trainee> GetListAllTrainees();