2025-06-23 10:41:33 +08:00
|
|
|
|
#pragma execution_character_set("utf-8")
|
|
|
|
|
|
|
|
|
|
#include <QDateTime>
|
|
|
|
|
#include <QCoreApplication>
|
|
|
|
|
#include <QFileDialog>
|
|
|
|
|
#include "DataModelEventModule.h"
|
|
|
|
|
#include "DataModelData.h"
|
|
|
|
|
#include "DataManager.h"
|
|
|
|
|
#include "ProjectData.h"
|
|
|
|
|
|
|
|
|
|
#include "DataAccessModule.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DataModelEventModule::DataModelEventModule(QObject* /*parent*/, DataManager* manager)
|
|
|
|
|
:BaseEventModule(manager, "DataModelListView")
|
|
|
|
|
{
|
|
|
|
|
addShareEventModule(new DataAccessModule(manager));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DataModelEventModule::~DataModelEventModule()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool DataModelEventModule::onMessage(const std::string& eventName, json& parameter)
|
|
|
|
|
{
|
|
|
|
|
LOG(INFO) << CommonHelper::utf8ToStdString("DataModelEventModule receive message.......");
|
|
|
|
|
LOG(INFO) << eventName;
|
|
|
|
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|
|
|
|
TRY{
|
|
|
|
|
if (eventName == "get-project") {
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//获取项目信息
|
2025-06-23 10:41:33 +08:00
|
|
|
|
return getProject(parameter);
|
|
|
|
|
}
|
|
|
|
|
//else if (eventName == "get-project-datamodel")
|
|
|
|
|
//{
|
|
|
|
|
// return getAllDataModel(parameter);
|
|
|
|
|
//}
|
|
|
|
|
else if (eventName == "get-datamodel-by-identification")
|
|
|
|
|
{
|
|
|
|
|
return getDataModelByIdentification(parameter);
|
|
|
|
|
}
|
|
|
|
|
else if (eventName == "add-datamodel")
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//新建数据模型
|
2025-06-23 10:41:33 +08:00
|
|
|
|
return addDataModel(parameter);
|
|
|
|
|
}
|
|
|
|
|
else if (eventName == "has-datamodel-child")
|
|
|
|
|
{
|
|
|
|
|
return hasDatamodelChild(parameter);
|
|
|
|
|
}
|
|
|
|
|
else if (eventName == "save-datamodel")
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//修改数据模型
|
2025-06-23 10:41:33 +08:00
|
|
|
|
return upateDataModel(parameter);
|
|
|
|
|
}
|
|
|
|
|
else if (eventName == "delete-datamodel")
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//删除数据模型
|
2025-06-23 10:41:33 +08:00
|
|
|
|
return deleteDataModel(parameter);
|
|
|
|
|
}
|
|
|
|
|
else if (eventName == "copy-datamodel")
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//复制数据模型
|
2025-06-23 10:41:33 +08:00
|
|
|
|
return copyDataModel(parameter);
|
|
|
|
|
}
|
|
|
|
|
else if (eventName == "add-datamodel-version")
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//数据模型升版
|
2025-06-23 10:41:33 +08:00
|
|
|
|
return upgradeVersion(parameter);
|
|
|
|
|
}
|
|
|
|
|
else if (eventName == "create-instance")
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//生成实例文件
|
2025-06-23 10:41:33 +08:00
|
|
|
|
return generateInstanceFile(parameter);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
CATCH(parameter);
|
|
|
|
|
|
|
|
|
|
return EventModule::onMessage(eventName, parameter);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//以下为消息响应函数
|
2025-06-23 10:41:33 +08:00
|
|
|
|
bool DataModelEventModule::getProject(json& parameter)
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//获得当前项目id
|
2025-06-23 10:41:33 +08:00
|
|
|
|
auto data = parameter["data"];
|
|
|
|
|
int projectId = data["id"];
|
|
|
|
|
DPData* pData = pDataManager->findObjectById(DataManager::DataType::project, projectId);
|
|
|
|
|
ProjectData* pProject = dynamic_cast<ProjectData*>(pData);
|
|
|
|
|
if (pProject)
|
|
|
|
|
{
|
|
|
|
|
pProject->setCurrentProject();
|
|
|
|
|
json project;
|
|
|
|
|
pProject->toJson(project);
|
|
|
|
|
|
|
|
|
|
parameter["response"] = project;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
parameter["error"] = "找不到该项目";
|
2025-06-23 10:41:33 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
LOG(INFO) << CommonHelper::utf8ToStdString("getProject Sendto web.......");
|
|
|
|
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
2025-06-23 18:01:09 +08:00
|
|
|
|
///*获取所有数据模型*/
|
2025-06-23 10:41:33 +08:00
|
|
|
|
//bool DataModelEventModule::getAllDataModel(json& parameter)
|
|
|
|
|
//{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
// //获得当前项目id
|
2025-06-23 10:41:33 +08:00
|
|
|
|
// auto data = parameter["data"];
|
|
|
|
|
// int projectId = data["id"];
|
|
|
|
|
//
|
|
|
|
|
// DPData* pData = pDataManager->findObjectById(DataManager::DataType::project, projectId);
|
|
|
|
|
// ProjectData* pProject = dynamic_cast<ProjectData*>(pData);
|
|
|
|
|
//
|
|
|
|
|
// if (pProject)
|
|
|
|
|
// {
|
2025-06-23 18:01:09 +08:00
|
|
|
|
// //找到该项目
|
2025-06-23 10:41:33 +08:00
|
|
|
|
// if (!pProject->_initChildren)
|
|
|
|
|
// {
|
|
|
|
|
// pProject->getAllChildren(pDataManager);
|
|
|
|
|
// pProject->_initChildren = true;
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// if (pProject->_childrenMap.isEmpty())
|
|
|
|
|
// {
|
2025-06-23 18:01:09 +08:00
|
|
|
|
// parameter["error"] = "该项目没有数据模型";
|
2025-06-23 10:41:33 +08:00
|
|
|
|
// LOG(INFO) << CommonHelper::utf8ToStdString("getAllDataModel Sendto web.......");
|
|
|
|
|
// LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|
|
|
|
// return true;
|
|
|
|
|
// }
|
2025-06-23 18:01:09 +08:00
|
|
|
|
// //读取的数据给parameter,返回给界面
|
2025-06-23 10:41:33 +08:00
|
|
|
|
// QMap<unsigned int, DPData*>::iterator it = pProject->_childrenMap.begin();
|
|
|
|
|
// while (it != pProject->_childrenMap.end())
|
|
|
|
|
// {
|
|
|
|
|
// DataModelData* pData = dynamic_cast<DataModelData*>(*it);
|
2025-06-23 18:01:09 +08:00
|
|
|
|
// //将对象信息转json
|
2025-06-23 10:41:33 +08:00
|
|
|
|
// if (pData) {
|
|
|
|
|
// json j;
|
|
|
|
|
// pData->toJson(j);
|
|
|
|
|
// parameter["response"].push_back(j);
|
|
|
|
|
// }
|
|
|
|
|
// it++;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
2025-06-23 18:01:09 +08:00
|
|
|
|
// parameter["error"] = "找不到该项目";
|
2025-06-23 10:41:33 +08:00
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// LOG(INFO) << CommonHelper::utf8ToStdString("getAllDataModel Sendto web.......");
|
|
|
|
|
// LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|
|
|
|
//
|
|
|
|
|
// return true;
|
|
|
|
|
//}
|
|
|
|
|
|
2025-06-23 18:01:09 +08:00
|
|
|
|
/*新建数据模型*/
|
2025-06-23 10:41:33 +08:00
|
|
|
|
bool DataModelEventModule::addDataModel(json& parameter)
|
|
|
|
|
{
|
|
|
|
|
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//获得当前项目id
|
2025-06-23 10:41:33 +08:00
|
|
|
|
auto data = parameter["data"];
|
|
|
|
|
auto projectId = data["parentid"];
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//查找项目,上层对象
|
2025-06-23 10:41:33 +08:00
|
|
|
|
DPData* pCurrentProject = pDataManager->findObjectById(DataManager::DataType::project, projectId);
|
|
|
|
|
if (!pCurrentProject) {
|
|
|
|
|
LOG(INFO) << CommonHelper::utf8ToStdString("addDataModel Sendto web.......");
|
2025-06-23 18:01:09 +08:00
|
|
|
|
parameter["error"] = "找不到数据模型的父类项目";
|
2025-06-23 10:41:33 +08:00
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//新建时输入name type description
|
2025-06-23 10:41:33 +08:00
|
|
|
|
DataModelData* pNewData = new DataModelData();
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//设置name type des updateTime createTime
|
2025-06-23 10:41:33 +08:00
|
|
|
|
pNewData->setNewData(parameter);
|
|
|
|
|
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//设置上层数据
|
2025-06-23 10:41:33 +08:00
|
|
|
|
pNewData->_parent = pCurrentProject;
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//添加数据模型
|
2025-06-23 10:41:33 +08:00
|
|
|
|
if (pCurrentProject->addChild(pNewData))
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//添加到总map
|
2025-06-23 10:41:33 +08:00
|
|
|
|
pDataManager->insertDataMap(DataManager::DataType::dataModel, pNewData->_id, pNewData);
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//若新建数据模型成功,将新建数据模型信息返回给web端
|
2025-06-23 10:41:33 +08:00
|
|
|
|
pNewData->toJson(data);
|
|
|
|
|
parameter["response"] = data;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//失败
|
2025-06-23 10:41:33 +08:00
|
|
|
|
delete pNewData;
|
|
|
|
|
pNewData = nullptr;
|
2025-06-23 18:01:09 +08:00
|
|
|
|
parameter["error"] = "新建数据模型失败";
|
2025-06-23 10:41:33 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
LOG(INFO) << CommonHelper::utf8ToStdString("addDataModel Sendto web.......");
|
|
|
|
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
2025-06-23 18:01:09 +08:00
|
|
|
|
/*是否有下层数据*/
|
2025-06-23 10:41:33 +08:00
|
|
|
|
bool DataModelEventModule::hasDatamodelChild(json& parameter)
|
|
|
|
|
{
|
|
|
|
|
auto data = parameter["data"];
|
|
|
|
|
auto dataModelId = data["id"];
|
|
|
|
|
DPData* pData = pDataManager->findObjectById(DataManager::DataType::dataModel, dataModelId);
|
|
|
|
|
if (!pData) {
|
|
|
|
|
LOG(INFO) << CommonHelper::utf8ToStdString("hasDatamodelChild Sendto web.......");
|
2025-06-23 18:01:09 +08:00
|
|
|
|
parameter["error"] = "找不到该数据模型";
|
2025-06-23 10:41:33 +08:00
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
if (pData->_childrenMap.size() > 0)
|
|
|
|
|
{
|
|
|
|
|
parameter["response"]["status"] = true;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
parameter["response"]["status"] = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
LOG(INFO) << CommonHelper::utf8ToStdString("hasDatamodelChild Sendto web.......");
|
|
|
|
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
2025-06-23 18:01:09 +08:00
|
|
|
|
/*更新数据模型*/
|
2025-06-23 10:41:33 +08:00
|
|
|
|
bool DataModelEventModule::upateDataModel(json& parameter)
|
|
|
|
|
{
|
|
|
|
|
QVariantMap valueMap;
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//修改name type desciption
|
2025-06-23 10:41:33 +08:00
|
|
|
|
auto data = parameter["data"];
|
|
|
|
|
auto dataModelId = data["id"];
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//查找当前数据模型
|
2025-06-23 10:41:33 +08:00
|
|
|
|
DataModelData* pDataModel = (DataModelData*)pDataManager->findObjectById(DataManager::DataType::dataModel, dataModelId);
|
|
|
|
|
if (!pDataModel) {
|
|
|
|
|
LOG(INFO) << CommonHelper::utf8ToStdString("upateDataModel Sendto web.......");
|
2025-06-23 18:01:09 +08:00
|
|
|
|
parameter["error"] = "找不到该数据模型";
|
2025-06-23 10:41:33 +08:00
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//如果锁定,则不能修改
|
2025-06-23 10:41:33 +08:00
|
|
|
|
if (pDataModel->_isVerLocked)
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
parameter["error"] = "该版本已锁定,无法修改";
|
2025-06-23 10:41:33 +08:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
pDataModel->setEditData(parameter);
|
|
|
|
|
if (pDataModel->saveSelf())
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//更新数据成功,返回给web端,更新时间
|
2025-06-23 10:41:33 +08:00
|
|
|
|
data["updateTime"] = CommonHelper::qstringToUtf8(pDataModel->getUpdateTime());
|
|
|
|
|
parameter["response"] = data;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
parameter["error"] = "修改数据模型失败";
|
2025-06-23 10:41:33 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
LOG(INFO) << CommonHelper::utf8ToStdString("upateDataModel Sendto web.......");
|
|
|
|
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2025-06-23 18:01:09 +08:00
|
|
|
|
/*删除数据模型*/
|
2025-06-23 10:41:33 +08:00
|
|
|
|
bool DataModelEventModule::deleteDataModel(json& parameter)
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//获得id
|
2025-06-23 10:41:33 +08:00
|
|
|
|
auto data = parameter["data"];
|
|
|
|
|
auto dataModelId = data["id"];
|
|
|
|
|
|
|
|
|
|
DPData* pData = pDataManager->findObjectById(DataManager::DataType::dataModel, dataModelId);
|
|
|
|
|
if (!pData) {
|
|
|
|
|
LOG(INFO) << CommonHelper::utf8ToStdString("deleteDataModel Sendto web.......");
|
2025-06-23 18:01:09 +08:00
|
|
|
|
parameter["error"] = "找不到该数据模型";
|
2025-06-23 10:41:33 +08:00
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
if (pData->deleteSelf())
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//更新内存数据
|
2025-06-23 10:41:33 +08:00
|
|
|
|
pDataManager->deleteInDataMap(DataManager::DataType::dataModel, dataModelId);
|
|
|
|
|
delete pData;
|
|
|
|
|
pData = nullptr;
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//删除成功
|
2025-06-23 10:41:33 +08:00
|
|
|
|
parameter["response"]["deleted"] = true;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
parameter["response"]["deleted"] = false;
|
|
|
|
|
}
|
|
|
|
|
LOG(INFO) << CommonHelper::utf8ToStdString("deleteDataModel Sendto web.......");
|
|
|
|
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2025-06-23 18:01:09 +08:00
|
|
|
|
/*复制数据模型*/
|
2025-06-23 10:41:33 +08:00
|
|
|
|
bool DataModelEventModule::copyDataModel(json& parameter)
|
|
|
|
|
{
|
|
|
|
|
auto data = parameter["data"];
|
|
|
|
|
int srcDataModelId = data["id"];
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//查找选定的数据模型
|
2025-06-23 10:41:33 +08:00
|
|
|
|
DataModelData* pData = (DataModelData*)pDataManager->findObjectById(DataManager::DataType::dataModel, srcDataModelId);
|
|
|
|
|
if (pData)
|
|
|
|
|
{
|
|
|
|
|
DataModelData* pNewModel = new DataModelData();
|
|
|
|
|
if (pData->copyData(pNewModel, parameter))
|
|
|
|
|
{
|
|
|
|
|
pNewModel->_parent = pData->_parent;
|
|
|
|
|
pDataManager->insertDataMap(DataManager::DataType::dataModel, pNewModel->_id, pNewModel);
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//将新数据模型返回给web端
|
2025-06-23 10:41:33 +08:00
|
|
|
|
json j;
|
|
|
|
|
pNewModel->toJson(j);
|
|
|
|
|
parameter["response"] = j;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//失败
|
2025-06-23 10:41:33 +08:00
|
|
|
|
delete pNewModel;
|
|
|
|
|
pNewModel = nullptr;
|
2025-06-23 18:01:09 +08:00
|
|
|
|
parameter["error"] = "复制数据模型失败";
|
2025-06-23 10:41:33 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
LOG(INFO) << CommonHelper::utf8ToStdString("copyDataModel Sendto web.......");
|
|
|
|
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
2025-06-23 18:01:09 +08:00
|
|
|
|
/*生成实例文件*/
|
2025-06-23 10:41:33 +08:00
|
|
|
|
bool DataModelEventModule::generateInstanceFile(json& parameter)
|
|
|
|
|
{
|
|
|
|
|
auto data = parameter["data"];
|
|
|
|
|
int srcDataModelId = data["id"];
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//查找选定的数据模型
|
2025-06-23 10:41:33 +08:00
|
|
|
|
DataModelData* pData = (DataModelData*)pDataManager->findObjectById(DataManager::DataType::dataModel, srcDataModelId);
|
|
|
|
|
QString msg;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (pData)
|
|
|
|
|
{
|
|
|
|
|
if (!pData->createInstance(msg))
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
if (msg != "未选择实例文件路径")
|
2025-06-23 10:41:33 +08:00
|
|
|
|
{
|
|
|
|
|
parameter["error"] = CommonHelper::qstringToUtf8(msg);
|
|
|
|
|
parameter["response"]["status"] = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
parameter["response"]["status"] = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//未找到该模型
|
|
|
|
|
parameter["error"] = "未找到该数据模型";
|
2025-06-23 10:41:33 +08:00
|
|
|
|
parameter["response"]["status"] = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (exception& e)
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
parameter["error"] = "创建实例失败";
|
2025-06-23 10:41:33 +08:00
|
|
|
|
|
|
|
|
|
LOG(ERROR) << e.what();
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
LOG(INFO) << CommonHelper::utf8ToStdString("generateInstanceFile Sendto web.......");
|
|
|
|
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2025-06-23 18:01:09 +08:00
|
|
|
|
/*数据模型升版*/
|
2025-06-23 10:41:33 +08:00
|
|
|
|
bool DataModelEventModule::upgradeVersion(json& parameter)
|
|
|
|
|
{
|
|
|
|
|
auto data = parameter["data"];
|
|
|
|
|
int srcDataModelId = data["id"];
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//查找选定的数据模型
|
2025-06-23 10:41:33 +08:00
|
|
|
|
DataModelData* pData = qobject_cast<DataModelData*>(pDataManager->findObjectById(DataManager::DataType::dataModel, srcDataModelId));
|
|
|
|
|
if (pData)
|
|
|
|
|
{
|
|
|
|
|
DataModelData* pNewModel = new DataModelData();
|
|
|
|
|
if (pData->upgradeVersion(pNewModel))
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//加入所属项目
|
2025-06-23 10:41:33 +08:00
|
|
|
|
pNewModel->_parent = pData->_parent;
|
|
|
|
|
pData->_parent->_childrenMap.insert(pNewModel->_id, pNewModel);
|
|
|
|
|
pDataManager->insertDataMap(DataManager::DataType::dataModel, pNewModel->_id, pNewModel);
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//将新数据模型返回给web端
|
2025-06-23 10:41:33 +08:00
|
|
|
|
json j;
|
|
|
|
|
pNewModel->toJson(j);
|
|
|
|
|
parameter["response"] = j;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//升版失败
|
|
|
|
|
parameter["error"] = "该模型升版失败";
|
2025-06-23 10:41:33 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//未找到该模型
|
|
|
|
|
parameter["error"] = "未找到该模型";
|
2025-06-23 10:41:33 +08:00
|
|
|
|
}
|
|
|
|
|
LOG(INFO) << CommonHelper::utf8ToStdString("upgradeVersion Sendto web.......");
|
|
|
|
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool DataModelEventModule::getDataModelByIdentification(json& parameter)
|
|
|
|
|
{
|
2025-06-23 18:01:09 +08:00
|
|
|
|
//获取名称标识相同的数据模型
|
2025-06-23 10:41:33 +08:00
|
|
|
|
auto data = parameter["data"];
|
|
|
|
|
int projectId = data["id"];
|
|
|
|
|
ProjectData* pProject = qobject_cast<ProjectData*>(pDataManager->findObjectById(DataManager::DataType::project, projectId));
|
|
|
|
|
if (!pProject) {
|
|
|
|
|
LOG(INFO) << CommonHelper::utf8ToStdString("getDataModelByIdentification Sendto web.......");
|
|
|
|
|
|
2025-06-23 18:01:09 +08:00
|
|
|
|
parameter["error"] = "未找到该项目";
|
2025-06-23 10:41:33 +08:00
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
QString name = CommonHelper::utf8ToQString(data["identification"]);
|
|
|
|
|
QList<DPData*> modelList;
|
|
|
|
|
pProject->findDatamodelByName(name, modelList);
|
|
|
|
|
parameter["response"] = json::array();
|
|
|
|
|
for (int i = 0; i < modelList.size(); i++)
|
|
|
|
|
{
|
|
|
|
|
json j;
|
|
|
|
|
qobject_cast<DataModelData*>(modelList.at(i))->toJson(j);
|
|
|
|
|
parameter["response"].push_back(j);
|
|
|
|
|
}
|
|
|
|
|
LOG(INFO) << CommonHelper::utf8ToStdString("getDataModelByIdentification Sendto web.......");
|
|
|
|
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|
|
|
|
return true;
|
|
|
|
|
}
|