add base bay to project bay
This commit is contained in:
parent
61a1da4d17
commit
52e2efdfcf
|
|
@ -519,6 +519,8 @@ struct DiagramEditorBayInfo //组态编辑间隔信息
|
|||
{
|
||||
QString name; //间隔名
|
||||
int nLayout; //布局 0纵向1横向
|
||||
QList<QUuid> lstFrom; //起始
|
||||
QList<QUuid> lstTo; //结束
|
||||
QMap<QString,DiagramEditorRouteInfo> mapRoute; //线路信息
|
||||
QMap<QString,DiagramEditorComponentInfo> mapComponent; //设备信息
|
||||
};
|
||||
|
|
@ -843,6 +845,7 @@ struct bayInfo
|
|||
{
|
||||
QUuid uuid;
|
||||
QString name;
|
||||
QString tag;
|
||||
QString type;
|
||||
double unom;
|
||||
double fla;
|
||||
|
|
@ -871,6 +874,7 @@ struct itemPageInfo //page中保存的item信息(大小,位置etc)
|
|||
QPointF pos;
|
||||
double dWidth = 0.0;
|
||||
double dHeight = 0.0;
|
||||
double dRotate = 0.0;
|
||||
};
|
||||
|
||||
/*struct busStability
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ class PowerEntity;
|
|||
class DiagramEditorWizard;
|
||||
class EditPanel;
|
||||
class GraphicsBaseModelItem;
|
||||
class EditBaseItem;
|
||||
|
||||
class DIAGRAM_DESIGNER_PUBLIC DiagramCavas : public QMdiArea
|
||||
{
|
||||
|
|
@ -54,12 +55,11 @@ public slots:
|
|||
void onSignal_createEditPanel(QString);
|
||||
EditPanel* onSignal_addEditPanel(QString);
|
||||
void onSignal_addEditWizard(QString);
|
||||
void onSignal_wizardFinished(QString,QMap<QUuid,GraphicsBaseModelItem*>);
|
||||
void onSignal_wizardFinished(QString,QMap<QUuid,GraphicsBaseModelItem*>,QList<EditBaseItem*>);
|
||||
/*********************************间隔**************************************/
|
||||
void onSignl_openCurrentBay();
|
||||
private:
|
||||
void removePanel(PowerEntity*);
|
||||
void autoSetModelName(GraphicsBaseModelItem*); //如果此页的工程模已被设置,将projectName更新到item
|
||||
private:
|
||||
QMap<QString,QPair<DrawingPanel*,QMdiSubWindow*>> m_mapDrawPanel;
|
||||
int _pageIndex;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ public:
|
|||
virtual void setType(EditorItemType tpe) {nType = tpe;}
|
||||
virtual EditorItemType getType(){return nType;}
|
||||
virtual void setBoundingRect(QRectF rec) {m_boundingRect = rec;}
|
||||
virtual QRectF boundingRect() const {return m_boundingRect;}
|
||||
virtual QRectF boundingRect() const override {return m_boundingRect;}
|
||||
virtual void setBlockData(QPointer<DiagramEditorBaseBlock> p){_pBlock = p;}
|
||||
virtual QPointer<DiagramEditorBaseBlock> getBlockData(){return _pBlock;}
|
||||
virtual QString getShowType(){return QString();} //获取显示类别
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ class DiagramEditorTransformerBlock;
|
|||
class EditPanel;
|
||||
class DiagramEditorWizard;
|
||||
class DiagramCavas;
|
||||
class EditBaseItem;
|
||||
|
||||
int const g_nHorizontalBlockSpacing = 100; //间隔横向间距
|
||||
|
||||
|
|
@ -58,13 +59,13 @@ public:
|
|||
|
||||
void generateItemByModel(QStandardItemModel* pModel,int nFrom = 0,QPoint delta = QPoint(0,0)); //0间隔1变压器
|
||||
QList<DiagramEditorComponentInfo> generateItemByInfo(QMap<QString,DiagramEditorRouteInfo> mapRoute,QMap<QString,DiagramEditorComponentInfo> mapCompo,QPointF delta = QPointF(0,0)); //根据data生成item
|
||||
void generateOutConnection(QList<DiagramEditorComponentInfo>,int nTypeTransCon,int nPos = 0); //生成外部连接(手动bind的连接) nTypeTransCon变压器连线类型,1中性点连接2外部连接,nPos中性点连接时的位置
|
||||
QMultiMap<int,QUuid> generateOutConnection(QList<DiagramEditorComponentInfo>,int nTypeTransCon,int nPos = 0); //生成外部连接(手动bind的连接) nTypeTransCon变压器连线类型,1中性点连接2外部连接,nPos中性点连接时的位置
|
||||
QRectF updateTarget(QMap<QString,DiagramEditorRouteInfo>&,QMap<QString,DiagramEditorComponentInfo>&,int nLayout,int nSource,bool saveToModel = true); //更新位置 nLayout主次朝向:8421,8421 上下左右,上下左右 nSource:0间隔1变压器 regenerate重新生成标志 saveToModel:生成到模型或map
|
||||
void clearCompoDir(QMap<QString,DiagramEditorRouteInfo>&,QMap<QString,DiagramEditorComponentInfo>&,int nSource); //清空component中的dir(updateTarget前调用)
|
||||
|
||||
QList<DiagramEditorComponentInfo> getRouteItemInfoList(QMap<QString,DiagramEditorComponentInfo>,QMap<QString,DiagramEditorRouteInfo>); //返回线路中包含的设备信息列表
|
||||
private:
|
||||
void bulidAndLinkComponent(QList<DiagramEditorComponentInfo>,QMap<QString,DiagramEditorComponentInfo>); //生成并连接线路上的设备 lst,mapComponents(从map中获取正确数据)
|
||||
//DiagramEditorComponentInfo getCompoDataFromName(const QString&,QMap<QString,DiagramEditorComponentInfo>); //根据名称获取数据
|
||||
QList<DiagramEditorComponentInfo> getRouteItemInfoList(QMap<QString,DiagramEditorComponentInfo>,QMap<QString,DiagramEditorRouteInfo>); //返回线路中包含的设备信息列表
|
||||
private:
|
||||
QMap<QUuid,GraphicsBaseModelItem*> _tempItem; //临时预览对象
|
||||
QMap<QUuid,GraphicsBaseModelItem*> _previewItem; //预览对象
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ class BayProperty;
|
|||
class BayManagerDlg;
|
||||
class ModelProperty;
|
||||
struct itemPageInfo;
|
||||
class EditBaseItem;
|
||||
|
||||
class FixedPortsModel : public BaseModel, public Serializable
|
||||
{
|
||||
|
|
@ -42,7 +43,7 @@ public:
|
|||
QVector<ModelProperty*> allConnectionProperty();
|
||||
QMap<QUuid,GraphicsProjectModelItem*>& allItems();
|
||||
bool addNodeItem(QUuid uuid,GraphicsProjectModelItem*);
|
||||
void addNodeItem(QUuid id,QPointF pos,double width = 0,double height = 0);
|
||||
void addNodeItem(QUuid id,QPointF pos,double width = 0,double height = 0,double rotate = 0);
|
||||
GraphicsProjectModelItem* nodeItem(QUuid uuid);
|
||||
BaseProperty* addNodeData(QUuid id,int type,QString name,QString modelName); //对应component数据,一个data可对应多个item(id,类型,名称,工程模名)
|
||||
void loadNodeDataFromDataBase(); //从数据库加载数据
|
||||
|
|
@ -78,17 +79,18 @@ public:
|
|||
void showProjectModelSettingDlg(GraphicsBaseModelItem*); //在基模拓扑图上打开工程模设置对话框
|
||||
void generateProjectModel(const QString&,QList<GraphicsBaseModelItem*>,QList<GraphicsNonStandardItem*>); //由基模生成工程模
|
||||
void addProjectItemByBaseData(DrawingPanel*,GraphicsBaseModelItem*,BaseProperty*); //从基模item生成工程模item
|
||||
void onWizardFinished(QMap<QUuid,GraphicsBaseModelItem*> mapItem,QList<EditBaseItem*> mapBay); //editor结束生成基模
|
||||
/*************************间隔*****************************/
|
||||
void addBayItem(QUuid);
|
||||
bool addBayItem(QUuid,ElectricBayItem*);
|
||||
void addBayItem(QUuid,ModelFunctionType = ModelFunctionType::ProjectModel);
|
||||
bool addBayItem(QUuid,ElectricBayItem*,ModelFunctionType = ModelFunctionType::ProjectModel);
|
||||
void addItemsToBay(QList<GraphicsBaseItem*>,ElectricBayItem*); //将对象添加到间隔
|
||||
BayProperty* addBayData(QUuid uuid);
|
||||
BayProperty* addBayData(QUuid uuid,ModelFunctionType = ModelFunctionType::ProjectModel);
|
||||
QMap<QUuid,ElectricBayItem*>& allBayItem(); //返回所有间隔对象
|
||||
|
||||
BayProperty* generateBayData(BayProperty*,QList<BaseProperty*>); //生成新间隔数据(间隔数据结构相同)<baseBay,projectData>
|
||||
QList<QUuid> getCorrespondId(QList<QUuid>,QList<BaseProperty*>); //获取基模id对应的工程模id
|
||||
QRectF calculateItemsBoundingRect(QList<GraphicsBaseItem*> items); //返回包含所有item的rect
|
||||
void addBayByData(BayProperty*); //基模bay生成工程模bay
|
||||
void addBayByData(BayProperty*,ModelFunctionType = ModelFunctionType::ProjectModel); //data生成bay
|
||||
|
||||
void addTestData(); //生成测试基模
|
||||
QJsonObject turnListToJson(QList<QUuid> lst,QString sInerTag,QString sOutTag); //将list转换为QJsonObject,<lst,内部标签,外部标签>
|
||||
|
|
@ -109,10 +111,12 @@ public Q_SLOTS:
|
|||
void onSignal_openBayManager();
|
||||
private:
|
||||
void addPortsToItem_json(PortState,QJsonArray,GraphicsProjectModelItem*); //将json格式的port添加到item
|
||||
void autoSetModelName(GraphicsBaseModelItem*); //如果此页的工程模已被设置,将projectName更新到item
|
||||
private:
|
||||
|
||||
QMap<QUuid,GraphicsProjectModelItem*> _nodeItem; //工程模对象
|
||||
QMap<QUuid,GraphicsBaseModelItem*> _baseItem; //基模对象
|
||||
QMap<QUuid,ElectricBayItem*> _baseBayItem; //基模间隔对象
|
||||
QMap<QUuid,ElectricBayItem*> _bayItem; //间隔对象
|
||||
|
||||
QString _pageName;
|
||||
|
|
|
|||
|
|
@ -82,6 +82,25 @@ void BayManagerContentDlg::updateByProperty()
|
|||
ui->tw_zhuangTai->setRowCount(0);
|
||||
ui->tw_qiTa->setRowCount(0);
|
||||
|
||||
ui->le_index->setText(_pData->uuid().toString());
|
||||
ui->le_type->setText(_pData->getType());
|
||||
|
||||
QStringList lstFrom;
|
||||
for(auto uid:_pData->getLstFrom()){
|
||||
lstFrom.append(uid.toString());
|
||||
}
|
||||
ui->le_from->setText(lstFrom.join(" "));
|
||||
|
||||
QStringList lstTo;
|
||||
for(auto uid:_pData->getLstTo()){
|
||||
lstTo.append(uid.toString());
|
||||
}
|
||||
ui->le_to->setText(lstTo.join(" "));
|
||||
|
||||
ui->le_voltage->setText(QString::number(_pData->getVoltage()));
|
||||
ui->le_fla->setText(QString::number(_pData->getFla()));
|
||||
ui->le_capacity->setText(QString::number(_pData->getCapacity()));
|
||||
|
||||
QList<BaseProperty*> lstPro;
|
||||
QList<QUuid> lstId = _pData->getLstComponent();
|
||||
QList<QUuid> lstProtectId = _pData->getLstProtect(); //综合保护
|
||||
|
|
|
|||
|
|
@ -348,21 +348,6 @@ void DiagramCavas::removePanel(PowerEntity* pEntity)
|
|||
}
|
||||
}
|
||||
|
||||
void DiagramCavas::autoSetModelName(GraphicsBaseModelItem* pItem)
|
||||
{
|
||||
ModelProperty* p = pItem->getProperty();
|
||||
BaseModelProperty* pro = dynamic_cast<BaseModelProperty*>(p);
|
||||
if(pro){
|
||||
QString sMeta = pro->metaModelName();
|
||||
QString sModel = sMeta+"_"+_curPage;
|
||||
bool exist = ProjectModelManager::instance().getData()[sMeta].contains(sModel);
|
||||
if(exist){
|
||||
pro->setModelName(sModel);
|
||||
pro->getModelProperty().modelSetting.modelName = sModel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DiagramCavas::onCreateTestBaseModelDiagram()
|
||||
{
|
||||
PowerEntity* pEntity;
|
||||
|
|
@ -415,7 +400,7 @@ void DiagramCavas::onSignal_addEditWizard(QString name)
|
|||
_pEditorWizard->show();
|
||||
}
|
||||
|
||||
void DiagramCavas::onSignal_wizardFinished(QString sName,QMap<QUuid,GraphicsBaseModelItem*> mapItem)
|
||||
void DiagramCavas::onSignal_wizardFinished(QString sName,QMap<QUuid,GraphicsBaseModelItem*> mapItem,QList<EditBaseItem*> mapBay)
|
||||
{
|
||||
PowerEntity* pEntity;
|
||||
QUuid id = QUuid::createUuid();
|
||||
|
|
@ -427,60 +412,19 @@ void DiagramCavas::onSignal_wizardFinished(QString sName,QMap<QUuid,GraphicsBase
|
|||
onSignal_addDrawingPanel(pEntity,DM_baseModel);
|
||||
DrawingPanel* pPanel = getPanel(pEntity->name());
|
||||
TopologyManager::instance().cloneEditorToBase(); //拷贝拓扑结构
|
||||
|
||||
QMap<QUuid,DiagramEditorItemProperty*> mapEditor = BasePropertyManager::instance().getEditorData();
|
||||
for(auto& pro:mapEditor){
|
||||
if(BasePropertyManager::instance().findBaseEntityData(pro->uuid()) == nullptr){ //拷贝editor数据到basemodel中
|
||||
auto pPro = pPanel->getModelController()->addBaseNodeData(pro->uuid(),pro->type(),pro->name(),pro->metaModelName(),pro->getBlock());
|
||||
pPro->setConnection(pro->getConnection());
|
||||
pPro->setGraphicsType(pro->graphicsType());
|
||||
auto pModel = pPanel->getModelController();
|
||||
if(pModel){
|
||||
pModel->onWizardFinished(mapItem,mapBay);
|
||||
}
|
||||
}
|
||||
//pPanel->getModelController()->addTestData();
|
||||
|
||||
for(auto pItem:mapItem){
|
||||
auto cloneItem = pItem->clone();
|
||||
BaseModelProperty* pPro = BasePropertyManager::instance().findBaseEntityData(cloneItem->itemId());
|
||||
if(pPro){
|
||||
cloneItem->setProperty(pPro);
|
||||
pPanel->getScene()->addItem(cloneItem);
|
||||
cloneItem->setPos(pItem->pos());
|
||||
pPanel->getModelController()->addBaseItem(cloneItem->itemId(),cloneItem);
|
||||
pPro->setDataChanged(true);
|
||||
autoSetModelName(cloneItem);
|
||||
|
||||
if(pPro->type() != 8){
|
||||
PowerEntity* pEntity = TopologyManager::instance().findEntity(pPro->uuid().toString(),ModelFunctionType::BaseModel);
|
||||
if(pEntity)
|
||||
cloneItem->setEntity(pEntity);
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QList<QGraphicsItem*> items = pPanel->getScene()->items();
|
||||
|
||||
if (items.isEmpty()) {
|
||||
return; // 没有 items 时返回
|
||||
}
|
||||
|
||||
// 计算所有 items 的联合包围盒
|
||||
QRectF totalBoundingRect;
|
||||
foreach (QGraphicsItem *item, items) {
|
||||
totalBoundingRect |= item->sceneBoundingRect();
|
||||
}
|
||||
|
||||
// 计算中心点
|
||||
QPointF center = totalBoundingRect.center();
|
||||
pPanel->getView()->centerOn(center);
|
||||
}
|
||||
}
|
||||
/*******************bay************************/
|
||||
void DiagramCavas::onSignl_openCurrentBay()
|
||||
{
|
||||
QWidget* pWindow= currentSubWindow()->widget();
|
||||
if(pWindow == nullptr){
|
||||
QMessageBox::information(NULL, QString("提示"), QString::fromWCharArray(L"当前无打开的工程模"));
|
||||
}
|
||||
DrawingPanel* pPanel = dynamic_cast<DrawingPanel*>(pWindow);
|
||||
if(pPanel)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -373,7 +373,11 @@ void EditPanel::showConfirmDlg()
|
|||
connect(_confirmEditor,&ConfirmEditorDlg::onConfirmEditor,this,[&](QString sAuthor,QString sTime){
|
||||
auto pCavas = _pModel->getCavas();
|
||||
if(pCavas){
|
||||
pCavas->onSignal_wizardFinished(_projectName,_pModel->getPreviewItem());
|
||||
|
||||
//QList<DiagramEditorBayBlock*> lstBocks;
|
||||
QList<EditBaseItem*> pBays = getBlockItems(EditorItemType::bay);
|
||||
|
||||
pCavas->onSignal_wizardFinished(_projectName,_pModel->getPreviewItem(),pBays);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -193,6 +193,7 @@ QJsonObject DrawingPanel::getDiagramInfo() const
|
|||
node["y"] = iter.value().pos.y();
|
||||
node["width"] = iter.value().dWidth;
|
||||
node["height"] = iter.value().dHeight;
|
||||
node["rotate"] = iter.value().dRotate;
|
||||
arr.append(node);
|
||||
}
|
||||
obj["nodes"] = arr;
|
||||
|
|
@ -240,11 +241,12 @@ void DrawingPanel::loadNodes(QJsonObject obj)
|
|||
double dY = node["y"].toDouble();
|
||||
double dWidth = node["width"].toDouble();
|
||||
double dHeight = node["height"].toDouble();
|
||||
double dRotate = node["rotate"].toDouble();
|
||||
|
||||
//componentInfo info =DataBase::GetInstance()->getComponentInfoByUuid(uuid);
|
||||
if(_pModel)
|
||||
{
|
||||
_pModel->addNodeItem(QUuid(uuid)/*,info.type*/,QPointF(dX,dY),dWidth,dHeight);
|
||||
_pModel->addNodeItem(QUuid(uuid)/*,info.type*/,QPointF(dX,dY),dWidth,dHeight,dRotate);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -557,8 +557,86 @@ void DiagramEditorModel::generatePreview()
|
|||
}
|
||||
}
|
||||
|
||||
for(auto &lst:baysCompo){
|
||||
generateOutConnection(lst,2);
|
||||
for(auto iter = baysCompo.begin();iter != baysCompo.end();++iter){
|
||||
QMultiMap<int,QUuid> mapId = generateOutConnection(iter.value(),2);
|
||||
|
||||
QList<QUuid> lstFrom; //处理进出链接
|
||||
QList<QUuid> lstTo;
|
||||
|
||||
for(auto item:lst){
|
||||
if(item->getType() == EditorItemType::bay){
|
||||
auto p = item->getBlockData(); //获取blockitem对应的data
|
||||
DiagramEditorBayBlock* pBay = dynamic_cast<DiagramEditorBayBlock*>(p.data());
|
||||
if(pBay){
|
||||
if(pBay->getName() == iter.key()){ //相同间隔
|
||||
switch (pBay->getBayType()) {
|
||||
case BayType::busSectionBay:{
|
||||
QList<QUuid> values = mapId.values(1);
|
||||
|
||||
if (!values.isEmpty()) {
|
||||
// 第一个值放入lstFrom
|
||||
lstFrom.append(values.first());
|
||||
|
||||
// 如果有第二个值,放入lstTo
|
||||
if (values.size() > 1) {
|
||||
lstTo.append(values.at(1));
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case BayType::busCouplerBay:{
|
||||
QList<QUuid> values = mapId.values(1);
|
||||
|
||||
if (!values.isEmpty()) {
|
||||
// 第一个值放入lstFrom
|
||||
lstFrom.append(values.first());
|
||||
|
||||
// 如果有第二个值,放入lstTo
|
||||
if (values.size() > 1) {
|
||||
lstTo.append(values.at(1));
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case BayType::ptBay:{
|
||||
QList<QUuid> values = mapId.values(1);
|
||||
|
||||
if (!values.isEmpty()) {
|
||||
// 第一个值放入lstTo
|
||||
lstTo.append(values.first());
|
||||
}
|
||||
}
|
||||
break;
|
||||
case BayType::incomingBay:{
|
||||
for (auto it = mapId.begin(); it != mapId.end(); ++it) {
|
||||
if (it.key() == 1) {
|
||||
lstTo.append(it.value()); // 连接母线,放入 lstTo
|
||||
} else {
|
||||
lstFrom.append(it.value()); // 其他,放入 lstFrom
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case BayType::outcomingBay:{
|
||||
for (auto it = mapId.begin(); it != mapId.end(); ++it) {
|
||||
if (it.key() != 1) {
|
||||
lstTo.append(it.value()); // 不连接母线,放入 lstTo
|
||||
} else {
|
||||
lstFrom.append(it.value()); // 连接母线,放入 lstFrom
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
pBay->getBayInfo().lstFrom = lstFrom;
|
||||
pBay->getBayInfo().lstTo = lstTo;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for(auto &map:transCompo){
|
||||
|
|
@ -1015,14 +1093,17 @@ QList<DiagramEditorComponentInfo> DiagramEditorModel::generateItemByInfo(QMap<QS
|
|||
return lstBind;
|
||||
}
|
||||
|
||||
void DiagramEditorModel::generateOutConnection(QList<DiagramEditorComponentInfo> lstBind,int nTypeTransCon,int nPos)
|
||||
QMultiMap<int,QUuid> DiagramEditorModel::generateOutConnection(QList<DiagramEditorComponentInfo> lstBind,int nTypeTransCon,int nPos)
|
||||
{
|
||||
QMultiMap<int,QUuid> bindId; //返回关联的对象id<类型,id>
|
||||
for(auto& compo:lstBind){ //遍历关联外部的item,进行连线
|
||||
if(compo.nBindType == 1){ //关联的是母线 母线没有数据,获取绘制的母线item
|
||||
for(auto& pItem:_previewItem){
|
||||
auto pro = pItem->getProperty();
|
||||
if(pro){
|
||||
QString sName = pro->name();
|
||||
QUuid uId = pro->uuid();
|
||||
int nType = pro->type();
|
||||
if(sName == compo.sBindObj){
|
||||
GraphicsBaseModelItem* pSrc = _previewItem.value(compo.uid);
|
||||
GraphicsBaseModelItem* pTarget = pItem;
|
||||
|
|
@ -1041,6 +1122,7 @@ void DiagramEditorModel::generateOutConnection(QList<DiagramEditorComponentInfo>
|
|||
if(pLine)
|
||||
establishConnection(pSrc,pTarget,pLine,ModelFunctionType::EditorModel);
|
||||
}
|
||||
bindId.insert(nType,uId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1050,6 +1132,8 @@ void DiagramEditorModel::generateOutConnection(QList<DiagramEditorComponentInfo>
|
|||
auto pro = pItem->getProperty();
|
||||
if(pro){
|
||||
QString sName = pro->name();
|
||||
QUuid uId = pro->uuid();
|
||||
int nType = pro->type();
|
||||
if(sName == compo.sBindParent){ //判断变压器名
|
||||
GraphicsBaseModelItem* pSrc = _previewItem.value(compo.uid);
|
||||
GraphicsBaseModelItem* pTarget = pItem;
|
||||
|
|
@ -1076,11 +1160,13 @@ void DiagramEditorModel::generateOutConnection(QList<DiagramEditorComponentInfo>
|
|||
establishConnection(pSrc,pTarget,pLine,ModelFunctionType::EditorModel,nTypeTransCon,nPos);
|
||||
}
|
||||
}
|
||||
bindId.insert(nType,uId);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return bindId;
|
||||
}
|
||||
|
||||
void DiagramEditorModel::clearCompoDir(QMap<QString,DiagramEditorRouteInfo>& data,QMap<QString,DiagramEditorComponentInfo>& compos,int nSource)
|
||||
|
|
|
|||
|
|
@ -22,6 +22,9 @@
|
|||
#include "baseModelItem/electricBaseModelSvgBus.h"
|
||||
#include "baseModelItem/electricBaseModelLineItem.h"
|
||||
#include "graphicsItem/electricBayItem.h"
|
||||
#include "diagramEditor/diagramEditorBaseBlock.h"
|
||||
#include "graphicsItem/electricBayItem.h"
|
||||
#include "diagramEditor/editItems.h"
|
||||
#include "graphicsItem/itemPort.h"
|
||||
#include "designerScene.h"
|
||||
#include "dataBase.h"
|
||||
|
|
@ -83,6 +86,7 @@ QMap<QUuid,itemPageInfo> FixedPortsModel::allNodePos() const
|
|||
info.pos = pItem->scenePos()/*+QPointF(dWidth*0.5,dHeight*0.5)*/;
|
||||
info.dWidth = dWidth;
|
||||
info.dHeight = dHeight;
|
||||
info.dRotate = pItem->rotation();
|
||||
map.insert(pItem->itemId(),info);
|
||||
}
|
||||
}
|
||||
|
|
@ -132,7 +136,7 @@ bool FixedPortsModel::addNodeItem(QUuid uuid,GraphicsProjectModelItem* pItem)
|
|||
}
|
||||
}
|
||||
|
||||
void FixedPortsModel::addNodeItem(QUuid id/*,int type*/,QPointF pos,double width,double height)
|
||||
void FixedPortsModel::addNodeItem(QUuid id/*,int type*/,QPointF pos,double width,double height,double rotate)
|
||||
{
|
||||
//todo:load图形时必有拓扑实体,关联到对应的entity
|
||||
BaseProperty* pro = nullptr;
|
||||
|
|
@ -535,6 +539,7 @@ void FixedPortsModel::addNodeItem(QUuid id/*,int type*/,QPointF pos,double width
|
|||
item->setItemId(id);
|
||||
item->editShape(0, pos);
|
||||
item->setPos(pos);
|
||||
item->setRotation(rotate);
|
||||
//item->setSelected(true);
|
||||
_scene->addItem(item);
|
||||
item->addPoint(pos);
|
||||
|
|
@ -773,7 +778,7 @@ void FixedPortsModel::saveNode(int nPageId)
|
|||
QJsonObject objIns= turnListToJson(pBay->getLstInstruct(),"id","ids");
|
||||
QJsonObject objEtc= turnListToJson(pBay->getLstEtc(),"id","ids");
|
||||
|
||||
DataBase::GetInstance()->insertBay(pBay->uuid(),pBay->name(),pBay->getType(),pBay->getVoltage(),pBay->getFla(),pBay->getCapacity(),"1",pBay->getInService(),0,"1","1","1",QJsonObject(),objFrom,objTo,objProtec,objFalRec,objStatus,objDynSen,objIns,objEtc,pBay->getLstComponent(),QJsonObject());
|
||||
DataBase::GetInstance()->insertBay(pBay->uuid(),pBay->name(),pBay->tag(),pBay->getType(),pBay->getVoltage(),pBay->getFla(),pBay->getCapacity(),"1",pBay->getInService(),0,"1","1","1",QJsonObject(),objFrom,objTo,objProtec,objFalRec,objStatus,objDynSen,objIns,objEtc,pBay->getLstComponent(),QJsonObject());
|
||||
}
|
||||
else{
|
||||
QJsonObject objFrom = turnListToJson(pBay->getLstFrom(),"id","ids");
|
||||
|
|
@ -785,7 +790,7 @@ void FixedPortsModel::saveNode(int nPageId)
|
|||
QJsonObject objIns= turnListToJson(pBay->getLstInstruct(),"id","ids");
|
||||
QJsonObject objEtc= turnListToJson(pBay->getLstEtc(),"id","ids");
|
||||
|
||||
DataBase::GetInstance()->updateBay(pBay->uuid(),pBay->name(),pBay->getVoltage(),pBay->getFla(),pBay->getCapacity(),"",pBay->getInService(),0,QJsonObject(),objFrom,objTo,objProtec,objFalRec,objStatus,objDynSen,objIns,objEtc,pBay->getLstComponent(),QJsonObject());
|
||||
DataBase::GetInstance()->updateBay(pBay->uuid(),pBay->name(),pBay->tag(),pBay->getVoltage(),pBay->getFla(),pBay->getCapacity(),"",pBay->getInService(),0,QJsonObject(),objFrom,objTo,objProtec,objFalRec,objStatus,objDynSen,objIns,objEtc,pBay->getLstComponent(),QJsonObject());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1037,7 +1042,7 @@ void FixedPortsModel::onSignal_generateDiagram(const QString& sName)
|
|||
}
|
||||
|
||||
QList<GraphicsNonStandardItem*> lstBay;
|
||||
for(auto& item:_bayItem)
|
||||
for(auto& item:_baseBayItem)
|
||||
{
|
||||
lstBay.append(item);
|
||||
}
|
||||
|
|
@ -1081,6 +1086,22 @@ void FixedPortsModel::addPortsToItem_json(PortState sta,QJsonArray jArr,Graphics
|
|||
}
|
||||
}
|
||||
|
||||
void FixedPortsModel::autoSetModelName(GraphicsBaseModelItem* pItem)
|
||||
{
|
||||
ModelProperty* p = pItem->getProperty();
|
||||
BaseModelProperty* pro = dynamic_cast<BaseModelProperty*>(p);
|
||||
if(pro){
|
||||
QString sMeta = pro->metaModelName();
|
||||
QString sModel = sMeta+"_"+_pageName;
|
||||
bool exist = ProjectModelManager::instance().getData()[sMeta].contains(sModel);
|
||||
if(exist){
|
||||
pro->setModelName(sModel);
|
||||
pro->getModelProperty().modelSetting.modelName = sModel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QWidget* FixedPortsModel::getTopWidget()
|
||||
{
|
||||
return dynamic_cast<QWidget*>(_widget);
|
||||
|
|
@ -1378,6 +1399,140 @@ void FixedPortsModel::generateProjectModel(const QString& sPageName,QList<Graphi
|
|||
}
|
||||
}
|
||||
|
||||
void FixedPortsModel::onWizardFinished(QMap<QUuid,GraphicsBaseModelItem*> mapItem,QList<EditBaseItem*> mapBay)
|
||||
{
|
||||
QMap<QUuid,DiagramEditorItemProperty*> mapEditor = BasePropertyManager::instance().getEditorData();
|
||||
for(auto& pro:mapEditor){
|
||||
if(BasePropertyManager::instance().findBaseEntityData(pro->uuid()) == nullptr){ //拷贝editor数据到basemodel中
|
||||
auto pPro = _widget->getModelController()->addBaseNodeData(pro->uuid(),pro->type(),pro->name(),pro->metaModelName(),pro->getBlock());
|
||||
pPro->setConnection(pro->getConnection());
|
||||
pPro->setGraphicsType(pro->graphicsType());
|
||||
}
|
||||
}
|
||||
//pPanel->getModelController()->addTestData();
|
||||
|
||||
for(auto pItem:mapItem){
|
||||
auto cloneItem = pItem->clone();
|
||||
BaseModelProperty* pPro = BasePropertyManager::instance().findBaseEntityData(cloneItem->itemId());
|
||||
if(pPro){
|
||||
cloneItem->setProperty(pPro);
|
||||
_scene->addItem(cloneItem);
|
||||
cloneItem->setPos(pItem->pos());
|
||||
addBaseItem(cloneItem->itemId(),cloneItem);
|
||||
pPro->setDataChanged(true);
|
||||
autoSetModelName(cloneItem);
|
||||
|
||||
if(pPro->type() != 8){
|
||||
PowerEntity* pEntity = TopologyManager::instance().findEntity(pPro->uuid().toString(),ModelFunctionType::BaseModel);
|
||||
if(pEntity)
|
||||
cloneItem->setEntity(pEntity);
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QList<QGraphicsItem*> items = _scene->items();
|
||||
|
||||
if (items.isEmpty()) {
|
||||
return; // 没有 items 时返回
|
||||
}
|
||||
|
||||
// 计算所有 items 的联合包围盒
|
||||
QRectF totalBoundingRect;
|
||||
foreach (QGraphicsItem *item, items) {
|
||||
totalBoundingRect |= item->sceneBoundingRect();
|
||||
}
|
||||
|
||||
// 计算中心点
|
||||
QPointF center = totalBoundingRect.center();
|
||||
//_widget->getView()->centerOn(center);
|
||||
|
||||
//**************间隔*************
|
||||
for(auto item:mapBay){
|
||||
auto p = item->getBlockData(); //获取blockitem对应的data
|
||||
DiagramEditorBayBlock* pBay = dynamic_cast<DiagramEditorBayBlock*>(p.data());
|
||||
if(pBay){
|
||||
QString sBay = pBay->getName();
|
||||
auto bayInfo = pBay->getBayInfo();
|
||||
auto mapRoute = bayInfo.mapRoute;
|
||||
auto mapCompo = bayInfo.mapComponent;
|
||||
|
||||
QList<DiagramEditorComponentInfo> lstInfo;
|
||||
for(auto& route:mapRoute){ //获取路线中使用的设备
|
||||
for(auto& compo:route.lstCompo){
|
||||
auto info = mapCompo.value(compo.sName);
|
||||
|
||||
bool exist = false;
|
||||
for(auto& inf:lstInfo){
|
||||
if(inf == info){
|
||||
exist = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!exist){
|
||||
lstInfo.append(info);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QList<GraphicsBaseItem*> lst;
|
||||
for(auto &inf:lstInfo){
|
||||
if(_baseItem.contains(inf.uid))
|
||||
lst.append(_baseItem.value(inf.uid));
|
||||
}
|
||||
QRectF rec = calculateItemsBoundingRect(lst);
|
||||
ElectricBayItem* pNew = new ElectricBayItem(rec);
|
||||
pNew->setItemType(GIT_bay);
|
||||
pNew->setText(sBay);
|
||||
QString sType;
|
||||
switch (pBay->getBayType()) {
|
||||
case BayType::busSectionBay:
|
||||
sType = QString("分段间隔");
|
||||
break;
|
||||
case BayType::busCouplerBay:
|
||||
sType = QString("母联间隔");
|
||||
break;
|
||||
case BayType::ptBay:
|
||||
sType = QString("PT间隔");
|
||||
break;
|
||||
case BayType::incomingBay:
|
||||
sType = QString("进线间隔");
|
||||
break;
|
||||
case BayType::outcomingBay:
|
||||
sType = QString("出线间隔");
|
||||
break;
|
||||
case BayType::compensationBay:
|
||||
sType = QString("无功补偿间隔");
|
||||
break;
|
||||
case BayType::bypassBay:
|
||||
sType = QString("旁路间隔");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
QUuid bayId = pBay->getId();
|
||||
BayProperty* pBayData = addBayData(bayId,ModelFunctionType::BaseModel);
|
||||
pNew->setProperty(pBayData);
|
||||
pBayData->setName(sBay);
|
||||
pBayData->setTag(sBay);
|
||||
pBayData->setType(sType);
|
||||
pBayData->setLstFrom(pBay->getBayInfo().lstFrom);
|
||||
pBayData->setLstTo(pBay->getBayInfo().lstTo);
|
||||
|
||||
for(auto &info:lstInfo){
|
||||
pBayData->getLstComponent().append(info.uid);
|
||||
}
|
||||
|
||||
addBayItem(bayId,pNew,ModelFunctionType::BaseModel);
|
||||
//pModel->addItemsToBay(lst,pNew);
|
||||
_scene->addItem(pNew);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FixedPortsModel::addProjectItemByBaseData(DrawingPanel* pPanel,GraphicsBaseModelItem* pItem,BaseProperty* pPro)
|
||||
{
|
||||
BaseModelProperty* pBase = dynamic_cast<BaseModelProperty*>(pItem->getProperty());
|
||||
|
|
@ -1810,8 +1965,21 @@ void FixedPortsModel::addProjectItemByBaseData(DrawingPanel* pPanel,GraphicsBase
|
|||
}
|
||||
}
|
||||
|
||||
void FixedPortsModel::addBayItem(QUuid id)
|
||||
void FixedPortsModel::addBayItem(QUuid id,ModelFunctionType tpe)
|
||||
{
|
||||
if(tpe == ModelFunctionType::BaseModel){
|
||||
QMap<QUuid,BayProperty*> mapData = BasePropertyManager::instance().getBaseBayData(); //加载的图形必定关联component(todo:完善判断条件,如判断拓扑节点)
|
||||
if(mapData.contains(id))
|
||||
{
|
||||
BayProperty* pro = mapData.value(id);
|
||||
if(pro)
|
||||
{
|
||||
addBayByData(pro,tpe);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(tpe == ModelFunctionType::ProjectModel)
|
||||
{
|
||||
QMap<QUuid,BayProperty*> mapData = BasePropertyManager::instance().getBayData(); //加载的图形必定关联component(todo:完善判断条件,如判断拓扑节点)
|
||||
if(mapData.contains(id))
|
||||
{
|
||||
|
|
@ -1821,10 +1989,22 @@ void FixedPortsModel::addBayItem(QUuid id)
|
|||
addBayByData(pro);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
bool FixedPortsModel::addBayItem(QUuid id,ElectricBayItem* pBay)
|
||||
bool FixedPortsModel::addBayItem(QUuid id,ElectricBayItem* pBay,ModelFunctionType typ)
|
||||
{
|
||||
if(typ == ModelFunctionType::BaseModel){
|
||||
if(_baseBayItem.contains(id))
|
||||
return false;
|
||||
else
|
||||
{
|
||||
_baseBayItem.insert(id,pBay);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if(typ == ModelFunctionType::ProjectModel){
|
||||
if(_bayItem.contains(id))
|
||||
return false;
|
||||
else
|
||||
|
|
@ -1832,6 +2012,8 @@ bool FixedPortsModel::addBayItem(QUuid id,ElectricBayItem* pBay)
|
|||
_bayItem.insert(id,pBay);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void FixedPortsModel::addItemsToBay(QList<GraphicsBaseItem*> lstItem,ElectricBayItem* pBay)
|
||||
|
|
@ -1852,8 +2034,23 @@ void FixedPortsModel::addItemsToBay(QList<GraphicsBaseItem*> lstItem,ElectricBay
|
|||
}
|
||||
}
|
||||
|
||||
BayProperty* FixedPortsModel::addBayData(QUuid uuid)
|
||||
BayProperty* FixedPortsModel::addBayData(QUuid uuid,ModelFunctionType typ)
|
||||
{
|
||||
if(typ == ModelFunctionType::BaseModel){
|
||||
BayProperty* pData = BasePropertyManager::instance().findBaseBayData(uuid); //已存在不不创建
|
||||
if(pData != nullptr)
|
||||
return pData;
|
||||
|
||||
BayProperty* item = new BayProperty();
|
||||
|
||||
if(item)
|
||||
{
|
||||
item->setUuid(uuid);
|
||||
BasePropertyManager::instance().insertBaseBayData(uuid,item);
|
||||
}
|
||||
return item;
|
||||
}
|
||||
else if(typ == ModelFunctionType::ProjectModel){
|
||||
BayProperty* pData = BasePropertyManager::instance().findBayData(uuid); //已存在不不创建
|
||||
if(pData != nullptr)
|
||||
return pData;
|
||||
|
|
@ -1866,6 +2063,8 @@ BayProperty* FixedPortsModel::addBayData(QUuid uuid)
|
|||
BasePropertyManager::instance().insertBayData(uuid,item);
|
||||
}
|
||||
return item;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
QMap<QUuid,ElectricBayItem*>& FixedPortsModel::allBayItem()
|
||||
|
|
@ -1875,8 +2074,7 @@ QMap<QUuid,ElectricBayItem*>& FixedPortsModel::allBayItem()
|
|||
|
||||
BayProperty* FixedPortsModel::generateBayData(BayProperty* pData,QList<BaseProperty*> lst)
|
||||
{
|
||||
QUuid id = QUuid::createUuid();
|
||||
BayProperty* p = addBayData(id);
|
||||
BayProperty* p = addBayData(pData->uuid());
|
||||
p->setTag(pData->tag());
|
||||
p->setName(pData->name());
|
||||
p->setType(pData->getType());
|
||||
|
|
@ -1957,8 +2155,26 @@ QRectF FixedPortsModel::calculateItemsBoundingRect(QList<GraphicsBaseItem*> item
|
|||
return boundingRect.adjusted(-10,-10,10,10);
|
||||
}
|
||||
|
||||
void FixedPortsModel::addBayByData(BayProperty* pData)
|
||||
void FixedPortsModel::addBayByData(BayProperty* pData,ModelFunctionType typ)
|
||||
{
|
||||
if(typ == ModelFunctionType::BaseModel){
|
||||
QList<GraphicsBaseItem*> items;
|
||||
QList<QUuid> lstCompo = pData->getLstComponent();
|
||||
for(auto& id:lstCompo){
|
||||
if(_baseItem.contains(id)){
|
||||
items.append(_baseItem.value(id));
|
||||
}
|
||||
}
|
||||
|
||||
QRectF rec = calculateItemsBoundingRect(items);
|
||||
auto pBay = new ElectricBayItem(rec);
|
||||
pBay->setItemType(GIT_bay);
|
||||
pBay->setProperty(pData);
|
||||
pBay->setText(pData->name());
|
||||
addBayItem(pData->uuid(),pBay,typ);
|
||||
getScene()->addItem(pBay);
|
||||
}
|
||||
else if(typ == ModelFunctionType::ProjectModel){
|
||||
QList<GraphicsBaseItem*> items;
|
||||
QList<QUuid> lstCompo = pData->getLstComponent();
|
||||
for(auto& id:lstCompo){
|
||||
|
|
@ -1974,6 +2190,7 @@ void FixedPortsModel::addBayByData(BayProperty* pData)
|
|||
pBay->setText(pData->name());
|
||||
addBayItem(pData->uuid(),pBay);
|
||||
getScene()->addItem(pBay);
|
||||
}
|
||||
}
|
||||
|
||||
void FixedPortsModel::addTestData()
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ ElectricBayItem::ElectricBayItem(const QRectF &rect,QGraphicsItem *parent)
|
|||
: GraphicsNonStandardItem(parent)
|
||||
{
|
||||
m_showRect = rect;
|
||||
//m_boundingRect = rect;
|
||||
m_dWidth = rect.width();
|
||||
m_dHeight = rect.height();
|
||||
m_font.setPointSize(12);
|
||||
|
|
@ -48,6 +49,7 @@ void ElectricBayItem::updateTextShape()
|
|||
QFontMetricsF metrics(m_font);
|
||||
QRectF recText = metrics.boundingRect(m_text);
|
||||
//_recLabel = recText.translated(g_offsetX,g_offsetY);
|
||||
recText.moveTo(m_showRect.topLeft()-QPointF(recText.width(),recText.height()));
|
||||
_recLabel = recText;
|
||||
shape();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,6 +32,11 @@ public:
|
|||
void deleteBaseEntityData(QUuid);
|
||||
QMap<QUuid,BaseModelProperty*> getBaseEntityData() const;
|
||||
|
||||
void insertBaseBayData(QUuid,BayProperty*); //基模间隔
|
||||
BayProperty* findBaseBayData(QUuid);
|
||||
void deleteBaseBayData(QUuid);
|
||||
QMap<QUuid,BayProperty*> getBaseBayData() const;
|
||||
|
||||
void insertBayData(QUuid,BayProperty*);
|
||||
BayProperty* findBayData(QUuid);
|
||||
void deleteBayData(QUuid);
|
||||
|
|
@ -54,6 +59,7 @@ public slots:
|
|||
private:
|
||||
QMap<QUuid,BaseProperty*> m_entityData; //工程模实例化元件的唯一数据
|
||||
QMap<QUuid,BaseModelProperty*> m_baseEntityData; //基模实例元件数据
|
||||
QMap<QUuid,BayProperty*> m_baseBayData; //基模间隔数据
|
||||
QMap<QUuid,BayProperty*> m_bayData; //间隔数据
|
||||
QMap<QUuid,DiagramEditorItemProperty*> m_editorTempData; //编辑时临时预览对象
|
||||
QMap<QUuid,DiagramEditorItemProperty*> m_editorData; //编辑时预览对象
|
||||
|
|
|
|||
|
|
@ -61,8 +61,8 @@ public:
|
|||
QJsonObject getPageContextByName(QString name);
|
||||
QList<pageInfo> getAllPage();
|
||||
/*********************************************************************************/
|
||||
bool insertBay(QUuid uuid,QString name,QString type,double unom,double fla,double capacity,QString description,bool inService,int nState,QString grid,QString zone,QString station,QJsonObject business,QJsonObject fromUuid,QJsonObject toUuid,QJsonObject protect,QJsonObject faultRec,QJsonObject status,QJsonObject dynSense,QJsonObject instruct,QJsonObject etc,QList<QUuid> components,QJsonObject context);
|
||||
bool updateBay(QUuid uuid,QString name,double unom,double fla,double capacity,QString description,bool inService,int nState,QJsonObject business,QJsonObject fromUuid,QJsonObject toUuid,QJsonObject protect,QJsonObject faultRec,QJsonObject status,QJsonObject dynSense,QJsonObject instruct,QJsonObject etc,QList<QUuid> components,QJsonObject context);
|
||||
bool insertBay(QUuid uuid,QString name,QString tag,QString type,double unom,double fla,double capacity,QString description,bool inService,int nState,QString grid,QString zone,QString station,QJsonObject business,QJsonObject fromUuid,QJsonObject toUuid,QJsonObject protect,QJsonObject faultRec,QJsonObject status,QJsonObject dynSense,QJsonObject instruct,QJsonObject etc,QList<QUuid> components,QJsonObject context);
|
||||
bool updateBay(QUuid uuid,QString name,QString tag,double unom,double fla,double capacity,QString description,bool inService,int nState,QJsonObject business,QJsonObject fromUuid,QJsonObject toUuid,QJsonObject protect,QJsonObject faultRec,QJsonObject status,QJsonObject dynSense,QJsonObject instruct,QJsonObject etc,QList<QUuid> components,QJsonObject context);
|
||||
bayInfo getBay(QUuid uuid);
|
||||
QList<bayInfo> getAllBay();
|
||||
bool ifBayExist(QUuid uuid);
|
||||
|
|
|
|||
|
|
@ -71,6 +71,30 @@ QMap<QUuid,BaseModelProperty*> BasePropertyManager::getBaseEntityData() const
|
|||
return m_baseEntityData;
|
||||
}
|
||||
|
||||
/*****************************基模间隔数据*******************************/
|
||||
void BasePropertyManager::insertBaseBayData(QUuid id,BayProperty* p)
|
||||
{
|
||||
if(!m_baseBayData.contains(id))
|
||||
m_baseBayData.insert(id,p);
|
||||
}
|
||||
|
||||
BayProperty* BasePropertyManager::findBaseBayData(QUuid id)
|
||||
{
|
||||
return m_baseBayData.value(id,nullptr);
|
||||
}
|
||||
|
||||
void BasePropertyManager::deleteBaseBayData(QUuid id)
|
||||
{
|
||||
BayProperty* pData = m_baseBayData.value(id,nullptr);
|
||||
if(pData)
|
||||
delete pData;
|
||||
}
|
||||
|
||||
QMap<QUuid,BayProperty*> BasePropertyManager::getBaseBayData() const
|
||||
{
|
||||
return m_baseBayData;
|
||||
}
|
||||
|
||||
/*****************************间隔数据*******************************/
|
||||
void BasePropertyManager::insertBayData(QUuid id,BayProperty* p)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1057,7 +1057,7 @@ bool DataBase::deleteComponentById(int id)
|
|||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
bool DataBase::insertBay(QUuid uuid,QString name,QString type,double unom,double fla,double capacity,QString description,bool inService,int nState,QString grid,QString zone,
|
||||
bool DataBase::insertBay(QUuid uuid,QString name,QString tag,QString type,double unom,double fla,double capacity,QString description,bool inService,int nState,QString grid,QString zone,
|
||||
QString station,QJsonObject business,QJsonObject fromUuid,QJsonObject toUuid,QJsonObject protect,QJsonObject faultRec,QJsonObject status,QJsonObject dynSense,
|
||||
QJsonObject instruct,QJsonObject etc,QList<QUuid> components,QJsonObject context)
|
||||
{
|
||||
|
|
@ -1091,7 +1091,7 @@ bool DataBase::insertBay(QUuid uuid,QString name,QString type,double unom,double
|
|||
QJsonDocument contextDoc(etc);
|
||||
QString strContext = contextDoc.toJson(QJsonDocument::Compact);
|
||||
|
||||
QString strSQL = "INSERT INTO bay(bay_uuid, name, type, unom, fla, capacity, description, in_service, state, grid, zone, station, business, from_uuids, to_uuids, dev_protect, dev_fault_record, dev_status, dev_dyn_sense, dev_instruct, dev_etc, components, context) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
QString strSQL = "INSERT INTO bay(bay_uuid, name, tag, type, unom, fla, capacity, description, in_service, state, grid, zone, station, business, from_uuids, to_uuids, dev_protect, dev_fault_record, dev_status, dev_dyn_sense, dev_instruct, dev_etc, components, context) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
|
||||
QStringList uuidStrings;
|
||||
for (const QUuid &uuid : components) {
|
||||
|
|
@ -1103,6 +1103,7 @@ bool DataBase::insertBay(QUuid uuid,QString name,QString type,double unom,double
|
|||
QVariantList params;
|
||||
params.append(uuid.toString());
|
||||
params.append(name);
|
||||
params.append(tag);
|
||||
params.append(type);
|
||||
params.append(unom);
|
||||
params.append(fla);
|
||||
|
|
@ -1137,7 +1138,7 @@ bool DataBase::insertBay(QUuid uuid,QString name,QString type,double unom,double
|
|||
}
|
||||
}
|
||||
|
||||
bool DataBase::updateBay(QUuid uuid,QString name,double unom,double fla,double capacity,QString description,bool inService,int nState,QJsonObject business,
|
||||
bool DataBase::updateBay(QUuid uuid,QString name,QString tag,double unom,double fla,double capacity,QString description,bool inService,int nState,QJsonObject business,
|
||||
QJsonObject fromUuid,QJsonObject toUuid,QJsonObject protect,QJsonObject faultRec,QJsonObject status,QJsonObject dynSense,QJsonObject instruct,
|
||||
QJsonObject etc,QList<QUuid> components,QJsonObject context)
|
||||
{
|
||||
|
|
@ -1178,9 +1179,10 @@ bool DataBase::updateBay(QUuid uuid,QString name,double unom,double fla,double c
|
|||
}
|
||||
QString arrayUuid = "{" + uuidStrings.join(",") + "}";
|
||||
|
||||
QString strSQL = "UPDATE bay SET name = ?,unom = ?,fla = ?,capacity = ?,description = ?,in_service = ?, state = ?, business = ?,from_uuids = ?,to_uuids = ?,dev_protect = ?,dev_fault_record = ?, dev_status = ?,dev_dyn_sense = ?,dev_instruct = ?,dev_etc = ?,components = ?,context = ? WHERE bay_uuid = ?";
|
||||
QString strSQL = "UPDATE bay SET name = ?,tag = ?,unom = ?,fla = ?,capacity = ?,description = ?,in_service = ?, state = ?, business = ?,from_uuids = ?,to_uuids = ?,dev_protect = ?,dev_fault_record = ?, dev_status = ?,dev_dyn_sense = ?,dev_instruct = ?,dev_etc = ?,components = ?,context = ? WHERE bay_uuid = ?";
|
||||
QVariantList params;
|
||||
params.append(name);
|
||||
params.append(tag);
|
||||
params.append(unom);
|
||||
params.append(fla);
|
||||
params.append(capacity);
|
||||
|
|
@ -1215,7 +1217,7 @@ bool DataBase::updateBay(QUuid uuid,QString name,double unom,double fla,double c
|
|||
bayInfo DataBase::getBay(QUuid uuid)
|
||||
{
|
||||
bayInfo info;
|
||||
QString strSQL = "SELECT bay_uuid, name, type, unom, fla, capacity, description, in_service, state, grid, zone, station, business, from_uuids, to_uuids, dev_protect, dev_fault_record, dev_status, dev_dyn_sense, dev_instruct, dev_etc, components, context FROM bay WHERE bay_uuid = ?";
|
||||
QString strSQL = "SELECT bay_uuid, name, tag, type, unom, fla, capacity, description, in_service, state, grid, zone, station, business, from_uuids, to_uuids, dev_protect, dev_fault_record, dev_status, dev_dyn_sense, dev_instruct, dev_etc, components, context FROM bay WHERE bay_uuid = ?";
|
||||
QVariantList params;
|
||||
params.append(uuid);
|
||||
|
||||
|
|
@ -1226,37 +1228,38 @@ bayInfo DataBase::getBay(QUuid uuid)
|
|||
{
|
||||
info.uuid = QUuid(query.value(0).toString());
|
||||
info.name = query.value(1).toString();
|
||||
info.type = query.value(2).toString();
|
||||
info.unom = query.value(3).toDouble();
|
||||
info.fla = query.value(4).toDouble();
|
||||
info.capacity = query.value(5).toDouble();
|
||||
info.description = query.value(6).toString();
|
||||
info.inService = query.value(7).toBool();
|
||||
info.nState = query.value(8).toInt();
|
||||
info.grid = query.value(9).toString();
|
||||
info.zone = query.value(10).toString();
|
||||
info.station = query.value(11).toString();
|
||||
QString strBusi = query.value(12).toString();
|
||||
info.tag = query.value(2).toString();
|
||||
info.type = query.value(3).toString();
|
||||
info.unom = query.value(4).toDouble();
|
||||
info.fla = query.value(5).toDouble();
|
||||
info.capacity = query.value(6).toDouble();
|
||||
info.description = query.value(7).toString();
|
||||
info.inService = query.value(8).toBool();
|
||||
info.nState = query.value(9).toInt();
|
||||
info.grid = query.value(10).toString();
|
||||
info.zone = query.value(11).toString();
|
||||
info.station = query.value(12).toString();
|
||||
QString strBusi = query.value(13).toString();
|
||||
info.business = QstringToJson(strBusi);
|
||||
QString strFrom = query.value(13).toString();
|
||||
QString strFrom = query.value(14).toString();
|
||||
info.fromUuid = QstringToJson(strFrom);
|
||||
QString strTo = query.value(14).toString();
|
||||
QString strTo = query.value(15).toString();
|
||||
info.toUuid = QstringToJson(strTo);
|
||||
QString strProtect = query.value(15).toString();
|
||||
QString strProtect = query.value(16).toString();
|
||||
info.protect = QstringToJson(strProtect);
|
||||
QString strFaultRec= query.value(16).toString();
|
||||
QString strFaultRec= query.value(17).toString();
|
||||
info.faultRec = QstringToJson(strFaultRec);
|
||||
QString strStatus= query.value(17).toString();
|
||||
QString strStatus= query.value(18).toString();
|
||||
info.status = QstringToJson(strStatus);
|
||||
QString strDynSense= query.value(18).toString();
|
||||
QString strDynSense= query.value(19).toString();
|
||||
info.dynSense = QstringToJson(strDynSense);
|
||||
QString strInstructe= query.value(19).toString();
|
||||
QString strInstructe= query.value(20).toString();
|
||||
info.instruct = QstringToJson(strInstructe);
|
||||
QString strEtc= query.value(20).toString();
|
||||
QString strEtc= query.value(21).toString();
|
||||
info.etc = QstringToJson(strEtc);
|
||||
QString rawData = query.value(21).toString();
|
||||
QString rawData = query.value(22).toString();
|
||||
info.components = parseUuidArray(rawData);
|
||||
QString strContext= query.value(22).toString();
|
||||
QString strContext= query.value(23).toString();
|
||||
info.context = QstringToJson(strContext);
|
||||
}
|
||||
query.clear();
|
||||
|
|
@ -1271,7 +1274,7 @@ bayInfo DataBase::getBay(QUuid uuid)
|
|||
QList<bayInfo> DataBase::getAllBay()
|
||||
{
|
||||
QList<bayInfo> lstInfo;
|
||||
QString strSQL = "SELECT bay_uuid, name, type, unom, fla, capacity, description, in_service, state, grid, zone, station, business, from_uuids, to_uuids, dev_protect, dev_fault_record, dev_status, dev_dyn_sense, dev_instruct, dev_etc, components, context FROM bay";
|
||||
QString strSQL = "SELECT bay_uuid, name, tag, type, unom, fla, capacity, description, in_service, state, grid, zone, station, business, from_uuids, to_uuids, dev_protect, dev_fault_record, dev_status, dev_dyn_sense, dev_instruct, dev_etc, components, context FROM bay";
|
||||
|
||||
try
|
||||
{
|
||||
|
|
@ -1281,37 +1284,38 @@ QList<bayInfo> DataBase::getAllBay()
|
|||
bayInfo info;
|
||||
info.uuid = QUuid(query.value(0).toString());
|
||||
info.name = query.value(1).toString();
|
||||
info.type = query.value(2).toString();
|
||||
info.unom = query.value(3).toDouble();
|
||||
info.fla = query.value(4).toDouble();
|
||||
info.capacity = query.value(5).toDouble();
|
||||
info.description = query.value(6).toString();
|
||||
info.inService = query.value(7).toBool();
|
||||
info.nState = query.value(8).toInt();
|
||||
info.grid = query.value(9).toString();
|
||||
info.zone = query.value(10).toString();
|
||||
info.station = query.value(11).toString();
|
||||
QString strBusi = query.value(12).toString();
|
||||
info.tag = query.value(2).toString();
|
||||
info.type = query.value(3).toString();
|
||||
info.unom = query.value(4).toDouble();
|
||||
info.fla = query.value(5).toDouble();
|
||||
info.capacity = query.value(6).toDouble();
|
||||
info.description = query.value(7).toString();
|
||||
info.inService = query.value(8).toBool();
|
||||
info.nState = query.value(9).toInt();
|
||||
info.grid = query.value(10).toString();
|
||||
info.zone = query.value(11).toString();
|
||||
info.station = query.value(12).toString();
|
||||
QString strBusi = query.value(13).toString();
|
||||
info.business = QstringToJson(strBusi);
|
||||
QString strFrom = query.value(13).toString();
|
||||
QString strFrom = query.value(14).toString();
|
||||
info.fromUuid = QstringToJson(strFrom);
|
||||
QString strTo = query.value(14).toString();
|
||||
QString strTo = query.value(15).toString();
|
||||
info.toUuid = QstringToJson(strTo);
|
||||
QString strProtect = query.value(15).toString();
|
||||
QString strProtect = query.value(16).toString();
|
||||
info.protect = QstringToJson(strProtect);
|
||||
QString strFaultRec= query.value(16).toString();
|
||||
QString strFaultRec= query.value(17).toString();
|
||||
info.faultRec = QstringToJson(strFaultRec);
|
||||
QString strStatus= query.value(17).toString();
|
||||
QString strStatus= query.value(18).toString();
|
||||
info.status = QstringToJson(strStatus);
|
||||
QString strDynSense= query.value(18).toString();
|
||||
QString strDynSense= query.value(19).toString();
|
||||
info.dynSense = QstringToJson(strDynSense);
|
||||
QString strInstructe= query.value(19).toString();
|
||||
QString strInstructe= query.value(20).toString();
|
||||
info.instruct = QstringToJson(strInstructe);
|
||||
QString strEtc= query.value(20).toString();
|
||||
QString strEtc= query.value(21).toString();
|
||||
info.etc = QstringToJson(strEtc);
|
||||
QString rawData = query.value(21).toString();
|
||||
QString rawData = query.value(22).toString();
|
||||
info.components = parseUuidArray(rawData);
|
||||
QString strContext= query.value(22).toString();
|
||||
QString strContext= query.value(23).toString();
|
||||
info.context = QstringToJson(strContext);
|
||||
lstInfo.append(info);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue