From a9acafe77615aa1088d31a5babcb3a7487e9dd33 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Tue, 3 Jun 2025 10:10:22 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9=20=D1=80=D0=B5=D0=BF=D0=BE=D1=80=D1=82=20=D0=BE=D1=82=20?= =?UTF-8?q?=D0=9B=D0=B5=D1=85=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ServerLMS/Systems/Parsers/processparser.cpp | 39 +++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/ServerLMS/Systems/Parsers/processparser.cpp b/ServerLMS/Systems/Parsers/processparser.cpp index fd76e0d..7b46ac3 100644 --- a/ServerLMS/Systems/Parsers/processparser.cpp +++ b/ServerLMS/Systems/Parsers/processparser.cpp @@ -162,19 +162,53 @@ void ProcessParser::clientUnityTaskFIMreport(QXmlStreamReader &xmlReader, Client task.title = taskNode.toElement().attribute("title"); task.status = taskNode.toElement().attribute("status"); + for(int j = 0; j < taskNode.childNodes().count(); j++) {//Неисправности - QDomNode malfunctionNode = taskNode.childNodes().at(j); - if(malfunctionNode.nodeName() == "malfunction") + QDomNode malfOrReportNode = taskNode.childNodes().at(j); + if(malfOrReportNode.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); + */ } + else + if(malfOrReportNode.nodeName() == "report") + {//Отчет + FIMReport report; + report.id = 0; //malfOrReportNode.toElement().attribute("report_id").toInt(); + + for(int k = 0; k < malfOrReportNode.childNodes().count(); k++) + { + QDomNode reportItemNode = malfOrReportNode.childNodes().at(k); + if(reportItemNode.nodeName() == "reportItem") + { + FIMReportItem reportItem; + reportItem.id = 0; //reportItemNode.toElement().attribute("item_id").toInt(); + reportItem.text = reportItemNode.toElement().attribute("text"); + + if(reportItemNode.childNodes().count()) + { + QDomNode procedureIDNode = reportItemNode.childNodes().at(0); + reportItem.procedure.doc = procedureIDNode.toElement().attribute("doc"); + reportItem.procedure.title = procedureIDNode.toElement().attribute("title"); + reportItem.procedure.dmCode = procedureIDNode.toElement().attribute("dmCode"); + reportItem.procedure.result = procedureIDNode.toElement().attribute("result"); + } + + report.itemList.append(reportItem); + } + } + + task.report = report; + } } + /* //TODO -------------- (!Заглушка!) Отчет о выполнении FIMReport report; @@ -202,6 +236,7 @@ void ProcessParser::clientUnityTaskFIMreport(QXmlStreamReader &xmlReader, Client task.report = report; //----------------- + */ listTasks.append(task);