1047 lines
26 KiB
C++
1047 lines
26 KiB
C++
|
#pragma execution_character_set("utf-8")
|
|||
|
|
|||
|
#include <QFileDialog>
|
|||
|
#include <QCoreApplication>
|
|||
|
#include <QProcess>
|
|||
|
#include "DataPackEventModule.h"
|
|||
|
#include "DataManager.h"
|
|||
|
#include "DataModelData.h"
|
|||
|
#include "DataPack.h"
|
|||
|
#include "DataClass.h"
|
|||
|
#include "DataAttribute.h"
|
|||
|
#include "global.h"
|
|||
|
#include "DataAccessModule.h"
|
|||
|
#include "TransformExcel.h"
|
|||
|
#include "global.h"
|
|||
|
#include "SceneInfo.h"
|
|||
|
#include "common.h"
|
|||
|
#include "QWaiting.h"
|
|||
|
#include "Session.h"
|
|||
|
#include "mainwindow.h"
|
|||
|
|
|||
|
DataPackEventModule::DataPackEventModule(QObject* /*parent*/, DataManager* manager)
|
|||
|
:BaseEventModule(manager, "DataModelGraphView")
|
|||
|
{
|
|||
|
addShareEventModule(new DataAccessModule(pDataManager));
|
|||
|
}
|
|||
|
|
|||
|
DataPackEventModule::~DataPackEventModule()
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
bool DataPackEventModule::onMessage(const std::string& eventName, json& parameter)
|
|||
|
{
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("DataPackEventModule receive message.......");
|
|||
|
LOG(INFO) << eventName;
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
TRY{
|
|||
|
if (eventName == "add-datamodule-child")
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>顢<EFBFBD><E9A1A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
return moveDataPackOrClass(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "create-relationship")
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD>ϵ
|
|||
|
return buildDataRelationship(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "delete-relationship")
|
|||
|
{
|
|||
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD>ϵ
|
|||
|
return deleteDataRelationship(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "add-datamodule")
|
|||
|
{
|
|||
|
//<2F>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
|||
|
return addDataPack(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "delete-datamodule")
|
|||
|
{
|
|||
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
|||
|
return deleteDataPack(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "save-datamodule")
|
|||
|
{
|
|||
|
//<2F>༭<EFBFBD><E0BCAD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
|||
|
return updateDataPack(parameter);
|
|||
|
}
|
|||
|
if (eventName == "add-dataclass")
|
|||
|
{
|
|||
|
//<2F>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
return addDataClass(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "delete-dataclass")
|
|||
|
{
|
|||
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
return deleteDataClass(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "save-dataclass")
|
|||
|
{
|
|||
|
//<2F><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
return updateDataClass(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "add-dataclass-attribute")
|
|||
|
{
|
|||
|
//<2F>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
return addDataClassAttribute(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "delete-classattribute")
|
|||
|
{
|
|||
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
return deleteDataClassAttribute(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "save-dataclass-attribute")
|
|||
|
{
|
|||
|
//<2F><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
return updateDataClassAttribute(parameter);
|
|||
|
} //<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>¼<EFBFBD>
|
|||
|
else if (eventName == "get-datadictionary-data")
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
return getDictionaryData(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "import-datadictionary")
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>
|
|||
|
return importDictionary(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "export-template")
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>ɵ<EFBFBD><C9B5><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
|||
|
return exportTemplate(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "export-datadictionary")
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>
|
|||
|
return exportDictionary(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "import-datamodel")
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD>ģ<EFBFBD>͵<EFBFBD><CDB5><EFBFBD>
|
|||
|
return importDataModel(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "export-datamodel")
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD>ģ<EFBFBD>͵<EFBFBD><CDB5><EFBFBD>
|
|||
|
return exportDataModel(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "add-scenenode")
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>
|
|||
|
return addSceneNode(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "get-datamodel-scene")
|
|||
|
{
|
|||
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
return getSceneNode(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "delete-scenenode")
|
|||
|
{
|
|||
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
return deleteScene(parameter);
|
|||
|
}
|
|||
|
else if (eventName == "move-scense-node")
|
|||
|
{
|
|||
|
return updateScene(parameter);
|
|||
|
}
|
|||
|
}
|
|||
|
CATCH(parameter);
|
|||
|
|
|||
|
|
|||
|
return EventModule::onMessage(eventName, parameter);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
//<2F><><EFBFBD>£<EFBFBD><C2A3><EFBFBD>Ϣ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD>
|
|||
|
|
|||
|
bool DataPackEventModule::moveDataPackOrClass(json& parameter)
|
|||
|
{
|
|||
|
auto data = parameter["data"];
|
|||
|
int dataId = data["id"];//<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
|||
|
// int newPackId = data["parentid"];//<2F>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>id
|
|||
|
int classType = data["classType"];
|
|||
|
if (classType == g_TYPE_DATAPACK)
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
|||
|
DPData* pData = pDataManager->findObjectById(DataManager::DataType::dataPack, dataId);
|
|||
|
DataPack* pPack = qobject_cast<DataPack*>(pData);
|
|||
|
if (pPack && pPack->moveData(parameter, pDataManager))
|
|||
|
{
|
|||
|
// id <09><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
|
|||
|
// classType ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>1Ϊģ<CEAA>飬2Ϊ<32><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// parentid <09>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>ID
|
|||
|
// oldparentid ԭ<>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>ID
|
|||
|
|
|||
|
//<2F>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
|
|||
|
data["id"] = dataId;
|
|||
|
data["classType"] = g_TYPE_DATAPACK;
|
|||
|
data["parentid"] = data["parentid"];
|
|||
|
data["oldparentid"] = pData->_parent->_id;
|
|||
|
parameter["response"] = data;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//<2F>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
}
|
|||
|
else if (classType == g_TYPE_DATACLASS)
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
DPData* pData = pDataManager->findObjectById(DataManager::DataType::dataClass, dataId);
|
|||
|
DataClass* pClass = qobject_cast<DataClass*>(pData);
|
|||
|
if (pData && pClass->moveData(parameter, pDataManager))
|
|||
|
{
|
|||
|
//<2F>ɹ<EFBFBD>
|
|||
|
data["id"] = dataId;
|
|||
|
data["classType"] = g_TYPE_DATACLASS;
|
|||
|
data["parentid"] = data["parentid"];
|
|||
|
data["oldparentid"] = pData->_parent->_id;
|
|||
|
parameter["response"] = data;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//ʧ<><CAA7>
|
|||
|
//<2F>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("moveDataPackOrClass Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
|||
|
bool DataPackEventModule::addDataPack(json& parameter)
|
|||
|
{
|
|||
|
auto data = parameter["data"];
|
|||
|
int parentId = data["parentid"]; //<2F>ϲ<EFBFBD>id
|
|||
|
int classType = data["classType"];
|
|||
|
DataPack* pNewPack = new DataPack();
|
|||
|
pNewPack->setNewData(parameter);
|
|||
|
//<2F><><EFBFBD>ƺϷ<C6BA><CFB7><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
QString msg;
|
|||
|
if ( pNewPack->checkNameillegal(msg))
|
|||
|
{
|
|||
|
delete pNewPack;
|
|||
|
pNewPack = nullptr;
|
|||
|
parameter["error"] = CommonHelper::qstringToUtf8(msg);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
DPData* pParent = nullptr;
|
|||
|
if (classType == g_TYPE_DATAMODEL)
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>ֱ<EFBFBD>ӽ<EFBFBD>
|
|||
|
pParent = pDataManager->findObjectById(DataManager::DataType::dataModel, parentId);
|
|||
|
}
|
|||
|
else if (classType == g_TYPE_DATAPACK)
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>½<EFBFBD><C2BD><EFBFBD>ģ<EFBFBD><C4A3>
|
|||
|
pParent = pDataManager->findObjectById(DataManager::DataType::dataPack, parentId);
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>Ϣ
|
|||
|
pNewPack->_bIsChildPack = true;
|
|||
|
}
|
|||
|
if (pParent)
|
|||
|
{
|
|||
|
|
|||
|
pNewPack->_parent = pParent; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (pParent->addChild(pNewPack))
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>ӵ<EFBFBD>map
|
|||
|
pDataManager->insertDataMap(DataManager::DataType::dataPack, pNewPack->_id, pNewPack);
|
|||
|
json j;
|
|||
|
pNewPack->toJson(j);
|
|||
|
parameter["response"] = j;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
delete pNewPack;
|
|||
|
pNewPack = nullptr;
|
|||
|
parameter["error"] = "<EFBFBD>½<EFBFBD>ģ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
}
|
|||
|
else {
|
|||
|
delete pNewPack;
|
|||
|
pNewPack = nullptr;
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>鸸<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("addDataPack Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
bool DataPackEventModule::deleteDataPack(json& parameter)
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD>id
|
|||
|
auto data = parameter["data"];
|
|||
|
auto dataPackId = data["id"];
|
|||
|
QString result;
|
|||
|
DataPack* pData = qobject_cast<DataPack*>(pDataManager->findObjectById(DataManager::DataType::dataPack, dataPackId));
|
|||
|
if (pData && pData->deleteSelf(result))
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>map
|
|||
|
pDataManager->deleteInDataMap(DataManager::DataType::dataPack, dataPackId);
|
|||
|
delete pData;
|
|||
|
pData = nullptr;
|
|||
|
//ɾ<><C9BE><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
// parameter["response"] = json::array();
|
|||
|
//
|
|||
|
// if (!result.isEmpty())
|
|||
|
// {
|
|||
|
// QStringList typeIdlist = result.split("#");
|
|||
|
// for (int i = 0; i < typeIdlist.size(); i++)
|
|||
|
// {
|
|||
|
// QString typeId = typeIdlist.at(i);
|
|||
|
// int pos = typeId.indexOf(",");
|
|||
|
// int type = typeId.left(pos).toInt();
|
|||
|
// int id = typeId.right(typeId.size() - 1 - pos).toInt();
|
|||
|
// json j;
|
|||
|
// j["id"] = id;
|
|||
|
// j["classType"] = type;
|
|||
|
// parameter["response"].push_back(j);
|
|||
|
// }
|
|||
|
// }
|
|||
|
parameter["response"]["status"] = true;
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//<2F>籣<EFBFBD><E7B1A3>ʾɾ<CABE><C9BE>ģ<EFBFBD><C4A3>ʧ<EFBFBD>ܣ<EFBFBD>
|
|||
|
parameter["response"]["status"] = false;
|
|||
|
|
|||
|
}
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("deleteDataPack Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
bool DataPackEventModule::updateDataPack(json& parameter)
|
|||
|
{
|
|||
|
//<2F><EFBFBD>name type desciption <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD>
|
|||
|
auto data = parameter["data"];
|
|||
|
auto dataPackId = data["id"];
|
|||
|
//<2F><><EFBFBD>ҵ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
|||
|
DPData* pDataPack = pDataManager->findObjectById(DataManager::DataType::dataPack, dataPackId);
|
|||
|
if (pDataPack) {
|
|||
|
pDataPack->setNewData(parameter);
|
|||
|
if (pDataPack->saveSelf())
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳɹ<DDB3><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>web<65><62>
|
|||
|
json j;
|
|||
|
pDataPack->toJson(j);
|
|||
|
parameter["response"] = j;
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
else {
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("deleteDataPack Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
bool DataPackEventModule::getDataClass(json& parameter)
|
|||
|
{
|
|||
|
auto data = parameter["data"];
|
|||
|
int id = data["id"];
|
|||
|
DPData* pData = pDataManager->findObjectById(DataManager::DataType::dataClass, id);
|
|||
|
if (pData)
|
|||
|
{
|
|||
|
json j;
|
|||
|
pData->toJson(j);
|
|||
|
parameter["response"] = j;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("getDataClass Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
bool DataPackEventModule::addDataClass(json& parameter)
|
|||
|
{
|
|||
|
const int COMMON_CLASS = 1;
|
|||
|
DataClass* pNewDataClass = new DataClass();
|
|||
|
auto data = parameter["data"];
|
|||
|
auto parentId = data["parentid"]; //<2F>ϲ<EFBFBD>id
|
|||
|
pNewDataClass->setNewData(parameter);
|
|||
|
pNewDataClass->reName();
|
|||
|
|
|||
|
QString errMsg;
|
|||
|
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>Ʊ<EFBFBD>ʶ<EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD>
|
|||
|
if (!pNewDataClass->checkNameSize(3, 128, errMsg) || !pNewDataClass->checkLetter(errMsg,2))
|
|||
|
{
|
|||
|
delete pNewDataClass;
|
|||
|
pNewDataClass = nullptr;
|
|||
|
parameter["error"] = CommonHelper::qstringToUtf8(errMsg);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
pNewDataClass->_type = COMMON_CLASS;//<2F><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD>ҵ<EFBFBD>ǰ<EFBFBD><C7B0>ģ<EFBFBD><C4A3>
|
|||
|
DPData* pData = pDataManager->findObjectById(DataManager::DataType::dataPack, parentId);
|
|||
|
pNewDataClass->_parent = pData; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (pData && pData->addChild(pNewDataClass))
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>map
|
|||
|
pDataManager->insertDataMap(DataManager::DataType::dataClass, pNewDataClass->_id, pNewDataClass);
|
|||
|
json j;
|
|||
|
pNewDataClass->toJson(j);
|
|||
|
parameter["response"] = j;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
delete pNewDataClass;
|
|||
|
pNewDataClass = nullptr;
|
|||
|
parameter["error"] = "<EFBFBD>½<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("addDataClass Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
bool DataPackEventModule::deleteDataClass(json& parameter)
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD>id
|
|||
|
auto data = parameter["data"];
|
|||
|
int dataClassID = data["id"];
|
|||
|
QString result;
|
|||
|
DataClass* pClass = qobject_cast<DataClass*>(pDataManager->findObjectById(DataManager::DataType::dataClass, dataClassID));
|
|||
|
if (!pClass)
|
|||
|
{
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("deleteDataClass Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
if (pClass->deleteFromModel(result))
|
|||
|
{
|
|||
|
delete pClass;
|
|||
|
pClass = nullptr;
|
|||
|
parameter["response"] = json::array();
|
|||
|
|
|||
|
if (!result.isEmpty())
|
|||
|
{
|
|||
|
QStringList typeIdlist = result.split("#");
|
|||
|
for (int i = 0; i < typeIdlist.size(); i++)
|
|||
|
{
|
|||
|
QString typeId = typeIdlist.at(i);
|
|||
|
int pos = typeId.indexOf(",");
|
|||
|
int type = typeId.left(pos).toInt();
|
|||
|
int id = typeId.right(typeId.size() - 1 - pos).toInt();
|
|||
|
json j;
|
|||
|
j["id"] = id;
|
|||
|
j["classType"] = type;
|
|||
|
parameter["response"].push_back(j);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
parameter["response"]["status"] = false;
|
|||
|
}
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("deleteDataClass Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
bool DataPackEventModule::updateDataClass(json& parameter)
|
|||
|
{
|
|||
|
auto data = parameter["data"];
|
|||
|
auto dataClassId = data["id"];
|
|||
|
//<2F><><EFBFBD>ҵ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
DPData* pDataClass = pDataManager->findObjectById(DataManager::DataType::dataClass, dataClassId);
|
|||
|
if (pDataClass) {
|
|||
|
pDataClass->setNewData(parameter);
|
|||
|
if (pDataClass->saveSelf())
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳɹ<DDB3><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>web<65><62>
|
|||
|
parameter["response"] = data;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//ʧ<><CAA7>
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
}
|
|||
|
else {
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("updateDataClass Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݹع<DDB9><D8B9><EFBFBD>
|
|||
|
bool DataPackEventModule::buildDataRelationship(json& parameter)
|
|||
|
{
|
|||
|
bool status = false;
|
|||
|
auto data = parameter["data"];
|
|||
|
int type = data["type"];//<2F><>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>
|
|||
|
int mainClassId = data["id1"]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int subClassId = data["id2"]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
DataClass* pNewRelationClass;
|
|||
|
QString nameFlag1 = CommonHelper::utf8ToQString(data["crname1"]);
|
|||
|
QString nameFlag2 = CommonHelper::utf8ToQString(data["crname2"]);
|
|||
|
DPData* pClass1 = pDataManager->findObjectById(DataManager::DataType::dataClass, mainClassId);
|
|||
|
DPData* pClass2 = pDataManager->findObjectById(DataManager::DataType::dataClass, subClassId);
|
|||
|
status = DataClass::buildRelationship(pClass1, pClass2, nameFlag1, nameFlag2, type, pNewRelationClass);
|
|||
|
|
|||
|
if (type == RELATION_MN)
|
|||
|
{
|
|||
|
json j;
|
|||
|
pNewRelationClass->toJson(j, true);
|
|||
|
parameter["response"] = j;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (status == true)
|
|||
|
{
|
|||
|
parameter["response"]["status"] = status;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD>ϵʧ<EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("buildDataRelationship Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
bool DataPackEventModule::deleteDataRelationship(json& parameter)
|
|||
|
{
|
|||
|
auto data = parameter["data"];
|
|||
|
int classId1 = data["id1"];
|
|||
|
int classId2 = data["id2"];
|
|||
|
QString result;
|
|||
|
DPData* pClass1 = pDataManager->findObjectById(DataManager::DataType::dataClass, classId1);
|
|||
|
DPData* pClass2 = pDataManager->findObjectById(DataManager::DataType::dataClass, classId2);
|
|||
|
bool status = DataClass::deleteRelationship(pClass1, pClass2, result);
|
|||
|
|
|||
|
parameter["response"] = json::array();
|
|||
|
|
|||
|
if (!result.isEmpty())
|
|||
|
{
|
|||
|
QStringList typeIdlist = result.split("#");
|
|||
|
for (int i = 0; i < typeIdlist.size(); i++)
|
|||
|
{
|
|||
|
QString typeId = typeIdlist.at(i);
|
|||
|
int pos = typeId.indexOf(",");
|
|||
|
int type = typeId.left(pos).toInt();
|
|||
|
int id = typeId.right(typeId.size() - 1 - pos).toInt();
|
|||
|
json j;
|
|||
|
j["id"] = id;
|
|||
|
j["classType"] = type;
|
|||
|
parameter["response"].push_back(j);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("deleteDataRelationship Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
bool DataPackEventModule::addDataClassAttribute(json& parameter)
|
|||
|
{
|
|||
|
|
|||
|
auto data = parameter["data"];
|
|||
|
int parentId = data["parentid"]; //<2F>ϲ<EFBFBD>id
|
|||
|
//<2F><><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD>ʶ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
QString name = CommonHelper::utf8ToQString(data["name"]);
|
|||
|
QString errMsg;
|
|||
|
|
|||
|
DataAttribute* pNewDataAttribute = new DataAttribute();
|
|||
|
pNewDataAttribute->setNewData(parameter);
|
|||
|
|
|||
|
pNewDataAttribute->reName();
|
|||
|
if ( !pNewDataAttribute->checkNameSize(2,128,errMsg) || !pNewDataAttribute->checkLetter(errMsg,1) || pNewDataAttribute->illegalName(errMsg))
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>Ʊ<EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD>Ϸ<EFBFBD>
|
|||
|
parameter["error"] = CommonHelper::qstringToUtf8(errMsg);
|
|||
|
delete pNewDataAttribute;
|
|||
|
pNewDataAttribute = nullptr;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>ҵ<EFBFBD>ǰ<EFBFBD><C7B0>ģ<EFBFBD><C4A3>
|
|||
|
DPData* pData = pDataManager->findObjectById(DataManager::DataType::dataClass, parentId);
|
|||
|
pNewDataAttribute->_parent = pData; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (pData && pData->addChild(pNewDataAttribute))
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>map
|
|||
|
pDataManager->insertDataMap(DataManager::DataType::dataAttribute, pNewDataAttribute->_id, pNewDataAttribute);
|
|||
|
json j;
|
|||
|
pNewDataAttribute->toJson(j);
|
|||
|
parameter["response"] = j;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
delete pNewDataAttribute;
|
|||
|
pNewDataAttribute = nullptr;
|
|||
|
parameter["error"] = "<EFBFBD>½<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("addDataClassAttribute Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
bool DataPackEventModule::deleteDataClassAttribute(json& parameter)
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD>id
|
|||
|
auto data = parameter["data"];
|
|||
|
auto dataAttributeID = data["id"];
|
|||
|
|
|||
|
DPData* pDataClassAttribute = pDataManager->findObjectById(DataManager::DataType::dataAttribute, dataAttributeID);
|
|||
|
if (pDataClassAttribute && pDataClassAttribute->deleteSelf())
|
|||
|
{
|
|||
|
//ɾ<><C9BE><EFBFBD>ɹ<EFBFBD>
|
|||
|
delete pDataClassAttribute;
|
|||
|
pDataClassAttribute = nullptr;
|
|||
|
//ɾ<><C9BE><EFBFBD>ɹ<EFBFBD>
|
|||
|
parameter["response"]["status"] = true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//ʧ<><CAA7>
|
|||
|
parameter["response"]["status"] = false;
|
|||
|
}
|
|||
|
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("deleteDataClassAttribute Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
bool DataPackEventModule::updateDataClassAttribute(json& parameter)
|
|||
|
{
|
|||
|
auto data = parameter["data"];
|
|||
|
auto dataAttributeId = data["id"];
|
|||
|
//<2F><><EFBFBD>ҵ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
DPData* pDataAttribute = pDataManager->findObjectById(DataManager::DataType::dataAttribute, dataAttributeId);
|
|||
|
if (pDataAttribute) {
|
|||
|
pDataAttribute->setNewData(parameter);
|
|||
|
if (pDataAttribute->saveSelf())
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳɹ<DDB3><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>web<65><62>
|
|||
|
parameter["response"] = data;
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//ʧ<><CAA7>
|
|||
|
parameter["response"]["status"] = false;
|
|||
|
}
|
|||
|
}
|
|||
|
else {
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("updateDataClassAttribute Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
bool DataPackEventModule::importDictionary(json& parameter)
|
|||
|
{
|
|||
|
auto data = parameter["data"];
|
|||
|
int id = data["id"];
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
DataClass* pDataClass = qobject_cast<DataClass*>(pDataManager->findObjectById(DataManager::DataType::dataClass, id));
|
|||
|
QString ret;
|
|||
|
if (pDataClass)
|
|||
|
{
|
|||
|
if (pDataClass->importDict(ret))
|
|||
|
{
|
|||
|
parameter["response"]["status"] = true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
parameter["error"] = CommonHelper::qstringToUtf8(ret);
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("importDictionary Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
bool DataPackEventModule::exportTemplate(json& parameter)
|
|||
|
{
|
|||
|
auto data = parameter["data"];
|
|||
|
int id = data["id"];
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
DataClass* pDataClass = qobject_cast<DataClass*>(pDataManager->findObjectById(DataManager::DataType::dataClass, id));
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
if (!pDataClass)
|
|||
|
throw exception("<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
|||
|
int ret = pDataClass->exportTemplate();
|
|||
|
if (ret == 0)
|
|||
|
{
|
|||
|
parameter["response"]["status"] = true;
|
|||
|
}
|
|||
|
else if (ret == 1)
|
|||
|
{
|
|||
|
parameter["response"]["status"] = false;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (exception& e)
|
|||
|
{
|
|||
|
parameter["error"] = e.what();
|
|||
|
LOG(ERROR) << e.what();
|
|||
|
}
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("exportTemplate Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
bool DataPackEventModule::exportDictionary(json& parameter)
|
|||
|
{
|
|||
|
auto data = parameter["data"];
|
|||
|
int id = data["id"];
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
DataClass* pDataClass = qobject_cast<DataClass*>(pDataManager->findObjectById(DataManager::DataType::dataClass, id));
|
|||
|
try
|
|||
|
{
|
|||
|
if (!pDataClass)
|
|||
|
throw exception("<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
|||
|
parameter["response"]["status"] = pDataClass->exportDict();
|
|||
|
}
|
|||
|
catch (exception& e)
|
|||
|
{
|
|||
|
LOG(ERROR) << e.what();
|
|||
|
}
|
|||
|
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("exportDictionary Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
bool DataPackEventModule::getDictionaryData(json& parameter)
|
|||
|
{
|
|||
|
auto data = parameter["data"];
|
|||
|
int id = data["id"];
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
DataClass* pDataClass = qobject_cast<DataClass*>(pDataManager->findObjectById(DataManager::DataType::dataClass, id));
|
|||
|
if (pDataClass) {
|
|||
|
json j;
|
|||
|
pDataClass->dictToJson(j);
|
|||
|
parameter["response"] = j;
|
|||
|
}
|
|||
|
else {
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
|
|||
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("getDictionaryData Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>*/
|
|||
|
bool DataPackEventModule::importDataModel(json& parameter)
|
|||
|
{
|
|||
|
|
|||
|
auto data = parameter["data"];
|
|||
|
int dataModelId = data["id"];
|
|||
|
TransformExcel transform(pDataManager, dataModelId);
|
|||
|
// DataModelData* pModel = qobject_cast<DataModelData*>(pDataManager->findObjectById(DataManager::DataType::dataModel, dataModelId));
|
|||
|
// int curProjectId = pModel->_parent->_id; //<2F><>ǰ<EFBFBD><C7B0>Ŀid
|
|||
|
QString curPath = QCoreApplication::applicationDirPath();
|
|||
|
QString selectDir = QFileDialog::getOpenFileName(nullptr, "ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>", "", "*.xlsx");
|
|||
|
QString errMsg;
|
|||
|
if (!selectDir.isEmpty())
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
transform.openFile(selectDir);
|
|||
|
QWaiting waiting(Session::getSession()->parent(), "ģ<EFBFBD>͵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...");
|
|||
|
|
|||
|
if (waiting.working(std::bind(&TransformExcel::importData, &transform, std::ref(errMsg))))
|
|||
|
{
|
|||
|
parameter["response"]["status"] = true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (errMsg == "<EFBFBD><EFBFBD><EFBFBD>ݻع<EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
|||
|
{
|
|||
|
// CommonHelper::message(errMsg,2);
|
|||
|
qApp->quit();
|
|||
|
QProcess::startDetached(qApp->applicationFilePath());
|
|||
|
}
|
|||
|
else if( errMsg == "ģ<EFBFBD>͵<EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>") {
|
|||
|
//<2F><><EFBFBD>»<EFBFBD>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
DataModelData* pModel = qobject_cast<DataModelData*>(pDataManager->findObjectById(DataManager::DataType::dataModel, dataModelId));
|
|||
|
if (pModel) {
|
|||
|
pModel->getAllChildren(pDataManager, true);
|
|||
|
pModel->_initChildren = true;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
parameter["error"] = CommonHelper::qstringToUtf8(errMsg);
|
|||
|
}
|
|||
|
}
|
|||
|
catch (exception& e)
|
|||
|
{
|
|||
|
LOG(ERROR) << e.what();
|
|||
|
LOG(ERROR) << CommonHelper::utf8ToStdString("DataPackEventModule::importDataModel catch exception");
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("importDataModel Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>*/
|
|||
|
bool DataPackEventModule::exportDataModel(json& parameter)
|
|||
|
{
|
|||
|
TransformExcel transform(pDataManager, 0);
|
|||
|
|
|||
|
QString file = QFileDialog::getSaveFileName(nullptr, tr("<EFBFBD><EFBFBD><EFBFBD>浼<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"), "", tr("*.xlsx"));
|
|||
|
|
|||
|
if (!file.isEmpty())
|
|||
|
{
|
|||
|
QFileInfo exportFile(file);
|
|||
|
if (exportFile.isFile())
|
|||
|
{
|
|||
|
if (!transform.openFile(file))
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><CAA7>,ֱ<>ӷ<EFBFBD><D3B7><EFBFBD>
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><EFBFBD>";
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("exportDataModel Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
QWaiting waiting(Session::getSession()->parent(), "ģ<EFBFBD>͵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...");
|
|||
|
if (waiting.working(std::bind(&TransformExcel::exportData, &transform, std::ref(parameter))))
|
|||
|
{
|
|||
|
parameter["response"]["status"] = true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
transform.closeFile(file);
|
|||
|
}
|
|||
|
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("exportDataModel Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
/*<2A><><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>*/
|
|||
|
bool DataPackEventModule::addSceneNode(json& parameter)
|
|||
|
{
|
|||
|
auto data = parameter["data"];
|
|||
|
int parentType = data["parentClassType"]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int parentId = data["parentid"]; //<2F><>id
|
|||
|
SceneInfo* pNewScene = new SceneInfo;
|
|||
|
|
|||
|
pNewScene->setNewData(parameter);
|
|||
|
DPData* pdata = nullptr;
|
|||
|
//<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>飨<EFBFBD>ࣩ<EFBFBD><E0A3A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (parentType == g_TYPE_DATACLASS)
|
|||
|
{
|
|||
|
pdata = pDataManager->findObjectById(DataManager::DataType::dataClass, parentId);
|
|||
|
}
|
|||
|
else if (parentType == g_TYPE_DATAPACK)
|
|||
|
{
|
|||
|
pdata = pDataManager->findObjectById(DataManager::DataType::dataPack, parentId);
|
|||
|
}
|
|||
|
if (!pdata)
|
|||
|
{
|
|||
|
delete pNewScene;
|
|||
|
pNewScene = nullptr;
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>飨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ࣩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("addSceneNode Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
if (pdata->addScene(pNewScene))
|
|||
|
{
|
|||
|
pNewScene->_parent = pdata;
|
|||
|
pDataManager->insertDataMap(DataManager::DataType::scene, pNewScene->_id, pNewScene);
|
|||
|
//<2F><><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD>ɹ<EFBFBD>
|
|||
|
json j;
|
|||
|
pNewScene->toJson(j);
|
|||
|
parameter["response"] = j;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
delete pNewScene;
|
|||
|
pNewScene = nullptr;
|
|||
|
parameter["response"] = { {"status",false} };
|
|||
|
}
|
|||
|
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("addSceneNode Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
/*ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|||
|
bool DataPackEventModule::deleteScene(json& parameter)
|
|||
|
{
|
|||
|
auto data = parameter["data"];
|
|||
|
int id = data["id"];
|
|||
|
|
|||
|
SceneInfo* pScene = qobject_cast<SceneInfo*>(pDataManager->findObjectById(DataManager::DataType::scene, id));
|
|||
|
if (pScene)
|
|||
|
{
|
|||
|
if (pScene->deleteSelf())
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>map<61><70>ɾ<EFBFBD><C9BE>
|
|||
|
DPData* pParent = pScene->_parent;
|
|||
|
pParent->deleteScene(id);
|
|||
|
pDataManager->deleteInDataMap(DataManager::DataType::scene, id);
|
|||
|
delete pScene;
|
|||
|
pScene = nullptr;
|
|||
|
|
|||
|
parameter["response"] = { {"status",true} };
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//ɾ<><C9BE>ʧ<EFBFBD><CAA7>
|
|||
|
parameter["response"] = { {"status",false} };
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("serch sceneInfo in scenemap failed");
|
|||
|
}
|
|||
|
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("deleteScene Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
bool DataPackEventModule::getSceneNode(json& parameter)
|
|||
|
{
|
|||
|
auto data = parameter["data"];
|
|||
|
int modelid = data["modelid"];//<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
|||
|
int classType = data["modelClassType"];
|
|||
|
QMap<int, SceneInfo*>::iterator it;
|
|||
|
parameter["response"] = json::array();
|
|||
|
if (classType == g_TYPE_DATACLASS)
|
|||
|
{
|
|||
|
DataClass* pClass = qobject_cast<DataClass*>(pDataManager->findObjectById(DataManager::DataType::dataClass, modelid));
|
|||
|
if (pClass)
|
|||
|
{
|
|||
|
if (!pClass->_initScene)
|
|||
|
{
|
|||
|
if (pClass->getScene(pDataManager))
|
|||
|
{
|
|||
|
// pClass->_initScene = true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
for (it = pClass->_sceneMap.begin(); it != pClass->_sceneMap.end(); ++it)
|
|||
|
{
|
|||
|
json j;
|
|||
|
(*it)->toJson(j);
|
|||
|
parameter["response"].push_back(j);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else if (classType = g_TYPE_DATAPACK)
|
|||
|
{
|
|||
|
DataPack* pPack = qobject_cast<DataPack*>(pDataManager->findObjectById(DataManager::DataType::dataPack, modelid));
|
|||
|
if (pPack)
|
|||
|
{
|
|||
|
if (!pPack->_initScene)
|
|||
|
{
|
|||
|
if (pPack->getScene(pDataManager))
|
|||
|
{
|
|||
|
// pPack->_initScene = true;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
|
|||
|
for (it = pPack->_sceneMap.begin(); it != pPack->_sceneMap.end(); ++it)
|
|||
|
{
|
|||
|
json j;
|
|||
|
(*it)->toJson(j);
|
|||
|
parameter["response"].push_back(j);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD>
|
|||
|
parameter["error"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("getSceneNode Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
bool DataPackEventModule::updateScene(json& parameter)
|
|||
|
{
|
|||
|
auto data = parameter["data"];
|
|||
|
int id = data["id"];
|
|||
|
DPData* pData = pDataManager->findObjectById(DataManager::DataType::scene, id);
|
|||
|
SceneInfo* pScene = qobject_cast<SceneInfo*>(pData);
|
|||
|
if (pScene)
|
|||
|
{
|
|||
|
pScene->setNewData(parameter);
|
|||
|
if (pScene->saveSelf())
|
|||
|
{
|
|||
|
parameter["response"] = { {"status",true} };
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
parameter["response"] = { {"status",false} };
|
|||
|
}
|
|||
|
}
|
|||
|
LOG(INFO) << CommonHelper::utf8ToStdString("updateScene Sendto web.......");
|
|||
|
LOG(INFO) << CommonHelper::jsonToString(parameter);
|
|||
|
return true;
|
|||
|
}
|