mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-27 19:45:43 +03:00
Сделал выдачу tasksAMM.xml из сервера по запросу GUI-клиента
This commit is contained in:
@@ -2,9 +2,9 @@
|
||||
#include <QThread>
|
||||
#include <QDir>
|
||||
#include <QDomDocument>
|
||||
#include <QMessageBox>
|
||||
#include "instructor.h"
|
||||
#include "tasksAmmFim.h"
|
||||
#include "fimtaskswidget.h"
|
||||
|
||||
|
||||
RecognizeSystem::RecognizeSystem(QObject *parent):
|
||||
@@ -282,12 +282,25 @@ void RecognizeSystem::recognize(QTcpSocket *socket)
|
||||
if(packetType == PacketType::TYPE_XMLANSWER_QUERY_TASKS_XML_FIM ||
|
||||
packetType == PacketType::TYPE_XMLANSWER_QUERY_TASKS_XML_AMM)
|
||||
{
|
||||
QByteArray array;
|
||||
stream.startTransaction();
|
||||
stream >> array;
|
||||
QByteArray array;
|
||||
QString xmlFileName = "";
|
||||
|
||||
if(!stream.commitTransaction())
|
||||
continue;
|
||||
if(packetType == PacketType::TYPE_XMLANSWER_QUERY_TASKS_XML_FIM)
|
||||
xmlFileName = "./AdditionalFiles/tasksFIM.xml";
|
||||
else
|
||||
xmlFileName = "./AdditionalFiles/tasksAMM.xml";
|
||||
|
||||
QFile xmlInFile(xmlFileName);
|
||||
if (!xmlInFile.open(QFile::ReadOnly | QFile::Text))
|
||||
{
|
||||
QMessageBox::critical(nullptr, tr("Attention!"), tr("The file could not be opened ") + xmlFileName);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
array = xmlInFile.readAll();
|
||||
xmlInFile.close();
|
||||
}
|
||||
|
||||
xmlParserQueryTasksXML(packetType, array);
|
||||
|
||||
@@ -567,15 +580,14 @@ 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);
|
||||
{
|
||||
emit sigAnswerQueryTasksXML_FIM(array);
|
||||
}
|
||||
else if(packetType == TYPE_XMLANSWER_QUERY_TASKS_XML_AMM)
|
||||
emit sigAnswerQueryTasksXML_AMM(listTaskAmmFim);
|
||||
{
|
||||
emit sigAnswerQueryTasksXML_AMM(array);
|
||||
}
|
||||
}
|
||||
|
||||
void RecognizeSystem::checkAccessType(QString type)
|
||||
|
||||
@@ -49,8 +49,8 @@ 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);
|
||||
void sigAnswerQueryTasksXML_FIM(QByteArray array);
|
||||
void sigAnswerQueryTasksXML_AMM(QByteArray array);
|
||||
|
||||
private:
|
||||
QList<QString> *folderList;
|
||||
|
||||
@@ -27,7 +27,7 @@ QString Tools::createLocalPath(QString path)
|
||||
QString Tools::createFullPath(QString path)
|
||||
{
|
||||
QString fullPath;
|
||||
qint8 pos = path.indexOf("Application");
|
||||
qint8 pos = path.indexOf("AdditionalFiles");
|
||||
|
||||
QString localPath = path.remove(0,--pos);
|
||||
|
||||
|
||||
@@ -98,14 +98,14 @@ void ConnectorToServer::SetConnectToServer()
|
||||
emit sigSetConnect(dataParser->getServerSettings(),connectionThread);
|
||||
}
|
||||
|
||||
QList<TaskAmmFim> ConnectorToServer::getListTaskFim()
|
||||
QByteArray ConnectorToServer::getListTaskFimArray()
|
||||
{
|
||||
return listTaskFim;
|
||||
return listTaskFimArray;
|
||||
}
|
||||
|
||||
QList<TaskAmmFim> ConnectorToServer::getListTaskAmm()
|
||||
QByteArray ConnectorToServer::getListTaskAmmArray()
|
||||
{
|
||||
return listTaskAmm;
|
||||
return listTaskAmmArray;
|
||||
}
|
||||
|
||||
QList<Instructor> ConnectorToServer::getListInstructors()
|
||||
@@ -297,15 +297,15 @@ void ConnectorToServer::slot_AnswerQueryToDB_ListTasks(QList<Task> listTasks)
|
||||
//emit signal_UpdateDB(false, true);
|
||||
}
|
||||
|
||||
void ConnectorToServer::slot_AnswerQueryTasksXML_FIM(QList<TaskAmmFim> listTaskFim)
|
||||
void ConnectorToServer::slot_AnswerQueryTasksXML_FIM(QByteArray array)
|
||||
{
|
||||
this->listTaskFim = listTaskFim;
|
||||
this->listTaskFimArray = array;
|
||||
emit signal_UpdateTasksFIM();
|
||||
}
|
||||
|
||||
void ConnectorToServer::slot_AnswerQueryTasksXML_AMM(QList<TaskAmmFim> listTaskAmm)
|
||||
void ConnectorToServer::slot_AnswerQueryTasksXML_AMM(QByteArray array)
|
||||
{
|
||||
this->listTaskAmm = listTaskAmm;
|
||||
this->listTaskAmmArray = array;
|
||||
emit signal_UpdateTasksAMM();
|
||||
}
|
||||
|
||||
|
||||
@@ -30,8 +30,8 @@ public:
|
||||
void SetConnectToServer();
|
||||
|
||||
public:
|
||||
QList<TaskAmmFim> getListTaskFim();
|
||||
QList<TaskAmmFim> getListTaskAmm();
|
||||
QByteArray getListTaskFimArray();
|
||||
QByteArray getListTaskAmmArray();
|
||||
|
||||
public:
|
||||
//Запросы к БД (локальной)
|
||||
@@ -67,8 +67,8 @@ 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_AnswerQueryTasksXML_FIM(QByteArray array);
|
||||
void slot_AnswerQueryTasksXML_AMM(QByteArray array);
|
||||
|
||||
void slot_msgToClientReady(QString login, QString text);
|
||||
|
||||
@@ -115,8 +115,8 @@ private:
|
||||
QList<Classroom> listClassrooms;
|
||||
QList<Task> listTasks;
|
||||
|
||||
QList<TaskAmmFim> listTaskFim;
|
||||
QList<TaskAmmFim> listTaskAmm;
|
||||
QByteArray listTaskFimArray;
|
||||
QByteArray listTaskAmmArray;
|
||||
};
|
||||
|
||||
#endif // CONNECTORTOSERVER_H
|
||||
|
||||
@@ -5,9 +5,10 @@
|
||||
#include "doctaskswidget.h"
|
||||
#include "ui_doctaskswidget.h"
|
||||
|
||||
DocTasksWidget::DocTasksWidget(QWidget *parent) :
|
||||
DocTasksWidget::DocTasksWidget(ConnectorToServer* connectorToServer, QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::DocTasksWidget)
|
||||
ui(new Ui::DocTasksWidget),
|
||||
connectorToServer(connectorToServer)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
@@ -19,9 +20,9 @@ DocTasksWidget::DocTasksWidget(QWidget *parent) :
|
||||
|
||||
preparationTreeWidget();
|
||||
|
||||
loadDocTasksFromXML();
|
||||
//loadDocTasksFromXML();
|
||||
|
||||
updateTreeWidget();
|
||||
//updateTreeWidget();
|
||||
}
|
||||
|
||||
DocTasksWidget::~DocTasksWidget()
|
||||
@@ -72,7 +73,10 @@ void DocTasksWidget::loadTasksAMM()
|
||||
//Обновление дерева
|
||||
treeWidget->clear();
|
||||
|
||||
//TODO собственно обновление дерева
|
||||
QByteArray array = connectorToServer->getListTaskAmmArray();
|
||||
loadDocTasksFromXML(array);
|
||||
|
||||
updateTreeWidget();
|
||||
}
|
||||
|
||||
void DocTasksWidget::domElementParser(QDomElement element, Module* moduleParent)
|
||||
@@ -176,29 +180,21 @@ void DocTasksWidget::domElementParser(QDomElement element, Module* moduleParent)
|
||||
}while (! (childElement = childElement.nextSiblingElement()).isNull());
|
||||
}
|
||||
|
||||
void DocTasksWidget::loadDocTasksFromXML()
|
||||
void DocTasksWidget::loadDocTasksFromXML(QByteArray array)
|
||||
{
|
||||
deleteAllModuls();
|
||||
|
||||
QDomDocument docTasksDOM;
|
||||
QString xmlFileName = "./docs.xml";
|
||||
QFile xmlInFile(xmlFileName);
|
||||
if (!xmlInFile.open(QFile::ReadOnly | QFile::Text))
|
||||
{
|
||||
QMessageBox::critical(nullptr, tr("Attention!"), tr("The file could not be opened ") + xmlFileName);
|
||||
|
||||
docTasksDOM.setContent(array);
|
||||
|
||||
QDomElement manifestElement = docTasksDOM.firstChildElement("manifest");
|
||||
if(manifestElement.isNull())
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
docTasksDOM.setContent(xmlInFile.readAll());
|
||||
xmlInFile.close();
|
||||
|
||||
QDomElement manifestElement = docTasksDOM.firstChildElement("manifest");
|
||||
if(manifestElement.isNull())
|
||||
return;
|
||||
//deleteAllModuls();
|
||||
|
||||
//deleteAllModuls();
|
||||
|
||||
domElementParser(manifestElement, nullptr);
|
||||
}
|
||||
domElementParser(manifestElement, nullptr);
|
||||
}
|
||||
|
||||
void DocTasksWidget::deleteAllModuls()
|
||||
@@ -297,3 +293,8 @@ void DocTasksWidget::addModuleToTreeWidget(Module *module, QTreeWidgetItem* pare
|
||||
itemModule->setText(ColumnsTree::clmn_ID, ID);
|
||||
}
|
||||
|
||||
|
||||
void DocTasksWidget::on_btnUpdateTasks_clicked()
|
||||
{
|
||||
connectorToServer->sendQueryTasksXML("amm");
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include <QTreeWidget>
|
||||
#include <QDomNode>
|
||||
#include "module.h"
|
||||
#include "connectortoserver.h"
|
||||
|
||||
namespace Ui {
|
||||
class DocTasksWidget;
|
||||
@@ -21,19 +22,21 @@ private:
|
||||
};
|
||||
|
||||
public:
|
||||
explicit DocTasksWidget(QWidget *parent = nullptr);
|
||||
explicit DocTasksWidget(ConnectorToServer* connectorToServer, QWidget *parent = nullptr);
|
||||
~DocTasksWidget();
|
||||
|
||||
private Q_SLOTS:
|
||||
void on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
|
||||
|
||||
void on_btnUpdateTasks_clicked();
|
||||
|
||||
public Q_SLOTS:
|
||||
//Слот обработки сигнала необходимости обновления интерфейса
|
||||
void slot_NeedUpdateUI();
|
||||
|
||||
private:
|
||||
void loadDocTasksFromXML(QByteArray array);
|
||||
void domElementParser(QDomElement element, Module* moduleParent);
|
||||
void loadDocTasksFromXML();
|
||||
void deleteAllModuls();
|
||||
Module* searchModuleByID(int id);
|
||||
|
||||
@@ -46,10 +49,11 @@ private:
|
||||
|
||||
private:
|
||||
Ui::DocTasksWidget *ui;
|
||||
ConnectorToServer* connectorToServer;
|
||||
QTreeWidget* treeWidget;
|
||||
|
||||
private:
|
||||
QList<Module*> listAllModules;
|
||||
|
||||
};
|
||||
|
||||
#endif // DOCTASKSWIDGET_H
|
||||
|
||||
@@ -49,6 +49,17 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QToolButton" name="btnUpdateTasks">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
||||
@@ -25,9 +25,9 @@ FIMtasksWidget::~FIMtasksWidget()
|
||||
delete ui;
|
||||
}
|
||||
|
||||
QList<TaskAmmFim> FIMtasksWidget::loadTasksAmmFimFromXML(QByteArray array)
|
||||
void FIMtasksWidget::loadTasksAmmFimFromXML(QByteArray array)
|
||||
{
|
||||
QList<TaskAmmFim> listTaskAmmFim;
|
||||
listTaskAmmFim.clear();
|
||||
|
||||
QDomDocument docTasksDOM;
|
||||
|
||||
@@ -35,11 +35,11 @@ QList<TaskAmmFim> FIMtasksWidget::loadTasksAmmFimFromXML(QByteArray array)
|
||||
|
||||
QDomElement RRJTasksElement = docTasksDOM.firstChildElement("RRJTasks");
|
||||
if(RRJTasksElement.isNull())
|
||||
return listTaskAmmFim;
|
||||
return;
|
||||
|
||||
QDomElement taskElement = RRJTasksElement.firstChildElement();
|
||||
if(taskElement.isNull())
|
||||
return listTaskAmmFim;
|
||||
return;
|
||||
|
||||
do
|
||||
{/*task*/
|
||||
@@ -101,10 +101,10 @@ QList<TaskAmmFim> FIMtasksWidget::loadTasksAmmFimFromXML(QByteArray array)
|
||||
}
|
||||
}while (! (taskElement = taskElement.nextSiblingElement()).isNull());
|
||||
|
||||
return listTaskAmmFim;
|
||||
return;
|
||||
}
|
||||
|
||||
void FIMtasksWidget::fillTree(QList<TaskAmmFim> listTaskAmmFim)
|
||||
void FIMtasksWidget::fillTree()
|
||||
{
|
||||
for(int i = 0; i < listTaskAmmFim.count(); i++)
|
||||
{/*Задачи*/
|
||||
@@ -178,8 +178,11 @@ void FIMtasksWidget::loadTasksFIM()
|
||||
//Обновление дерева
|
||||
ui->treeWidget->clear();
|
||||
|
||||
QByteArray array = connectorToServer->getListTaskFimArray();
|
||||
loadTasksAmmFimFromXML(array);
|
||||
|
||||
//собственно обновление дерева
|
||||
fillTree(connectorToServer->getListTaskFim());
|
||||
fillTree();
|
||||
}
|
||||
|
||||
void FIMtasksWidget::on_btnUpdateTasks_clicked()
|
||||
|
||||
@@ -24,10 +24,10 @@ public:
|
||||
~FIMtasksWidget();
|
||||
|
||||
public:
|
||||
static QList<TaskAmmFim> loadTasksAmmFimFromXML(QByteArray array);
|
||||
void loadTasksAmmFimFromXML(QByteArray array);
|
||||
|
||||
private:
|
||||
void fillTree(QList<TaskAmmFim> listTaskAmmFim);
|
||||
void fillTree();
|
||||
void preparationTreeWidget();
|
||||
void reSetHeadTreeWidget();
|
||||
|
||||
@@ -40,7 +40,7 @@ private:
|
||||
|
||||
public:
|
||||
QString userName;
|
||||
//QList<TaskAmmFim> listTaskAmmFim;
|
||||
QList<TaskAmmFim> listTaskAmmFim;
|
||||
|
||||
private slots:
|
||||
void on_btnUpdateTasks_clicked();
|
||||
|
||||
@@ -56,7 +56,7 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
|
||||
connect(connectorToServer,&ConnectorToServer::signal_msgFromClientReady,messangerWidget,&MessangerWidget::slot_msgFromClientReady);
|
||||
|
||||
|
||||
docTasksWidget = new DocTasksWidget(this);
|
||||
docTasksWidget = new DocTasksWidget(connectorToServer, this);
|
||||
fIMtasksWidget = new FIMtasksWidget(connectorToServer, this);
|
||||
|
||||
connect(connectorToServer, &ConnectorToServer::signal_UpdateTasksFIM, fIMtasksWidget, &FIMtasksWidget::slot_NeedUpdateUI);
|
||||
|
||||
@@ -234,14 +234,21 @@ void ProcessingSystem::processingClientQueryTasksXML(ClientHandler *client, Clie
|
||||
QByteArray arrayAnswer;
|
||||
|
||||
QString nameFile = "";
|
||||
QString pathFile = "";
|
||||
if(clientQueryTasksXML.Type == "fim")
|
||||
{
|
||||
nameFile = tasksFIMfileName;
|
||||
pathFile = updateController->getPathAdditionalFile(nameFile);
|
||||
client->sendFileBlock(pathFile);
|
||||
client->sendPacketType(PacketType::TYPE_XMLANSWER_QUERY_TASKS_XML_FIM);
|
||||
}
|
||||
else if(clientQueryTasksXML.Type == "amm")
|
||||
{
|
||||
nameFile = tasksAMMfileName;
|
||||
|
||||
arrayAnswer = updateController->getAdditionalFile(nameFile);
|
||||
|
||||
client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_TASKS_XML_FIM);
|
||||
pathFile = updateController->getPathAdditionalFile(nameFile);
|
||||
client->sendFileBlock(pathFile);
|
||||
client->sendPacketType(PacketType::TYPE_XMLANSWER_QUERY_TASKS_XML_AMM);
|
||||
}
|
||||
}
|
||||
|
||||
void ProcessingSystem::processingToClientMessage(ClientHandler *client, ToClientMessage toClientMessage)
|
||||
|
||||
@@ -355,17 +355,10 @@ QList<FileData>* UpdateController::calculateHash(QString path)
|
||||
return files;
|
||||
}
|
||||
|
||||
QByteArray UpdateController::getAdditionalFile(QString name)
|
||||
QString UpdateController::getPathAdditionalFile(QString name)
|
||||
{
|
||||
QString path = Tools::createSharedPath("/" + assetManager->getCurrentVersionData()->getViewName() + "/AdditionalFiles" + name);
|
||||
QFile addFile(path);
|
||||
QByteArray array;
|
||||
if(addFile.open(QIODevice::ReadOnly)){
|
||||
array = addFile.readAll();
|
||||
addFile.close();
|
||||
}
|
||||
|
||||
return array;
|
||||
return path;
|
||||
}
|
||||
|
||||
QByteArray UpdateController::getLocalHash()
|
||||
|
||||
@@ -56,7 +56,7 @@ public:
|
||||
void saveVersionToFile(StreamingVersionData *streamingVersion);
|
||||
void xmlFileDataParse(QByteArray array);
|
||||
|
||||
QByteArray getAdditionalFile(QString name);
|
||||
QString getPathAdditionalFile(QString name);
|
||||
|
||||
public slots:
|
||||
void changeAssetVersion(QString versionName);
|
||||
|
||||
@@ -102,6 +102,11 @@ void ClientHandler::sendXmlAnswer(QByteArray array, PacketType packetType)
|
||||
emit sigSendXmlAnswer(array, packetType);
|
||||
}
|
||||
|
||||
void ClientHandler::sendFileBlock(QString path)
|
||||
{
|
||||
emit sigFileBlock(path);
|
||||
}
|
||||
|
||||
bool ClientHandler::getIsSendStopped()
|
||||
{
|
||||
return emit sigGetIsSendStopped();
|
||||
|
||||
Reference in New Issue
Block a user