bugFix Блочная передача больших данных

This commit is contained in:
2026-02-03 17:22:52 +03:00
parent 4a24f6fc29
commit 60534ebef4
17 changed files with 431 additions and 8 deletions

View File

@@ -261,3 +261,136 @@ QByteArray DBAnswerParser::listTasksFIMofTrainee(bool result, QList<TaskAmmFim>
return commonDOM.toByteArray();
}
QByteArray DBAnswerParser::listsTasksAMMofAllTrainees(QMap<int, QList<TaskAmmFim> > *mapOfLists)
{
QDomDocument commonDOM;
if(! Tools::loadFileXMLtoDOM(":/resources/blankXML/ListsTasksAMMofAllTrainees.xml", &commonDOM))
return QByteArray();
QDomNode listsAllNode = commonDOM.namedItem("ListsTasksAMMofAllTrainees");
for(int key : mapOfLists->keys())
{
QList<TaskAmmFim> listOne = mapOfLists->value(key);
QDomNode listOneNode = commonDOM.createElement("ListTasksAMM");
listsAllNode.appendChild(listOneNode);
listOneNode.toElement().setAttribute("trainee_id", QString::number(key));
for(TaskAmmFim task : listOne)
{
//Задача
QDomNode taskNode = commonDOM.createElement("taskAMM");
listOneNode.appendChild(taskNode);
taskNode.toElement().setAttribute("task_id", QString::number(task.getID()));
taskNode.toElement().setAttribute("title", task.ammProcedure.title);
taskNode.toElement().setAttribute("dmCode", task.ammProcedure.dmCode);
taskNode.toElement().setAttribute("status", task.status);
for(SubProc subProc : task.listSubProc)
{//Подпроцедура
QDomNode subProcNode = commonDOM.createElement("SubProc");
taskNode.appendChild(subProcNode);
subProcNode.toElement().setAttribute("dmCode", subProc.getDmCode());
subProcNode.toElement().setAttribute("title", subProc.getTitle());
subProcNode.toElement().setAttribute("canplay", subProc.getModeListStr());
}
}
}
Tools::saveDOMtoFileXML("ListsTasksAMMofAllTrainees.xml", &commonDOM);
return commonDOM.toByteArray();
}
QByteArray DBAnswerParser::listsTasksFIMofAllTrainees(QMap<int, QList<TaskAmmFim> > *mapOfLists)
{
QDomDocument commonDOM;
if(! Tools::loadFileXMLtoDOM(":/resources/blankXML/ListsTasksFIMofAllTrainees.xml", &commonDOM))
return QByteArray();
QDomNode listsAllNode = commonDOM.namedItem("ListsTasksFIMofAllTrainees");
for(int key : mapOfLists->keys())
{
QList<TaskAmmFim> listOne = mapOfLists->value(key);
QDomNode listOneNode = commonDOM.createElement("ListTasksFIM");
listsAllNode.appendChild(listOneNode);
listOneNode.toElement().setAttribute("trainee_id", QString::number(key));
for(TaskAmmFim task : listOne)
{
//Задача
QDomNode taskNode = commonDOM.createElement("taskFIM");
listOneNode.appendChild(taskNode);
taskNode.toElement().setAttribute("task_id", QString::number(task.getID()));
taskNode.toElement().setAttribute("title", task.title);
taskNode.toElement().setAttribute("status", task.status);
for(Malfunction malfunction : task.malfunctionList)
{//Неисправность
QDomNode malfunctionNode = commonDOM.createElement("malfunction");
taskNode.appendChild(malfunctionNode);
malfunctionNode.toElement().setAttribute("dmCode", malfunction.dmCode);
malfunctionNode.toElement().setAttribute("num", malfunction.num);
malfunctionNode.toElement().setAttribute("description", malfunction.description);
malfunctionNode.toElement().setAttribute("goName", malfunction.goName);
malfunctionNode.toElement().setAttribute("objName", malfunction.objName);
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);
}
}
{//FIMReport
FIMReport report = task.report;
QDomNode reportNode = commonDOM.createElement("report");
taskNode.appendChild(reportNode);
reportNode.toElement().setAttribute("report_id", report.id);
reportNode.toElement().setAttribute("mmel", report.mmel ? "true" : "false");
for(FIMReportItem reportItem : task.report.itemList)
{//FIMReportItem
QDomNode reportItemNode = commonDOM.createElement("reportItem");
reportNode.appendChild(reportItemNode);
reportItemNode.toElement().setAttribute("item_id", reportItem.id);
reportItemNode.toElement().setAttribute("text", reportItem.text);
//ProcedureID
QDomNode procedureIDNode = commonDOM.createElement("procedureID");
reportItemNode.appendChild(procedureIDNode);
procedureIDNode.toElement().setAttribute("doc", reportItem.procedure.doc);
procedureIDNode.toElement().setAttribute("title", reportItem.procedure.title);
procedureIDNode.toElement().setAttribute("dmCode", reportItem.procedure.dmCode);
procedureIDNode.toElement().setAttribute("result", reportItem.procedure.result);
}
for(FIMReportWarehouseItem reportWhItem : task.report.warehouseItemList)
{//FIMReportWarehouseItem
QDomNode reportWhItemNode = commonDOM.createElement("reportWHItem");
reportNode.appendChild(reportWhItemNode);
reportWhItemNode.toElement().setAttribute("wh_item_id", reportWhItem.id);
reportWhItemNode.toElement().setAttribute("status", reportWhItem.status);
reportWhItemNode.toElement().setAttribute("goName", reportWhItem.goName);
reportWhItemNode.toElement().setAttribute("objName", reportWhItem.objName);
reportWhItemNode.toElement().setAttribute("code", reportWhItem.code);
}
}
}
}
Tools::saveDOMtoFileXML("ListsTasksFIMofAllTrainees.xml", &commonDOM);
return commonDOM.toByteArray();
}

View File

@@ -23,6 +23,9 @@ public:
QByteArray listTasksAMMofTrainee(bool result, QList<TaskAmmFim> *listTasks, int trainee_id, bool full_list);
QByteArray listTasksFIMofTrainee(bool result, QList<TaskAmmFim> *listTasks, int trainee_id, bool full_list);
QByteArray listsTasksAMMofAllTrainees(QMap<int, QList<TaskAmmFim> > *mapOfLists);
QByteArray listsTasksFIMofAllTrainees(QMap<int, QList<TaskAmmFim> > *mapOfLists);
signals:
private: