mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-27 19:45:43 +03:00
taskFIM записывается в базу с Malfunction
This commit is contained in:
@@ -521,13 +521,43 @@ QList<TaskAmmFim> DataBaseLMS::selectTasksAMMofTrainee(int id_trainee)
|
|||||||
|
|
||||||
int DataBaseLMS::insertTaskFIM(TaskAmmFim task, int id_trainee)
|
int DataBaseLMS::insertTaskFIM(TaskAmmFim task, int id_trainee)
|
||||||
{
|
{
|
||||||
QString queryStr = QString("INSERT INTO public.tasks_fim (title, trainee_task) "
|
QString queryStr;
|
||||||
|
bool resBool = false;
|
||||||
|
|
||||||
|
resBool = db->transaction();
|
||||||
|
|
||||||
|
queryStr = QString("INSERT INTO public.tasks_fim (title, trainee_task) "
|
||||||
"VALUES ('%1', %2) "
|
"VALUES ('%1', %2) "
|
||||||
"RETURNING tasks_fim.task_id").arg(
|
"RETURNING tasks_fim.task_id").arg(
|
||||||
task.title,
|
task.title,
|
||||||
QString::number(id_trainee));
|
QString::number(id_trainee));
|
||||||
|
|
||||||
return queryExecInt(queryStr);
|
int task_id = queryExecInt(queryStr);
|
||||||
|
if(!task_id)
|
||||||
|
{
|
||||||
|
resBool = db->rollback();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(Malfunction malfanction : task.malfunctionList)
|
||||||
|
{
|
||||||
|
queryStr = QString("INSERT INTO public.malfunctions (num, dm_code, description, task_fim_malf) "
|
||||||
|
"VALUES ('%1', '%2', '%3', %4) "
|
||||||
|
"RETURNING malfunctions.malfunction_id").arg(
|
||||||
|
malfanction.num,
|
||||||
|
malfanction.dmCode,
|
||||||
|
malfanction.description,
|
||||||
|
QString::number(task_id));
|
||||||
|
|
||||||
|
if(!queryExecInt(queryStr))
|
||||||
|
{
|
||||||
|
resBool = db->rollback();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resBool = db->commit();
|
||||||
|
return task_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
int DataBaseLMS::updateTaskFIM(TaskAmmFim task)
|
int DataBaseLMS::updateTaskFIM(TaskAmmFim task)
|
||||||
|
|||||||
@@ -201,6 +201,11 @@ QByteArray DataParser::createQueryToDBMessage(ClientQueryToDB *queryToDB, int id
|
|||||||
xmlWriter.writeEndElement();
|
xmlWriter.writeEndElement();
|
||||||
xmlWriter.writeEndDocument();
|
xmlWriter.writeEndDocument();
|
||||||
|
|
||||||
|
QFile file("QueryToDB.xml");
|
||||||
|
file.open(QIODevice::WriteOnly);
|
||||||
|
file.write(array);
|
||||||
|
file.close();
|
||||||
|
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ void ProcessParser::read(ClientHandler *client, QByteArray array)
|
|||||||
else if(xmlReader.name() == "QueryToDB")
|
else if(xmlReader.name() == "QueryToDB")
|
||||||
{//Запрос к базе данных от клиента
|
{//Запрос к базе данных от клиента
|
||||||
|
|
||||||
queryToDb(xmlReader,client);
|
queryToDb(xmlReader,client, array);
|
||||||
}
|
}
|
||||||
else if(xmlReader.name() == "QueryTasksXML")
|
else if(xmlReader.name() == "QueryTasksXML")
|
||||||
{//Запрос файла XML с задачами
|
{//Запрос файла XML с задачами
|
||||||
@@ -92,6 +92,36 @@ void ProcessParser::clientDataInfo(QXmlStreamReader &xmlReader,ClientHandler *cl
|
|||||||
processingSystem->setCurrentDataInfo(dataInfo);
|
processingSystem->setCurrentDataInfo(dataInfo);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TaskAmmFim ProcessParser::xmlParserQueryToDB_ASSIGN_TASK_FIM_TO_TRAINEE(QByteArray array)
|
||||||
|
{
|
||||||
|
TaskAmmFim task;
|
||||||
|
|
||||||
|
QDomDocument commonDOM;
|
||||||
|
commonDOM.setContent(array);
|
||||||
|
|
||||||
|
QDomNode mainNode = commonDOM.namedItem("QueryToDB");
|
||||||
|
|
||||||
|
task.title = mainNode.toElement().attribute("title");
|
||||||
|
|
||||||
|
for(int i = 0; i < mainNode.childNodes().count(); i++)
|
||||||
|
{
|
||||||
|
QDomNode malfunctionNode = mainNode.childNodes().at(i);
|
||||||
|
if(malfunctionNode.nodeName() == "malfunction")
|
||||||
|
{//Неисправность
|
||||||
|
Malfunction malfunction;
|
||||||
|
|
||||||
|
malfunction.num = malfunctionNode.toElement().attribute("num");
|
||||||
|
malfunction.dmCode = malfunctionNode.toElement().attribute("dmCode");
|
||||||
|
malfunction.description = malfunctionNode.toElement().attribute("description");
|
||||||
|
|
||||||
|
task.malfunctionList.append(malfunction);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return task;
|
||||||
|
}
|
||||||
|
|
||||||
void ProcessParser::clientAuth(QXmlStreamReader &xmlReader,ClientHandler *client)
|
void ProcessParser::clientAuth(QXmlStreamReader &xmlReader,ClientHandler *client)
|
||||||
{
|
{
|
||||||
ClientAutorization clientAutorization;
|
ClientAutorization clientAutorization;
|
||||||
@@ -156,7 +186,7 @@ void ProcessParser::toClientMessage(QXmlStreamReader &xmlReader,ClientHandler *c
|
|||||||
processingSystem->processingToClientMessage(client, toClientMessage);
|
processingSystem->processingToClientMessage(client, toClientMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProcessParser::queryToDb(QXmlStreamReader &xmlReader,ClientHandler *client)
|
void ProcessParser::queryToDb(QXmlStreamReader &xmlReader,ClientHandler *client, QByteArray array)
|
||||||
{
|
{
|
||||||
ClientQueryToDB queryToDB;
|
ClientQueryToDB queryToDB;
|
||||||
int id = 0;
|
int id = 0;
|
||||||
@@ -174,7 +204,13 @@ void ProcessParser::queryToDb(QXmlStreamReader &xmlReader,ClientHandler *client)
|
|||||||
//addTextToLogger(name + ": " + value);
|
//addTextToLogger(name + ": " + value);
|
||||||
|
|
||||||
if(name == "TypeQuery")
|
if(name == "TypeQuery")
|
||||||
|
{
|
||||||
queryToDB.typeQuery = (TypeQueryToDB)value.toInt();
|
queryToDB.typeQuery = (TypeQueryToDB)value.toInt();
|
||||||
|
if(queryToDB.typeQuery == TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_FIM_TO_TRAINEE)
|
||||||
|
{
|
||||||
|
task = xmlParserQueryToDB_ASSIGN_TASK_FIM_TO_TRAINEE(array);
|
||||||
|
}
|
||||||
|
}
|
||||||
else if(name == "id")
|
else if(name == "id")
|
||||||
id = value.toInt();
|
id = value.toInt();
|
||||||
else
|
else
|
||||||
@@ -238,8 +274,8 @@ void ProcessParser::queryToDb(QXmlStreamReader &xmlReader,ClientHandler *client)
|
|||||||
task.ammProcedure.dmCode = value;
|
task.ammProcedure.dmCode = value;
|
||||||
break;
|
break;
|
||||||
case TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_FIM_TO_TRAINEE:
|
case TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_FIM_TO_TRAINEE:
|
||||||
if(name == "title")
|
//if(name == "title")
|
||||||
task.title = value;
|
//task.title = value;
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,11 +22,13 @@ private:
|
|||||||
void clientAuth(QXmlStreamReader &xmlReader,ClientHandler *client);
|
void clientAuth(QXmlStreamReader &xmlReader,ClientHandler *client);
|
||||||
void clientDeAuth(QXmlStreamReader &xmlReader,ClientHandler *client);
|
void clientDeAuth(QXmlStreamReader &xmlReader,ClientHandler *client);
|
||||||
void toClientMessage(QXmlStreamReader &xmlReader,ClientHandler *client);
|
void toClientMessage(QXmlStreamReader &xmlReader,ClientHandler *client);
|
||||||
void queryToDb(QXmlStreamReader &xmlReader,ClientHandler *client);
|
void queryToDb(QXmlStreamReader &xmlReader,ClientHandler *client, QByteArray array = QByteArray());
|
||||||
void queryTasksXML(QXmlStreamReader &xmlReader,ClientHandler *client);
|
void queryTasksXML(QXmlStreamReader &xmlReader,ClientHandler *client);
|
||||||
void clientMessage(QXmlStreamReader &xmlReader,ClientHandler *client);
|
void clientMessage(QXmlStreamReader &xmlReader,ClientHandler *client);
|
||||||
void clientNotify(QXmlStreamReader &xmlReader,ClientHandler *client);
|
void clientNotify(QXmlStreamReader &xmlReader,ClientHandler *client);
|
||||||
void clientDataInfo(QXmlStreamReader &xmlReader, ClientHandler *client);
|
void clientDataInfo(QXmlStreamReader &xmlReader, ClientHandler *client);
|
||||||
|
|
||||||
|
TaskAmmFim xmlParserQueryToDB_ASSIGN_TASK_FIM_TO_TRAINEE(QByteArray array);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // PROCESSPARSER_H
|
#endif // PROCESSPARSER_H
|
||||||
|
|||||||
Reference in New Issue
Block a user