mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
Построение списка ПП в ГУИ в процессе
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include "instructor.h"
|
#include "instructor.h"
|
||||||
#include "tasksAmmFim.h"
|
#include "tasksAmmFim.h"
|
||||||
|
#include "module.h"
|
||||||
#include "timingoftrainee.h"
|
#include "timingoftrainee.h"
|
||||||
#include "specialmessagebox.h"
|
#include "specialmessagebox.h"
|
||||||
|
|
||||||
@@ -282,7 +283,8 @@ void RecognizeSystem::recognize(QTcpSocket *socket)
|
|||||||
|
|
||||||
//}
|
//}
|
||||||
|
|
||||||
//xml-ответы на запросы к БД
|
//А)xml-ответы на запросы к БД
|
||||||
|
//B)перечни Подпроцедур
|
||||||
switch(packetType)
|
switch(packetType)
|
||||||
{
|
{
|
||||||
case TYPE_XMLANSWER_QUERY_DB__LIST_INSTRUCTORS:
|
case TYPE_XMLANSWER_QUERY_DB__LIST_INSTRUCTORS:
|
||||||
@@ -368,11 +370,12 @@ void RecognizeSystem::recognize(QTcpSocket *socket)
|
|||||||
countSend = 0;
|
countSend = 0;
|
||||||
|
|
||||||
if(packetType != TYPE_XMLANSWER_QUERY_LIST_SUB_PROC_AMM)
|
if(packetType != TYPE_XMLANSWER_QUERY_LIST_SUB_PROC_AMM)
|
||||||
|
{//xml-ответы на запросы к БД
|
||||||
xmlParserQueryToDB(packetType, array);
|
xmlParserQueryToDB(packetType, array);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{//перечни Подпроцедур
|
||||||
int i = 0;
|
xmlParserQuerySubProc(packetType, array);
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
packetType = PacketType::TYPE_NONE;
|
packetType = PacketType::TYPE_NONE;
|
||||||
@@ -885,6 +888,39 @@ void RecognizeSystem::xmlParserQueryToDB(PacketType packetType, QByteArray array
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RecognizeSystem::xmlParserQuerySubProc(PacketType packetType, QByteArray array)
|
||||||
|
{
|
||||||
|
QDomDocument commonDOM;
|
||||||
|
commonDOM.setContent(array);
|
||||||
|
|
||||||
|
switch(packetType)
|
||||||
|
{
|
||||||
|
case TYPE_XMLANSWER_QUERY_LIST_SUB_PROC_AMM:
|
||||||
|
{
|
||||||
|
QList<SubProc> listSubProc;
|
||||||
|
QString parentTask_dmCode = "";
|
||||||
|
QDomNode listNode = commonDOM.namedItem("ListSubProc");
|
||||||
|
parentTask_dmCode = listNode.toElement().attribute("dmCode");
|
||||||
|
|
||||||
|
for(int i = 0; i < listNode.childNodes().count(); i++)
|
||||||
|
{
|
||||||
|
QDomNode taskNode = listNode.childNodes().at(i);
|
||||||
|
if(taskNode.nodeName() == "SubProc")
|
||||||
|
{//Подпроцедура
|
||||||
|
SubProc subProc;
|
||||||
|
subProc.title = taskNode.toElement().attribute("title");
|
||||||
|
subProc.dmCode = taskNode.toElement().attribute("dmCode");
|
||||||
|
|
||||||
|
listSubProc.append(subProc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
emit sigAnswerQuerySubProc(listSubProc, parentTask_dmCode);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void RecognizeSystem::xmlParserQueryTasksXML(PacketType packetType, QByteArray array)
|
void RecognizeSystem::xmlParserQueryTasksXML(PacketType packetType, QByteArray array)
|
||||||
{
|
{
|
||||||
if(packetType == TYPE_XMLANSWER_QUERY_TASKS_XML_FIM)
|
if(packetType == TYPE_XMLANSWER_QUERY_TASKS_XML_FIM)
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
#include "group.h"
|
#include "group.h"
|
||||||
#include "Datas.h"
|
#include "Datas.h"
|
||||||
#include "tasksAmmFim.h"
|
#include "tasksAmmFim.h"
|
||||||
|
#include "module.h"
|
||||||
|
|
||||||
|
|
||||||
class RecognizeSystem : public QObject
|
class RecognizeSystem : public QObject
|
||||||
@@ -57,6 +58,7 @@ signals:
|
|||||||
void sigNotify(QString text);
|
void sigNotify(QString text);
|
||||||
void sigAnimationActivated(bool flag);
|
void sigAnimationActivated(bool flag);
|
||||||
void sigHashReady();
|
void sigHashReady();
|
||||||
|
void sigAnswerQuerySubProc(QList<SubProc> listSubProc, QString parentTask_dmCode);
|
||||||
|
|
||||||
void signal_AnswerDocsChanged();
|
void signal_AnswerDocsChanged();
|
||||||
|
|
||||||
@@ -75,6 +77,7 @@ private:
|
|||||||
|
|
||||||
void xmlParser(QByteArray array);
|
void xmlParser(QByteArray array);
|
||||||
void xmlParserQueryToDB(PacketType packetType, QByteArray array);
|
void xmlParserQueryToDB(PacketType packetType, QByteArray array);
|
||||||
|
void xmlParserQuerySubProc(PacketType packetType, QByteArray array);
|
||||||
void xmlParserQueryTasksXML(PacketType packetType, QByteArray array);
|
void xmlParserQueryTasksXML(PacketType packetType, QByteArray array);
|
||||||
|
|
||||||
void checkAccessType(QString type);
|
void checkAccessType(QString type);
|
||||||
|
|||||||
@@ -117,6 +117,8 @@ void ConnectorToServer::bindConnection()
|
|||||||
connect(recognizeSystem,&RecognizeSystem::sigAnswerQueryTasksXML_FIM,this,&ConnectorToServer::slot_AnswerQueryTasksXML_FIM);
|
connect(recognizeSystem,&RecognizeSystem::sigAnswerQueryTasksXML_FIM,this,&ConnectorToServer::slot_AnswerQueryTasksXML_FIM);
|
||||||
connect(recognizeSystem,&RecognizeSystem::sigAnswerQueryTasksXML_AMM,this,&ConnectorToServer::slot_AnswerQueryTasksXML_AMM);
|
connect(recognizeSystem,&RecognizeSystem::sigAnswerQueryTasksXML_AMM,this,&ConnectorToServer::slot_AnswerQueryTasksXML_AMM);
|
||||||
|
|
||||||
|
connect(recognizeSystem,&RecognizeSystem::sigAnswerQuerySubProc,this,&ConnectorToServer::slot_AnswerQuerySubProc);
|
||||||
|
|
||||||
connect(client,&TCPClient::signal_ConnectedToServer,this,&ConnectorToServer::signal_ConnectedToServer,Qt::AutoConnection);
|
connect(client,&TCPClient::signal_ConnectedToServer,this,&ConnectorToServer::signal_ConnectedToServer,Qt::AutoConnection);
|
||||||
|
|
||||||
connect(recognizeSystem,&RecognizeSystem::sigNotify,notifyController,&NotifyController::showWarning,Qt::AutoConnection);
|
connect(recognizeSystem,&RecognizeSystem::sigNotify,notifyController,&NotifyController::showWarning,Qt::AutoConnection);
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ public:
|
|||||||
QList<Classroom> getListClassrooms();
|
QList<Classroom> getListClassrooms();
|
||||||
QList<TaskAmmFim> getListTasksAMMforTrainee(int trainee_id);
|
QList<TaskAmmFim> getListTasksAMMforTrainee(int trainee_id);
|
||||||
QList<TaskAmmFim> getListTasksFIMforTrainee(int trainee_id);
|
QList<TaskAmmFim> getListTasksFIMforTrainee(int trainee_id);
|
||||||
|
QList<SubProc> getListSubProcForDMCode(QString dmCode);
|
||||||
int getCountTasksAMMforTrainee(int trainee_id);
|
int getCountTasksAMMforTrainee(int trainee_id);
|
||||||
int getCountTasksFIMforTrainee(int trainee_id);
|
int getCountTasksFIMforTrainee(int trainee_id);
|
||||||
|
|
||||||
@@ -96,6 +97,7 @@ public slots:
|
|||||||
void slot_AnswerQueryToDB_ListTasksFIMforTrainee(QList<TaskAmmFim> listTasks, int trainee_id);
|
void slot_AnswerQueryToDB_ListTasksFIMforTrainee(QList<TaskAmmFim> listTasks, int trainee_id);
|
||||||
void slot_AnswerQueryTasksXML_FIM(QByteArray array);
|
void slot_AnswerQueryTasksXML_FIM(QByteArray array);
|
||||||
void slot_AnswerQueryTasksXML_AMM(QByteArray array);
|
void slot_AnswerQueryTasksXML_AMM(QByteArray array);
|
||||||
|
void slot_AnswerQuerySubProc(QList<SubProc> listSubProc, QString parentTask_dmCode);
|
||||||
|
|
||||||
void slot_AnswerDocsChanged();
|
void slot_AnswerDocsChanged();
|
||||||
|
|
||||||
@@ -123,6 +125,8 @@ signals:
|
|||||||
void signal_UpdateTasksFIMforTrainee(int trainee_id);
|
void signal_UpdateTasksFIMforTrainee(int trainee_id);
|
||||||
void signal_UpdateTasksAMMforTrainee(int trainee_id);
|
void signal_UpdateTasksAMMforTrainee(int trainee_id);
|
||||||
|
|
||||||
|
void signal_UpdateSubProcForDMCode(QString dmCode);
|
||||||
|
|
||||||
void signal_ConnectedToServer(bool state);
|
void signal_ConnectedToServer(bool state);
|
||||||
|
|
||||||
void signal_reInitMessangerByUsers(QList<User> listUsers);
|
void signal_reInitMessangerByUsers(QList<User> listUsers);
|
||||||
@@ -160,6 +164,8 @@ private:
|
|||||||
QByteArray listTaskFimArray;
|
QByteArray listTaskFimArray;
|
||||||
QByteArray listTaskAmmArray;
|
QByteArray listTaskAmmArray;
|
||||||
|
|
||||||
|
QMap<QString, QList<SubProc>> mapSubProc;
|
||||||
|
|
||||||
ServerSettings serverSettings;
|
ServerSettings serverSettings;
|
||||||
ServerAuthorization serverAuth;
|
ServerAuthorization serverAuth;
|
||||||
|
|
||||||
|
|||||||
@@ -118,6 +118,21 @@ void ConnectorToServer::slot_AnswerQueryTasksXML_AMM(QByteArray array)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ConnectorToServer::slot_AnswerQuerySubProc(QList<SubProc> listSubProc, QString parentTask_dmCode)
|
||||||
|
{
|
||||||
|
mtxAccess.lock();
|
||||||
|
|
||||||
|
//Удаляем старые Подпроцедуры этого dmCode
|
||||||
|
mapSubProc.remove(parentTask_dmCode);
|
||||||
|
|
||||||
|
//Добавляем новые
|
||||||
|
mapSubProc.insert(parentTask_dmCode, listSubProc);
|
||||||
|
|
||||||
|
mtxAccess.unlock();
|
||||||
|
|
||||||
|
emit signal_UpdateSubProcForDMCode(parentTask_dmCode);
|
||||||
|
}
|
||||||
|
|
||||||
void ConnectorToServer::slot_AnswerDocsChanged()
|
void ConnectorToServer::slot_AnswerDocsChanged()
|
||||||
{
|
{
|
||||||
emit signal_AnswerDocsChanged();
|
emit signal_AnswerDocsChanged();
|
||||||
|
|||||||
@@ -62,6 +62,16 @@ QList<TaskAmmFim> ConnectorToServer::getListTasksFIMforTrainee(int trainee_id)
|
|||||||
return QList<TaskAmmFim>();
|
return QList<TaskAmmFim>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QList<SubProc> ConnectorToServer::getListSubProcForDMCode(QString dmCode)
|
||||||
|
{
|
||||||
|
QMutexLocker locker(&mtxAccess);
|
||||||
|
|
||||||
|
if(mapSubProc.contains(dmCode))
|
||||||
|
return mapSubProc.value(dmCode);
|
||||||
|
else
|
||||||
|
return QList<SubProc>();
|
||||||
|
}
|
||||||
|
|
||||||
int ConnectorToServer::getCountTasksAMMforTrainee(int trainee_id)
|
int ConnectorToServer::getCountTasksAMMforTrainee(int trainee_id)
|
||||||
{
|
{
|
||||||
QMutexLocker locker(&mtxAccess);
|
QMutexLocker locker(&mtxAccess);
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ ListSubProc::ListSubProc(ConnectorToServer* connectorToServer, QWidget *parent)
|
|||||||
QMovie *movie = new QMovie(":/resources/icons/762.gif");
|
QMovie *movie = new QMovie(":/resources/icons/762.gif");
|
||||||
waitAnimationWidget->setParent(this);
|
waitAnimationWidget->setParent(this);
|
||||||
waitAnimationWidget->initialize(movie,this);
|
waitAnimationWidget->initialize(movie,this);
|
||||||
|
|
||||||
|
connect(this->connectorToServer, &ConnectorToServer::signal_UpdateSubProcForDMCode, this, &ListSubProc::slot_UpdateSubProcForDMCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
ListSubProc::~ListSubProc()
|
ListSubProc::~ListSubProc()
|
||||||
@@ -45,3 +47,18 @@ void ListSubProc::setTask(TaskAmmFim *task)
|
|||||||
if(! connectorToServer->sendQueryListSubProc(this->task.ammProcedure.dmCode))
|
if(! connectorToServer->sendQueryListSubProc(this->task.ammProcedure.dmCode))
|
||||||
waitAnimationWidget->hideWithStop();
|
waitAnimationWidget->hideWithStop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ListSubProc::slot_UpdateSubProcForDMCode(QString dmCode)
|
||||||
|
{
|
||||||
|
if(this->task.ammProcedure.dmCode == dmCode)
|
||||||
|
{
|
||||||
|
QList<SubProc> list = connectorToServer->getListSubProcForDMCode(dmCode);
|
||||||
|
|
||||||
|
for(SubProc subProc : list)
|
||||||
|
{
|
||||||
|
ui->listWidget->addItem(subProc.dmCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
waitAnimationWidget->hideWithStop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -22,6 +22,9 @@ public:
|
|||||||
|
|
||||||
void setTask(TaskAmmFim* task);
|
void setTask(TaskAmmFim* task);
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void slot_UpdateSubProcForDMCode(QString dmCode);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::ListSubProc *ui;
|
Ui::ListSubProc *ui;
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,14 @@ struct ModeList
|
|||||||
bool autoM = false;
|
bool autoM = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct SubProc
|
||||||
|
{
|
||||||
|
QString dmCode;
|
||||||
|
QString title;
|
||||||
|
|
||||||
|
ModeList modeList;
|
||||||
|
};
|
||||||
|
|
||||||
class INSTRUCTORSANDTRAINEES_EXPORT Module
|
class INSTRUCTORSANDTRAINEES_EXPORT Module
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -6,13 +6,14 @@ DocsAnswerParser::DocsAnswerParser(QObject *parent) : QObject(parent)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArray DocsAnswerParser::listSubProc(QList<SubProc> list)
|
QByteArray DocsAnswerParser::listSubProc(QList<SubProc> list, QString dmCode)
|
||||||
{
|
{
|
||||||
QDomDocument commonDOM;
|
QDomDocument commonDOM;
|
||||||
if(! Tools::loadXMLtoDOM(":/resources/blankXML/ListSubProc.xml", &commonDOM))
|
if(! Tools::loadXMLtoDOM(":/resources/blankXML/ListSubProc.xml", &commonDOM))
|
||||||
return QByteArray();
|
return QByteArray();
|
||||||
|
|
||||||
QDomNode listNode = commonDOM.namedItem("ListSubProc");
|
QDomNode listNode = commonDOM.namedItem("ListSubProc");
|
||||||
|
listNode.toElement().setAttribute("dmCode", dmCode);
|
||||||
|
|
||||||
for(SubProc subProc : list)
|
for(SubProc subProc : list)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ public:
|
|||||||
explicit DocsAnswerParser(QObject *parent = nullptr);
|
explicit DocsAnswerParser(QObject *parent = nullptr);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QByteArray listSubProc(QList<SubProc> list);
|
QByteArray listSubProc(QList<SubProc> list, QString dmCode);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
|
|||||||
@@ -5,15 +5,6 @@
|
|||||||
#include "updatecontroller.h"
|
#include "updatecontroller.h"
|
||||||
#include "module.h"
|
#include "module.h"
|
||||||
|
|
||||||
struct SubProc
|
|
||||||
{
|
|
||||||
QString dmCode;
|
|
||||||
QString title;
|
|
||||||
|
|
||||||
ModeList modeList;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class DocsUpdater : public QObject
|
class DocsUpdater : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|||||||
@@ -527,7 +527,7 @@ void ProcessingSystem::processingClientQueryListSubProc(ClientHandler *client, Q
|
|||||||
{
|
{
|
||||||
QList<SubProc> list = docsUpdater->getListSubProcForDMcode(dmCode);
|
QList<SubProc> list = docsUpdater->getListSubProcForDMcode(dmCode);
|
||||||
|
|
||||||
QByteArray arrayAnswer = dataParser->getDocsAnswerParser()->listSubProc(list);
|
QByteArray arrayAnswer = dataParser->getDocsAnswerParser()->listSubProc(list, dmCode);
|
||||||
//client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_LIST_SUB_PROC_AMM);
|
//client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_LIST_SUB_PROC_AMM);
|
||||||
client->sendFileBlockByteArray(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_LIST_SUB_PROC_AMM);
|
client->sendFileBlockByteArray(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_LIST_SUB_PROC_AMM);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user