mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
Формируются списки подпроцедур 1 ур в сервере
This commit is contained in:
@@ -30,6 +30,9 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
|
|||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
|
//Пока не нужно
|
||||||
|
ui->btnTasksCommon->setVisible(false);
|
||||||
|
|
||||||
qDebug() << "InstructorsAndTraineesWidget init thread ID " << QThread::currentThreadId();
|
qDebug() << "InstructorsAndTraineesWidget init thread ID " << QThread::currentThreadId();
|
||||||
|
|
||||||
ui->widget_Control->setObjectName("widgetControl");
|
ui->widget_Control->setObjectName("widgetControl");
|
||||||
|
|||||||
@@ -148,23 +148,21 @@ void CommonClientHandler::slot_DocsChanged()
|
|||||||
{
|
{
|
||||||
ClientHandler *handler = clientsMap->value(idSocket);
|
ClientHandler *handler = clientsMap->value(idSocket);
|
||||||
|
|
||||||
//Проверяем, есть ли клиенты TYPE_GUI
|
TypeClientAutorization type = handler->getClient()->getTypeClient();
|
||||||
if(handler->getClient()->getTypeClient() == TypeClientAutorization::TYPE_GUI)
|
|
||||||
{//Отправляем этому клиенту оповещение об изменении docs.xml
|
|
||||||
|
|
||||||
/*
|
//Отправляем всем заинтересованным клиентам оповещение об изменении docs.xml
|
||||||
ClientQueryTasksXML clientQueryTasksXML;
|
if(type == TypeClientAutorization::TYPE_GUI)
|
||||||
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);
|
handler->sendPacketType(PacketType::TYPE_XMLANSWER_DOCS_CHANGED);
|
||||||
}
|
}
|
||||||
|
else if(type == TypeClientAutorization::TYPE_QT_CLIENT)
|
||||||
|
{
|
||||||
|
handler->sendPacketType(PacketType::TYPE_XMLANSWER_DOCS_CHANGED);
|
||||||
|
}
|
||||||
|
else if(type == TypeClientAutorization::TYPE_UNITY_CLIENT)
|
||||||
|
{
|
||||||
|
//handler->sendPacketType(PacketType::TYPE_XMLANSWER_DOCS_CHANGED); //Unity не обязательно!
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ bool DocsUpdater::slot_update()
|
|||||||
|
|
||||||
deleteAllModulsAMM();
|
deleteAllModulsAMM();
|
||||||
listTasksAMM.clear();
|
listTasksAMM.clear();
|
||||||
|
subProcMap.clear();
|
||||||
|
|
||||||
domElementParserAMM(manifestElement, nullptr);
|
domElementParserAMM(manifestElement, nullptr);
|
||||||
|
|
||||||
@@ -147,11 +148,32 @@ void DocsUpdater::domElementParserAMM(QDomElement element, Module* moduleParent)
|
|||||||
//Активность
|
//Активность
|
||||||
//QString canplay = nodeMap.namedItem("canplay").nodeValue();
|
//QString canplay = nodeMap.namedItem("canplay").nodeValue();
|
||||||
|
|
||||||
//Обновление Активности
|
|
||||||
|
//Обновление Активности и построение списка подпроцедур 1го уровня
|
||||||
|
/*
|
||||||
QString dmCode = DMmodulParent->dmCode();
|
QString dmCode = DMmodulParent->dmCode();
|
||||||
|
|
||||||
QString canplay = defineCanplayByScenXML(dmCode);
|
QString canplay = defineCanplayByScenXML(dmCode);
|
||||||
|
|
||||||
DMmodulParent->setModeList(parseCanplay(canplay));
|
DMmodulParent->setModeList(parseCanplay(canplay));
|
||||||
nodeMap.namedItem("canplay").setNodeValue(canplay);
|
nodeMap.namedItem("canplay").setNodeValue(canplay);
|
||||||
|
*/
|
||||||
|
|
||||||
|
QString dmCode = DMmodulParent->dmCode();
|
||||||
|
QString canplay = "";
|
||||||
|
QList<SubProc> listSubProc;
|
||||||
|
if(processingScenXML(dmCode, canplay, listSubProc))
|
||||||
|
{
|
||||||
|
DMmodulParent->setModeList(parseCanplay(canplay));
|
||||||
|
nodeMap.namedItem("canplay").setNodeValue(canplay);
|
||||||
|
|
||||||
|
subProcMap.insert(dmCode, listSubProc);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DMmodulParent->setModeList(parseCanplay(canplay));
|
||||||
|
nodeMap.namedItem("canplay").setNodeValue(canplay);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
DMmodulParent->setLangStructEng(nodeMap.namedItem("techName").nodeValue(),
|
DMmodulParent->setLangStructEng(nodeMap.namedItem("techName").nodeValue(),
|
||||||
@@ -236,9 +258,11 @@ ModeList DocsUpdater::parseCanplay(QString canplay)
|
|||||||
return modeList;
|
return modeList;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString DocsUpdater::defineCanplayByScenXML(QString dmCode)
|
bool DocsUpdater::processingScenXML(const QString dmCode, QString &canplay, QList<SubProc> &listSubProc)
|
||||||
{
|
{
|
||||||
QString canplay = "";
|
listSubProc.clear();
|
||||||
|
|
||||||
|
canplay = "";
|
||||||
QString signDemo = "-";
|
QString signDemo = "-";
|
||||||
QString signTrain = "-";
|
QString signTrain = "-";
|
||||||
QString signExam = "-";
|
QString signExam = "-";
|
||||||
@@ -247,43 +271,82 @@ QString DocsUpdater::defineCanplayByScenXML(QString dmCode)
|
|||||||
QString nameScenXMLFile = "/" + dmCode + ".xml";
|
QString nameScenXMLFile = "/" + dmCode + ".xml";
|
||||||
QString pathScenXMLFile = updateController->getPathScensFile(nameScenXMLFile);
|
QString pathScenXMLFile = updateController->getPathScensFile(nameScenXMLFile);
|
||||||
|
|
||||||
|
|
||||||
QDomDocument docScenDOM;
|
QDomDocument docScenDOM;
|
||||||
if(! Tools::loadXMLtoDOM(pathScenXMLFile, &docScenDOM))
|
if(! Tools::loadXMLtoDOM(pathScenXMLFile, &docScenDOM))
|
||||||
return canplay;
|
return false;
|
||||||
|
|
||||||
QDomElement scenarioElement = docScenDOM.firstChildElement("scenario");
|
QDomElement scenarioElement = docScenDOM.firstChildElement("scenario");
|
||||||
if(scenarioElement.isNull())
|
if(scenarioElement.isNull())
|
||||||
return canplay;
|
return false;
|
||||||
|
|
||||||
|
|
||||||
QDomElement demoElement = scenarioElement.firstChildElement("demo");
|
QDomElement demoElement = scenarioElement.firstChildElement("demo");
|
||||||
if(!demoElement.isNull())
|
if(!demoElement.isNull())
|
||||||
{
|
{
|
||||||
|
//canplay
|
||||||
if(demoElement.toElement().attribute("canplay") == "True")
|
if(demoElement.toElement().attribute("canplay") == "True")
|
||||||
signDemo = "+";
|
signDemo = "+";
|
||||||
|
|
||||||
|
//subProc
|
||||||
|
selectSubProc(demoElement, listSubProc);
|
||||||
}
|
}
|
||||||
|
|
||||||
QDomElement trainElement = scenarioElement.firstChildElement("train");
|
QDomElement trainElement = scenarioElement.firstChildElement("train");
|
||||||
if(!trainElement.isNull())
|
if(!trainElement.isNull())
|
||||||
{
|
{
|
||||||
|
//canplay
|
||||||
if(trainElement.toElement().attribute("canplay") == "True")
|
if(trainElement.toElement().attribute("canplay") == "True")
|
||||||
signTrain = "+";
|
signTrain = "+";
|
||||||
|
|
||||||
|
//subProc
|
||||||
|
selectSubProc(trainElement, listSubProc);
|
||||||
}
|
}
|
||||||
|
|
||||||
QDomElement examElement = scenarioElement.firstChildElement("exam");
|
QDomElement examElement = scenarioElement.firstChildElement("exam");
|
||||||
if(!examElement.isNull())
|
if(!examElement.isNull())
|
||||||
{
|
{
|
||||||
|
//canplay
|
||||||
if(examElement.toElement().attribute("canplay") == "True")
|
if(examElement.toElement().attribute("canplay") == "True")
|
||||||
signExam = "+";
|
signExam = "+";
|
||||||
|
|
||||||
|
//subProc
|
||||||
|
selectSubProc(examElement, listSubProc);
|
||||||
}
|
}
|
||||||
|
|
||||||
QDomElement autoElement = scenarioElement.firstChildElement("auto");
|
QDomElement autoElement = scenarioElement.firstChildElement("auto");
|
||||||
if(!autoElement.isNull())
|
if(!autoElement.isNull())
|
||||||
{
|
{
|
||||||
|
//canplay
|
||||||
if(autoElement.toElement().attribute("canplay") == "True")
|
if(autoElement.toElement().attribute("canplay") == "True")
|
||||||
signAuto = "+";
|
signAuto = "+";
|
||||||
|
|
||||||
|
//subProc
|
||||||
|
//Из этого режима не берем!
|
||||||
}
|
}
|
||||||
|
|
||||||
canplay = QString("%1/%2/%3/%4").arg(signDemo, signTrain, signExam, signAuto);
|
canplay = QString("%1/%2/%3/%4").arg(signDemo, signTrain, signExam, signAuto);
|
||||||
|
|
||||||
return canplay;
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DocsUpdater::selectSubProc(QDomElement &modeElement, QList<SubProc> &listSubProc)
|
||||||
|
{
|
||||||
|
QDomNodeList nodeList = modeElement.elementsByTagName("node");
|
||||||
|
for(int i = 0; i < nodeList.count(); i++)
|
||||||
|
{
|
||||||
|
QDomNode node = nodeList.at(i);
|
||||||
|
if(node.toElement().attribute("type") == "Subproc")
|
||||||
|
{
|
||||||
|
QDomElement subProcElement = node.firstChildElement("subproc");
|
||||||
|
if(!subProcElement.isNull())
|
||||||
|
{
|
||||||
|
SubProc subProc;
|
||||||
|
subProc.dmCode = subProcElement.toElement().attribute("dmCode");
|
||||||
|
subProc.title = subProcElement.toElement().attribute("title");
|
||||||
|
|
||||||
|
listSubProc.append(subProc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,12 @@
|
|||||||
#include "updatecontroller.h"
|
#include "updatecontroller.h"
|
||||||
#include "module.h"
|
#include "module.h"
|
||||||
|
|
||||||
|
struct SubProc
|
||||||
|
{
|
||||||
|
QString dmCode;
|
||||||
|
QString title;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
class DocsUpdater : public QObject
|
class DocsUpdater : public QObject
|
||||||
{
|
{
|
||||||
@@ -24,7 +30,11 @@ private:
|
|||||||
void domElementParserAMM(QDomElement element, Module* moduleParent);
|
void domElementParserAMM(QDomElement element, Module* moduleParent);
|
||||||
void deleteAllModulsAMM();
|
void deleteAllModulsAMM();
|
||||||
ModeList parseCanplay(QString canplay);
|
ModeList parseCanplay(QString canplay);
|
||||||
QString defineCanplayByScenXML(QString dmCode);
|
|
||||||
|
bool processingScenXML(const QString dmCode, QString& canplay, QList<SubProc>& listSubProc);
|
||||||
|
|
||||||
|
void selectSubProc(QDomElement& modeElement, QList<SubProc>& listSubProc);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
UpdateController* updateController;
|
UpdateController* updateController;
|
||||||
@@ -32,6 +42,8 @@ private:
|
|||||||
bool flagStop;
|
bool flagStop;
|
||||||
QList<Module*> listAllModulesAMM; //?
|
QList<Module*> listAllModulesAMM; //?
|
||||||
QList<TaskAmmFim> listTasksAMM; //?
|
QList<TaskAmmFim> listTasksAMM; //?
|
||||||
|
|
||||||
|
QMap<QString, QList<SubProc>> subProcMap;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // DOCSUPDATER_H
|
#endif // DOCSUPDATER_H
|
||||||
|
|||||||
Reference in New Issue
Block a user