ref: send task list to client

This commit is contained in:
semenov
2025-06-04 14:30:58 +03:00
parent c238a28800
commit d75eb3ce5c
7 changed files with 36 additions and 31 deletions

View File

@@ -19,8 +19,6 @@ kanban-plugin: board
## feature client Unity ## feature client Unity
- [ ] Добавить обновление инструктора, если он перелогинился - [ ] Добавить обновление инструктора, если он перелогинился
- [ ] АММ - убрать возможность отмены
- [ ] FIM разграничить кнопку и статус задачи
- [ ] FIM проверять на null задачу - [ ] FIM проверять на null задачу
@@ -46,6 +44,8 @@ kanban-plugin: board
## Complete ## Complete
- [ ] FIM разграничить кнопку и статус задачи
- [ ] АММ - убрать возможность отмены
- [ ] сохранение не отправленных задач - [ ] сохранение не отправленных задач
- [ ] Unity: неправильно обновляется статус задачи - [ ] Unity: неправильно обновляется статус задачи
- [ ] окошко с выбором перенести в GUI - [ ] окошко с выбором перенести в GUI

View File

@@ -90,23 +90,6 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien
client->sendXmlAnswer(arrayAnswer); client->sendXmlAnswer(arrayAnswer);
client->sendVersion(); client->sendVersion();
//Отправка списков задач клиенту Юнити
if(client->getClient()->getIsUnity())
{
QString login = client->getClient()->getLogin();
int id_trainee = providerDBLMS->getIdTraineeByLogin(login);
//AMM
QList<TaskAmmFim> listTasksAMM = providerDBLMS->GetListTasksAMMofTrainee(id_trainee);
QByteArray arrayAnswerTasksAMM = dataParser->DbAnswer()->listTasksAMMofTrainee(true, &listTasksAMM, id_trainee);
client->sendXmlAnswer(arrayAnswerTasksAMM, PacketType::TYPE_XMLANSWER_QUERY_TASKS_AMM_OF_TRAINEE);
//FIM
QList<TaskAmmFim> listTasksFIM = providerDBLMS->GetListTasksFIMofTrainee(id_trainee);
QByteArray arrayAnswerFIM = dataParser->DbAnswer()->listTasksFIMofTrainee(true, &listTasksFIM, id_trainee);
client->sendXmlAnswer(arrayAnswerFIM, PacketType::TYPE_XMLANSWER_QUERY_TASKS_FIM_OF_TRAINEE);
}
QString str = QString(arrayAnswer); QString str = QString(arrayAnswer);
//logger->addTextToLogger("To Client: " + str); //logger->addTextToLogger("To Client: " + str);
@@ -423,17 +406,9 @@ void ProcessingSystem::processingClientNotify(ClientHandler *client, ClientNotif
{ {
if(clientNotify.Code == commandReadyClient) if(clientNotify.Code == commandReadyClient)
{//Клиент готов принять задания {//Клиент готов принять задания
client->getClient()->setReady(true); //скорее всего функции будут внутри хэндлера client->setReady(true);
sendTaskListToUnity(client);
//Отправляем пакет с заданиями для Обучаемого(клиента)
client->getSocket()->flush(); client->getSocket()->flush();
//QStringList listTasks;
//QByteArray arrayAnswer = dataParser->ClientAnswer()->tasks(listTasks);
//client->sendXmlAnswer(arrayAnswer);
//QString str = QString(arrayAnswer);
//emit sigLogMessage("To Client: " + str);
} }
else if(clientNotify.Code == commandDisableClient) else if(clientNotify.Code == commandDisableClient)
{ {
@@ -459,6 +434,9 @@ void ProcessingSystem::processingClientNotify(ClientHandler *client, ClientNotif
client->sigSendNotify(commandUnchangable); client->sigSendNotify(commandUnchangable);
} }
}else if(clientNotify.Code == commandGetTasks)
{
sendTaskListToUnity(client);
} }
} }
@@ -481,6 +459,26 @@ void ProcessingSystem::sendListTasksFIMofTraineetoClient(ClientHandler *client,
client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_TASKS_FIM_OF_TRAINEE); client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_TASKS_FIM_OF_TRAINEE);
} }
void ProcessingSystem::sendTaskListToUnity(ClientHandler *client)
{
//Отправка списков задач клиенту Юнити
if(client->getClient()->getIsUnity())
{
QString login = client->getClient()->getLogin();
int id_trainee = providerDBLMS->getIdTraineeByLogin(login);
//AMM
QList<TaskAmmFim> listTasksAMM = providerDBLMS->GetListTasksAMMofTrainee(id_trainee);
QByteArray arrayAnswerTasksAMM = dataParser->DbAnswer()->listTasksAMMofTrainee(true, &listTasksAMM, id_trainee);
client->sendXmlAnswer(arrayAnswerTasksAMM, PacketType::TYPE_XMLANSWER_QUERY_TASKS_AMM_OF_TRAINEE);
//FIM
QList<TaskAmmFim> listTasksFIM = providerDBLMS->GetListTasksFIMofTrainee(id_trainee);
QByteArray arrayAnswerFIM = dataParser->DbAnswer()->listTasksFIMofTrainee(true, &listTasksFIM, id_trainee);
client->sendXmlAnswer(arrayAnswerFIM, PacketType::TYPE_XMLANSWER_QUERY_TASKS_FIM_OF_TRAINEE);
}
}
ClientHandler *ProcessingSystem::getUnityClientById(int id) ClientHandler *ProcessingSystem::getUnityClientById(int id)
{ {
QString login = providerDBLMS->getLoginTraineeById(id); QString login = providerDBLMS->getLoginTraineeById(id);

View File

@@ -60,6 +60,7 @@ private:
DataParser *dataParser; DataParser *dataParser;
UpdateController *updateController; UpdateController *updateController;
ProviderDBLMS* providerDBLMS; ProviderDBLMS* providerDBLMS;
void sendTaskListToUnity(ClientHandler *client);
}; };
#endif // PROCESSINGSYSTEM_H #endif // PROCESSINGSYSTEM_H

