...
This commit is contained in:
		@@ -27,6 +27,7 @@
 | 
			
		||||
    <ClCompile Include="..\..\..\source\data\Datastructure\RepairOrder\RepairOrder.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Data\Datastructure\RepairSuggestion\RepairSuggestionRecord.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\data\Datastructure\UserInfo\UserInfo.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Data\Datastructure\新送返修监控报表\新送返修监控报表.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\data\excel\excel.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\data\query\query_user.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\db\ocilib\db_oper.cpp" />
 | 
			
		||||
@@ -65,6 +66,7 @@
 | 
			
		||||
    <ClInclude Include="..\..\..\source\data\Datastructure\RepairOrder\RepairOrder.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\source\Data\Datastructure\RepairSuggestion\RepairSuggestionRecord.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\source\data\Datastructure\UserInfo\UserInfo.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\source\Data\Datastructure\新送返修监控报表\新送返修监控报表.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\source\data\excel\excel.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\source\data\query\query_user.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\source\db\ocilib\db_oper.h" />
 | 
			
		||||
 
 | 
			
		||||
@@ -104,6 +104,9 @@
 | 
			
		||||
    <Filter Include="数据\数据结构\送返修推荐表">
 | 
			
		||||
      <UniqueIdentifier>{21e75150-0798-4087-8cc8-8bcad02c0694}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="数据\数据结构\新送返修监控报表">
 | 
			
		||||
      <UniqueIdentifier>{8d1f7b99-d4bb-406c-a9f3-1e0256517982}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\main.cpp">
 | 
			
		||||
@@ -172,6 +175,9 @@
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Data\Datastructure\RepairSuggestion\RepairSuggestionRecord.cpp">
 | 
			
		||||
      <Filter>数据\数据结构\送返修推荐表</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Data\Datastructure\新送返修监控报表\新送返修监控报表.cpp">
 | 
			
		||||
      <Filter>数据\数据结构\新送返修监控报表</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <QtRcc Include="..\..\..\source\resource.qrc">
 | 
			
		||||
@@ -274,5 +280,8 @@
 | 
			
		||||
    <ClInclude Include="..\..\..\source\Data\Datastructure\RepairSuggestion\RepairSuggestionRecord.h">
 | 
			
		||||
      <Filter>数据\数据结构\送返修推荐表</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\..\..\source\Data\Datastructure\新送返修监控报表\新送返修监控报表.h">
 | 
			
		||||
      <Filter>数据\数据结构\新送返修监控报表</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
@@ -22,8 +22,8 @@ QT_BEGIN_MOC_NAMESPACE
 | 
			
		||||
QT_WARNING_PUSH
 | 
			
		||||
QT_WARNING_DISABLE_DEPRECATED
 | 
			
		||||
struct qt_meta_stringdata_QCarDealerAchievementWidget_t {
 | 
			
		||||
	QByteArrayData data[1];
 | 
			
		||||
	char stringdata0[28];
 | 
			
		||||
    QByteArrayData data[1];
 | 
			
		||||
    char stringdata0[28];
 | 
			
		||||
};
 | 
			
		||||
#define QT_MOC_LITERAL(idx, ofs, len) \
 | 
			
		||||
    Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
 | 
			
		||||
@@ -31,65 +31,65 @@ struct qt_meta_stringdata_QCarDealerAchievementWidget_t {
 | 
			
		||||
        - idx * sizeof(QByteArrayData)) \
 | 
			
		||||
    )
 | 
			
		||||
static const qt_meta_stringdata_QCarDealerAchievementWidget_t qt_meta_stringdata_QCarDealerAchievementWidget = {
 | 
			
		||||
	{
 | 
			
		||||
    {
 | 
			
		||||
QT_MOC_LITERAL(0, 0, 27) // "QCarDealerAchievementWidget"
 | 
			
		||||
 | 
			
		||||
	},
 | 
			
		||||
	"QCarDealerAchievementWidget"
 | 
			
		||||
    },
 | 
			
		||||
    "QCarDealerAchievementWidget"
 | 
			
		||||
};
 | 
			
		||||
#undef QT_MOC_LITERAL
 | 
			
		||||
 | 
			
		||||
