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:
@@ -663,11 +663,31 @@ int DataBaseLMS::insertTaskFIM(TaskAmmFim task, int id_trainee)
|
||||
malfanction.description,
|
||||
QString::number(task_id));
|
||||
|
||||
if(!queryExecInt(queryStr))
|
||||
int malfunction_id = queryExecInt(queryStr);
|
||||
if(!malfunction_id)
|
||||
{
|
||||
resBool = db->rollback();
|
||||
return 0;
|
||||
}
|
||||
|
||||
//Sign
|
||||
for(MalfunctionSign sign : malfanction.malfunctionSigns)
|
||||
{
|
||||
sign.description = sign.description.replace("'", "''"); //Задваиваем одинарные кавычки
|
||||
|
||||
queryStr = QString("INSERT INTO public.malf_sign (type, description, malf_malf_sign) "
|
||||
"VALUES ('%1', '%2', %3) "
|
||||
"RETURNING malf_sign.sign_id").arg(
|
||||
QString::number(sign.type),
|
||||
sign.description,
|
||||
QString::number(malfunction_id));
|
||||
|
||||
if(!queryExecInt(queryStr))
|
||||
{
|
||||
resBool = db->rollback();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
resBool = db->commit();
|
||||
@@ -831,11 +851,33 @@ QList<TaskAmmFim> DataBaseLMS::selectTasksFIMofTrainee(int id_trainee)
|
||||
while (queryMalf.next())
|
||||
{//Неисправность
|
||||
Malfunction malfanction;
|
||||
int malfunction_id = 0;
|
||||
|
||||
malfunction_id = queryMalf.value(0).toString().toInt();
|
||||
malfanction.num = queryMalf.value(1).toString();
|
||||
malfanction.dmCode = queryMalf.value(2).toString();
|
||||
malfanction.description = queryMalf.value(3).toString();
|
||||
|
||||
//Выгребаем сигналы для этой неисправности
|
||||
queryStr = QString("SELECT malf_sign.sign_id, malf_sign.type, malf_sign.description "
|
||||
"FROM public.malf_sign "
|
||||
"WHERE malf_malf_sign = %1 "
|
||||
"ORDER BY malf_sign.sign_id ASC").arg(
|
||||
QString::number(malfunction_id));
|
||||
|
||||
QSqlQuery querySign = QSqlQuery(*db);
|
||||
if(queryExec(queryStr, &querySign))
|
||||
{
|
||||
while (querySign.next())
|
||||
{//Сигналы
|
||||
MalfunctionSign sign;
|
||||
sign.type = querySign.value(1).toString().toInt();
|
||||
sign.description = querySign.value(2).toString();
|
||||
|
||||
malfanction.malfunctionSigns.append(sign);
|
||||
};
|
||||
}
|
||||
|
||||
task.addMalfunction(malfanction);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -190,7 +190,16 @@ QByteArray DataParser::createQueryToDBMessage(ClientQueryToDB *queryToDB, int id
|
||||
xmlWriter.writeStartElement("malfunction");
|
||||
xmlWriter.writeAttribute("dmCode", malfunction.dmCode);
|
||||
xmlWriter.writeAttribute("num", malfunction.num);
|
||||
xmlWriter.writeAttribute("description", malfunction.description);
|
||||
xmlWriter.writeAttribute("description", malfunction.description);
|
||||
|
||||
for(MalfunctionSign sign : malfunction.malfunctionSigns)
|
||||
{
|
||||
xmlWriter.writeStartElement("malfunctionSign");
|
||||
xmlWriter.writeAttribute("type", QString::number(sign.type));
|
||||
xmlWriter.writeAttribute("description", sign.description);
|
||||
xmlWriter.writeEndElement();
|
||||
}
|
||||
|
||||
xmlWriter.writeEndElement();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +702,19 @@ void RecognizeSystem::xmlParserQueryToDB(PacketType packetType, QByteArray array
|
||||
malfunction.dmCode = malfOrReportNode.toElement().attribute("dmCode");
|
||||
malfunction.description = malfOrReportNode.toElement().attribute("description");
|
||||
|
||||
for(int s = 0; s < malfOrReportNode.childNodes().count(); s++)
|
||||
{
|
||||
QDomNode signNode = malfOrReportNode.childNodes().at(s);
|
||||
if(signNode.nodeName() == "malfunctionSign")
|
||||
{
|
||||
MalfunctionSign sign;
|
||||
sign.type = signNode.toElement().attribute("type").toInt();
|
||||
sign.description = signNode.toElement().attribute("description");
|
||||
|
||||
malfunction.malfunctionSigns.append(sign);
|
||||
}
|
||||
}
|
||||
|
||||
task.malfunctionList.append(malfunction);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -152,6 +152,14 @@ QByteArray DBAnswerParser::listTasksFIMofTrainee(bool result, QList<TaskAmmFim>
|
||||
malfunctionNode.toElement().setAttribute("dmCode", malfunction.dmCode);
|
||||
malfunctionNode.toElement().setAttribute("num", malfunction.num);
|
||||
malfunctionNode.toElement().setAttribute("description", malfunction.description);
|
||||
|
||||
for(MalfunctionSign sign : malfunction.malfunctionSigns)
|
||||
{//Сигналы
|
||||
QDomNode signNode = commonDOM.createElement("malfunctionSign");
|
||||
malfunctionNode.appendChild(signNode);
|
||||
signNode.toElement().setAttribute("type", sign.type);
|
||||
signNode.toElement().setAttribute("description", sign.description);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -240,6 +240,21 @@ TaskAmmFim ProcessParser::xmlParserQueryToDB_ASSIGN_TASK_FIM_TO_TRAINEE(QByteArr
|
||||
malfunction.dmCode = malfunctionNode.toElement().attribute("dmCode");
|
||||
malfunction.description = malfunctionNode.toElement().attribute("description");
|
||||
|
||||
//Сигналы
|
||||
for(int j = 0; j < malfunctionNode.childNodes().count(); j++)
|
||||
{
|
||||
QDomNode signNode = malfunctionNode.childNodes().at(j);
|
||||
if(signNode.nodeName() == "malfunctionSign")
|
||||
{
|
||||
MalfunctionSign sign;
|
||||
|
||||
sign.type = signNode.toElement().attribute("type").toInt();
|
||||
sign.description = signNode.toElement().attribute("description");
|
||||
|
||||
malfunction.malfunctionSigns.append(sign);
|
||||
}
|
||||
}
|
||||
|
||||
task.malfunctionList.append(malfunction);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user