diff --git a/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/moc_QRepairRecommendationWidget.cpp b/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/moc_QRepairRecommendationWidget.cpp index 46ed860..1eec99f 100644 --- a/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/moc_QRepairRecommendationWidget.cpp +++ b/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/moc_QRepairRecommendationWidget.cpp @@ -22,8 +22,8 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED struct qt_meta_stringdata_QRepairRecommendationWidget_t { - QByteArrayData data[1]; - char stringdata0[28]; + QByteArrayData data[3]; + char stringdata0[38]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ @@ -32,10 +32,13 @@ struct qt_meta_stringdata_QRepairRecommendationWidget_t { ) static const qt_meta_stringdata_QRepairRecommendationWidget_t qt_meta_stringdata_QRepairRecommendationWidget = { { -QT_MOC_LITERAL(0, 0, 27) // "QRepairRecommendationWidget" +QT_MOC_LITERAL(0, 0, 27), // "QRepairRecommendationWidget" +QT_MOC_LITERAL(1, 28, 8), // "onImport" +QT_MOC_LITERAL(2, 37, 0) // "" }, - "QRepairRecommendationWidget" + "QRepairRecommendationWidget\0onImport\0" + "" }; #undef QT_MOC_LITERAL @@ -45,21 +48,32 @@ static const uint qt_meta_data_QRepairRecommendationWidget[] = { 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 QRepairRecommendationWidget::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 +103,17 @@ void *QRepairRecommendationWidget::qt_metacast(const char *_clname) int QRepairRecommendationWidget::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/proj/vs2019/car_dealer_util/卢霖城 - 推荐表.xlsx b/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/卢霖城 - 推荐表.xlsx new file mode 100644 index 0000000..64de7b9 Binary files /dev/null and b/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/卢霖城 - 推荐表.xlsx differ 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 f9f7d93..08a2f78 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 @@ -3,6 +3,7 @@ #include "QRepairRecommendationWidget.h" #include "../../Data/DataManipulation/Excel/LoadFromExcel.h" #include "../../Data/DataManipulation/oracle/ImportToOracle.h" +#include "../../util/qt/qt_util.h" using namespace std; @@ -10,6 +11,8 @@ QRepairRecommendationWidget::QRepairRecommendationWidget( QWidget * parent ) : QWidget( parent ) { ui.setupUi( this ); + + init(); } QRepairRecommendationWidget::~QRepairRecommendationWidget() @@ -19,10 +22,10 @@ QRepairRecommendationWidget::~QRepairRecommendationWidget() void QRepairRecommendationWidget::onImport() { //打开文件 - QString dir = QString::fromLocal8Bit( "." ); - QString filter = QString::fromLocal8Bit( "Excel文件(*.xlsx)" ); + QString dir = QString::fromUtf8( "." ); + QString filter = QString::fromUtf8( "Excel文件(*.xlsx)" ); QStringList fileList = QFileDialog::getOpenFileNames( this, - QString::fromLocal8Bit( "请选择要导入的数据文件" ), + QString::fromUtf8( "请选择要导入的数据文件" ), dir, filter ); @@ -48,8 +51,8 @@ void QRepairRecommendationWidget::onImport() recommandationVector.clear(); QMessageBox::critical( nullptr, - QString::fromLocal8Bit( "读取Excel表格出错!" ), - QString::fromLocal8Bit( error.what() ) ); + QString::fromUtf8( "读取Excel表格出错!" ), + QString::fromUtf8( error.what() ) ); return; } @@ -60,9 +63,10 @@ void QRepairRecommendationWidget::onImport() //以后要修改 string userName = "car_dealer"; string password = "cpic123456"; - string tnsName = "xmcx1"; + string tnsName = "xmcx1"; - ImportRepairRecommandationToOracle(userName, password, tnsName, recommandationVector); + ImportRepairRecommandationToOracle( userName, password, tnsName, recommandationVector ); + showRepairRecommandation(); } catch ( runtime_error & error ) { @@ -70,11 +74,18 @@ void QRepairRecommendationWidget::onImport() recommandationVector.clear(); QMessageBox::critical( nullptr, - QString::fromLocal8Bit( "保存数据出错!" ), - QString::fromLocal8Bit( error.what() ) ); + QString::fromUtf8( "保存数据出错!" ), + QString::fromUtf8( error.what() ) ); return; } + + //提示 + QString messageInfo = QString::fromUtf8( "Maybe写入%1了条记录。" ).arg( recommandationVector.size() ); + + QMessageBox::information( nullptr, + QString::fromUtf8( "保存成功" ), + messageInfo ); } void QRepairRecommendationWidget::init() @@ -100,4 +111,96 @@ void QRepairRecommendationWidget::initSignal() void QRepairRecommendationWidget::showRepairRecommandation() { + int rowIndex = 0; + int columnIndex = 0; + QTableWidgetItem * pItem = nullptr; + + ui.pTableWidgetRepairRecommandation->clearContents(); + ui.pTableWidgetRepairRecommandation->setRowCount( recommandationVector.size() ); + + for ( auto iter = recommandationVector.begin(); + iter != recommandationVector.end(); + ++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); + + //工单类型 + pItem = new QTableWidgetItem(); + pItem->setText(QString::fromStdWString(iter->getOrderType())); + pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + + ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + + //报案号 + pItem = new QTableWidgetItem(); + pItem->setText(QString::fromStdWString(iter->getNotifyNo())); + pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + + ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + + //推荐车商代码 + pItem = new QTableWidgetItem(); + pItem->setText(QString::fromStdWString(iter->getSuggestedCarDealerCode())); + pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + + ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + + //推荐车商名称 + pItem = new QTableWidgetItem(); + pItem->setText(QString::fromStdWString(iter->getSuggestedCarDealerName())); + pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + + ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + + //出险日期 + pItem = new QTableWidgetItem(); + pItem->setText(QString::fromStdWString(iter->getDamageDate())); + pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + + ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + + //车牌号 + pItem = new QTableWidgetItem(); + pItem->setText(QString::fromStdWString(iter->getPlateNumber())); + pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + + ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + + //品牌名称 + pItem = new QTableWidgetItem(); + pItem->setText(QString::fromStdWString(iter->getBrandName())); + pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + + ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + + //短信类型 + pItem = new QTableWidgetItem(); + pItem->setText(QString::fromStdWString(iter->getMessageType())); + pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + + ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + + //发送时间 + pItem = new QTableWidgetItem(); + pItem->setText(QString::fromStdWString(iter->getMessageSendingDate())); + pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + + ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + + //数据来源 + pItem = new QTableWidgetItem(); + pItem->setText(QString::fromStdWString(iter->getDataSource())); + pItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + + ui.pTableWidgetRepairRecommandation->setItem(rowIndex, columnIndex++, pItem); + } + + resizeTableWidgetTab(ui.pTableWidgetRepairRecommandation, 10); } diff --git a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.ui b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.ui index 7c4bd7e..2646e90 100644 --- a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.ui +++ b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.ui @@ -18,8 +18,8 @@ 150 70 - 258 - 240 + 581 + 331 @@ -184,6 +184,8 @@ - + + + diff --git a/code/cpp/car_dealer_util/source/test/test.cpp b/code/cpp/car_dealer_util/source/test/test.cpp index 505947d..e41178b 100644 --- a/code/cpp/car_dealer_util/source/test/test.cpp +++ b/code/cpp/car_dealer_util/source/test/test.cpp @@ -22,7 +22,7 @@ void excelTest() vector schemeVector; vector achievementsVector; vector repairOrderVector; - vector suggestionRecordsVector; + vector suggestionRecordsVector; vector repairMonitorVector; string userName = "car_dealer";