diff --git a/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/1.1-11.30.xlsx b/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/1.1-11.30.xlsx new file mode 100644 index 0000000..e261c22 Binary files /dev/null and b/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/1.1-11.30.xlsx differ diff --git a/code/cpp/car_dealer_util/source/Data/AppParameters/AppParameters.cpp b/code/cpp/car_dealer_util/source/Data/AppParameters/AppParameters.cpp index d4e63ca..a8b1627 100644 --- a/code/cpp/car_dealer_util/source/Data/AppParameters/AppParameters.cpp +++ b/code/cpp/car_dealer_util/source/Data/AppParameters/AppParameters.cpp @@ -7,4 +7,4 @@ UserInfo * pStaffInfo = nullptr; const string SYSTEM_ADMIN = "999"; const string ADMIN = "000"; -const string TEAM_LEADER = "000"; \ No newline at end of file +const string TEAM_LEADER = "001"; \ No newline at end of file diff --git a/code/cpp/car_dealer_util/source/Data/DataManipulation/Excel/LoadFromExcel.cpp b/code/cpp/car_dealer_util/source/Data/DataManipulation/Excel/LoadFromExcel.cpp index b3a7141..52e36da 100644 --- a/code/cpp/car_dealer_util/source/Data/DataManipulation/Excel/LoadFromExcel.cpp +++ b/code/cpp/car_dealer_util/source/Data/DataManipulation/Excel/LoadFromExcel.cpp @@ -70,6 +70,7 @@ const wchar_t * pwszRepairOrderCaption[] = { //卢霖城-送返修推荐表 const unsigned int REPAIR_RECOMMANDATION_CAPTION_COUNT = 11; const wchar_t * pwszRepairRecommandationCaption[] = { + L"分公司名称", L"工单号", L"工单类型", L"报案号", @@ -781,6 +782,7 @@ void LoadRepairRecommandationFromXlsx( const std::wstring & //起始列索引 int colunmIndex = pSheet->firstCol(); + wstring branchName = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true ); wstring orderNo = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true ); wstring orderType = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true ); wstring notifyNo = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true ); @@ -793,7 +795,8 @@ void LoadRepairRecommandationFromXlsx( const std::wstring & wstring messageSendingDate = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true ); wstring dataSource = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true ); - RepairRecommandationRecord record( orderNo, + RepairRecommandationRecord record( branchName, + orderNo, orderType, notifyNo, RecommandCarDealerCode, diff --git a/code/cpp/car_dealer_util/source/Data/DataManipulation/oracle/ImportToOracle.cpp b/code/cpp/car_dealer_util/source/Data/DataManipulation/oracle/ImportToOracle.cpp index eb107a7..e9dfabd 100644 --- a/code/cpp/car_dealer_util/source/Data/DataManipulation/oracle/ImportToOracle.cpp +++ b/code/cpp/car_dealer_util/source/Data/DataManipulation/oracle/ImportToOracle.cpp @@ -448,7 +448,8 @@ void ImportRepairRecommandationToOracle( const std::string & const otext * szSql = "BEGIN \n" - " car_dealer.data_import_util_pkg.import_repairing_suggestion(:a_order_no, \n" + " car_dealer.data_import_util_pkg.import_repairing_suggestion(:a_branch_name, \n" + " :a_order_no, \n" " :a_order_type, \n" " :a_notify_no, \n" " :a_sug_cardealer_code, \n" @@ -484,7 +485,6 @@ void ImportRepairRecommandationToOracle( const std::string & } catch ( runtime_error & error ) { - OCI_ConnectionFree( pConn ); OCI_Cleanup(); throw error; @@ -497,6 +497,7 @@ void ImportRepairRecommandationToOracle( const std::string & try { //绑定数据 + string 分公司名称 = QString::fromStdWString(iterOrder->getBrandName()).toLocal8Bit(); string 工单号 = QString::fromStdWString( iterOrder->getOrderNo() ).toLocal8Bit(); string 工单类型 = QString::fromStdWString( iterOrder->getOrderType() ).toLocal8Bit(); string 报案号 = QString::fromStdWString( iterOrder->getNotifyNo() ).toLocal8Bit(); @@ -515,6 +516,7 @@ void ImportRepairRecommandationToOracle( const std::string & } //执行语句 + OCI_BindString(pStmt, ":a_branch_name", (otext*)分公司名称.c_str(), 分公司名称.size()); OCI_BindString( pStmt, ":a_order_no", (otext*)工单号.c_str(), 工单号.size() ); OCI_BindString( pStmt, ":a_order_type", (otext*)工单类型.c_str(), 工单类型.size() ); OCI_BindString( pStmt, ":a_notify_no", (otext*)报案号.c_str(), 报案号.size() ); @@ -540,8 +542,6 @@ void ImportRepairRecommandationToOracle( const std::string & //output_error_message( errorMessage ); - OCI_Rollback( pConn ); - OCI_ConnectionFree( pConn ); OCI_Cleanup(); throw runtime_error( errorMessage ); diff --git a/code/cpp/car_dealer_util/source/Data/Datastructure/RepairSuggestion/RepairRecommandationRecord.h b/code/cpp/car_dealer_util/source/Data/Datastructure/RepairSuggestion/RepairRecommandationRecord.h index 6b17186..3a754b9 100644 --- a/code/cpp/car_dealer_util/source/Data/Datastructure/RepairSuggestion/RepairRecommandationRecord.h +++ b/code/cpp/car_dealer_util/source/Data/Datastructure/RepairSuggestion/RepairRecommandationRecord.h @@ -1,4 +1,4 @@ -#pragma once +#pragma once #include @@ -9,33 +9,28 @@ class RepairRecommandationRecord { public: - RepairRecommandationRecord( std::wstring orderNo, - std::wstring orderType, - std::wstring notifyNo, - std::wstring suggestedCarDealerCode, - std::wstring suggestedCarDealerName, - std::wstring damageDate, - std::wstring plateNumber, - std::wstring brandName, - std::wstring messageType, - std::wstring messageSendingDate, - std::wstring dataSource ) - : orderNo_( std::move( orderNo ) ), - orderType_( std::move( orderType ) ), - notifyNo_( std::move( notifyNo ) ), - suggestedCarDealerCode_( std::move( suggestedCarDealerCode ) ), - suggestedCarDealerName_( std::move( suggestedCarDealerName ) ), - damageDate_( std::move( damageDate ) ), - plateNumber_( std::move( plateNumber ) ), - brandName_( std::move( brandName ) ), - messageType_( std::move( messageType ) ), - messageSendingDate_( std::move( messageSendingDate ) ), - dataSource_( std::move( dataSource ) ) + + + RepairRecommandationRecord( std::wstring branchName, std::wstring orderNo, std::wstring orderType, std::wstring notifyNo, std::wstring suggestedCarDealerCode, std::wstring suggestedCarDealerName, std::wstring damageDate, std::wstring plateNumber, std::wstring brandName, std::wstring messageType, std::wstring messageSendingDate, std::wstring dataSource ) + : branchName_( std::move(branchName) ), + orderNo_( std::move(orderNo) ), + orderType_( std::move(orderType) ), + notifyNo_( std::move(notifyNo) ), + suggestedCarDealerCode_( std::move(suggestedCarDealerCode) ), + suggestedCarDealerName_( std::move(suggestedCarDealerName) ), + damageDate_( std::move(damageDate) ), + plateNumber_( std::move(plateNumber) ), + brandName_( std::move(brandName) ), + messageType_( std::move(messageType) ), + messageSendingDate_( std::move(messageSendingDate) ), + dataSource_( std::move(dataSource) ) { } + RepairRecommandationRecord( const RepairRecommandationRecord & other ) - : orderNo_( other.orderNo_ ), + : branchName_( other.branchName_ ), + orderNo_( other.orderNo_ ), orderType_( other.orderType_ ), notifyNo_( other.notifyNo_ ), suggestedCarDealerCode_( other.suggestedCarDealerCode_ ), @@ -50,17 +45,18 @@ public: } RepairRecommandationRecord( RepairRecommandationRecord && other ) - : orderNo_( std::move( other.orderNo_ ) ), - orderType_( std::move( other.orderType_ ) ), - notifyNo_( std::move( other.notifyNo_ ) ), - suggestedCarDealerCode_( std::move( other.suggestedCarDealerCode_ ) ), - suggestedCarDealerName_( std::move( other.suggestedCarDealerName_ ) ), - damageDate_( std::move( other.damageDate_ ) ), - plateNumber_( std::move( other.plateNumber_ ) ), - brandName_( std::move( other.brandName_ ) ), - messageType_( std::move( other.messageType_ ) ), - messageSendingDate_( std::move( other.messageSendingDate_ ) ), - dataSource_( std::move( other.dataSource_ ) ) + : branchName_( std::move(other.branchName_) ), + orderNo_( std::move(other.orderNo_) ), + orderType_( std::move(other.orderType_) ), + notifyNo_( std::move(other.notifyNo_) ), + suggestedCarDealerCode_( std::move(other.suggestedCarDealerCode_) ), + suggestedCarDealerName_( std::move(other.suggestedCarDealerName_) ), + damageDate_( std::move(other.damageDate_) ), + plateNumber_( std::move(other.plateNumber_) ), + brandName_( std::move(other.brandName_) ), + messageType_( std::move(other.messageType_) ), + messageSendingDate_( std::move(other.messageSendingDate_) ), + dataSource_( std::move(other.dataSource_) ) { } @@ -68,6 +64,7 @@ public: { if ( this == &other ) return *this; + branchName_ = other.branchName_; orderNo_ = other.orderNo_; orderType_ = other.orderType_; notifyNo_ = other.notifyNo_; @@ -86,6 +83,7 @@ public: { if ( this == &other ) return *this; + branchName_ = std::move( other.branchName_ ); orderNo_ = std::move( other.orderNo_ ); orderType_ = std::move( other.orderType_ ); notifyNo_ = std::move( other.notifyNo_ ); @@ -100,6 +98,39 @@ public: return *this; } + + friend bool operator==( const RepairRecommandationRecord & lhs, const RepairRecommandationRecord & rhs ) + { + return lhs.branchName_ == rhs.branchName_ + && lhs.orderNo_ == rhs.orderNo_ + && lhs.orderType_ == rhs.orderType_ + && lhs.notifyNo_ == rhs.notifyNo_ + && lhs.suggestedCarDealerCode_ == rhs.suggestedCarDealerCode_ + && lhs.suggestedCarDealerName_ == rhs.suggestedCarDealerName_ + && lhs.damageDate_ == rhs.damageDate_ + && lhs.plateNumber_ == rhs.plateNumber_ + && lhs.brandName_ == rhs.brandName_ + && lhs.messageType_ == rhs.messageType_ + && lhs.messageSendingDate_ == rhs.messageSendingDate_ + && lhs.dataSource_ == rhs.dataSource_; + } + + friend bool operator!=( const RepairRecommandationRecord & lhs, const RepairRecommandationRecord & rhs ) + { + return !(lhs == rhs); + } + + + std::wstring getBranchName() const + { + return branchName_; + } + + void setBranchName( const std::wstring & branchName ) + { + branchName_ = branchName; + } + std::wstring getOrderNo() const { return orderNo_; @@ -211,6 +242,7 @@ public: } private: + std::wstring branchName_; std::wstring orderNo_; std::wstring orderType_; std::wstring notifyNo_; diff --git a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QDataManagementWidget/QDataManagementWidget.cpp b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QDataManagementWidget/QDataManagementWidget.cpp index c616079..2fb1a87 100644 --- a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QDataManagementWidget/QDataManagementWidget.cpp +++ b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QDataManagementWidget/QDataManagementWidget.cpp @@ -159,9 +159,8 @@ void QDataManagementWidget::initWidgetByPrivileges() ui.pRepairOrderTab->setEnabled( false ); ui.pNewRepairMonitorTab->setEnabled( false ); ui.pRepairRecommandationTab->setEnabled( false ); - ui.pCarDealerSchemaTab->setEnabled( false ); + ui.pCarDealerSchemaTab->setEnabled(true); ui.pCarDealerAchievementTab->setEnabled( true ); - ui.pCarDealerAchievementTab->setFocus(); ui.tabWidget->setCurrentWidget(ui.pCarDealerAchievementTab); } diff --git a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.cpp b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.cpp index 08a2f78..c01de80 100644 --- a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.cpp +++ b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include "QRepairRecommendationWidget.h" #include "../../Data/DataManipulation/Excel/LoadFromExcel.h" @@ -75,13 +75,13 @@ void QRepairRecommendationWidget::onImport() QMessageBox::critical( nullptr, QString::fromUtf8( "保存数据出错!" ), - QString::fromUtf8( error.what() ) ); + QString::fromLocal8Bit( error.what() ) ); return; } //提示 - QString messageInfo = QString::fromUtf8( "Maybe写入%1了条记录。" ).arg( recommandationVector.size() ); + QString messageInfo = QString::fromUtf8( "写入%1了条记录。" ).arg( recommandationVector.size() ); QMessageBox::information( nullptr, QString::fromUtf8( "保存成功" ), @@ -123,84 +123,84 @@ void QRepairRecommendationWidget::showRepairRecommandation() ++iter, ++rowIndex ) { columnIndex = 0; - + //工单号 pItem = new QTableWidgetItem(); pItem->setText( QString::fromStdWString( iter->getOrderNo() ) ); pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter ); - ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetRepairRecommandation->setItem( rowIndex, columnIndex++, pItem ); //工单类型 pItem = new QTableWidgetItem(); - pItem->setText(QString::fromStdWString(iter->getOrderType())); - pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + pItem->setText( QString::fromStdWString( iter->getOrderType() ) ); + pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter ); - ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetRepairRecommandation->setItem( rowIndex, columnIndex++, pItem ); //报案号 pItem = new QTableWidgetItem(); - pItem->setText(QString::fromStdWString(iter->getNotifyNo())); - pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + pItem->setText( QString::fromStdWString( iter->getNotifyNo() ) ); + pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter ); - ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetRepairRecommandation->setItem( rowIndex, columnIndex++, pItem ); //推荐车商代码 pItem = new QTableWidgetItem(); - pItem->setText(QString::fromStdWString(iter->getSuggestedCarDealerCode())); - pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + pItem->setText( QString::fromStdWString( iter->getSuggestedCarDealerCode() ) ); + pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter ); - ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetRepairRecommandation->setItem( rowIndex, columnIndex++, pItem ); //推荐车商名称 pItem = new QTableWidgetItem(); - pItem->setText(QString::fromStdWString(iter->getSuggestedCarDealerName())); - pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + pItem->setText( QString::fromStdWString( iter->getSuggestedCarDealerName() ) ); + pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter ); - ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetRepairRecommandation->setItem( rowIndex, columnIndex++, pItem ); //出险日期 pItem = new QTableWidgetItem(); - pItem->setText(QString::fromStdWString(iter->getDamageDate())); - pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + pItem->setText( QString::fromStdWString( iter->getDamageDate() ) ); + pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter ); - ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetRepairRecommandation->setItem( rowIndex, columnIndex++, pItem ); //车牌号 pItem = new QTableWidgetItem(); - pItem->setText(QString::fromStdWString(iter->getPlateNumber())); - pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + pItem->setText( QString::fromStdWString( iter->getPlateNumber() ) ); + pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter ); - ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetRepairRecommandation->setItem( rowIndex, columnIndex++, pItem ); //品牌名称 pItem = new QTableWidgetItem(); - pItem->setText(QString::fromStdWString(iter->getBrandName())); - pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + pItem->setText( QString::fromStdWString( iter->getBrandName() ) ); + pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter ); - ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetRepairRecommandation->setItem( rowIndex, columnIndex++, pItem ); //短信类型 pItem = new QTableWidgetItem(); - pItem->setText(QString::fromStdWString(iter->getMessageType())); - pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + pItem->setText( QString::fromStdWString( iter->getMessageType() ) ); + pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter ); - ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetRepairRecommandation->setItem( rowIndex, columnIndex++, pItem ); //发送时间 pItem = new QTableWidgetItem(); - pItem->setText(QString::fromStdWString(iter->getMessageSendingDate())); - pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + pItem->setText( QString::fromStdWString( iter->getMessageSendingDate() ) ); + pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter ); - ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetRepairRecommandation->setItem( rowIndex, columnIndex++, pItem ); //数据来源 pItem = new QTableWidgetItem(); - pItem->setText(QString::fromStdWString(iter->getDataSource())); - pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + pItem->setText( QString::fromStdWString( iter->getDataSource() ) ); + pItem->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter ); - ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetRepairRecommandation->setItem( rowIndex, columnIndex++, pItem ); } - resizeTableWidgetTab(ui.pTableWidgetRepairRecommandation, 10); + resizeTableWidgetTab( ui.pTableWidgetRepairRecommandation, 10 ); }