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:
-
-};