mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
refact. SubProc превр. в класс. fix bug canplay
This commit is contained in:
@@ -37,3 +37,91 @@ void MalfunctionSign::initialize(int type, QString description)
|
|||||||
this->type = type;
|
this->type = type;
|
||||||
this->description = description;
|
this->description = description;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QString SubProc::getDmCode() const
|
||||||
|
{
|
||||||
|
return dmCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString SubProc::getTitle() const
|
||||||
|
{
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SubProc::setDmCode(const QString &value)
|
||||||
|
{
|
||||||
|
dmCode = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SubProc::setTitle(const QString &value)
|
||||||
|
{
|
||||||
|
title = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString SubProc::getModeListStr() const
|
||||||
|
{
|
||||||
|
return modeListStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
ModeList SubProc::getModeList() const
|
||||||
|
{
|
||||||
|
return modeList;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SubProc::setModeList(const ModeList &value)
|
||||||
|
{
|
||||||
|
this->modeList = value;
|
||||||
|
this->modeListStr = buildCanplay(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SubProc::setModeListStr(const QString &value)
|
||||||
|
{
|
||||||
|
this->modeListStr = value;
|
||||||
|
this->modeList = parseCanplay(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString SubProc::buildCanplay(ModeList modeList)
|
||||||
|
{
|
||||||
|
QString canplay = QString("%1/%2/%3/%4").arg(modeList.demo?"+":"-", modeList.train?"+":"-", modeList.exam?"+":"-", modeList.autoM?"+":"-");
|
||||||
|
return canplay;
|
||||||
|
}
|
||||||
|
|
||||||
|
ModeList SubProc::parseCanplay(QString canplay)
|
||||||
|
{
|
||||||
|
ModeList modeList;
|
||||||
|
|
||||||
|
if(canplay == "")
|
||||||
|
{
|
||||||
|
modeList.demo = false;
|
||||||
|
modeList.train = false;
|
||||||
|
modeList.exam = false;
|
||||||
|
modeList.autoM = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
QStringList list = canplay.split("/");
|
||||||
|
|
||||||
|
if(list.at(0) == "+")
|
||||||
|
modeList.demo = true;
|
||||||
|
else
|
||||||
|
modeList.demo = false;
|
||||||
|
|
||||||
|
if(list.at(1) == "+")
|
||||||
|
modeList.train = true;
|
||||||
|
else
|
||||||
|
modeList.train = false;
|
||||||
|
|
||||||
|
if(list.at(2) == "+")
|
||||||
|
modeList.exam = true;
|
||||||
|
else
|
||||||
|
modeList.exam = false;
|
||||||
|
|
||||||
|
if(list.at(3) == "+")
|
||||||
|
modeList.autoM = true;
|
||||||
|
else
|
||||||
|
modeList.autoM = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return modeList;
|
||||||
|
}
|
||||||
|
|||||||
@@ -13,12 +13,38 @@ struct ModeList
|
|||||||
bool autoM = false;
|
bool autoM = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SubProc
|
class DATABASELMS_EXPORT SubProc
|
||||||
{
|
{
|
||||||
QString dmCode;
|
public:
|
||||||
QString title;
|
SubProc()
|
||||||
|
{
|
||||||
|
modeListStr = buildCanplay(modeList);
|
||||||
|
};
|
||||||
|
~SubProc(){};
|
||||||
|
|
||||||
|
public:
|
||||||
|
void setModeList(const ModeList &modeList);
|
||||||
|
ModeList getModeList() const;
|
||||||
|
|
||||||
|
void setModeListStr(const QString &modeListStr);
|
||||||
|
QString getModeListStr() const;
|
||||||
|
|
||||||
|
void setDmCode(const QString &value);
|
||||||
|
QString getDmCode() const;
|
||||||
|
|
||||||
|
void setTitle(const QString &value);
|
||||||
|
QString getTitle() const;
|
||||||
|
|
||||||
|
public:
|
||||||
|
static QString buildCanplay(ModeList modeList);
|
||||||
|
static ModeList parseCanplay(QString canplay);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString dmCode = "";
|
||||||
|
QString title = "";
|
||||||
|
|
||||||
ModeList modeList;
|
ModeList modeList;
|
||||||
|
QString modeListStr = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
class DATABASELMS_EXPORT ProcedureID
|
class DATABASELMS_EXPORT ProcedureID
|
||||||
|
|||||||
@@ -181,9 +181,9 @@ QByteArray DataParser::createQueryToDBMessage(ClientQueryToDB *queryToDB, int id
|
|||||||
{
|
{
|
||||||
xmlWriter.writeStartElement("SubProc");
|
xmlWriter.writeStartElement("SubProc");
|
||||||
|
|
||||||
xmlWriter.writeAttribute("dmCode", subProc.dmCode);
|
xmlWriter.writeAttribute("dmCode", subProc.getDmCode());
|
||||||
xmlWriter.writeAttribute("title", subProc.title);
|
xmlWriter.writeAttribute("title", subProc.getTitle());
|
||||||
//xmlWriter.writeAttribute("canplay", subProc.modeList); //TODO возможно тут нужен canplay
|
xmlWriter.writeAttribute("canplay", subProc.getModeListStr());
|
||||||
|
|
||||||
xmlWriter.writeEndElement();
|
xmlWriter.writeEndElement();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -908,8 +908,9 @@ void RecognizeSystem::xmlParserQuerySubProc(PacketType packetType, QByteArray ar
|
|||||||
if(taskNode.nodeName() == "SubProc")
|
if(taskNode.nodeName() == "SubProc")
|
||||||
{//Подпроцедура
|
{//Подпроцедура
|
||||||
SubProc subProc;
|
SubProc subProc;
|
||||||
subProc.title = taskNode.toElement().attribute("title");
|
subProc.setTitle(taskNode.toElement().attribute("title"));
|
||||||
subProc.dmCode = taskNode.toElement().attribute("dmCode");
|
subProc.setDmCode(taskNode.toElement().attribute("dmCode"));
|
||||||
|
subProc.setModeListStr(taskNode.toElement().attribute("canplay"));
|
||||||
|
|
||||||
listSubProc.append(subProc);
|
listSubProc.append(subProc);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,9 +78,9 @@ bool ListSubProc::getListCheckedSubProc(QList<SubProc>* listSubProc)
|
|||||||
if(item->checkState(0) == Qt::Checked)
|
if(item->checkState(0) == Qt::Checked)
|
||||||
{
|
{
|
||||||
SubProc subProc;
|
SubProc subProc;
|
||||||
subProc.dmCode = item->text(ColumnsTreeSubProc::clmnSP_code);
|
subProc.setDmCode(item->text(ColumnsTreeSubProc::clmnSP_code));
|
||||||
subProc.title = item->text(ColumnsTreeSubProc::clmnSP_title);
|
subProc.setTitle(item->text(ColumnsTreeSubProc::clmnSP_title));
|
||||||
subProc.modeList = parseCanplay(item->text(ColumnsTreeSubProc::clmnSP_canplay));
|
subProc.setModeListStr(item->text(ColumnsTreeSubProc::clmnSP_canplay));
|
||||||
listSubProc->append(subProc);
|
listSubProc->append(subProc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -144,51 +144,6 @@ int ListSubProc::calculateWidth_0Column()
|
|||||||
return width0Column;
|
return width0Column;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString ListSubProc::buildCanplay(ModeList modeList)
|
|
||||||
{
|
|
||||||
QString canplay = QString("%1/%2/%3/%4").arg(modeList.demo?"+":"-", modeList.train?"+":"-", modeList.exam?"+":"-", modeList.autoM?"+":"-");
|
|
||||||
return canplay;
|
|
||||||
}
|
|
||||||
|
|
||||||
ModeList ListSubProc::parseCanplay(QString canplay)
|
|
||||||
{
|
|
||||||
ModeList modeList;
|
|
||||||
|
|
||||||
if(canplay == "")
|
|
||||||
{
|
|
||||||
modeList.demo = false;
|
|
||||||
modeList.train = false;
|
|
||||||
modeList.exam = false;
|
|
||||||
modeList.autoM = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
QStringList list = canplay.split("/");
|
|
||||||
|
|
||||||
if(list.at(0) == "+")
|
|
||||||
modeList.demo = true;
|
|
||||||
else
|
|
||||||
modeList.demo = false;
|
|
||||||
|
|
||||||
if(list.at(1) == "+")
|
|
||||||
modeList.train = true;
|
|
||||||
else
|
|
||||||
modeList.train = false;
|
|
||||||
|
|
||||||
if(list.at(2) == "+")
|
|
||||||
modeList.exam = true;
|
|
||||||
else
|
|
||||||
modeList.exam = false;
|
|
||||||
|
|
||||||
if(list.at(3) == "+")
|
|
||||||
modeList.autoM = true;
|
|
||||||
else
|
|
||||||
modeList.autoM = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return modeList;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ListSubProc::slot_UpdateSubProcForDMCode(QString dmCode)
|
void ListSubProc::slot_UpdateSubProcForDMCode(QString dmCode)
|
||||||
{
|
{
|
||||||
if(this->task.ammProcedure.dmCode == dmCode)
|
if(this->task.ammProcedure.dmCode == dmCode)
|
||||||
@@ -199,10 +154,10 @@ void ListSubProc::slot_UpdateSubProcForDMCode(QString dmCode)
|
|||||||
{
|
{
|
||||||
QTreeWidgetItem* item = new QTreeWidgetItem(treeWidget);
|
QTreeWidgetItem* item = new QTreeWidgetItem(treeWidget);
|
||||||
item->setIcon(0, QIcon(":/resources/icons/procedure.png"));
|
item->setIcon(0, QIcon(":/resources/icons/procedure.png"));
|
||||||
item->setText(ColumnsTreeSubProc::clmnSP_title, subProc.title);
|
item->setText(ColumnsTreeSubProc::clmnSP_title, subProc.getTitle());
|
||||||
item->setText(ColumnsTreeSubProc::clmnSP_code, subProc.dmCode);
|
item->setText(ColumnsTreeSubProc::clmnSP_code, subProc.getDmCode());
|
||||||
item->setText(ColumnsTreeSubProc::clmnSP_canplay, buildCanplay(subProc.modeList));
|
item->setText(ColumnsTreeSubProc::clmnSP_canplay, subProc.getModeListStr());
|
||||||
item->setToolTip(ColumnsTreeSubProc::clmnSP_title, subProc.title);
|
item->setToolTip(ColumnsTreeSubProc::clmnSP_title, subProc.getTitle());
|
||||||
|
|
||||||
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
|
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
|
||||||
item->setCheckState(ColumnsTreeSubProc::clmnSP_title, Qt::Checked);
|
item->setCheckState(ColumnsTreeSubProc::clmnSP_title, Qt::Checked);
|
||||||
|
|||||||
@@ -37,8 +37,6 @@ private:
|
|||||||
void reSetHeadTreeWidget();
|
void reSetHeadTreeWidget();
|
||||||
void setWidthColumnsTree();
|
void setWidthColumnsTree();
|
||||||
int calculateWidth_0Column();
|
int calculateWidth_0Column();
|
||||||
QString buildCanplay(ModeList modeList); //TODO Дублируется в DocsUpdater (Server)!
|
|
||||||
ModeList parseCanplay(QString canplay); //TODO Дублируется в DocsUpdater (Server)!
|
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void slot_UpdateSubProcForDMCode(QString dmCode);
|
void slot_UpdateSubProcForDMCode(QString dmCode);
|
||||||
|
|||||||
@@ -19,9 +19,9 @@ QByteArray DocsAnswerParser::listSubProc(QList<SubProc> list, QString dmCode)
|
|||||||
{
|
{
|
||||||
QDomNode subProcNode = commonDOM.createElement("SubProc");
|
QDomNode subProcNode = commonDOM.createElement("SubProc");
|
||||||
listNode.appendChild(subProcNode);
|
listNode.appendChild(subProcNode);
|
||||||
subProcNode.toElement().setAttribute("dmCode", subProc.dmCode);
|
subProcNode.toElement().setAttribute("dmCode", subProc.getDmCode());
|
||||||
subProcNode.toElement().setAttribute("title", subProc.title);
|
subProcNode.toElement().setAttribute("title", subProc.getTitle());
|
||||||
subProcNode.toElement().setAttribute("canplay", DocsUpdater::buildCanplay(subProc.modeList));
|
subProcNode.toElement().setAttribute("canplay", subProc.getModeListStr());
|
||||||
}
|
}
|
||||||
|
|
||||||
Tools::saveDOMtoXML("ListSubProc.xml", &commonDOM);
|
Tools::saveDOMtoXML("ListSubProc.xml", &commonDOM);
|
||||||
|
|||||||
@@ -71,15 +71,29 @@ bool DocsUpdater::updateDocsXML()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(QList<SubProc> listSP : listSubProcMap)
|
//Проставляем canplay
|
||||||
|
for (auto it = listSubProcMap.begin(); it != listSubProcMap.end(); ++it)
|
||||||
{
|
{
|
||||||
for(SubProc sp : listSP)
|
QList<SubProc> listSP = it.value();
|
||||||
|
QString keyToReplace = it.key();
|
||||||
|
|
||||||
|
if(listSP.count())
|
||||||
{
|
{
|
||||||
QString dmCode = sp.dmCode;
|
for(int i = 0; i < listSP.count(); i++)
|
||||||
|
{
|
||||||
|
QString dmCode = listSP.at(i).getDmCode();
|
||||||
DM* module = getDMmoduleByDMcode(dmCode);
|
DM* module = getDMmoduleByDMcode(dmCode);
|
||||||
if(module)
|
if(module)
|
||||||
{
|
{
|
||||||
sp.modeList = module->getModeList();
|
SubProc sp = listSP.at(i);
|
||||||
|
sp.setModeList(module->getModeList());
|
||||||
|
listSP.replace(i, sp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!keyToReplace.isEmpty())
|
||||||
|
{
|
||||||
|
listSubProcMap[keyToReplace] = listSP;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -187,14 +201,14 @@ void DocsUpdater::domElementParserAMM(QDomElement element, Module* moduleParent)
|
|||||||
QList<SubProc> listSubProc;
|
QList<SubProc> listSubProc;
|
||||||
if(processingScenXML(dmCode, canplay, listSubProc))
|
if(processingScenXML(dmCode, canplay, listSubProc))
|
||||||
{
|
{
|
||||||
DMmodulParent->setModeList(parseCanplay(canplay));
|
DMmodulParent->setModeList(SubProc::parseCanplay(canplay));
|
||||||
nodeMap.namedItem("canplay").setNodeValue(canplay);
|
nodeMap.namedItem("canplay").setNodeValue(canplay);
|
||||||
|
|
||||||
listSubProcMap.insert(dmCode, listSubProc);
|
listSubProcMap.insert(dmCode, listSubProc);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DMmodulParent->setModeList(parseCanplay(canplay));
|
DMmodulParent->setModeList(SubProc::parseCanplay(canplay));
|
||||||
nodeMap.namedItem("canplay").setNodeValue(canplay);
|
nodeMap.namedItem("canplay").setNodeValue(canplay);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -242,51 +256,6 @@ void DocsUpdater::deleteAllModulsAMM()
|
|||||||
listAllModulesAMM.clear();
|
listAllModulesAMM.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
ModeList DocsUpdater::parseCanplay(QString canplay)
|
|
||||||
{
|
|
||||||
ModeList modeList;
|
|
||||||
|
|
||||||
if(canplay == "")
|
|
||||||
{
|
|
||||||
modeList.demo = false;
|
|
||||||
modeList.train = false;
|
|
||||||
modeList.exam = false;
|
|
||||||
modeList.autoM = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
QStringList list = canplay.split("/");
|
|
||||||
|
|
||||||
if(list.at(0) == "+")
|
|
||||||
modeList.demo = true;
|
|
||||||
else
|
|
||||||
modeList.demo = false;
|
|
||||||
|
|
||||||
if(list.at(1) == "+")
|
|
||||||
modeList.train = true;
|
|
||||||
else
|
|
||||||
modeList.train = false;
|
|
||||||
|
|
||||||
if(list.at(2) == "+")
|
|
||||||
modeList.exam = true;
|
|
||||||
else
|
|
||||||
modeList.exam = false;
|
|
||||||
|
|
||||||
if(list.at(3) == "+")
|
|
||||||
modeList.autoM = true;
|
|
||||||
else
|
|
||||||
modeList.autoM = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return modeList;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString DocsUpdater::buildCanplay(ModeList modeList)
|
|
||||||
{
|
|
||||||
QString canplay = QString("%1/%2/%3/%4").arg(modeList.demo?"+":"-", modeList.train?"+":"-", modeList.exam?"+":"-", modeList.autoM?"+":"-");
|
|
||||||
return canplay;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool DocsUpdater::processingScenXML(const QString dmCode, QString &canplay, QList<SubProc> &listSubProc)
|
bool DocsUpdater::processingScenXML(const QString dmCode, QString &canplay, QList<SubProc> &listSubProc)
|
||||||
{
|
{
|
||||||
listSubProc.clear();
|
listSubProc.clear();
|
||||||
@@ -384,8 +353,8 @@ void DocsUpdater::selectSubProc(QDomElement &modeElement, QList<SubProc> &listSu
|
|||||||
if(!subProcElement.isNull())
|
if(!subProcElement.isNull())
|
||||||
{
|
{
|
||||||
SubProc subProc;
|
SubProc subProc;
|
||||||
subProc.dmCode = subProcElement.toElement().attribute("dmCode");
|
subProc.setDmCode(subProcElement.toElement().attribute("dmCode"));
|
||||||
subProc.title = subProcElement.toElement().attribute("title");
|
subProc.setTitle(subProcElement.toElement().attribute("title"));
|
||||||
|
|
||||||
listSubProc.append(subProc);
|
listSubProc.append(subProc);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,9 +20,6 @@ public:
|
|||||||
|
|
||||||
bool updateDocsXML();
|
bool updateDocsXML();
|
||||||
|
|
||||||
static ModeList parseCanplay(QString canplay);
|
|
||||||
static QString buildCanplay(ModeList modeList);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void domElementParserAMM(QDomElement element, Module* moduleParent);
|
void domElementParserAMM(QDomElement element, Module* moduleParent);
|
||||||
void deleteAllModulsAMM();
|
void deleteAllModulsAMM();
|
||||||
|
|||||||
Reference in New Issue
Block a user