View File

@@ -200,8 +200,7 @@ void SendSystem::sendXmlAnswer(QByteArray array, PacketType packetType)
socket->write(array); socket->write(array);
} }
socket->waitForReadyRead(2000);
socket->waitForReadyRead(1000);
} }
void SendSystem::sendNeedUpdate(bool flag,quint64 size,quint64 fileCount,quint64 deleteCount) void SendSystem::sendNeedUpdate(bool flag,quint64 size,quint64 fileCount,quint64 deleteCount)

View File

@@ -44,6 +44,7 @@ static const QString commandCanChangeVersion = "CANCHANGE";
static const QString commandChangable = "CHANGEABLE"; static const QString commandChangable = "CHANGEABLE";
static const QString commandUnchangable = "UNCHANGEABLE"; static const QString commandUnchangable = "UNCHANGEABLE";
static const QString commandUpdateFilesClient = "update"; static const QString commandUpdateFilesClient = "update";
static const QString commandGetTasks = "GETTASKS";
class Tools { class Tools {
public: public:

View File

@@ -83,6 +83,11 @@ void ClientHandler::sendVersion()
emit sigSendVersion(); emit sigSendVersion();
} }
void ClientHandler::setReady(bool flag)
{
getClient()->setReady(flag);
}
void ClientHandler::sendVersionList() void ClientHandler::sendVersionList()
{ {
QFile file(versionListFile); QFile file(versionListFile);

View File

@@ -39,6 +39,7 @@ public:
void sendVersionList(); void sendVersionList();
void sendPacketType(PacketType packetType); void sendPacketType(PacketType packetType);
void sendVersion(); void sendVersion();
void setReady(bool flag);
~ClientHandler(); ~ClientHandler();