mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
Рефакт TaskAMMFIMTreePreparation
This commit is contained in:
@@ -265,6 +265,12 @@ void RecognizeSystem::recognize(QTcpSocket *socket)
|
|||||||
emit sigAnimationActivated(false);
|
emit sigAnimationActivated(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(packetType == PacketType::HASH_READY)
|
||||||
|
{
|
||||||
|
//connectorToServer->sendQueryTasksXML("fim");
|
||||||
|
//connectorToServer->sendQueryTasksXML("amm");
|
||||||
|
}
|
||||||
|
|
||||||
//xml-ответы на запросы к БД
|
//xml-ответы на запросы к БД
|
||||||
switch(packetType)
|
switch(packetType)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre
|
|||||||
connect(this, &AMMtasksWidget::signal_prepareAMMListItems, taskTreePreparation, &TaskAMMFIMTreePreparation::slot_prepareAMMListItems);
|
connect(this, &AMMtasksWidget::signal_prepareAMMListItems, taskTreePreparation, &TaskAMMFIMTreePreparation::slot_prepareAMMListItems);
|
||||||
connect(this, &AMMtasksWidget::signal_prepareAMMListItemsForTrainee, taskTreePreparation, &TaskAMMFIMTreePreparation::slot_prepareAMMListItemsForTrainee);
|
connect(this, &AMMtasksWidget::signal_prepareAMMListItemsForTrainee, taskTreePreparation, &TaskAMMFIMTreePreparation::slot_prepareAMMListItemsForTrainee);
|
||||||
connect(taskTreePreparation, &TaskAMMFIMTreePreparation::signal_listAMMItemsReady, this, &AMMtasksWidget::slot_AMMlistItemsReady);
|
connect(taskTreePreparation, &TaskAMMFIMTreePreparation::signal_listAMMItemsReady, this, &AMMtasksWidget::slot_AMMlistItemsReady);
|
||||||
|
connect(this, &AMMtasksWidget::signal_stopParserPreparation, taskTreePreparation, &TaskAMMFIMTreePreparation::slot_stopParserPreparation);
|
||||||
|
|
||||||
waitAnimationWidget = new WaitAnimationWidget;
|
waitAnimationWidget = new WaitAnimationWidget;
|
||||||
QMovie *movie = new QMovie(":/resources/icons/762.gif");
|
QMovie *movie = new QMovie(":/resources/icons/762.gif");
|
||||||
@@ -80,7 +81,7 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre
|
|||||||
AMMtasksWidget::~AMMtasksWidget()
|
AMMtasksWidget::~AMMtasksWidget()
|
||||||
{
|
{
|
||||||
waitAnimationWidget->hideWithStop();
|
waitAnimationWidget->hideWithStop();
|
||||||
taskTreePreparation->stopParser();
|
emit signal_stopParserPreparation();
|
||||||
|
|
||||||
threadPreparation->quit();
|
threadPreparation->quit();
|
||||||
threadPreparation->wait();
|
threadPreparation->wait();
|
||||||
@@ -163,35 +164,11 @@ void AMMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
|
|||||||
|
|
||||||
int id = current->text(ColumnsTreeAMM::clmnAMM_ID).toInt();
|
int id = current->text(ColumnsTreeAMM::clmnAMM_ID).toInt();
|
||||||
|
|
||||||
Module* module = taskTreePreparation->getModuleAMMbyID(id);
|
if(taskTreePreparation->getTypeModuleAMMbyID(id) == ModuleType::TYPE_PM)
|
||||||
|
|
||||||
if(module)
|
|
||||||
{
|
|
||||||
QString type = "Code";
|
|
||||||
QString code = "";
|
|
||||||
|
|
||||||
if(module->getType() == ModuleType::TYPE_PM)
|
|
||||||
{
|
|
||||||
PM* PMmodul = static_cast<PM*>(module);
|
|
||||||
type = "PM";
|
|
||||||
code = PMmodul->pmCode();
|
|
||||||
|
|
||||||
ui->btnAssignTask->setEnabled(false);
|
ui->btnAssignTask->setEnabled(false);
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
DM* DMmodul = static_cast<DM*>(module);
|
|
||||||
type = "DM";
|
|
||||||
code = DMmodul->dmCode();
|
|
||||||
|
|
||||||
ui->btnAssignTask->setEnabled(true);
|
ui->btnAssignTask->setEnabled(true);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ui->btnAssignTask->setEnabled(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void AMMtasksWidget::slot_NeedUpdateUI()
|
void AMMtasksWidget::slot_NeedUpdateUI()
|
||||||
{
|
{
|
||||||
@@ -292,29 +269,16 @@ void AMMtasksWidget::assignTaskAMMtoTrainee()
|
|||||||
|
|
||||||
int id = current->text(ColumnsTreeAMM::clmnAMM_ID).toInt();
|
int id = current->text(ColumnsTreeAMM::clmnAMM_ID).toInt();
|
||||||
|
|
||||||
Module* module = taskTreePreparation->getModuleAMMbyID(id);
|
TaskAmmFim taskNew = taskTreePreparation->getTaskAMMbyID(id);
|
||||||
|
|
||||||
if(module)
|
if(taskNew.getID())
|
||||||
{
|
{
|
||||||
if(module->getType() == ModuleType::TYPE_DM)
|
|
||||||
{
|
|
||||||
QString dmCode = "";
|
|
||||||
QString techName = "";
|
|
||||||
DM* DMmodul = static_cast<DM*>(module);
|
|
||||||
dmCode = DMmodul->dmCode();
|
|
||||||
techName = DMmodul->getLangStructRus().techName;
|
|
||||||
|
|
||||||
int trainee_id = connectorToServer->getIdTraineeByLogin(loginTraineeSelected);
|
int trainee_id = connectorToServer->getIdTraineeByLogin(loginTraineeSelected);
|
||||||
|
|
||||||
TaskAmmFim taskNew;
|
|
||||||
taskNew.ammProcedure.title = techName;
|
|
||||||
taskNew.ammProcedure.dmCode = dmCode;
|
|
||||||
|
|
||||||
emit signal_AssignedTask();
|
emit signal_AssignedTask();
|
||||||
connectorToServer->sendQueryToDB(TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_AMM_TO_TRAINEE, trainee_id, &taskNew);
|
connectorToServer->sendQueryToDB(TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_AMM_TO_TRAINEE, trainee_id, &taskNew);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
void AMMtasksWidget::on_btnDelete_clicked()
|
void AMMtasksWidget::on_btnDelete_clicked()
|
||||||
{
|
{
|
||||||
@@ -346,10 +310,14 @@ void AMMtasksWidget::on_btnCheck_clicked()
|
|||||||
|
|
||||||
int id = treeItemCurrent->text(ColumnsTreeAMM::clmnAMM_ID).toInt();
|
int id = treeItemCurrent->text(ColumnsTreeAMM::clmnAMM_ID).toInt();
|
||||||
|
|
||||||
|
TaskAmmFim task = taskTreePreparation->getTaskAMMbyID(id);
|
||||||
|
|
||||||
|
if(!task.getID())
|
||||||
|
return;
|
||||||
|
|
||||||
DialogCheckTask dlg(connectorToServer, "amm", this);
|
DialogCheckTask dlg(connectorToServer, "amm", this);
|
||||||
|
|
||||||
//dlg.setTask(task);
|
dlg.setTask(&task);
|
||||||
dlg.setIDTask(id);
|
|
||||||
|
|
||||||
QDialog* dialog = new QDialog(this);
|
QDialog* dialog = new QDialog(this);
|
||||||
QHBoxLayout *layout = new QHBoxLayout(dialog);
|
QHBoxLayout *layout = new QHBoxLayout(dialog);
|
||||||
|
|||||||
@@ -57,6 +57,8 @@ Q_SIGNALS:
|
|||||||
|
|
||||||
void signal_AssignedTask();
|
void signal_AssignedTask();
|
||||||
|
|
||||||
|
void signal_stopParserPreparation();
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void slot_AMMlistItemsReady(QList<QTreeWidgetItem*> listItems);
|
void slot_AMMlistItemsReady(QList<QTreeWidgetItem*> listItems);
|
||||||
|
|
||||||
|
|||||||
@@ -31,11 +31,15 @@ DialogCheckTask::DialogCheckTask(ConnectorToServer* connectorToServer, QString t
|
|||||||
ui->btnRight->setText(tr("Completed"));
|
ui->btnRight->setText(tr("Completed"));
|
||||||
ui->btnWrong->setText(tr("New"));
|
ui->btnWrong->setText(tr("New"));
|
||||||
ui->btnWrong->setIcon(QIcon(QStringLiteral(":/resources/icons/circleGray.png")));
|
ui->btnWrong->setIcon(QIcon(QStringLiteral(":/resources/icons/circleGray.png")));
|
||||||
|
|
||||||
|
ui->btnRight->setEnabled(false);
|
||||||
|
ui->btnWrong->setEnabled(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DialogCheckTask::~DialogCheckTask()
|
DialogCheckTask::~DialogCheckTask()
|
||||||
{
|
{
|
||||||
|
if(fimTasksWidget)
|
||||||
delete fimTasksWidget;
|
delete fimTasksWidget;
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
@@ -45,18 +49,34 @@ void DialogCheckTask::setTask(TaskAmmFim* task)
|
|||||||
this->task = *task;
|
this->task = *task;
|
||||||
id_task = task->getID();
|
id_task = task->getID();
|
||||||
|
|
||||||
|
if(type == "fim")
|
||||||
|
{
|
||||||
//Задача
|
//Задача
|
||||||
fimTasksWidget->setOneTaskFim(&this->task);
|
fimTasksWidget->setOneTaskFim(&this->task);
|
||||||
|
|
||||||
//Репорт
|
//Репорт
|
||||||
outReport(this->task.report);
|
outReport(this->task.report);
|
||||||
}
|
}
|
||||||
|
else if(type == "amm")
|
||||||
|
{
|
||||||
|
if(this->task.status == "new")
|
||||||
|
ui->btnRight->setEnabled(true);
|
||||||
|
else
|
||||||
|
ui->btnWrong->setEnabled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
TaskAmmFim DialogCheckTask::getTask()
|
TaskAmmFim DialogCheckTask::getTask()
|
||||||
{
|
{
|
||||||
return this->task;
|
return this->task;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DialogCheckTask::setModule(Module *module)
|
||||||
|
{
|
||||||
|
this->module = *module;
|
||||||
|
id_task = this->module.getID();
|
||||||
|
}
|
||||||
|
|
||||||
void DialogCheckTask::outReport(FIMReport report)
|
void DialogCheckTask::outReport(FIMReport report)
|
||||||
{
|
{
|
||||||
QString str;
|
QString str;
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ public:
|
|||||||
TaskAmmFim getTask();
|
TaskAmmFim getTask();
|
||||||
bool getFlChanged(){return flChanged;}
|
bool getFlChanged(){return flChanged;}
|
||||||
void setIDTask(int id){id_task = id;}
|
void setIDTask(int id){id_task = id;}
|
||||||
|
void setModule(Module* module);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void on_btnWrong_clicked();
|
void on_btnWrong_clicked();
|
||||||
@@ -32,6 +33,7 @@ private:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
TaskAmmFim task;
|
TaskAmmFim task;
|
||||||
|
Module module;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::DialogCheckTask *ui;
|
Ui::DialogCheckTask *ui;
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre
|
|||||||
connect(this, &FIMtasksWidget::signal_prepareFIMListItems, taskTreePreparation, &TaskAMMFIMTreePreparation::slot_prepareFIMListItems);
|
connect(this, &FIMtasksWidget::signal_prepareFIMListItems, taskTreePreparation, &TaskAMMFIMTreePreparation::slot_prepareFIMListItems);
|
||||||
connect(this, &FIMtasksWidget::signal_prepareFIMListItemsForTrainee, taskTreePreparation, &TaskAMMFIMTreePreparation::slot_prepareFIMListItemsForTrainee);
|
connect(this, &FIMtasksWidget::signal_prepareFIMListItemsForTrainee, taskTreePreparation, &TaskAMMFIMTreePreparation::slot_prepareFIMListItemsForTrainee);
|
||||||
connect(taskTreePreparation, &TaskAMMFIMTreePreparation::signal_listFIMItemsReady, this, &FIMtasksWidget::slot_FIMlistItemsReady);
|
connect(taskTreePreparation, &TaskAMMFIMTreePreparation::signal_listFIMItemsReady, this, &FIMtasksWidget::slot_FIMlistItemsReady);
|
||||||
|
connect(this, &FIMtasksWidget::signal_stopParserPreparation, taskTreePreparation, &TaskAMMFIMTreePreparation::slot_stopParserPreparation);
|
||||||
|
|
||||||
waitAnimationWidget = new WaitAnimationWidget;
|
waitAnimationWidget = new WaitAnimationWidget;
|
||||||
QMovie *movie = new QMovie(":/resources/icons/762.gif");
|
QMovie *movie = new QMovie(":/resources/icons/762.gif");
|
||||||
@@ -83,7 +84,7 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre
|
|||||||
FIMtasksWidget::~FIMtasksWidget()
|
FIMtasksWidget::~FIMtasksWidget()
|
||||||
{
|
{
|
||||||
waitAnimationWidget->hideWithStop();
|
waitAnimationWidget->hideWithStop();
|
||||||
taskTreePreparation->stopParser();
|
emit signal_stopParserPreparation();
|
||||||
|
|
||||||
threadPreparation->quit();
|
threadPreparation->quit();
|
||||||
threadPreparation->wait();
|
threadPreparation->wait();
|
||||||
@@ -166,9 +167,9 @@ void FIMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
|
|||||||
{//Выбрана задача
|
{//Выбрана задача
|
||||||
int id = current->text(ColumnsTreeFIM::clmnFIM_ID).toInt();
|
int id = current->text(ColumnsTreeFIM::clmnFIM_ID).toInt();
|
||||||
|
|
||||||
TaskAmmFim* task = taskTreePreparation->getTaskFIMbyID(id);
|
TaskAmmFim task = taskTreePreparation->getTaskFIMbyID(id);
|
||||||
|
|
||||||
if(task == nullptr)
|
if(!task.getID())
|
||||||
{
|
{
|
||||||
ui->btnAssignTask->setEnabled(false);
|
ui->btnAssignTask->setEnabled(false);
|
||||||
|
|
||||||
@@ -176,13 +177,13 @@ void FIMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current,
|
|||||||
ui->btnCheck->setEnabled(false);
|
ui->btnCheck->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
code = task->title;
|
code = task.title;
|
||||||
|
|
||||||
ui->btnAssignTask->setEnabled(true);
|
ui->btnAssignTask->setEnabled(true);
|
||||||
|
|
||||||
ui->btnDelete->setEnabled(true);
|
ui->btnDelete->setEnabled(true);
|
||||||
|
|
||||||
if(task->status != "new")
|
if(task.status != "new")
|
||||||
ui->btnCheck->setEnabled(true);
|
ui->btnCheck->setEnabled(true);
|
||||||
else
|
else
|
||||||
ui->btnCheck->setEnabled(false);
|
ui->btnCheck->setEnabled(false);
|
||||||
@@ -298,14 +299,14 @@ void FIMtasksWidget::assignTaskFIMtoTrainee()
|
|||||||
|
|
||||||
int id = current->text(ColumnsTreeFIM::clmnFIM_ID).toInt();
|
int id = current->text(ColumnsTreeFIM::clmnFIM_ID).toInt();
|
||||||
|
|
||||||
TaskAmmFim* task = taskTreePreparation->getTaskFIMbyID(id);
|
TaskAmmFim task = taskTreePreparation->getTaskFIMbyID(id);
|
||||||
|
|
||||||
if(task)
|
if(task.getID())
|
||||||
{
|
{
|
||||||
int trainee_id = connectorToServer->getIdTraineeByLogin(loginTraineeSelected);
|
int trainee_id = connectorToServer->getIdTraineeByLogin(loginTraineeSelected);
|
||||||
|
|
||||||
TaskAmmFim taskNew;
|
TaskAmmFim taskNew;
|
||||||
taskNew.title = task->title;
|
taskNew.title = task.title;
|
||||||
|
|
||||||
//Назначенные неисправности
|
//Назначенные неисправности
|
||||||
for (int i = 0; i < current->childCount(); i++)
|
for (int i = 0; i < current->childCount(); i++)
|
||||||
@@ -314,7 +315,7 @@ void FIMtasksWidget::assignTaskFIMtoTrainee()
|
|||||||
|
|
||||||
if(itemMalfunction->checkState(0) == Qt::Checked)
|
if(itemMalfunction->checkState(0) == Qt::Checked)
|
||||||
{
|
{
|
||||||
Malfunction malfunction = task->malfunctionList.at(i);
|
Malfunction malfunction = task.malfunctionList.at(i);
|
||||||
taskNew.malfunctionList.append(malfunction);
|
taskNew.malfunctionList.append(malfunction);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -359,11 +360,14 @@ void FIMtasksWidget::on_btnCheck_clicked()
|
|||||||
|
|
||||||
int id = treeItemCurrent->text(ColumnsTreeFIM::clmnFIM_ID).toInt();
|
int id = treeItemCurrent->text(ColumnsTreeFIM::clmnFIM_ID).toInt();
|
||||||
|
|
||||||
TaskAmmFim* task = taskTreePreparation->getTaskFIMbyID(id);
|
TaskAmmFim task = taskTreePreparation->getTaskFIMbyID(id);
|
||||||
|
|
||||||
|
if(!task.getID())
|
||||||
|
return;
|
||||||
|
|
||||||
DialogCheckTask dlg(connectorToServer, "fim", this);
|
DialogCheckTask dlg(connectorToServer, "fim", this);
|
||||||
|
|
||||||
dlg.setTask(task);
|
dlg.setTask(&task);
|
||||||
|
|
||||||
QDialog* dialog = new QDialog(this);
|
QDialog* dialog = new QDialog(this);
|
||||||
QHBoxLayout *layout = new QHBoxLayout(dialog);
|
QHBoxLayout *layout = new QHBoxLayout(dialog);
|
||||||
|
|||||||
@@ -59,6 +59,8 @@ Q_SIGNALS:
|
|||||||
|
|
||||||
void signal_AssignedTask();
|
void signal_AssignedTask();
|
||||||
|
|
||||||
|
void signal_stopParserPreparation();
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void slot_FIMlistItemsReady(QList<QTreeWidgetItem*> listItems);
|
void slot_FIMlistItemsReady(QList<QTreeWidgetItem*> listItems);
|
||||||
|
|
||||||
|
|||||||
@@ -13,37 +13,68 @@ TaskAMMFIMTreePreparation::TaskAMMFIMTreePreparation(TypeListTreeAMMFIM type, QO
|
|||||||
|
|
||||||
TaskAMMFIMTreePreparation::~TaskAMMFIMTreePreparation()
|
TaskAMMFIMTreePreparation::~TaskAMMFIMTreePreparation()
|
||||||
{
|
{
|
||||||
|
mtxAccess.lock();
|
||||||
deleteAllModulsAMM();
|
deleteAllModulsAMM();
|
||||||
deleteAllTaskFIM();
|
mtxAccess.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TaskAMMFIMTreePreparation::stopParser()
|
void TaskAMMFIMTreePreparation::slot_stopParserPreparation()
|
||||||
{
|
{
|
||||||
flagStop = true;
|
flagStop = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TaskAmmFim* TaskAMMFIMTreePreparation::getTaskFIMbyID(int id)
|
TaskAmmFim TaskAMMFIMTreePreparation::getTaskFIMbyID(int id)
|
||||||
{
|
{
|
||||||
for(int i = 0; i < listTaskFIM.count(); i++)
|
mtxAccess.lock();
|
||||||
|
for(int i = 0; i < listTasksFIM.count(); i++)
|
||||||
{/*Задачи*/
|
{/*Задачи*/
|
||||||
TaskAmmFim* task = listTaskFIM.at(i);
|
TaskAmmFim task = listTasksFIM.at(i);
|
||||||
if(task->id == id)
|
if(task.id == id)
|
||||||
|
{
|
||||||
|
mtxAccess.unlock();
|
||||||
return task;
|
return task;
|
||||||
}
|
}
|
||||||
return nullptr;
|
}
|
||||||
|
mtxAccess.unlock();
|
||||||
|
return TaskAmmFim();
|
||||||
}
|
}
|
||||||
|
|
||||||
Module* TaskAMMFIMTreePreparation::getModuleAMMbyID(int id)
|
TaskAmmFim TaskAMMFIMTreePreparation::getTaskAMMbyID(int id)
|
||||||
{
|
{
|
||||||
|
mtxAccess.lock();
|
||||||
|
for(int i = 0; i < listTasksAMM.count(); i++)
|
||||||
|
{/*Задачи*/
|
||||||
|
TaskAmmFim task = listTasksAMM.at(i);
|
||||||
|
if(task.id == id)
|
||||||
|
{
|
||||||
|
mtxAccess.unlock();
|
||||||
|
return task;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mtxAccess.unlock();
|
||||||
|
return TaskAmmFim();
|
||||||
|
}
|
||||||
|
|
||||||
|
ModuleType TaskAMMFIMTreePreparation::getTypeModuleAMMbyID(int id)
|
||||||
|
{
|
||||||
|
ModuleType type = ModuleType::TYPE_PM;
|
||||||
Module* ptrModule = nullptr;
|
Module* ptrModule = nullptr;
|
||||||
|
|
||||||
|
mtxAccess.lock();
|
||||||
for(Module* module: listAllModulesAMM)
|
for(Module* module: listAllModulesAMM)
|
||||||
{
|
{
|
||||||
ptrModule = module->getModuleByID(id);
|
ptrModule = module->getModuleByID(id);
|
||||||
if(ptrModule)
|
if(ptrModule)
|
||||||
return ptrModule;
|
{
|
||||||
|
type = ptrModule->getType();
|
||||||
|
{
|
||||||
|
mtxAccess.unlock();
|
||||||
|
return type;
|
||||||
}
|
}
|
||||||
return nullptr;
|
}
|
||||||
|
}
|
||||||
|
mtxAccess.unlock();
|
||||||
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
QTreeWidgetItem *TaskAMMFIMTreePreparation::addModuleToTreeWidgetAMM(Module *module, bool flOnlyActive, QTreeWidgetItem *parentItem)
|
QTreeWidgetItem *TaskAMMFIMTreePreparation::addModuleToTreeWidgetAMM(Module *module, bool flOnlyActive, QTreeWidgetItem *parentItem)
|
||||||
@@ -97,7 +128,10 @@ QTreeWidgetItem *TaskAMMFIMTreePreparation::addModuleToTreeWidgetAMM(Module *mod
|
|||||||
|
|
||||||
void TaskAMMFIMTreePreparation::loadAMMtasksFromXML(QByteArray array)
|
void TaskAMMFIMTreePreparation::loadAMMtasksFromXML(QByteArray array)
|
||||||
{
|
{
|
||||||
|
mtxAccess.lock();
|
||||||
|
|
||||||
deleteAllModulsAMM();
|
deleteAllModulsAMM();
|
||||||
|
listTasksAMM.clear();
|
||||||
|
|
||||||
QDomDocument docTasksDOM;
|
QDomDocument docTasksDOM;
|
||||||
|
|
||||||
@@ -105,14 +139,21 @@ void TaskAMMFIMTreePreparation::loadAMMtasksFromXML(QByteArray array)
|
|||||||
|
|
||||||
QDomElement manifestElement = docTasksDOM.firstChildElement("manifest");
|
QDomElement manifestElement = docTasksDOM.firstChildElement("manifest");
|
||||||
if(manifestElement.isNull())
|
if(manifestElement.isNull())
|
||||||
|
{
|
||||||
|
mtxAccess.unlock();
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
domElementParserAMM(manifestElement, nullptr);
|
domElementParserAMM(manifestElement, nullptr);
|
||||||
|
|
||||||
|
mtxAccess.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TaskAMMFIMTreePreparation::loadFIMtasksFromXML(QByteArray array)
|
void TaskAMMFIMTreePreparation::loadFIMtasksFromXML(QByteArray array)
|
||||||
{
|
{
|
||||||
deleteAllTaskFIM();
|
mtxAccess.lock();
|
||||||
|
|
||||||
|
listTasksFIM.clear();
|
||||||
|
|
||||||
QDomDocument docTasksDOM;
|
QDomDocument docTasksDOM;
|
||||||
|
|
||||||
@@ -120,17 +161,26 @@ void TaskAMMFIMTreePreparation::loadFIMtasksFromXML(QByteArray array)
|
|||||||
|
|
||||||
QDomElement RRJTasksElement = docTasksDOM.firstChildElement("RRJTasks");
|
QDomElement RRJTasksElement = docTasksDOM.firstChildElement("RRJTasks");
|
||||||
if(RRJTasksElement.isNull())
|
if(RRJTasksElement.isNull())
|
||||||
|
{
|
||||||
|
mtxAccess.unlock();
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
QDomElement taskElement = RRJTasksElement.firstChildElement();
|
QDomElement taskElement = RRJTasksElement.firstChildElement();
|
||||||
if(taskElement.isNull())
|
if(taskElement.isNull())
|
||||||
|
{
|
||||||
|
mtxAccess.unlock();
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
do
|
do
|
||||||
{/*task*/
|
{/*task*/
|
||||||
|
|
||||||
if(flagStop)
|
if(flagStop)
|
||||||
|
{
|
||||||
|
mtxAccess.unlock();
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
QString name = taskElement.nodeName();
|
QString name = taskElement.nodeName();
|
||||||
QDomNamedNodeMap nodeMap = taskElement.attributes();
|
QDomNamedNodeMap nodeMap = taskElement.attributes();
|
||||||
@@ -187,21 +237,15 @@ void TaskAMMFIMTreePreparation::loadFIMtasksFromXML(QByteArray array)
|
|||||||
}
|
}
|
||||||
}while(! (malfunctionElement = malfunctionElement.nextSiblingElement()).isNull());
|
}while(! (malfunctionElement = malfunctionElement.nextSiblingElement()).isNull());
|
||||||
}
|
}
|
||||||
listTaskFIM.append(task);
|
listTasksFIM.append(*task);
|
||||||
|
delete task;
|
||||||
}
|
}
|
||||||
}while (! (taskElement = taskElement.nextSiblingElement()).isNull());
|
}while (! (taskElement = taskElement.nextSiblingElement()).isNull());
|
||||||
|
|
||||||
|
mtxAccess.unlock();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TaskAMMFIMTreePreparation::deleteAllTaskFIM()
|
|
||||||
{
|
|
||||||
for(TaskAmmFim* task: listTaskFIM)
|
|
||||||
delete task;
|
|
||||||
|
|
||||||
listTaskFIM.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
void TaskAMMFIMTreePreparation::deleteAllModulsAMM()
|
void TaskAMMFIMTreePreparation::deleteAllModulsAMM()
|
||||||
{
|
{
|
||||||
for(Module* module: listAllModulesAMM)
|
for(Module* module: listAllModulesAMM)
|
||||||
@@ -326,6 +370,19 @@ void TaskAMMFIMTreePreparation::domElementParserAMM(QDomElement element, Module*
|
|||||||
if(moduleParent == nullptr)
|
if(moduleParent == nullptr)
|
||||||
listAllModulesAMM.append(module);
|
listAllModulesAMM.append(module);
|
||||||
|
|
||||||
|
if(module)
|
||||||
|
if(module->getType() == ModuleType::TYPE_DM)
|
||||||
|
{
|
||||||
|
TaskAmmFim* task = nullptr;
|
||||||
|
task = new TaskAmmFim();
|
||||||
|
task->setID(module->getID());
|
||||||
|
task->ammProcedure.title = static_cast<DM*>(module)->getLangStructRus().techName;
|
||||||
|
task->ammProcedure.dmCode = static_cast<DM*>(module)->dmCode();
|
||||||
|
|
||||||
|
listTasksAMM.append(*task);
|
||||||
|
delete task;
|
||||||
|
}
|
||||||
|
|
||||||
}while (! (childElement = childElement.nextSiblingElement()).isNull());
|
}while (! (childElement = childElement.nextSiblingElement()).isNull());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -346,13 +403,17 @@ void TaskAMMFIMTreePreparation::slot_prepareAMMListItems(QByteArray array, bool
|
|||||||
Q_EMIT signal_listAMMItemsReady(listItems);
|
Q_EMIT signal_listAMMItemsReady(listItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TaskAMMFIMTreePreparation::slot_prepareAMMListItemsForTrainee(QList<TaskAmmFim> listTask)
|
void TaskAMMFIMTreePreparation::slot_prepareAMMListItemsForTrainee(QList<TaskAmmFim> listTasks)
|
||||||
{
|
{
|
||||||
qDebug() << "TaskAMMFIMTreePreparation::slot_prepareAMMListItemsForTrainee thread ID " << QThread::currentThreadId();
|
qDebug() << "TaskAMMFIMTreePreparation::slot_prepareAMMListItemsForTrainee thread ID " << QThread::currentThreadId();
|
||||||
|
|
||||||
listItems.clear();
|
listItems.clear();
|
||||||
|
|
||||||
for(TaskAmmFim task : listTask)
|
mtxAccess.lock();
|
||||||
|
|
||||||
|
this->listTasksAMM = listTasks;
|
||||||
|
|
||||||
|
for(TaskAmmFim task : listTasks)
|
||||||
{
|
{
|
||||||
QTreeWidgetItem* item = nullptr;
|
QTreeWidgetItem* item = nullptr;
|
||||||
|
|
||||||
@@ -394,6 +455,8 @@ void TaskAMMFIMTreePreparation::slot_prepareAMMListItemsForTrainee(QList<TaskAmm
|
|||||||
listItems.append(item);
|
listItems.append(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mtxAccess.unlock();
|
||||||
|
|
||||||
Q_EMIT signal_listAMMItemsReady(listItems);
|
Q_EMIT signal_listAMMItemsReady(listItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -405,9 +468,11 @@ void TaskAMMFIMTreePreparation::slot_prepareFIMListItems(QByteArray array)
|
|||||||
|
|
||||||
listItems.clear();
|
listItems.clear();
|
||||||
|
|
||||||
for(TaskAmmFim* taskPtr : listTaskFIM)
|
mtxAccess.lock();
|
||||||
|
|
||||||
|
for(TaskAmmFim taskPtr : listTasksFIM)
|
||||||
{/*Задачи*/
|
{/*Задачи*/
|
||||||
TaskAmmFim task = *taskPtr;
|
TaskAmmFim task = taskPtr;
|
||||||
|
|
||||||
QTreeWidgetItem* itemTask = new QTreeWidgetItem();
|
QTreeWidgetItem* itemTask = new QTreeWidgetItem();
|
||||||
|
|
||||||
@@ -478,22 +543,27 @@ void TaskAMMFIMTreePreparation::slot_prepareFIMListItems(QByteArray array)
|
|||||||
listItems.append(itemTask);
|
listItems.append(itemTask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mtxAccess.unlock();
|
||||||
|
|
||||||
Q_EMIT signal_listFIMItemsReady(listItems);
|
Q_EMIT signal_listFIMItemsReady(listItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TaskAMMFIMTreePreparation::slot_prepareFIMListItemsForTrainee(QList<TaskAmmFim> listTask)
|
void TaskAMMFIMTreePreparation::slot_prepareFIMListItemsForTrainee(QList<TaskAmmFim> listTasks)
|
||||||
{
|
{
|
||||||
qDebug() << "TaskAMMFIMTreePreparation::slot_prepareFIMListItemsForTrainee thread ID " << QThread::currentThreadId();
|
qDebug() << "TaskAMMFIMTreePreparation::slot_prepareFIMListItemsForTrainee thread ID " << QThread::currentThreadId();
|
||||||
|
|
||||||
listItems.clear();
|
listItems.clear();
|
||||||
|
|
||||||
for(TaskAmmFim task : listTask)
|
mtxAccess.lock();
|
||||||
|
this->listTasksFIM = listTasks;
|
||||||
|
|
||||||
|
for(TaskAmmFim task : listTasks)
|
||||||
{/*Задачи*/
|
{/*Задачи*/
|
||||||
//TaskAmmFim* task = listTaskAmmFim.at(i);
|
//TaskAmmFim* task = listTaskAmmFim.at(i);
|
||||||
TaskAmmFim* taskNew = nullptr;
|
//TaskAmmFim* taskNew = nullptr;
|
||||||
taskNew = new TaskAmmFim();
|
//taskNew = new TaskAmmFim();
|
||||||
*taskNew = task;
|
//*taskNew = task;
|
||||||
listTaskFIM.append(taskNew);
|
//listTaskFIM.append(taskNew);
|
||||||
|
|
||||||
QTreeWidgetItem* itemTask = new QTreeWidgetItem();
|
QTreeWidgetItem* itemTask = new QTreeWidgetItem();
|
||||||
|
|
||||||
@@ -565,5 +635,7 @@ void TaskAMMFIMTreePreparation::slot_prepareFIMListItemsForTrainee(QList<TaskAmm
|
|||||||
listItems.append(itemTask);
|
listItems.append(itemTask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mtxAccess.unlock();
|
||||||
|
|
||||||
Q_EMIT signal_listFIMItemsReady(listItems);
|
Q_EMIT signal_listFIMItemsReady(listItems);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QTreeWidgetItem>
|
#include <QTreeWidgetItem>
|
||||||
#include <QDomElement>
|
#include <QDomElement>
|
||||||
|
#include <QMutex>
|
||||||
#include "module.h"
|
#include "module.h"
|
||||||
#include "tasksAmmFim.h"
|
#include "tasksAmmFim.h"
|
||||||
|
|
||||||
@@ -38,40 +39,45 @@ public:
|
|||||||
~TaskAMMFIMTreePreparation();
|
~TaskAMMFIMTreePreparation();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void stopParser();
|
TaskAmmFim getTaskFIMbyID(int id);
|
||||||
|
TaskAmmFim getTaskAMMbyID(int id);
|
||||||
|
|
||||||
TaskAmmFim* getTaskFIMbyID(int id);
|
ModuleType getTypeModuleAMMbyID(int id);
|
||||||
Module* getModuleAMMbyID(int id);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QTreeWidgetItem* addModuleToTreeWidgetAMM(Module* module, bool flOnlyActive = false, QTreeWidgetItem* parentItem = nullptr);
|
QTreeWidgetItem* addModuleToTreeWidgetAMM(Module* module, bool flOnlyActive = false, QTreeWidgetItem* parentItem = nullptr);
|
||||||
|
|
||||||
void loadAMMtasksFromXML(QByteArray array);
|
void loadAMMtasksFromXML(QByteArray array);
|
||||||
void domElementParserAMM(QDomElement element, Module* moduleParent);
|
void domElementParserAMM(QDomElement element, Module* moduleParent);
|
||||||
void deleteAllModulsAMM();
|
void deleteAllModulsAMM();
|
||||||
|
|
||||||
void loadFIMtasksFromXML(QByteArray array);
|
void loadFIMtasksFromXML(QByteArray array);
|
||||||
void deleteAllTaskFIM();
|
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void slot_prepareAMMListItems(QByteArray array, bool flOnlyActive);
|
void slot_prepareAMMListItems(QByteArray array, bool flOnlyActive);
|
||||||
void slot_prepareAMMListItemsForTrainee(QList<TaskAmmFim> listTask);
|
void slot_prepareAMMListItemsForTrainee(QList<TaskAmmFim> listTasks);
|
||||||
|
|
||||||
void slot_prepareFIMListItems(QByteArray array);
|
void slot_prepareFIMListItems(QByteArray array);
|
||||||
void slot_prepareFIMListItemsForTrainee(QList<TaskAmmFim> listTask);
|
void slot_prepareFIMListItemsForTrainee(QList<TaskAmmFim> listTasks);
|
||||||
|
|
||||||
|
void slot_stopParserPreparation();
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void signal_listAMMItemsReady(QList<QTreeWidgetItem*> listItemsAMM);
|
void signal_listAMMItemsReady(QList<QTreeWidgetItem*> listItemsAMM);
|
||||||
|
|
||||||
void signal_listFIMItemsReady(QList<QTreeWidgetItem*> listItemsFIM);
|
void signal_listFIMItemsReady(QList<QTreeWidgetItem*> listItemsFIM);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QList<QTreeWidgetItem*> listItems;
|
QList<QTreeWidgetItem*> listItems;
|
||||||
|
|
||||||
QList<Module*> listAllModulesAMM;
|
QList<Module*> listAllModulesAMM;
|
||||||
QList<TaskAmmFim*> listTaskFIM;
|
|
||||||
|
QList<TaskAmmFim> listTasksFIM;
|
||||||
|
QList<TaskAmmFim> listTasksAMM;
|
||||||
|
|
||||||
bool flagStop;
|
bool flagStop;
|
||||||
TypeListTreeAMMFIM type;
|
TypeListTreeAMMFIM type;
|
||||||
|
|
||||||
|
QMutex mtxAccess;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // TASKTREEPREPARATION_H
|
#endif // TASKTREEPREPARATION_H
|
||||||
|
|||||||
@@ -527,6 +527,7 @@ void ProcessingSystem::sendListTasksFIMofTraineetoClient(ClientHandler *client,
|
|||||||
|
|
||||||
void ProcessingSystem::sendListTasksAMMofTraineeByIDtoClient(ClientHandler *client, int id_trainee, QList<int> listID)
|
void ProcessingSystem::sendListTasksAMMofTraineeByIDtoClient(ClientHandler *client, int id_trainee, QList<int> listID)
|
||||||
{
|
{
|
||||||
|
QList<TaskAmmFim> listTasksNeed;
|
||||||
QList<TaskAmmFim> listTasks = providerDBLMS->GetListTasksAMMofTrainee(id_trainee);
|
QList<TaskAmmFim> listTasks = providerDBLMS->GetListTasksAMMofTrainee(id_trainee);
|
||||||
|
|
||||||
for(int i = 0; i < listTasks.count(); i++)
|
for(int i = 0; i < listTasks.count(); i++)
|
||||||
@@ -541,17 +542,18 @@ void ProcessingSystem::sendListTasksAMMofTraineeByIDtoClient(ClientHandler *clie
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!flNeed)
|
if(flNeed)
|
||||||
listTasks.removeAt(i);
|
listTasksNeed.append(listTasks.at(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArray arrayAnswer = dataParser->DbAnswer()->listTasksAMMofTrainee(true, &listTasks, id_trainee, false);
|
QByteArray arrayAnswer = dataParser->DbAnswer()->listTasksAMMofTrainee(true, &listTasksNeed, id_trainee, false);
|
||||||
//client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_TASKS_AMM_OF_TRAINEE);
|
//client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_TASKS_AMM_OF_TRAINEE);
|
||||||
client->sendFileBlockByteArray(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_TASKS_AMM_OF_TRAINEE);
|
client->sendFileBlockByteArray(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_TASKS_AMM_OF_TRAINEE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProcessingSystem::sendListTasksFIMofTraineeByIDtoClient(ClientHandler *client, int id_trainee, QList<int> listID)
|
void ProcessingSystem::sendListTasksFIMofTraineeByIDtoClient(ClientHandler *client, int id_trainee, QList<int> listID)
|
||||||
{
|
{
|
||||||
|
QList<TaskAmmFim> listTasksNeed;
|
||||||
QList<TaskAmmFim> listTasks = providerDBLMS->GetListTasksFIMofTrainee(id_trainee);
|
QList<TaskAmmFim> listTasks = providerDBLMS->GetListTasksFIMofTrainee(id_trainee);
|
||||||
|
|
||||||
for(int i = 0; i < listTasks.count(); i++)
|
for(int i = 0; i < listTasks.count(); i++)
|
||||||
@@ -566,11 +568,11 @@ void ProcessingSystem::sendListTasksFIMofTraineeByIDtoClient(ClientHandler *clie
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!flNeed)
|
if(flNeed)
|
||||||
listTasks.removeAt(i);
|
listTasksNeed.append(listTasks.at(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArray arrayAnswer = dataParser->DbAnswer()->listTasksFIMofTrainee(true, &listTasks, id_trainee, false);
|
QByteArray arrayAnswer = dataParser->DbAnswer()->listTasksFIMofTrainee(true, &listTasksNeed, id_trainee, false);
|
||||||
//client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_TASKS_FIM_OF_TRAINEE);
|
//client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_TASKS_FIM_OF_TRAINEE);
|
||||||
client->sendFileBlockByteArray(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_TASKS_FIM_OF_TRAINEE);
|
client->sendFileBlockByteArray(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_TASKS_FIM_OF_TRAINEE);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user