#pragma once

#include <string>
#include <vector>
#include "../../Datastructure/CarDealerAchievement/CarDealerAchievement.h"
#include "../../Datastructure/CarDealerScheme/CarDealerScheme.h"
#include "../../Datastructure/RepairOrder/RepairOrder.h"
#include "../../Datastructure/RepairSuggestion/RepairSuggestionRecord.h"
#include "../Excel/LoadFromExcel.h"


/************************************************
* \brief 向oracle数据库写入车商业绩表
* \param userName oracle数据库用户名
* \param password oracle数据库密码
* \param tnsName oracle TNS名称
* \param orderVector 车商业绩表数据
************************************************/
void ImportCarDealerAchievementToOracleCpp( const std::string &                       userName,
                                            const std::string &                       password,
                                            const std::string &                       tnsName,
                                            const std::vector<CarDealerAchievement> & achievementVector );

/************************************************
* \brief 向oracle数据库写入车商业绩表
* \param userName oracle数据库用户名
* \param password oracle数据库密码
* \param tnsName oracle TNS名称
* \param orderVector 车商业绩表数据
************************************************/
void ImportCarDealerAchievementToOracle( std::string                         userName,
                                         std::string                         password,
                                         std::string                         tnsName,
                                         std::vector<CarDealerAchievement> & achievementVector );


/************************************************
* \brief 向oracle数据库写入车商方案表
* \param userName oracle数据库用户名
* \param password oracle数据库密码
* \param tnsName oracle TNS名称
* \param orderVector 车商方案表数据
************************************************/
void ImportCarDealerSchemeToOracle( const std::string &            userName,
                                    const std::string &            password,
                                    const std::string &            tnsName,
                                    std::vector<CarDealerScheme> & achievementVector );

/************************************************
* \brief 向oracle数据库写入送返修工单信息
* \param userName oracle数据库用户名
* \param password oracle数据库密码
* \param tnsName oracle TNS名称
* \param orderVector 送返修工单数据
************************************************/
void ImportRepairOrderToOracle( const std::string &              userName,
                                const std::string &              password,
                                const std::string &              tnsName,
                                const std::vector<RepairOrder> & orderVector );

/************************************************
* \brief 将送返修推荐记录
* \param userName 
* \param password 
* \param tnsName 
* \param recordVector 
************************************************/
void ImportRepairSuggestionToOracle( const std::string &                         userName,
                                     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 );
