Частичная передача задач в Юнити доделал

This commit is contained in:
2025-07-23 16:24:38 +03:00
parent 233289a467
commit 4ed2c95cd9
7 changed files with 237 additions and 10 deletions

View File

@@ -317,8 +317,13 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu
case TypeQueryToDB::TYPE_QUERY_DEL_TASK_AMM_TO_TRAINEE:
{
if(int id_trainee = providerDBLMS->delTaskAMM(id))
int id_task = id;
TaskAmmFim task = providerDBLMS->getTaskAMMbyID(id_task);
if(int id_trainee = providerDBLMS->delTaskAMM(id_task))
{
task.status = "deleted";
//Отправка списка задач AMM всем клиентам GUI
//sendListTasksAMMofTraineetoClient(client, id_trainee);
emit sigStatusTasksAMMofTraineeChanged(id_trainee);
@@ -326,15 +331,21 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu
//Отправка списка задач AMM клиенту Юнити
if(ClientHandler* clientUnity = getUnityClientById(id_trainee))
{//Есть такой
sendListTasksAMMofTraineetoClient(clientUnity, id_trainee);
//sendListTasksAMMofTraineetoClient(clientUnity, id_trainee);
sendTaskAMMToClient(clientUnity, id_trainee, task);
}
}
break;
}
case TypeQueryToDB::TYPE_QUERY_DEL_TASK_FIM_TO_TRAINEE:
{
int id_task = id;
TaskAmmFim task = providerDBLMS->getTaskFIMbyID(id_task);
if(int id_trainee = providerDBLMS->delTaskFIM(id))
{
task.status = "deleted";
//Отправка списка задач FIM клиенту GUI
//sendListTasksFIMofTraineetoClient(client, id_trainee);
emit sigStatusTasksFIMofTraineeChanged(id_trainee);
@@ -342,7 +353,8 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu
//Отправка списка задач FIM клиенту Юнити
if(ClientHandler* clientUnity = getUnityClientById(id_trainee))
{//Есть такой
sendListTasksFIMofTraineetoClient(clientUnity, id_trainee);
//sendListTasksFIMofTraineetoClient(clientUnity, id_trainee);
sendTaskFIMToClient(clientUnity, id_trainee, task);
}
}
break;
@@ -563,6 +575,26 @@ void ProcessingSystem::sendListTasksFIMofTraineeByIDtoClient(ClientHandler *clie
client->sendFileBlockByteArray(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_TASKS_FIM_OF_TRAINEE);
}
void ProcessingSystem::sendTaskAMMToClient(ClientHandler *client, int id_trainee, TaskAmmFim task)
{
QList<TaskAmmFim> listTasks;
listTasks.append(task);
QByteArray arrayAnswer = dataParser->DbAnswer()->listTasksAMMofTrainee(true, &listTasks, id_trainee, false);
//client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_TASKS_AMM_OF_TRAINEE);
client->sendFileBlockByteArray(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_TASKS_AMM_OF_TRAINEE);
}
void ProcessingSystem::sendTaskFIMToClient(ClientHandler *client, int id_trainee, TaskAmmFim task)
{
QList<TaskAmmFim> listTasks;
listTasks.append(task);
QByteArray arrayAnswer = dataParser->DbAnswer()->listTasksFIMofTrainee(true, &listTasks, id_trainee, false);
//client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_TASKS_FIM_OF_TRAINEE);
client->sendFileBlockByteArray(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_TASKS_FIM_OF_TRAINEE);
}
void ProcessingSystem::sendTaskListToUnity(ClientHandler *client)
{
//Отправка списков задач клиенту Юнити

View File

@@ -46,6 +46,9 @@ public:
void sendListTasksAMMofTraineeByIDtoClient(ClientHandler* client, int id_trainee, QList<int> listID);
void sendListTasksFIMofTraineeByIDtoClient(ClientHandler* client, int id_trainee, QList<int> listID);
void sendTaskAMMToClient(ClientHandler* client, int id_trainee, TaskAmmFim task);
void sendTaskFIMToClient(ClientHandler* client, int id_trainee, TaskAmmFim task);
ClientHandler* getUnityClientById(int id);
void processingClientDeAutorization(QString login);
signals:

View File

@@ -437,3 +437,39 @@ QList<TaskAmmFim> ProviderDBLMS::GetListTasksFIMofTrainee(int id_trainee)
mtxAccess.unlock();
return listTasks;
}
TaskAmmFim ProviderDBLMS::getTaskAMMbyID(int id_task)
{
TaskAmmFim task;
mtxAccess.lock();
if(! dbLMS->DBisConnected())
{
mtxAccess.unlock();
return task;
}
task = dbLMS->getTaskAMMbyID(id_task);
mtxAccess.unlock();
return task;
}
TaskAmmFim ProviderDBLMS::getTaskFIMbyID(int id_task)
{
TaskAmmFim task;
mtxAccess.lock();
if(! dbLMS->DBisConnected())
{
mtxAccess.unlock();
return task;
}
task = dbLMS->getTaskFIMbyID(id_task);
mtxAccess.unlock();
return task;
}

View File

@@ -62,6 +62,9 @@ public:
QList<TaskAmmFim> GetListTasksAMMofTrainee(int id_trainee);
QList<TaskAmmFim> GetListTasksFIMofTrainee(int id_trainee);
TaskAmmFim getTaskAMMbyID(int id_task);
TaskAmmFim getTaskFIMbyID(int id_task);
Q_SIGNALS:
//сигнал о блокировке авторизации
void signal_BlockAutorization(bool block);