static const uint qt_meta_data_QCarDealerAchievementWidget[] = {
 | 
			
		||||
 | 
			
		||||
	// content:
 | 
			
		||||
		  8,       // revision
 | 
			
		||||
		  0,       // classname
 | 
			
		||||
		  0,    0, // classinfo
 | 
			
		||||
		  0,    0, // methods
 | 
			
		||||
		  0,    0, // properties
 | 
			
		||||
		  0,    0, // enums/sets
 | 
			
		||||
		  0,    0, // constructors
 | 
			
		||||
		  0,       // flags
 | 
			
		||||
		  0,       // signalCount
 | 
			
		||||
 // content:
 | 
			
		||||
       8,       // revision
 | 
			
		||||
       0,       // classname
 | 
			
		||||
       0,    0, // classinfo
 | 
			
		||||
       0,    0, // methods
 | 
			
		||||
       0,    0, // properties
 | 
			
		||||
       0,    0, // enums/sets
 | 
			
		||||
       0,    0, // constructors
 | 
			
		||||
       0,       // flags
 | 
			
		||||
       0,       // signalCount
 | 
			
		||||
 | 
			
		||||
		  0        // eod
 | 
			
		||||
       0        // eod
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void QCarDealerAchievementWidget::qt_static_metacall(QObject* _o, QMetaObject::Call _c, int _id, void** _a)
 | 
			
		||||
void QCarDealerAchievementWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
 | 
			
		||||
{
 | 
			
		||||
	Q_UNUSED(_o);
 | 
			
		||||
	Q_UNUSED(_id);
 | 
			
		||||
	Q_UNUSED(_c);
 | 
			
		||||
	Q_UNUSED(_a);
 | 
			
		||||
    Q_UNUSED(_o);
 | 
			
		||||
    Q_UNUSED(_id);
 | 
			
		||||
    Q_UNUSED(_c);
 | 
			
		||||
    Q_UNUSED(_a);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QT_INIT_METAOBJECT const QMetaObject QCarDealerAchievementWidget::staticMetaObject = { {
 | 
			
		||||
	&QWidget::staticMetaObject,
 | 
			
		||||
	qt_meta_stringdata_QCarDealerAchievementWidget.data,
 | 
			
		||||
	qt_meta_data_QCarDealerAchievementWidget,
 | 
			
		||||
	qt_static_metacall,
 | 
			
		||||
	nullptr,
 | 
			
		||||
	nullptr
 | 
			
		||||
    &QWidget::staticMetaObject,
 | 
			
		||||
    qt_meta_stringdata_QCarDealerAchievementWidget.data,
 | 
			
		||||
    qt_meta_data_QCarDealerAchievementWidget,
 | 
			
		||||
    qt_static_metacall,
 | 
			
		||||
    nullptr,
 | 
			
		||||
    nullptr
 | 
			
		||||
} };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const QMetaObject* QCarDealerAchievementWidget::metaObject() const
 | 
			
		||||
const QMetaObject *QCarDealerAchievementWidget::metaObject() const
 | 
			
		||||
{
 | 
			
		||||
	return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
 | 
			
		||||
    return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void* QCarDealerAchievementWidget::qt_metacast(const char* _clname)
 | 
			
		||||
void *QCarDealerAchievementWidget::qt_metacast(const char *_clname)
 | 
			
		||||
{
 | 
			
		||||
	if (!_clname) return nullptr;
 | 
			
		||||
	if (!strcmp(_clname, qt_meta_stringdata_QCarDealerAchievementWidget.stringdata0))
 | 
			
		||||
		return static_cast<void*>(this);
 | 
			
		||||
	return QWidget::qt_metacast(_clname);
 | 
			
		||||
    if (!_clname) return nullptr;
 | 
			
		||||
    if (!strcmp(_clname, qt_meta_stringdata_QCarDealerAchievementWidget.stringdata0))
 | 
			
		||||
        return static_cast<void*>(this);
 | 
			
		||||
    return QWidget::qt_metacast(_clname);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int QCarDealerAchievementWidget::qt_metacall(QMetaObject::Call _c, int _id, void** _a)
 | 
			
		||||
int QCarDealerAchievementWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
 | 
			
		||||
{
 | 
			
		||||
	_id = QWidget::qt_metacall(_c, _id, _a);
 | 
			
		||||
	return _id;
 | 
			
		||||
    _id = QWidget::qt_metacall(_c, _id, _a);
 | 
			
		||||
    return _id;
 | 
			
		||||
}
 | 
			
		||||
QT_WARNING_POP
 | 
			
		||||
QT_END_MOC_NAMESPACE
 | 
			
		||||
 
 | 
			
		||||
@@ -397,16 +397,16 @@ void LoadRepairSuggestionFromXlsx( const std::wstring &                  filePat
 | 
			
		||||
		throw runtime_error( "libxl库加载失败!" );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (pBook->load(filePath.c_str()) != true)
 | 
			
		||||
	if ( pBook->load( filePath.c_str() ) != true )
 | 
			
		||||
	{
 | 
			
		||||
		string errorMessage = "打开文件失败!";
 | 
			
		||||
		errorMessage.append(pBook->errorMessage());
 | 
			
		||||
		errorMessage.append( pBook->errorMessage() );
 | 
			
		||||
 | 
			
		||||
		throw runtime_error(errorMessage);
 | 
			
		||||
		throw runtime_error( errorMessage );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	setKey( pBook );
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	pSheet = pBook->getSheet( sheetIndex );
 | 
			
		||||
 | 
			
		||||
	if ( pSheet == nullptr )
 | 
			
		||||
@@ -460,6 +460,217 @@ void LoadRepairSuggestionFromXlsx( const std::wstring &                  filePat
 | 
			
		||||
	pBook->release();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void LoadNewRepairMonitorReportFromXlsx( const std::wstring &                        filePath,
 | 
			
		||||
                                         unsigned                                    sheetIndex,
 | 
			
		||||
                                         unsigned                                    startRowIndex,
 | 
			
		||||
                                         std::vector<NewRepairMonitorReportRecord> & recordVector )
 | 
			
		||||
{
 | 
			
		||||
	Book *  pBook  = xlCreateXMLBookW();
 | 
			
		||||
	Sheet * pSheet = nullptr;
 | 
			
		||||
 | 
			
		||||
	if ( pBook == nullptr )
 | 
			
		||||
	{
 | 
			
		||||
		throw runtime_error( "libxl库加载失败!" );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	setKey( pBook );
 | 
			
		||||
 | 
			
		||||
	if ( pBook->load( filePath.c_str() ) != true )
 | 
			
		||||
	{
 | 
			
		||||
		string errorMessage = "打开文件失败!";
 | 
			
		||||
		errorMessage.append( pBook->errorMessage() );
 | 
			
		||||
 | 
			
		||||
		throw runtime_error( errorMessage );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	pSheet = pBook->getSheet( sheetIndex );
 | 
			
		||||
 | 
			
		||||
	if ( pSheet == nullptr )
 | 
			
		||||
	{
 | 
			
		||||
		string errorMessage = "读取sheet失败!";
 | 
			
		||||
		errorMessage.append( pBook->errorMessage() );
 | 
			
		||||
 | 
			
		||||
		pBook->release();
 | 
			
		||||
 | 
			
		||||
		throw runtime_error( errorMessage );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	int lastRowIndex  = pSheet->lastRow();
 | 
			
		||||
	int firstRowIndex = pSheet->firstRow();
 | 
			
		||||
	int rowIndex      = firstRowIndex + startRowIndex;
 | 
			
		||||
 | 
			
		||||
	while ( rowIndex <= lastRowIndex )
 | 
			
		||||
	{
 | 
			
		||||
		int colunmIndex = pSheet->firstCol();
 | 
			
		||||
 | 
			
		||||
		NewRepairMonitorReportRecord record;
 | 
			
		||||
 | 
			
		||||
		record.分公司名称_                 = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.部门组名称_                 = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.报案号_                   = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.报案日期_                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.出险日期_                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.出险地点_                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.事故车目前位置_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.车损序号_                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.车牌_                    = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.vin码_                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.车龄_                    = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.品牌代码_                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.品牌名称_                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.车系名称_                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.使用性质名称_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.保单号_                   = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.标的车_三者车_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.是否9座以下企业用车_行政用车_家庭自用车_ = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.核价金额_                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.核损配件核损金额_              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.核损工时费核损金额_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.核损辅料核损金额_              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.核损外修费核损金额_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.核损施救费核损金额_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.结案金额_                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.结案配件核损金额_              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.结案工时费核损金额_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.结案辅料核损金额_              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.结案外修费核损金额_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.结案施救费核损金额_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.接报案人分公司名称_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.接报案人工号_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.接报案人名称_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第一任务分派时间_              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第一定损员分公司_              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第一定损员部门组名称_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第一定损员代码_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第一定损员名称_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第一车商是否已阅读_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第一车上是否预约进厂_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第一车商是否推荐失败_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第一车商是否进厂确认_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第一车商是否出场确认_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第二任务分派时间_              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第二定损员分公司_              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第二定损员部门组名称_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第二定损员代码_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第二定损员名称_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第二车商是否已阅读_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第二车上是否预约进厂_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第二车商是否推荐失败_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第二车商是否进厂确认_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第二车商是否出场确认_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第三任务分派时间_              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第三定损员分公司_              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第三定损员部门组名称_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第三定损员代码_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第三定损员名称_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第三车商是否已阅读_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第三车上是否预约进厂_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第三车商是否推荐失败_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第三车商是否进厂确认_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第三车商是否出场确认_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.其他查勘员信息_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.是否推荐_                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.是否存在工单_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.工单类型_                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.查勘员操作类型_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.案件状态名称_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.车状_当前状态_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.车状_报案环节_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.车状_现场推荐环节_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.车状_核价通过环节_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.车状_结案环节_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.承保车商代码_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.承保车商名称_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.报案车商分公司名称_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.报案车商部门组名称_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.报案车商代码_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.报案车商名称_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.现场推荐车商分公司名称_           = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.现场推荐车商代码_              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.现场推荐车商名称_              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.核价车商分公司名称_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.核价车商部门组名称_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.核价车商代码_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.核价车商名称_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.推荐车商与核价车商是否一致_         = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.核价修理厂归属公司代码_           = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.核价修理厂归属公司名称_           = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.核价修理厂_                 = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.核价修理厂名称_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.估损单号_                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.核价通过时间_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.定损员机构_                 = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.定损员代码_                 = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.定损员名称_                 = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.结案车商分公司_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.结案车商部门组名称_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.结案车商代码_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.结案车商名称_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.推荐车商与结案车商是否一致_         = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.结案修理厂归属公司代码_           = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.结案修理厂归属公司名称_           = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.结案修理厂代码_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.结案修理厂名称_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.车辆进厂时间_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.车辆出厂时间_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.结案时间_                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.事故经过_                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.数据更新日期_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.备注_                    = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.估损单模板_                 = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.返修开关_报案_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.送修开关_报案_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.返修开关_核价_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.送修开关_核价_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.返修开关_结案_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.送修开关_结案_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.查勘员分公司名称_              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.查勘员代码_                 = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.查勘员名称_                 = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.核价修理厂归属中支_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.结案修理厂归属中支_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.是否诉讼_                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.座席推荐分公司代码_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.座席推荐分公司名称_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.座席推荐车商名代码_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.座席推荐车商名称_              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.座席推荐操作类型_              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.座席推荐排名_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第一次推荐分公司代码_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第一次推荐分公司名称_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第一次推荐车商代码_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第一次推荐车商名称_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第一次推荐工具_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第一次推荐操作类型_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第一次推荐排名_其他推荐信息_        = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第二次推荐分公司代码_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第二次推荐分公司名称_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第二次推荐车商代码_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第二次推荐车商名称_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第二次推荐工具_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第二次推荐操作类型_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第二次推荐排名_其他推荐信息_        = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第三次推荐分公司代码_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第三次推荐分公司名称_            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第三次推荐车商代码_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第三次推荐车商名称_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第三次推荐工具_               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第三次推荐操作类型_             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.第三次推荐排名_其他推荐信息_        = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.其他推荐信息_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.推荐失败具体原因_              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.是否现场报案_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.报案地点_                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		record.是否在厂报案_                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
 | 
			
		||||
		recordVector.push_back( record );
 | 
			
		||||
 | 
			
		||||
		rowIndex++;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	pBook->release();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void LoadRepairOrderFromXls( const std::wstring &       filePath,
 | 
			
		||||
                             unsigned                   sheetIndex,
 | 
			
		||||
                             unsigned                   startRowIndex,
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,7 @@
 | 
			
		||||
#include "../../Datastructure/CarDealerAchievement/CarDealerAchievement.h"
 | 
			
		||||
#include "../../Datastructure/RepairOrder/RepairOrder.h"
 | 
			
		||||
#include "../../Datastructure/RepairSuggestion/RepairSuggestionRecord.h"
 | 
			
		||||
#include "../../Datastructure/新送返修监控报表/新送返修监控报表.h"
 | 
			
		||||
 | 
			
		||||
/************************************************
 | 
			
		||||
* \brief 
 | 
			
		||||
@@ -59,3 +60,16 @@ void LoadRepairSuggestionFromXlsx( const std::wstring &                  filePat
 | 
			
		||||
                                   unsigned int                          sheetIndex,
 | 
			
		||||
                                   unsigned int                          startRowIndex,
 | 
			
		||||
                                   std::vector<RepairSuggestionRecord> & recordVector );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/************************************************
 | 
			
		||||
* \brief 读取新送返修监控报表数据
 | 
			
		||||
* \param filePath 
 | 
			
		||||
* \param sheetIndex 
 | 
			
		||||
* \param startRowIndex 
 | 
			
		||||
* \param recordVector 
 | 
			
		||||
************************************************/
 | 
			
		||||
void LoadNewRepairMonitorReportFromXlsx( const std::wstring &                        filePath,
 | 
			
		||||
                                         unsigned int                                sheetIndex,
 | 
			
		||||
                                         unsigned int                                startRowIndex,
 | 
			
		||||
                                         std::vector<NewRepairMonitorReportRecord> & recordVector );
 | 
			
		||||
 
 | 
			
		||||
@@ -509,6 +509,11 @@ void ImportRepairSuggestionToOracle( const std::string &
 | 
			
		||||
			string 车牌号    = QString::fromStdWString( iterOrder->getPlateNumber() ).toLocal8Bit();
 | 
			
		||||
			string 厂牌型号   = QString::fromStdWString( iterOrder->getBrandName() ).toLocal8Bit();
 | 
			
		||||
 | 
			
		||||
			if ( 工单号.empty() == true )
 | 
			
		||||
			{
 | 
			
		||||
				continue;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			//执行语句
 | 
			
		||||
			OCI_BindString( pStmt, ":a_order_no", (otext*)工单号.c_str(), 工单号.size() );
 | 
			
		||||
			OCI_BindString( pStmt, ":a_order_type", (otext*)工单类型.c_str(), 工单类型.size() );
 | 
			
		||||
@@ -526,14 +531,20 @@ void ImportRepairSuggestionToOracle( const std::string &
 | 
			
		||||
		}
 | 
			
		||||
		catch ( runtime_error & error )
 | 
			
		||||
		{
 | 
			
		||||
			//输出日志,让过程继续
 | 
			
		||||
			//rollback,停止保存
 | 
			
		||||
			string errorMessage = "送返修工单编号";
 | 
			
		||||
 | 
			
		||||
			errorMessage.append( QString::fromStdWString( iterOrder->getOrderNo() ).toLocal8Bit() );
 | 
			
		||||
			errorMessage.append( "保存失败,提示信息:" );
 | 
			
		||||
			errorMessage.append( error.what() );
 | 
			
		||||
 | 
			
		||||
			output_error_message( errorMessage );
 | 
			
		||||
			//output_error_message( errorMessage );
 | 
			
		||||
 | 
			
		||||
			OCI_Rollback( pConn );
 | 
			
		||||
			OCI_ConnectionFree( pConn );
 | 
			
		||||
			OCI_Cleanup();
 | 
			
		||||
 | 
			
		||||
			throw runtime_error( errorMessage );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -541,3 +552,194 @@ void ImportRepairSuggestionToOracle( const std::string &
 | 
			
		||||
	OCI_ConnectionFree( pConn );
 | 
			
		||||
	OCI_Cleanup();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ImportNewRepairMonitorToOracle( const std::string &                               userName,
 | 
			
		||||
                                     const std::string &                               password,
 | 
			
		||||
                                     const std::string &                               tnsName,
 | 
			
		||||
                                     const std::vector<NewRepairMonitorReportRecord> & recordVector )
 | 
			
		||||
{
 | 
			
		||||
	OCI_Connection * pConnection = nullptr;
 | 
			
		||||
	OCI_Statement *  pStatment   = nullptr;
 | 
			
		||||
	int              returnCode  = -1;
 | 
			
		||||
 | 
			
		||||
	const otext * szSql =
 | 
			
		||||
			"BEGIN  \n "
 | 
			
		||||
			"    car_dealer.data_import_util_pkg.导入新送返修监控报表(':1',  \n "
 | 
			
		||||
			"                                               ':2',  \n "
 | 
			
		||||
			"                                               ':3',  \n "
 | 
			
		||||
			"                                               ':4',  \n "
 | 
			
		||||
			"                                               ':5',  \n "
 | 
			
		||||
			"                                               ':6',  \n "
 | 
			
		||||
			"                                               ':7',  \n "
 | 
			
		||||
			"                                               ':8',  \n "
 | 
			
		||||
			"                                               ':9',  \n "
 | 
			
		||||
			"                                               ':10',  \n "
 | 
			
		||||
			"                                               ':11',  \n "
 | 
			
		||||
			"                                               ':12',  \n "
 | 
			
		||||
			"                                               ':13',  \n "
 | 
			
		||||
			"                                               ':14',  \n "
 | 
			
		||||
			"                                               ':15',  \n "
 | 
			
		||||
			"                                               ':16',  \n "
 | 
			
		||||
			"                                               ':17',  \n "
 | 
			
		||||
			"                                               ':18',  \n "
 | 
			
		||||
			"                                               ':19',  \n "
 | 
			
		||||
			"                                               ':20',  \n "
 | 
			
		||||
			"                                               ':21',  \n "
 | 
			
		||||
			"                                               ':22',  \n "
 | 
			
		||||
			"                                               ':23',  \n "
 | 
			
		||||
			"                                               ':24',  \n "
 | 
			
		||||
			"                                               ':25',  \n "
 | 
			
		||||
			"                                               ':26',  \n "
 | 
			
		||||
			"                                               ':27',  \n "
 | 
			
		||||
			"                                               ':28',  \n "
 | 
			
		||||
			"                                               ':29',  \n "
 | 
			
		||||
			"                                               ':30',  \n "
 | 
			
		||||
			"                                               ':31',  \n "
 | 
			
		||||
			"                                               ':32',  \n "
 | 
			
		||||
			"                                               ':33',  \n "
 | 
			
		||||
			"                                               ':34',  \n "
 | 
			
		||||
			"                                               ':35',  \n "
 | 
			
		||||
			"                                               ':36',  \n "
 | 
			
		||||
			"                                               ':37',  \n "
 | 
			
		||||
			"                                               ':38',  \n "
 | 
			
		||||
			"                                               ':39',  \n "
 | 
			
		||||
			"                                               ':40',  \n "
 | 
			
		||||
			"                                               ':41',  \n "
 | 
			
		||||
			"                                               ':42',  \n "
 | 
			
		||||
			"                                               ':43',  \n "
 | 
			
		||||
			"                                               ':44',  \n "
 | 
			
		||||
			"                                               ':45',  \n "
 | 
			
		||||
			"                                               ':46',  \n "
 | 
			
		||||
			"                                               ':47',  \n "
 | 
			
		||||
			"                                               ':48',  \n "
 | 
			
		||||
			"                                               ':49',  \n "
 | 
			
		||||
			"                                               ':50',  \n "
 | 
			
		||||
			"                                               ':51',  \n "
 | 
			
		||||
			"                                               ':52',  \n "
 | 
			
		||||
			"                                               ':53',  \n "
 | 
			
		||||
			"                                               ':54',  \n "
 | 
			
		||||
			"                                               ':55',  \n "
 | 
			
		||||
			"                                               ':56',  \n "
 | 
			
		||||
			"                                               ':57',  \n "
 | 
			
		||||
			"                                               ':58',  \n "
 | 
			
		||||
			"                                               ':59',  \n "
 | 
			
		||||
			"                                               ':60',  \n "
 | 
			
		||||
			"                                               ':61',  \n "
 | 
			
		||||
			"                                               ':62',  \n "
 | 
			
		||||
			"                                               ':63',  \n "
 | 
			
		||||
			"                                               ':64',  \n "
 | 
			
		||||
			"                                               ':65',  \n "
 | 
			
		||||
			"                                               ':66',  \n "
 | 
			
		||||
			"                                               ':67',  \n "
 | 
			
		||||
			"                                               ':68',  \n "
 | 
			
		||||
			"                                               ':69',  \n "
 | 
			
		||||
			"                                               ':70',  \n "
 | 
			
		||||
			"                                               ':71',  \n "
 | 
			
		||||
			"                                               ':72',  \n "
 | 
			
		||||
			"                                               ':73',  \n "
 | 
			
		||||
			"                                               ':74',  \n "
 | 
			
		||||
			"                                               ':75',  \n "
 | 
			
		||||
			"                                               ':76',  \n "
 | 
			
		||||
			"                                               ':77',  \n "
 | 
			
		||||
			"                                               ':78',  \n "
 | 
			
		||||
			"                                               ':79',  \n "
 | 
			
		||||
			"                                               ':80',  \n "
 | 
			
		||||
			"                                               ':81',  \n "
 | 
			
		||||
			"                                               ':82',  \n "
 | 
			
		||||
			"                                               ':83',  \n "
 | 
			
		||||
			"                                               ':84',  \n "
 | 
			
		||||
			"                                               ':85',  \n "
 | 
			
		||||
			"                                               ':86',  \n "
 | 
			
		||||
			"                                               ':87',  \n "
 | 
			
		||||
			"                                               ':88',  \n "
 | 
			
		||||
			"                                               ':89',  \n "
 | 
			
		||||
			"                                               ':90',  \n "
 | 
			
		||||
			"                                               ':91',  \n "
 | 
			
		||||
			"                                               ':92',  \n "
 | 
			
		||||
			"                                               ':93',  \n "
 | 
			
		||||
			"                                               ':94',  \n "
 | 
			
		||||
			"                                               ':95',  \n "
 | 
			
		||||
			"                                               ':96',  \n "
 | 
			
		||||
			"                                               ':97',  \n "
 | 
			
		||||
			"                                               ':98',  \n "
 | 
			
		||||
			"                                               ':99',  \n "
 | 
			
		||||
			"                                               ':100',  \n "
 | 
			
		||||
			"                                               ':101',  \n "
 | 
			
		||||
			"                                               ':102',  \n "
 | 
			
		||||
			"                                               ':103',  \n "
 | 
			
		||||
			"                                               ':104',  \n "
 | 
			
		||||
			"                                               ':105',  \n "
 | 
			
		||||
			"                                               ':106',  \n "
 | 
			
		||||
			"                                               ':107',  \n "
 | 
			
		||||
			"                                               ':108',  \n "
 | 
			
		||||
			"                                               ':109',  \n "
 | 
			
		||||
			"                                               ':110',  \n "
 | 
			
		||||
			"                                               ':111',  \n "
 | 
			
		||||
			"                                               ':112',  \n "
 | 
			
		||||
			"                                               ':113',  \n "
 | 
			
		||||
			"                                               ':114',  \n "
 | 
			
		||||
			"                                               ':115',  \n "
 | 
			
		||||
			"                                               ':116',  \n "
 | 
			
		||||
			"                                               ':117',  \n "
 | 
			
		||||
			"                                               ':118',  \n "
 | 
			
		||||
			"                                               ':119',  \n "
 | 
			
		||||
			"                                               ':120',  \n "
 | 
			
		||||
			"                                               ':121',  \n "
 | 
			
		||||
			"                                               ':122',  \n "
 | 
			
		||||
			"                                               ':123',  \n "
 | 
			
		||||
			"                                               ':124',  \n "
 | 
			
		||||
			"                                               ':125',  \n "
 | 
			
		||||
			"                                               ':126',  \n "
 | 
			
		||||
			"                                               ':127',  \n "
 | 
			
		||||
			"                                               ':128',  \n "
 | 
			
		||||
			"                                               ':129',  \n "
 | 
			
		||||
			"                                               ':130',  \n "
 | 
			
		||||
			"                                               ':131',  \n "
 | 
			
		||||
			"                                               ':132',  \n "
 | 
			
		||||
			"                                               ':133',  \n "
 | 
			
		||||
			"                                               ':134',  \n "
 | 
			
		||||
			"                                               ':135',  \n "
 | 
			
		||||
			"                                               ':136',  \n "
 | 
			
		||||
			"                                               ':137',  \n "
 | 
			
		||||
			"                                               ':138',  \n "
 | 
			
		||||
			"                                               ':139',  \n "
 | 
			
		||||
			"                                               ':140',  \n "
 | 
			
		||||
			"                                               ':141',  \n "
 | 
			
		||||
			"                                               ':142',  \n "
 | 
			
		||||
			"                                               ':143',  \n "
 | 
			
		||||
			"                                               ':144',  \n "
 | 
			
		||||
			"                                               ':145',  \n "
 | 
			
		||||
			"                                               ':146',  \n "
 | 
			
		||||
			"                                               ':147',  \n "
 | 
			
		||||
			"                                               ':148',  \n "
 | 
			
		||||
			"                                               ':149',  \n "
 | 
			
		||||
			"                                               ':150',  \n "
 | 
			
		||||
			"                                               ':151',  \n "
 | 
			
		||||
			"                                               ':152',  \n "
 | 
			
		||||
			"                                               ':153',  \n "
 | 
			
		||||
			"                                               ':154',  \n "
 | 
			
		||||
			"                                               ':155',  \n "
 | 
			
		||||
			"                                               ':156',  \n "
 | 
			
		||||
			"                                               ':157');  \n "
 | 
			
		||||
			"END;  \n ";
 | 
			
		||||
 | 
			
		||||
	//初始化
 | 
			
		||||
	returnCode = OCI_Initialize( error_handler, nullptr, OCI_ENV_CONTEXT );
 | 
			
		||||
 | 
			
		||||
	if ( static_cast<bool>(returnCode) == false )
 | 
			
		||||
	{
 | 
			
		||||
		//ocilib加载错误
 | 
			
		||||
		throw runtime_error( "" );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//连接
 | 
			
		||||
	pConnection = OCI_CreateConnection( tnsName.c_str(),
 | 
			
		||||
	                                    userName.c_str(),
 | 
			
		||||
	                                    password.c_str(),
 | 
			
		||||
	                                    OCI_SESSION_DEFAULT );
 | 
			
		||||
 | 
			
		||||
	if ( pConnection == nullptr )
 | 
			
		||||
	{
 | 
			
		||||
		throw runtime_error( "" );
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,7 @@
 | 
			
		||||
#include "../../Datastructure/CarDealerScheme/CarDealerScheme.h"
 | 
			
		||||
#include "../../Datastructure/RepairOrder/RepairOrder.h"
 | 
			
		||||
#include "../../Datastructure/RepairSuggestion/RepairSuggestionRecord.h"
 | 
			
		||||
#include "../Excel/LoadFromExcel.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/************************************************
 | 
			
		||||
@@ -68,3 +69,8 @@ void ImportRepairSuggestionToOracle( const std::string &
 | 
			
		||||
                                     const std::string &                         password,
 | 
			
		||||
                                     const std::string &                         tnsName,
 | 
			
		||||
                                     const std::vector<RepairSuggestionRecord> & recordVector );
 | 
			
		||||
 | 
			
		||||
void ImportNewRepairMonitorToOracle( const std::string &                         userName,
 | 
			
		||||
                                     const std::string &                         password,
 | 
			
		||||
                                     const std::string &                         tnsName,
 | 
			
		||||
                                     const std::vector<NewRepairMonitorReportRecord> & recordVector );
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,3 @@
 | 
			
		||||
 | 
			
		||||
#include "新送返修监控报表.h"
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,165 @@
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <string>
 | 
			
		||||
 | 
			
		||||
typedef struct NewRepairMonitorReportRecord_
 | 
			
		||||
{
 | 
			
		||||
	std::wstring 分公司名称_;
 | 
			
		||||
	std::wstring 部门组名称_;
 | 
			
		||||
	std::wstring 报案号_;
 | 
			
		||||
	std::wstring 报案日期_;
 | 
			
		||||
	std::wstring 出险日期_;
 | 
			
		||||
	std::wstring 出险地点_;
 | 
			
		||||
	std::wstring 事故车目前位置_;
 | 
			
		||||
	std::wstring 车损序号_;
 | 
			
		||||
	std::wstring 车牌_;
 | 
			
		||||
	std::wstring vin码_;
 | 
			
		||||
	std::wstring 车龄_;
 | 
			
		||||
	std::wstring 品牌代码_;
 | 
			
		||||
	std::wstring 品牌名称_;
 | 
			
		||||
	std::wstring 车系名称_;
 | 
			
		||||
	std::wstring 使用性质名称_;
 | 
			
		||||
	std::wstring 保单号_;
 | 
			
		||||
	std::wstring 标的车_三者车_;
 | 
			
		||||
	std::wstring 是否9座以下企业用车_行政用车_家庭自用车_;
 | 
			
		||||
	std::wstring 核价金额_;
 | 
			
		||||
	std::wstring 核损配件核损金额_;
 | 
			
		||||
	std::wstring 核损工时费核损金额_;
 | 
			
		||||
	std::wstring 核损辅料核损金额_;
 | 
			
		||||
	std::wstring 核损外修费核损金额_;
 | 
			
		||||
	std::wstring 核损施救费核损金额_;
 | 
			
		||||
	std::wstring 结案金额_;
 | 
			
		||||
	std::wstring 结案配件核损金额_;
 | 
			
		||||
	std::wstring 结案工时费核损金额_;
 | 
			
		||||
	std::wstring 结案辅料核损金额_;
 | 
			
		||||
	std::wstring 结案外修费核损金额_;
 | 
			
		||||
	std::wstring 结案施救费核损金额_;
 | 
			
		||||
	std::wstring 接报案人分公司名称_;
 | 
			
		||||
	std::wstring 接报案人工号_;
 | 
			
		||||
	std::wstring 接报案人名称_;
 | 
			
		||||
	std::wstring 第一任务分派时间_;
 | 
			
		||||
	std::wstring 第一定损员分公司_;
 | 
			
		||||
	std::wstring 第一定损员部门组名称_;
 | 
			
		||||
	std::wstring 第一定损员代码_;
 | 
			
		||||
	std::wstring 第一定损员名称_;
 | 
			
		||||
	std::wstring 第一车商是否已阅读_;
 | 
			
		||||
	std::wstring 第一车上是否预约进厂_;
 | 
			
		||||
	std::wstring 第一车商是否推荐失败_;
 | 
			
		||||
	std::wstring 第一车商是否进厂确认_;
 | 
			
		||||
	std::wstring 第一车商是否出场确认_;
 | 
			
		||||
	std::wstring 第二任务分派时间_;
 | 
			
		||||
	std::wstring 第二定损员分公司_;
 | 
			
		||||
	std::wstring 第二定损员部门组名称_;
 | 
			
		||||
	std::wstring 第二定损员代码_;
 | 
			
		||||
	std::wstring 第二定损员名称_;
 | 
			
		||||
	std::wstring 第二车商是否已阅读_;
 | 
			
		||||
	std::wstring 第二车上是否预约进厂_;
 | 
			
		||||
	std::wstring 第二车商是否推荐失败_;
 | 
			
		||||
	std::wstring 第二车商是否进厂确认_;
 | 
			
		||||
	std::wstring 第二车商是否出场确认_;
 | 
			
		||||
	std::wstring 第三任务分派时间_;
 | 
			
		||||
	std::wstring 第三定损员分公司_;
 | 
			
		||||
	std::wstring 第三定损员部门组名称_;
 | 
			
		||||
	std::wstring 第三定损员代码_;
 | 
			
		||||
	std::wstring 第三定损员名称_;
 | 
			
		||||
	std::wstring 第三车商是否已阅读_;
 | 
			
		||||
	std::wstring 第三车上是否预约进厂_;
 | 
			
		||||
	std::wstring 第三车商是否推荐失败_;
 | 
			
		||||
	std::wstring 第三车商是否进厂确认_;
 | 
			
		||||
	std::wstring 第三车商是否出场确认_;
 | 
			
		||||
	std::wstring 其他查勘员信息_;
 | 
			
		||||
	std::wstring 是否推荐_;
 | 
			
		||||
	std::wstring 是否存在工单_;
 | 
			
		||||
	std::wstring 工单类型_;
 | 
			
		||||
	std::wstring 查勘员操作类型_;
 | 
			
		||||
	std::wstring 案件状态名称_;
 | 
			
		||||
	std::wstring 车状_当前状态_;
 | 
			
		||||
	std::wstring 车状_报案环节_;
 | 
			
		||||
	std::wstring 车状_现场推荐环节_;
 | 
			
		||||
	std::wstring 车状_核价通过环节_;
 | 
			
		||||
	std::wstring 车状_结案环节_;
 | 
			
		||||
	std::wstring 承保车商代码_;
 | 
			
		||||
	std::wstring 承保车商名称_;
 | 
			
		||||
	std::wstring 报案车商分公司名称_;
 | 
			
		||||
	std::wstring 报案车商部门组名称_;
 | 
			
		||||
	std::wstring 报案车商代码_;
 | 
			
		||||
	std::wstring 报案车商名称_;
 | 
			
		||||
	std::wstring 现场推荐车商分公司名称_;
 | 
			
		||||
	std::wstring 现场推荐车商代码_;
 | 
			
		||||
	std::wstring 现场推荐车商名称_;
 | 
			
		||||
	std::wstring 核价车商分公司名称_;
 | 
			
		||||
	std::wstring 核价车商部门组名称_;
 | 
			
		||||
	std::wstring 核价车商代码_;
 | 
			
		||||
	std::wstring 核价车商名称_;
 | 
			
		||||
	std::wstring 推荐车商与核价车商是否一致_;
 | 
			
		||||
	std::wstring 核价修理厂归属公司代码_;
 | 
			
		||||
	std::wstring 核价修理厂归属公司名称_;
 | 
			
		||||
	std::wstring 核价修理厂_;
 | 
			
		||||
	std::wstring 核价修理厂名称_;
 | 
			
		||||
	std::wstring 估损单号_;
 | 
			
		||||
	std::wstring 核价通过时间_;
 | 
			
		||||
	std::wstring 定损员机构_;
 | 
			
		||||
	std::wstring 定损员代码_;
 | 
			
		||||
	std::wstring 定损员名称_;
 | 
			
		||||
	std::wstring 结案车商分公司_;
 | 
			
		||||
	std::wstring 结案车商部门组名称_;
 | 
			
		||||
	std::wstring 结案车商代码_;
 | 
			
		||||
	std::wstring 结案车商名称_;
 | 
			
		||||
	std::wstring 推荐车商与结案车商是否一致_;
 | 
			
		||||
	std::wstring 结案修理厂归属公司代码_;
 | 
			
		||||
	std::wstring 结案修理厂归属公司名称_;
 | 
			
		||||
	std::wstring 结案修理厂代码_;
 | 
			
		||||
	std::wstring 结案修理厂名称_;
 | 
			
		||||
	std::wstring 车辆进厂时间_;
 | 
			
		||||
	std::wstring 车辆出厂时间_;
 | 
			
		||||
	std::wstring 结案时间_;
 | 
			
		||||
	std::wstring 事故经过_;
 | 
			
		||||
	std::wstring 数据更新日期_;
 | 
			
		||||
	std::wstring 备注_;
 | 
			
		||||
	std::wstring 估损单模板_;
 | 
			
		||||
	std::wstring 返修开关_报案_;
 | 
			
		||||
	std::wstring 送修开关_报案_;
 | 
			
		||||
	std::wstring 返修开关_核价_;
 | 
			
		||||
	std::wstring 送修开关_核价_;
 | 
			
		||||
	std::wstring 返修开关_结案_;
 | 
			
		||||
	std::wstring 送修开关_结案_;
 | 
			
		||||
	std::wstring 查勘员分公司名称_;
 | 
			
		||||
	std::wstring 查勘员代码_;
 | 
			
		||||
	std::wstring 查勘员名称_;
 | 
			
		||||
	std::wstring 核价修理厂归属中支_;
 | 
			
		||||
	std::wstring 结案修理厂归属中支_;
 | 
			
		||||
	std::wstring 是否诉讼_;
 | 
			
		||||
	std::wstring 座席推荐分公司代码_;
 | 
			
		||||
	std::wstring 座席推荐分公司名称_;
 | 
			
		||||
	std::wstring 座席推荐车商名代码_;
 | 
			
		||||
	std::wstring 座席推荐车商名称_;
 | 
			
		||||
	std::wstring 座席推荐操作类型_;
 | 
			
		||||
	std::wstring 座席推荐排名_;
 | 
			
		||||
	std::wstring 第一次推荐分公司代码_;
 | 
			
		||||
	std::wstring 第一次推荐分公司名称_;
 | 
			
		||||
	std::wstring 第一次推荐车商代码_;
 | 
			
		||||
	std::wstring 第一次推荐车商名称_;
 | 
			
		||||
	std::wstring 第一次推荐工具_;
 | 
			
		||||
	std::wstring 第一次推荐操作类型_;
 | 
			
		||||
	std::wstring 第一次推荐排名_其他推荐信息_;
 | 
			
		||||
	std::wstring 第二次推荐分公司代码_;
 | 
			
		||||
	std::wstring 第二次推荐分公司名称_;
 | 
			
		||||
	std::wstring 第二次推荐车商代码_;
 | 
			
		||||
	std::wstring 第二次推荐车商名称_;
 | 
			
		||||
	std::wstring 第二次推荐工具_;
 | 
			
		||||
	std::wstring 第二次推荐操作类型_;
 | 
			
		||||
	std::wstring 第二次推荐排名_其他推荐信息_;
 | 
			
		||||
	std::wstring 第三次推荐分公司代码_;
 | 
			
		||||
	std::wstring 第三次推荐分公司名称_;
 | 
			
		||||
	std::wstring 第三次推荐车商代码_;
 | 
			
		||||
	std::wstring 第三次推荐车商名称_;
 | 
			
		||||
	std::wstring 第三次推荐工具_;
 | 
			
		||||
	std::wstring 第三次推荐操作类型_;
 | 
			
		||||
	std::wstring 第三次推荐排名_其他推荐信息_;
 | 
			
		||||
	std::wstring 其他推荐信息_;
 | 
			
		||||
	std::wstring 推荐失败具体原因_;
 | 
			
		||||
	std::wstring 是否现场报案_;
 | 
			
		||||
	std::wstring 报案地点_;
 | 
			
		||||
	std::wstring 是否在厂报案_;
 | 
			
		||||
} NewRepairMonitorReportRecord;
 | 
			
		||||
@@ -22,6 +22,7 @@ void excelTest()
 | 
			
		||||
	vector<CarDealerAchievement>   achievementsVector;
 | 
			
		||||
	vector<RepairOrder>            repairOrderVector;
 | 
			
		||||
	vector<RepairSuggestionRecord> suggestionRecordsVector;
 | 
			
		||||
	vector<NewRepairMonitorReportRecord> repairMonitorVector;
 | 
			
		||||
 | 
			
		||||
	string userName = "car_dealer";
 | 
			
		||||
	string password = "cpic123456";
 | 
			
		||||
@@ -31,23 +32,27 @@ void excelTest()
 | 
			
		||||
	wstring filePathCarDealerScheme      = L"D:/develop/projects_win/2019/car_dealer_util/数据/PC端导入模板(管理员版).xlsx";
 | 
			
		||||
	wstring filePathCarDealerAchievement = L"D:/develop/projects_win/2019/car_dealer_util/数据/PC端导入模板(客户经理版).xlsx";
 | 
			
		||||
	wstring filePathRepairSuggestion     = L"D:/develop/projects_win/2019/car_dealer_util/数据/卢霖城 - 推荐表.xlsx";
 | 
			
		||||
	//string xlsFilePath = "D:/develop/projects_win/2019/car_dealer_util/数据/345517_1.xls";
 | 
			
		||||
	wstring filePathNewRepairMonitor     = L"D:/develop/projects_win/2019/car_dealer_util/数据/新送返修监控报表.xlsx";
 | 
			
		||||
 | 
			
		||||
	//测试车商方案
 | 
			
		||||
	//LoadCarDealerSchemeFromXlsx( filePathCarDealerScheme, 0, 1, schemeVector );
 | 
			
		||||
	//ImportCarDealerSchemeToOracle( userName, password, tnsName, schemeVector );
 | 
			
		||||
 | 
			
		||||
	//测试车商业绩
 | 
			
		||||
	LoadCarDealerAchievementFromXlsx( filePathCarDealerAchievement, 0, 1, achievementsVector );
 | 
			
		||||
	ImportCarDealerAchievementToOracleCpp( userName, password, tnsName, achievementsVector );
 | 
			
		||||
	//LoadCarDealerAchievementFromXlsx( filePathCarDealerAchievement, 0, 1, achievementsVector );
 | 
			
		||||
	//ImportCarDealerAchievementToOracleCpp( userName, password, tnsName, achievementsVector );
 | 
			
		||||
 | 
			
		||||
	//测试送返修工单
 | 
			
		||||
	//LoadRepairOrderFromXlsx(filePathRepairOrder, 0, 1, repairOrderVector);
 | 
			
		||||
	//ImportRepairOrderToOracle("car_dealer", "cpic123456", "xmcx1", repairOrderVector);
 | 
			
		||||
 | 
			
		||||
	//测试送返修推荐
 | 
			
		||||
	LoadRepairSuggestionFromXlsx( filePathRepairSuggestion, 0, 1, suggestionRecordsVector );
 | 
			
		||||
 | 
			
		||||
	//LoadRepairSuggestionFromXlsx( filePathRepairSuggestion, 0, 1, suggestionRecordsVector );
 | 
			
		||||
	//ImportRepairSuggestionToOracle( userName, password, tnsName, suggestionRecordsVector);
 | 
			
		||||
	
 | 
			
		||||
	//测试新送返修监控报表
 | 
			
		||||
	LoadNewRepairMonitorReportFromXlsx(filePathNewRepairMonitor, 0, 1, repairMonitorVector);
 | 
			
		||||
	
 | 
			
		||||
	return;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								数据/卢霖城 - 推荐表 - 副本.xlsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								数据/卢霖城 - 推荐表 - 副本.xlsx
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user