logplus/ModuleConsole/src/WellLogWorkflowRunner.cpp
2026-01-16 17:18:41 +08:00

209 lines
8.6 KiB
C++

#include <QMessageBox>
// #include "Workflow.h"
#include "WellLogWorkflowRunner.h"
#include "Module.h"
#include "ModuleInformation.h"
#include "ModuleCheckResult.h"
#include "PELibraryModule.h"
#include "ObjWelllog.h"
// #include "VecWindow.h"
// #include "PaiJob.h"
#include "WorkflowFile.h"
// #include "QtWellSceneManager.h"
#include "ObjWellLogINP.h"
#include "LogModuleConsole.h"
// #include "VecDisplayObjectCommand.h"
// #include "VecWindow.h"
// #include "ObjWellRulerTrack.h"
// #include "VecSceneManager.h"
// #include "ConsoleOutputWidget.h"
#include "ObjWelllogRound.h"
#include <QApplication>
// #include "ObjProject.h"
// #include "VecWindowCommand.h"
// #include "VecWindowDocument.h"
// #include "DataImport.h"
#include "LogModuleParamers.h"
// #include "WellSectionWindowDocument.h"
// void OSGFRAMEWORK_EXPORT AppendConsole(pai::log::Priority priority,const QString &output);
CWellLogWorkflowRunner::CWellLogWorkflowRunner(void)
{
m_RunTimeContext = new CRunTimeContext;
}
CWellLogWorkflowRunner::~CWellLogWorkflowRunner(void)
{
if(m_RunTimeContext){
delete m_RunTimeContext;
m_RunTimeContext=NULL;
}
}
void CWellLogWorkflowRunner::ValidateWorkflow( pai::objectmodel::PaiWorkflowDataModel * pWorkflowDataMode )
{
}
void CWellLogWorkflowRunner::RunWorkFlow(pai::objectmodel::PaiWorkflowDataModel * pWorkflowDataModel )
{
// CWellLogWorkflowDataModel * pwellWorkflowDataModel =dynamic_cast<CWellLogWorkflowDataModel*>(pWorkflowDataModel);
// if(!pwellWorkflowDataModel) return;
// std::map<std::string,pai::datamodel::CObjWellLog*> logCurveContainer = m_RunTimeContext->GetLogCurveContainer();
// if(!m_RunTimeContext->GetLogCurveContainer().empty())
// {
// m_RunTimeContext->GetLogCurveContainer().clear();
// }
// CModuleConsole *pConsole=GetWorkflowConsole();
// if(!pConsole) return;
// int nSize = pWorkflowDataModel->GetModuleCount();
// if(nSize) {
// pConsole->bmoduleinfos=*pwellWorkflowDataModel->GetWorkflowFile()->GetModuleInfos();
// }
// else {
// std::vector<CModuleInformation*> *moduleinfos=pwellWorkflowDataModel->GetWorkflowFile()->GetModuleInfos();
// for(int i=0;i<GetWorkflowConsole()->bmoduleinfos.size();i++) {
// moduleinfos->push_back((CModuleInformation*)GetWorkflowConsole()->bmoduleinfos.at(i));
// }
// }
// nSize = pWorkflowDataModel->GetModuleCount();
// if(!nSize) {
// AfxMessageBox("您还没有选择处理方法,请先选择处理方法再进行此项操作!");
// return;
// }
// CWellSectionWindowDocument *pDoc = dynamic_cast<CWellSectionWindowDocument*>(pwellWorkflowDataModel->GetMWVecWindowDocument());
// if(!pDoc) return;
// CVecWindow *pWindow=pDoc->GetVecWindow();
// if(!pWindow) return;
// QString Zone;
// if(pDoc) Zone=pDoc->GetCurrentZone();
// CQtWellSceneManager*m_pWellSceneManager = dynamic_cast<CQtWellSceneManager*>(pWindow->GetSceneManager());
// if(!m_pWellSceneManager) return;
// QVector<CObjWellTrack*> vWellTracks =m_pWellSceneManager->GetWellSectionGeomtry().GetAllWellTrack(false);
// if(vWellTracks.size()<1) {
// AfxMessageBox("请加载井图形及井数据!");
// return;
// }
// for (int i= 0; i<nSize; i++)
// {
// pai::workflow::CModuleInformation * pModuleInfo = pWorkflowDataModel->GetModule(i);
// pai::module::CModule* pModule = pModuleInfo->GetModule();
// PELibraryModule * pWelllogModule = dynamic_cast<PELibraryModule*>(pModule);
// std::string strName = pModuleInfo->GetName();
// foreach(CObjWellTrack*pWellTrack,vWellTracks)
// {
// QString ss=pWellTrack->GetWelllogRound()->GetSlfFileName();
// pWelllogModule->SetSlfFileName(ss);
// QString path,wellname;
// GetWellNameAndPath(ss,wellname,path);
// path=wellname+QString::fromStdString(" "+pModule->GetMetaData()->GetName())+"开始执行....";
// AppendConsole(pai::log::PAI_INFO,path);
// double dep1=-99999,dep2=-99999;
// if(!Zone.isEmpty())
// {
// pWellTrack->GetZoneDepth(Zone,dep1,dep2);
// }
// pWellTrack->SaveToSLF();
// char *Zone1=NULL;
// if(!Zone.isEmpty()) Zone1=(char*)Zone.toStdString().c_str();
// int i=(int)pWelllogModule->Run(dep1,dep2,Zone1);
// pWellTrack->LoadFromSLF();
// CDataImport::ChangetoSlf(ss);
// if(i<0) {
// path=wellname+QString::fromStdString(" "+pModule->GetMetaData()->GetName())+"发生错误,处理被终止!";
// AppendConsole(pai::log::PAI_ERROR,path);
// }
// else{
// path=wellname+QString::fromStdString(" "+pModule->GetMetaData()->GetName())+"执行完成";
// AppendConsole(pai::log::PAI_INFO,path);
// }
// }
// QApplication::processEvents();
// if(pConsole->g_mModuleParamers==(CModuleParamers*)0xfeeefeeefeeefeee) return;
// QTextDocument *pdoc=pConsole->g_mModuleParamers->GetEdtParamCard()->document();
// if(pdoc&&pdoc->isModified())
// {
// pdoc->setModified(false);
// }
// }
// std::vector<QUuid> vObjectID;
// pWindow->GetSceneManager()->Refurbish();
// pWindow->GetSceneManager()->SetDirtyUIElement(true,true);
// QApplication::processEvents();
}
void CWellLogWorkflowRunner::RunWorkFlow(pai::objectmodel::PaiWorkflowDataModel * pWorkflowDataModel,float sdep,float edep)
{
// CWellLogWorkflowDataModel * pwellWorkflowDataModel =dynamic_cast<CWellLogWorkflowDataModel*>(pWorkflowDataModel);
// if(!pwellWorkflowDataModel) return;
// std::map<std::string,pai::datamodel::CObjWellLog*> logCurveContainer = m_RunTimeContext->GetLogCurveContainer();
// if(!m_RunTimeContext->GetLogCurveContainer().empty())
// {
// m_RunTimeContext->GetLogCurveContainer().clear();
// }
// CModuleConsole *pConsole=GetWorkflowConsole();
// if(!pConsole) return;
// int nSize = pWorkflowDataModel->GetModuleCount();
// if(nSize) {
// pConsole->bmoduleinfos=*pwellWorkflowDataModel->GetWorkflowFile()->GetModuleInfos();
// }
// else {
// std::vector<CModuleInformation*> *moduleinfos=pwellWorkflowDataModel->GetWorkflowFile()->GetModuleInfos();
// for(int i=0;i<GetWorkflowConsole()->bmoduleinfos.size();i++) {
// moduleinfos->push_back((CModuleInformation*)GetWorkflowConsole()->bmoduleinfos.at(i));
// }
// }
// nSize = pWorkflowDataModel->GetModuleCount();
// if(!nSize) {
// AfxMessageBox("您还没有选择处理方法,请先选择处理方法再进行此项操作!");
// return;
// }
// CWellSectionWindowDocument *pDoc = dynamic_cast<CWellSectionWindowDocument*>(pwellWorkflowDataModel->GetMWVecWindowDocument());
// if(!pDoc) return;
// CVecWindow *pWindow=pDoc->GetVecWindow();
// if(!pWindow) return;
// CQtWellSceneManager*m_pWellSceneManager = dynamic_cast<CQtWellSceneManager*>(pWindow->GetSceneManager());
// if(!m_pWellSceneManager) return;
// QVector<CObjWellTrack*> vWellTracks =m_pWellSceneManager->GetWellSectionGeomtry().GetAllWellTrack(false);
// if(vWellTracks.size()<1) {
// AfxMessageBox("请加载井图形及井数据!");
// return;
// }
// for (int i= 0; i<nSize; i++)
// {
// pai::workflow::CModuleInformation * pModuleInfo = pWorkflowDataModel->GetModule(i);
// pai::module::CModule* pModule = pModuleInfo->GetModule();
// PELibraryModule * pWelllogModule = dynamic_cast<PELibraryModule*>(pModule);
// std::string strName = pModuleInfo->GetName();
// foreach(CObjWellTrack*pWellTrack,vWellTracks)
// {
// QString ss=pWellTrack->GetWelllogRound()->GetSlfFileName();
// pWelllogModule->SetSlfFileName(ss);
// QString path,wellname;
// GetWellNameAndPath(ss,wellname,path);
// path=wellname+QString::fromStdString(" "+pModule->GetMetaData()->GetName())+"开始执行....";
// AppendConsole(pai::log::PAI_INFO,path);
// pWellTrack->SaveToSLF();
// int i=(int)pWelllogModule->Run(sdep,edep);
// pWellTrack->LoadFromSLF();
// CDataImport::ChangetoSlf(ss);
// if(i<0) path=wellname+QString::fromStdString(" "+pModule->GetMetaData()->GetName())+"发生错误,处理被终止!";
// else path=wellname+QString::fromStdString(" "+pModule->GetMetaData()->GetName())+"执行完成";
// AppendConsole(pai::log::PAI_INFO,path);
// }
// QApplication::processEvents();
// QTextDocument *pdoc=pConsole->g_mModuleParamers->GetEdtParamCard()->document();
// if(pdoc&&pdoc->isModified())
// {
// pdoc->setModified(false);
// }
// }
// pWindow->GetSceneManager()->SetDirtyUIElement(true,true);
// QApplication::processEvents();
}