From a4d1e51da86fb05c565857747d9ae0726b5744ec Mon Sep 17 00:00:00 2001 From: Kane Wang Date: Mon, 23 Nov 2020 11:43:54 +0800 Subject: [PATCH] 111 --- .../car_dealer_util/car_dealer_util.vcxproj | 6 +- .../car_dealer_util.vcxproj.filters | 10 +- .../moc_QCarDealerSchemaWidget.cpp | 40 ++++- .../CarDealer.h => CarDealer/CarDealer.cpp} | 4 +- .../Data/Datastructure/CarDealer/CarDealer.h | 56 +++++++ .../Datastructure/CarDealer/CarDealerMap.cpp | 155 ++++++++++++++++++ .../Datastructure/CarDealer/CarDealerMap.h | 25 +++ .../Data/Datastructure/车商/CarDealer.cpp | 0 code/cpp/car_dealer_util/source/test/test.cpp | 3 + .../source/util/qt/CarDealer.cpp | 1 - .../source/util/qt/CarDealer.h | 14 -- 11 files changed, 285 insertions(+), 29 deletions(-) rename code/cpp/car_dealer_util/source/Data/Datastructure/{车商/CarDealer.h => CarDealer/CarDealer.cpp} (80%) create mode 100644 code/cpp/car_dealer_util/source/Data/Datastructure/CarDealer/CarDealer.h create mode 100644 code/cpp/car_dealer_util/source/Data/Datastructure/CarDealer/CarDealerMap.cpp create mode 100644 code/cpp/car_dealer_util/source/Data/Datastructure/CarDealer/CarDealerMap.h delete mode 100644 code/cpp/car_dealer_util/source/Data/Datastructure/车商/CarDealer.cpp delete mode 100644 code/cpp/car_dealer_util/source/util/qt/CarDealer.cpp delete mode 100644 code/cpp/car_dealer_util/source/util/qt/CarDealer.h diff --git a/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/car_dealer_util.vcxproj b/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/car_dealer_util.vcxproj index 0e73a47..6fc3dce 100644 --- a/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/car_dealer_util.vcxproj +++ b/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/car_dealer_util.vcxproj @@ -24,11 +24,12 @@ + + - @@ -67,11 +68,12 @@ + + - diff --git a/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/car_dealer_util.vcxproj.filters b/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/car_dealer_util.vcxproj.filters index f0bf83c..3b6739b 100644 --- a/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/car_dealer_util.vcxproj.filters +++ b/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/car_dealer_util.vcxproj.filters @@ -199,7 +199,10 @@ 工具\qt相关 - + + 数据\数据结构\车商 + + 数据\数据结构\车商 @@ -319,7 +322,10 @@ Header Files - + + 数据\数据结构\车商 + + 数据\数据结构\车商 diff --git a/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/source/Widgets/ContentWidget/QCarDealerSchemaWidget/moc_QCarDealerSchemaWidget.cpp b/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/source/Widgets/ContentWidget/QCarDealerSchemaWidget/moc_QCarDealerSchemaWidget.cpp index 6ac6bee..857a5fd 100644 --- a/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/source/Widgets/ContentWidget/QCarDealerSchemaWidget/moc_QCarDealerSchemaWidget.cpp +++ b/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/source/Widgets/ContentWidget/QCarDealerSchemaWidget/moc_QCarDealerSchemaWidget.cpp @@ -22,8 +22,8 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED struct qt_meta_stringdata_QCarDealerSchemaWidget_t { - QByteArrayData data[1]; - char stringdata0[23]; + QByteArrayData data[3]; + char stringdata0[33]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ @@ -32,10 +32,12 @@ struct qt_meta_stringdata_QCarDealerSchemaWidget_t { ) static const qt_meta_stringdata_QCarDealerSchemaWidget_t qt_meta_stringdata_QCarDealerSchemaWidget = { { -QT_MOC_LITERAL(0, 0, 22) // "QCarDealerSchemaWidget" +QT_MOC_LITERAL(0, 0, 22), // "QCarDealerSchemaWidget" +QT_MOC_LITERAL(1, 23, 8), // "onImport" +QT_MOC_LITERAL(2, 32, 0) // "" }, - "QCarDealerSchemaWidget" + "QCarDealerSchemaWidget\0onImport\0" }; #undef QT_MOC_LITERAL @@ -45,21 +47,32 @@ static const uint qt_meta_data_QCarDealerSchemaWidget[] = { 8, // revision 0, // classname 0, 0, // classinfo - 0, 0, // methods + 1, 14, // methods 0, 0, // properties 0, 0, // enums/sets 0, 0, // constructors 0, // flags 0, // signalCount + // slots: name, argc, parameters, tag, flags + 1, 0, 19, 2, 0x09 /* Protected */, + + // slots: parameters + QMetaType::Void, + 0 // eod }; void QCarDealerSchemaWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { - Q_UNUSED(_o); - Q_UNUSED(_id); - Q_UNUSED(_c); + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + Q_UNUSED(_t) + switch (_id) { + case 0: _t->onImport(); break; + default: ; + } + } Q_UNUSED(_a); } @@ -89,6 +102,17 @@ void *QCarDealerSchemaWidget::qt_metacast(const char *_clname) int QCarDealerSchemaWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QWidget::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 1) + qt_static_metacall(this, _c, _id, _a); + _id -= 1; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 1) + *reinterpret_cast(_a[0]) = -1; + _id -= 1; + } return _id; } QT_WARNING_POP diff --git a/code/cpp/car_dealer_util/source/Data/Datastructure/车商/CarDealer.h b/code/cpp/car_dealer_util/source/Data/Datastructure/CarDealer/CarDealer.cpp similarity index 80% rename from code/cpp/car_dealer_util/source/Data/Datastructure/车商/CarDealer.h rename to code/cpp/car_dealer_util/source/Data/Datastructure/CarDealer/CarDealer.cpp index 8126ee9..e619383 100644 --- a/code/cpp/car_dealer_util/source/Data/Datastructure/车商/CarDealer.h +++ b/code/cpp/car_dealer_util/source/Data/Datastructure/CarDealer/CarDealer.cpp @@ -1,9 +1,9 @@ // ********************************************************** -// 文件名:CarDealer.h +// 文件名:CarDealer.cpp // 创建日期:2020-11-20 13:59 // 作者: 王炜 // 说明:车商对象定义 // ********************************************************** -#pragma once +#include "CarDealer.h" diff --git a/code/cpp/car_dealer_util/source/Data/Datastructure/CarDealer/CarDealer.h b/code/cpp/car_dealer_util/source/Data/Datastructure/CarDealer/CarDealer.h new file mode 100644 index 0000000..5c67006 --- /dev/null +++ b/code/cpp/car_dealer_util/source/Data/Datastructure/CarDealer/CarDealer.h @@ -0,0 +1,56 @@ +// ********************************************************** +// 文件名:CarDealer.h +// 创建日期:2020-11-20 13:59 +// 作者: 王炜 +// 说明:车商对象定义 +// ********************************************************** + +#pragma once + +#include +#include + +class CarDealer +{ +public: + + CarDealer(QString carDealerCode, QString carDealerName ) + : carDealerCode( std::move( carDealerCode ) ), + carDealerName( std::move( carDealerName ) ) + { + } + + CarDealer( const CarDealer & other ) + : carDealerCode( other.carDealerCode ), + carDealerName( other.carDealerName ) + { + } + + CarDealer( CarDealer && other ) + : carDealerCode( std::move( other.carDealerCode ) ), + carDealerName( std::move( other.carDealerName ) ) + { + } + + CarDealer & operator=( const CarDealer & other ) + { + if ( this == &other ) + return *this; + carDealerCode = other.carDealerCode; + carDealerName = other.carDealerName; + return *this; + } + + CarDealer & operator=( CarDealer && other ) + { + if ( this == &other ) + return *this; + carDealerCode = std::move( other.carDealerCode ); + carDealerName = std::move( other.carDealerName ); + return *this; + } + +private: + QString carDealerCode; + QString carDealerName; +}; diff --git a/code/cpp/car_dealer_util/source/Data/Datastructure/CarDealer/CarDealerMap.cpp b/code/cpp/car_dealer_util/source/Data/Datastructure/CarDealer/CarDealerMap.cpp new file mode 100644 index 0000000..b651ad8 --- /dev/null +++ b/code/cpp/car_dealer_util/source/Data/Datastructure/CarDealer/CarDealerMap.cpp @@ -0,0 +1,155 @@ +// ********************************************************** +// 文件名:CarDealerMap.cpp +// 创建日期:2020-11-23 13:59 +// 作者: 王炜 +// 说明:车商对象映射表 +// ********************************************************** + +#include +#include +#include +#include "CarDealer.h" +#include "CarDealerMap.h" + +#include + +#include "../../../db/ocilib/db_oper.h" + +using namespace std; +using namespace ocilib; + +unordered_map * pCarDealerMap = nullptr; + +void initCarDealerMap() +{ + if ( pCarDealerMap != nullptr ) + { + delete pCarDealerMap; + } + + OCI_Connection * pConnection = nullptr; + OCI_Statement * pStatement = nullptr; + OCI_Resultset * pResult = nullptr; + int returnCode = 0; + + ostring sql = + "SELECT auto_code, " + " auto_name " + "FROM idst0.auto_store_t "; + + //以后要修改 + string userName = "car_dealer"; + string password = "cpic123456"; + string tnsName = "xmcx1"; + + returnCode = OCI_Initialize( error_handler, nullptr, OCI_ENV_DEFAULT ); + + if ( static_cast(returnCode) == false ) + { + //初始化失败 + string errorMessage = "ocilib初始化失败!"; + } + + try + { + pConnection = OCI_ConnectionCreate( tnsName.c_str(), + userName.c_str(), + password.c_str(), + OCI_SESSION_DEFAULT ); + } + catch ( runtime_error & error ) + { + //连接数据库失败 + + OCI_Cleanup(); + } + + OCI_Cleanup(); +} + +void initCarDealerMapCpp() +{ + if ( pCarDealerMap != nullptr ) + { + delete pCarDealerMap; + } + + // OCI_Connection * pConnection = nullptr; + // OCI_Statement * pStatement = nullptr; + // OCI_Resultset * pResult = nullptr; + // int returnCode = 0; + + ostring sql = + "SELECT auto_code, " + " auto_name " + "FROM idst0.auto_store_t "; + + //以后要修改 + string userName = "car_dealer"; + string password = "cpic123456"; + string tnsName = "xmcx1"; + + Connection * pConnection = nullptr; + Statement * pStatement = nullptr; + //Resultset * pResult = nullptr; + + try + { + Environment::Initialized(); + } + catch ( exception * error ) + { + string errorMessage = "ocilib初始化失败!"; + + errorMessage.append( error->what() ); + + throw runtime_error( errorMessage.c_str() ); + } + + try + { + pConnection = new Connection( tnsName.c_str(), userName.c_str(), password.c_str() ); + } + catch ( exception & error ) + { + string errorMessage = "连接oracle数据库失败!"; + + errorMessage.append( error.what() ); + + Environment::Cleanup(); + + throw runtime_error( errorMessage.c_str() ); + } + + try + { + pStatement = new Statement( *pConnection ); + pStatement->Execute( sql ); + + Resultset result = pStatement->GetResultset(); + + pCarDealerMap = new unordered_map; + + while ( result.Next() ) + { + string carDealerCodeIndex = result.Get( "auto_code" ).c_str(); + QString carDealerCode = QString::fromLocal8Bit( result.Get( "auto_code" ).c_str() ); + QString carDealerName = QString::fromLocal8Bit( result.Get( "auto_name" ).c_str() ); + + CarDealer dealer( carDealerCode, carDealerName ); + + pCarDealerMap->insert( pair( carDealerCodeIndex, dealer ) ); + } + } + catch ( exception & error ) + { + Environment::Cleanup(); + } + + Environment::Cleanup(); +} + +std::unordered_map * getCarDealerMap() +{ + return pCarDealerMap; +} diff --git a/code/cpp/car_dealer_util/source/Data/Datastructure/CarDealer/CarDealerMap.h b/code/cpp/car_dealer_util/source/Data/Datastructure/CarDealer/CarDealerMap.h new file mode 100644 index 0000000..d254cb7 --- /dev/null +++ b/code/cpp/car_dealer_util/source/Data/Datastructure/CarDealer/CarDealerMap.h @@ -0,0 +1,25 @@ +// ********************************************************** +// 文件名:CarDealerMap.h +// 创建日期:2020-11-23 13:59 +// 作者: 王炜 +// 说明:车商对象映射表 +// ********************************************************** + +#pragma once + + +#include +#include +#include +#include "CarDealer.h" + +/************************************************ +* \brief +************************************************/ +void initCarDealerMap(); + +/************************************************ +* \brief +* \return +************************************************/ +std::unordered_map * getCarDealerMap(); diff --git a/code/cpp/car_dealer_util/source/Data/Datastructure/车商/CarDealer.cpp b/code/cpp/car_dealer_util/source/Data/Datastructure/车商/CarDealer.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/code/cpp/car_dealer_util/source/test/test.cpp b/code/cpp/car_dealer_util/source/test/test.cpp index 1008ff2..165f968 100644 --- a/code/cpp/car_dealer_util/source/test/test.cpp +++ b/code/cpp/car_dealer_util/source/test/test.cpp @@ -5,6 +5,7 @@ #include "../data/DataManipulation/Excel/LoadFromExcel.h" #include "../data/DataManipulation/oracle/ImportToOracle.h" #include "../system/system_util.h" +#include "../Data/Datastructure/CarDealer/CarDealerMap.h" using namespace std; @@ -53,6 +54,8 @@ void excelTest() //测试新送返修监控报表 //LoadNewRepairMonitorReportFromXlsx(filePathNewRepairMonitor, 0, 1, repairMonitorVector); //ImportNewRepairMonitorToOracle(userName, password, tnsName, repairMonitorVector); + + initCarDealerMap(); return; } diff --git a/code/cpp/car_dealer_util/source/util/qt/CarDealer.cpp b/code/cpp/car_dealer_util/source/util/qt/CarDealer.cpp deleted file mode 100644 index 8ddb2f4..0000000 --- a/code/cpp/car_dealer_util/source/util/qt/CarDealer.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "CarDealer.h" diff --git a/code/cpp/car_dealer_util/source/util/qt/CarDealer.h b/code/cpp/car_dealer_util/source/util/qt/CarDealer.h deleted file mode 100644 index fe81236..0000000 --- a/code/cpp/car_dealer_util/source/util/qt/CarDealer.h +++ /dev/null @@ -1,14 +0,0 @@ -// ********************************************************** -// 文件名:CarDealer.h -// 创建日期:2020-11-20 14:00 -// 作者: -// 说明: -// ********************************************************** - -#pragma once - -class CarDealer -{ -public: - -};