mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
cfiController поштучное изменение
This commit is contained in:
@@ -71,7 +71,7 @@ bool CfiController::updateCfiXML(const QByteArray &array)
|
||||
if(!parsingCfiXML_DOM(docCfiListDOM_New, mapCfiObjects_New))
|
||||
return false;
|
||||
|
||||
if(!merge2map(mapCfiObjects_Orig, mapCfiObjects_New))
|
||||
if(!merge2map_single(mapCfiObjects_Orig, mapCfiObjects_New))
|
||||
return false;
|
||||
|
||||
return saveNewCfiListFile(mapCfiObjects_Orig);
|
||||
@@ -140,6 +140,7 @@ bool CfiController::parsingCfiXML_DOM(QDomDocument &domDoc, QMap<QString, CfiObj
|
||||
QDomNamedNodeMap nodeMapOneCFIObject = oneCFIObjectElement.attributes();
|
||||
cfiObj.setGuid(nodeMapOneCFIObject.namedItem("guid").nodeValue());
|
||||
cfiObj.setIsChanged(nodeMapOneCFIObject.namedItem("isChanged").nodeValue() == "True" ? true : false);
|
||||
cfiObj.setStatus(nodeMapOneCFIObject.namedItem("status").nodeValue());
|
||||
|
||||
//childs CFIObject
|
||||
QDomElement cfiName_Element = oneCFIObjectElement.elementsByTagName("cfiName").at(0).toElement();
|
||||
@@ -208,7 +209,7 @@ bool CfiController::parsingCfiXML_DOM(QDomDocument &domDoc, QMap<QString, CfiObj
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CfiController::merge2map(QMap<QString, CfiObject> &mapCfiObjects_orig, QMap<QString, CfiObject> &mapCfiObjects_new)
|
||||
bool CfiController::merge2map_commonList(QMap<QString, CfiObject> &mapCfiObjects_orig, QMap<QString, CfiObject> &mapCfiObjects_new)
|
||||
{
|
||||
//Проверка на удаление
|
||||
for(CfiObject cfiObj : mapCfiObjects_orig)
|
||||
@@ -248,6 +249,64 @@ bool CfiController::merge2map(QMap<QString, CfiObject> &mapCfiObjects_orig, QMap
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CfiController::merge2map_single(QMap<QString, CfiObject> &mapCfiObjects_orig, QMap<QString, CfiObject> &mapCfiObjects_new)
|
||||
{
|
||||
//Замена, Добавление, Удаление
|
||||
for(CfiObject cfiObj : mapCfiObjects_new)
|
||||
{
|
||||
QString status = cfiObj.getStatus();
|
||||
QString guid = cfiObj.getGuid();
|
||||
|
||||
if(status == "new")
|
||||
{
|
||||
if(mapCfiObjects_orig.contains(guid))
|
||||
{//Такой есть!
|
||||
QString msg = "CfiController: [status - new] guid cfiObj already exists!";
|
||||
qDebug() << msg;
|
||||
Logger::instance().log(msg, LogLevel::DEBUG);
|
||||
}
|
||||
else
|
||||
{
|
||||
cfiObj.setStatus("accepted");
|
||||
cfiObj.resetStatusInDomElement();
|
||||
mapCfiObjects_orig.insert(guid, cfiObj);
|
||||
}
|
||||
}
|
||||
else if(status == "deleted")
|
||||
{
|
||||
if(mapCfiObjects_orig.contains(guid))
|
||||
{
|
||||
mapCfiObjects_orig.take(guid);
|
||||
}
|
||||
else
|
||||
{
|
||||
QString msg = "CfiController: [status - deleted] guid cfiObj does not exist!";
|
||||
qDebug() << msg;
|
||||
Logger::instance().log(msg, LogLevel::DEBUG);
|
||||
}
|
||||
}
|
||||
else if(status == "edited")
|
||||
{
|
||||
if(mapCfiObjects_orig.contains(guid))
|
||||
{
|
||||
mapCfiObjects_orig.take(guid);
|
||||
|
||||
cfiObj.setStatus("accepted");
|
||||
cfiObj.resetStatusInDomElement();
|
||||
mapCfiObjects_orig.insert(guid, cfiObj);
|
||||
}
|
||||
else
|
||||
{
|
||||
QString msg = "CfiController: [status - edited] guid cfiObj does not exist!";
|
||||
qDebug() << msg;
|
||||
Logger::instance().log(msg, LogLevel::DEBUG);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CfiController::saveNewCfiListFile(QMap<QString, CfiObject> &mapCfiObjects)
|
||||
{
|
||||
QDomDocument commonDOM;
|
||||
|
||||
Reference in New Issue
Block a user