DPS/DataPlatform/DataClass.h

201 lines
6.4 KiB
C
Raw Normal View History

2025-06-23 10:41:33 +08:00
#pragma once
#include "DPData.h"
#include "ExcelOP.h"
#define RELATION_MN 4 //m:n<><6E>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>
#define RELATION_11 1
#define RELATION_1N 2
#define RELATION_N1 3
#define FK_11 1 //1:1
#define FK_1N 2 //1:N
#include <QStack>
//typedef struct FuncInfo
//{
// int paraCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// int paraType[20]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// QStringList paraName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// QString name; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// QString nameAndParastr;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// QString callParaStr; //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// FuncInfo()
// {
// paraCount = 0;
// name = "";
// paraType[20] = { 0 };
// }
//}ByFunction;
class Filter;
class DataRow;
class FindByInterface;
class DelByInterface;
class SceneInfo;
class DataClass:public DPData
{
Q_OBJECT
Q_PROPERTY(QString displayName READ getdisplayName WRITE setdisplayName)
Q_PROPERTY(QString description READ getDescription WRITE setDescription)
Q_PROPERTY(QString name READ getName WRITE setName) //<2F><><EFBFBD>Ʊ<EFBFBD>ʶ
Q_PROPERTY(unsigned int createVersion READ getCreateVersion WRITE setCreateVersion)
Q_PROPERTY(unsigned int deleteVersion READ getdeleteVersion WRITE setDeleteVersion)
Q_PROPERTY(unsigned int countType READ getCountType WRITE setCountType)
Q_PROPERTY(unsigned int type READ getType WRITE setType)
Q_PROPERTY(QString interalName READ getInternalName WRITE setInternalName)
public:
DataClass();
~DataClass();
QString getdisplayName() const { return _strDisplayName; }
void setdisplayName(QString name) { _strDisplayName = name; }
QString getDescription() const { return _strDescription; }
void setDescription(QString des) { _strDescription = des; }
unsigned int getCreateVersion() const { return _wCreateVersion; }
void setCreateVersion(unsigned int cVersion) { _wCreateVersion = cVersion; }
unsigned int getdeleteVersion() const { return _wDeleteVersion; }
void setDeleteVersion(unsigned int dVersion) { _wDeleteVersion = dVersion; }
unsigned int getCountType() const { return _wCountType; }
void setCountType(unsigned int cType) { _wCountType = cType; }
void setType(unsigned int type) { _type = type; }
unsigned int getType() const { return _type; }
QString getInternalName() const { return _strInternalName; }
void setInternalName(QString strName) { _strInternalName = strName; }
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>Ʊ<EFBFBD>ʶ<EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD>
bool checkNameillegal( QString& errMsg);
bool checkNameSize(int min, int max, QString& errMsg);
bool checkLetter(QString& errmsg, int index); //<2F>жϵڼ<CFB5><DABC><EFBFBD><EFBFBD>ַ<EFBFBD>
/*<2A><><EFBFBD><EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
bool saveSelf();
void saveToDao();
/*<2A><><EFBFBD><EFBFBD>child<6C><64><EFBFBD><EFBFBD>*/
bool addChild(DPData* newData);
/*ɾ<><C9BE>һ<EFBFBD><D2BB>child<6C><64><EFBFBD><EFBFBD>*/
bool deleteChild(unsigned int id);
/*ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
// bool deleteSelf();
bool deleteFromModel(QString& result );
/*<2A><><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>*/
void loadData(DBPlatformSpace::DAO* pDao);
/*<2A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD>*/
void getAllChildren(DPData* pManager = nullptr);
/*<2A><><EFBFBD><EFBFBD>map<61><70><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>child*/
void removeChildinDPMap();
/*<2A>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ*/
void removeSceneinDPMap();
// DPData* hasSameNameChild(QString propertyName, QString name, bool add);
/*<2A><>ȡ<EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>*/
void getNewProperty(json& parameter, QVariantMap& valueMap);
void setNewData(json& parameter);
/*<2A><><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD>ʶ <20><><EFBFBD><EFBFBD>T_ǰ׺*/
void reName();
/*תjson*/
void toJson(json& jsonObj, bool recursive = false);
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>*/
void setFileData(FileGenerate* generator, QStringList flag);
/*<2A>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>*/
bool moveData(json& parameter, DPData* pManager);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool importDict(QString& result);
bool exportDict();
int exportTemplate();
void dictToJson(json& jsonObj);
//<2F><><EFBFBD>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool generateCode( QStringList& qfileList);
bool getFindByInterface();
bool addFindByInterface(FindByInterface* pNew);
bool delFindByInterfaceById(int id);
bool updateFindByInterfaceById(json& parameter);
bool getDelByInterface();
bool addDelByInterface(DelByInterface* pNew);
bool delDelByInterfaceById(int id);
bool updateDelByInterfaceById(json& parameter);
QString getWhiteBoxType();
bool setWhiteBoxType(json& parameter);
//<2F><><EFBFBD><EFBFBD>.NET<45>ӿ<EFBFBD>
bool generateCSharpCode(QStringList& qfileList);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool addScene(DPData* pNew);
bool deleteScene(int id);
// bool moveScene(json& parameter);
bool getScene(DPData* pMng);
//<2F><><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool getAllDataToJson(json& jsonObj);
bool saveTableData(json& jsonObj, DPData* pModel);
bool delTableData(json& jsonObj);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static bool buildRelationship(DPData* pClass1, DPData*pClass2, QString name1, QString name2, int type, DataClass*& pNewClass);
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD>ϵ
static bool deleteRelationship(DPData* pClass1, DPData* pClass2, QString& result);
static bool deleteMNrealationship(DPData* pClass1, DPData* pClass2, QString& result);
/*<2A><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ*/
static bool resolveDeleteResult(QString deletedResult);
//ɸѡ<C9B8><D1A1><EFBFBD><EFBFBD>
int filterData(QString filterStr, json& jsonObj);
void doFilter( json& jsonRet);
int getFieldType(QString field);
//<2F><><EFBFBD><EFBFBD>c#<23>ӿڴ<D3BF><DAB4>루2023.10<EFBFBD><EFBFBD>
//bool generateCSharpCode(QStringList& qfileList);
//bool generateHeadfile(QString& file, QString path);
//bool generateSrcfile(QString& file, QString path);
//void generateFindbyFunction(QString& con);
//void generateDelbyFunction(QString& con);
//void generateSaveDelselfFunc(QString& con);
//void generateLoadFunc(QString& con);
//void generateSavetoDaoFunc(QString& con);
//DPData* getAttributeById(int id);
//QStringList _delbyParas;
//QList<ByFunction*> _findbyFuncs;
//QList<ByFunction*> _delbyFuncs;
QString _tableName; //[20230915<31><35><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>༭ģ<E0BCAD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>]
QString _strDisplayName; //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
QString _strDescription; //<2F><><EFBFBD><EFBFBD>
unsigned int _wCreateVersion = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD>
unsigned int _wDeleteVersion = 0; //ɾ<><C9BE><EFBFBD>
QString _strInternalName; //<2F>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
unsigned int _wCountType = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int _type = 0; //1<><31>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QList<QString> _relTableName; //<2F><>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>
QList<QString> _fkTableName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>
QList<QString> _fkTypeName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
int _version = 0;
// QList<QStringList> _dictionaryData; //<2F><><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QMap<int, FindByInterface*> _findByMap; //<2F><>ѯ<EFBFBD>ӿ<EFBFBD>list
QMap<int, DelByInterface*> _delByMap;//ɾ<><C9BE><EFBFBD>ӿ<EFBFBD>list
QMap<int, SceneInfo*> _sceneMap; //<2F><><EFBFBD><EFBFBD>map
bool _initAttriute = false;
bool _initScene = false;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QList<DataRow*> tableData;
QStack<Filter*> filterItems; //<2F>洢ǰ<E6B4A2>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QStack<QString> opStack;
QStack<bool> midResultStack; //<2F>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϽ<D0B6><CFBD><EFBFBD>
int colnum = 0;
QMap<QString, int> colType; //<2F>ֶ<EFBFBD><D6B6><EFBFBD>--<2D><><EFBFBD><EFBFBD>
protected:
private:
ExcelOP excel;
};