This commit is contained in:
Kane Wang 2020-06-28 17:12:59 +08:00
parent c2251573db
commit f653eddf5b
9 changed files with 216 additions and 50 deletions

View File

@ -36909,94 +36909,94 @@ static const unsigned char qt_resource_struct[] = {
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
// :/QMainFrame/Resources/8218_box1.png
0x0,0x0,0x1,0x2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x3f,0xef,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0x84,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x6a,
// :/QMainFrame/Resources/find.png
0x0,0x0,0x1,0x22,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0xaa,0x5f,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xbf,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x75,
// :/QMainFrame/Resources/print.png
0x0,0x0,0x1,0x62,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x47,0x63,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xd4,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x7c,
// :/QMainFrame/Resources/option.png
0x0,0x0,0x2,0x94,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x7,0x6,0xb8,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xd0,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x7b,
// :/QMainFrame/Resources/x.png
0x0,0x0,0x2,0x2c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x5,0x6a,0x2d,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xe5,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x80,
// :/QMainFrame/Resources/telephone.png
0x0,0x0,0x2,0xc4,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x7,0xb2,0x8,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xdf,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x7e,
// :/QMainFrame/Resources/plus.png
0x0,0x0,0x2,0x52,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x6,0x5d,0x5f,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xd2,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x7b,
// :/QMainFrame/Resources/20121016085311441_easyicon_cn_128.png
0x0,0x0,0x0,0x82,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x77,0x17,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0x81,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x69,
// :/QMainFrame/Resources/new.png
0x0,0x0,0x2,0xe4,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x7,0xcc,0x61,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xcb,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x7a,
// :/QMainFrame/Resources/CPIC.png
0x0,0x0,0x2,0x3c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x5,0xc9,0x50,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0x89,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x6c,
// :/QMainFrame/Resources/ok.png
0x0,0x0,0x1,0x38,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0xe8,0x27,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xcd,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x7a,
// :/QMainFrame/Resources/face.png
0x0,0x0,0x1,0xc8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x4,0x29,0xa6,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xbd,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x75,
// :/QMainFrame/Resources/CNY_Red.png
0x0,0x0,0x1,0xf8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x4,0xfc,0xe0,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0x87,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x6b,
// :/QMainFrame/Resources/car2.png
0x0,0x0,0x3,0x10,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x8,0x69,0x71,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xae,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x71,
// :/QMainFrame/Resources/app.ico
0x0,0x0,0x0,0x46,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x2,0x22,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xa9,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x6f,
// :/QMainFrame/Resources/save.png
0x0,0x0,0x2,0x7e,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x6,0xcf,0x1,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xd9,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x7d,
// :/QMainFrame/Resources/car.png
0x0,0x0,0x0,0x5a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1f,0x7e,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xab,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x70,
// :/QMainFrame/Resources/cat.png
0x0,0x0,0x0,0x6e,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x55,0x58,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xb0,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x72,
// :/QMainFrame/Resources/excel.png
0x0,0x0,0x2,0x14,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x5,0x51,0x43,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xba,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x74,
// :/QMainFrame/Resources/CPIC??.png
0x0,0x0,0x1,0x7a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x9e,0xab,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0x8c,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x6d,
// :/QMainFrame/Resources/dec.png
0x0,0x0,0x0,0x32,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xb5,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x73,
// :/QMainFrame/Resources/folder.png
0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xcc,0x2a,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xc2,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x76,
// :/QMainFrame/Resources/edit.png
0x0,0x0,0x2,0x68,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x6,0x61,0x1b,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xb8,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x74,
// :/QMainFrame/Resources/clean.png
0x0,0x0,0x2,0xf8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x8,0x3a,0x47,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xb3,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x73,
// :/QMainFrame/Resources/gear.png
0x0,0x0,0x2,0xae,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x7,0x5c,0x60,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xc4,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x78,
// :/QMainFrame/Resources/quit.png
0x0,0x0,0x0,0xec,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xe0,0xcc,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xd7,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x7c,
// :/QMainFrame/Resources/save2.png
0x0,0x0,0x1,0x4a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x29,0x5d,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xdc,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x7e,
// :/QMainFrame/Resources/manager.png
0x0,0x0,0x1,0x94,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x3,0x55,0x8f,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xc9,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x79,
// :/QMainFrame/Resources/login.png
0x0,0x0,0x1,0xb0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x3,0xb9,0xe4,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xc6,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x79,
// :/QMainFrame/Resources/tongji.png
0x0,0x0,0x1,0xde,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x4,0x8a,0x1,
0x0,0x0,0x1,0x70,0xde,0xab,0x11,0xe2,
0x0,0x0,0x1,0x72,0x96,0xa9,0x44,0x7f,
};

View File

@ -389,7 +389,7 @@ void LoadRepairSuggestionFromXlsx( const std::wstring & filePat
unsigned startRowIndex,
std::vector<RepairSuggestionRecord> & recordVector )
{
Book * pBook = xlCreateBookW();
Book * pBook = xlCreateXMLBookW();
Sheet * pSheet = nullptr;
if ( pBook == nullptr )
@ -397,7 +397,16 @@ void LoadRepairSuggestionFromXlsx( const std::wstring & filePat
throw runtime_error( "libxl库加载失败" );
}
if (pBook->load(filePath.c_str()) != true)
{
string errorMessage = "打开文件失败!";
errorMessage.append(pBook->errorMessage());
throw runtime_error(errorMessage);
}
setKey( pBook );
pSheet = pBook->getSheet( sheetIndex );
if ( pSheet == nullptr )
@ -431,7 +440,19 @@ void LoadRepairSuggestionFromXlsx( const std::wstring & filePat
wstring messageSendingDate = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
wstring dataSource = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
RepairSuggestionRecord record( orderNo,
orderType,
notifyNo,
suggestedCarDealerCode,
suggestedCarDealerName,
damageDate,
plateNumber,
brandName,
messageType,
messageSendingDate,
dataSource );
recordVector.push_back( record );
rowIndex++;
}

View File

@ -48,6 +48,13 @@ void LoadRepairOrderFromXlsx( const std::wstring & filePath,
// unsigned startRowIndex,
// std::vector<RepairOrder> & orderVector );
/************************************************
* \brief
* \param filePath
* \param sheetIndex
* \param startRowIndex
* \param recordVector
************************************************/
void LoadRepairSuggestionFromXlsx( const std::wstring & filePath,
unsigned int sheetIndex,
unsigned int startRowIndex,

View File

@ -436,3 +436,27 @@ void ImportRepairOrderToOracle( const std::string & userName,
OCI_ConnectionFree( pConn );
OCI_Cleanup();
}
void ImportRepairSuggestionToOracle( const std::string & userName,
const std::string & password,
const std::string & tnsName,
const std::vector<RepairSuggestionRecord> & recordVector )
{
OCI_Connection * pConnection = nullptr;
OCI_Statement * pStatement = nullptr;
const otext * szSql =
"BEGIN \n" \
" car_dealer.data_import_util_pkg.import_repairing_suggestion(:a_order_no, \n" \
" :a_order_type, \n" \
" :a_notify_no, \n" \
" :a_sug_cardealer_code, \n" \
" :a_sug_cardealer_name, \n" \
" :a_damage_date, \n" \
" :a_plateNo, \n" \
" :a_brand_name, \n" \
" :a_message_type, \n" \
" :a_sending_date, \n" \
" :a_data_source); \n" \
"END;";
}

View File

@ -5,6 +5,7 @@
#include "../../Datastructure/CarDealerAchievement/CarDealerAchievement.h"
#include "../../Datastructure/CarDealerScheme/CarDealerScheme.h"
#include "../../Datastructure/RepairOrder/RepairOrder.h"
#include "../../Datastructure/RepairSuggestion/RepairSuggestionRecord.h"
/************************************************
@ -55,3 +56,15 @@ 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 );

View File

@ -29,7 +29,7 @@ int main(int argc, char* argv[])
test();
//return 1;
return 1;
//登录界面
try

View File

@ -13,7 +13,7 @@ void test_username();
void test()
{
//excelTest();
excelTest();
}
void excelTest()
@ -21,6 +21,7 @@ void excelTest()
vector<CarDealerScheme> schemeVector;
vector<CarDealerAchievement> achievementsVector;
vector<RepairOrder> repairOrderVector;
vector<RepairSuggestionRecord> suggestionRecordsVector;
string userName = "car_dealer";
string password = "cpic123456";
@ -29,7 +30,7 @@ void excelTest()
wstring filePathRepairOrder = L"D:/develop/projects_win/2019/car_dealer_util/数据/送返修工单/357783_1.xlsx";
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";
//测试车商方案
@ -38,12 +39,15 @@ void excelTest()
//测试车商业绩
LoadCarDealerAchievementFromXlsx( filePathCarDealerAchievement, 0, 1, achievementsVector );
ImportCarDealerAchievementToOracleCpp(userName, password, tnsName, achievementsVector);
ImportCarDealerAchievementToOracleCpp( userName, password, tnsName, achievementsVector );
//测试送返修工单
//LoadRepairOrderFromXlsx(filePathRepairOrder, 0, 1, repairOrderVector);
//ImportRepairOrderToOracle("car_dealer", "cpic123456", "xmcx1", repairOrderVector);
//测试送返修推荐
LoadRepairSuggestionFromXlsx( filePathRepairSuggestion, 0, 1, suggestionRecordsVector );
return;
}

View File

@ -6,7 +6,13 @@ CREATE OR REPLACE PACKAGE data_import_util_pkg IS
--定义异常
no_cardealer_code_excpt CONSTANT INTEGER := -20000;
no_cardealer_code_message CONSTANT VARCHAR2(100) := 'ȱÉÙ³µÉÌ´úÂë¡£';
no_cardealer_code_text CONSTANT VARCHAR2(100) := '缺少车商代码。';
no_order_no_excpt CONSTANT INTEGER := -20001;
no_order_no_text CONSTANT VARCHAR2(100) := '缺少工单号';
no_notify_no_excpt CONSTANT INTEGER := -20002;
no_notify_no_text CONSTANT VARCHAR2(100) := '缺少报案号';
PROCEDURE import_cardealer_achvmnt
(
@ -63,6 +69,21 @@ CREATE OR REPLACE PACKAGE data_import_util_pkg IS
a_surveyor_recomm_status VARCHAR2
);
PROCEDURE import_repairing_suggestion
(
a_order_no VARCHAR2,
a_order_type VARCHAR2,
a_notify_no VARCHAR2,
a_推荐车商代码 VARCHAR2,
a_推荐车商名称 VARCHAR2,
a_damage_date VARCHAR2,
a_plateNo VARCHAR2,
a_brand_name VARCHAR2,
a_message_type VARCHAR2,
a_sending_date VARCHAR2,
a_data_source VARCHAR2
);
END data_import_util_pkg;
/
CREATE OR REPLACE PACKAGE BODY data_import_util_pkg IS
@ -83,7 +104,8 @@ CREATE OR REPLACE PACKAGE BODY data_import_util_pkg IS
--防御性验证
IF a_car_dealer_code IS NULL
THEN
raise_application_error(no_cardealer_code_excpt, no_cardealer_code_message);
raise_application_error(no_cardealer_code_excpt,
no_cardealer_code_text);
END IF;
--先删除旧数据
@ -137,7 +159,8 @@ CREATE OR REPLACE PACKAGE BODY data_import_util_pkg IS
--防御性验证
IF a_car_dealer_code IS NULL
THEN
raise_application_error(no_cardealer_code_excpt, no_cardealer_code_message);
raise_application_error(no_cardealer_code_excpt,
no_cardealer_code_text);
END IF;
--删除旧数据
@ -211,7 +234,8 @@ CREATE OR REPLACE PACKAGE BODY data_import_util_pkg IS
--防御性验证
IF a_order_no IS NULL
THEN
raise_application_error(no_cardealer_code_excpt, no_cardealer_code_message);
raise_application_error(no_cardealer_code_excpt,
no_cardealer_code_text);
END IF;
--先删除旧数据
@ -224,35 +248,40 @@ CREATE OR REPLACE PACKAGE BODY data_import_util_pkg IS
--日期处理
BEGIN
l_damage_date := to_date(a_damage_date, 'yyyy-mm-dd hh24:mi:ss');
l_damage_date := to_date(a_damage_date,
'yyyy-mm-dd hh24:mi:ss');
EXCEPTION
WHEN OTHERS THEN
l_damage_date := NULL;
END;
BEGIN
l_gen_date := to_date(a_generating_date, 'yyyy-mm-dd hh24:mi:ss');
l_gen_date := to_date(a_generating_date,
'yyyy-mm-dd hh24:mi:ss');
EXCEPTION
WHEN OTHERS THEN
l_gen_date := NULL;
END;
BEGIN
l_repairing_start_date := to_date(a_repairing_start_date, 'yyyy-mm-dd hh24:mi:ss');
l_repairing_start_date := to_date(a_repairing_start_date,
'yyyy-mm-dd hh24:mi:ss');
EXCEPTION
WHEN OTHERS THEN
l_repairing_start_date := NULL;
END;
BEGIN
l_repairing_finish_date := to_date(a_repairing_finish_date, 'yyyy-mm-dd hh24:mi:ss');
l_repairing_finish_date := to_date(a_repairing_finish_date,
'yyyy-mm-dd hh24:mi:ss');
EXCEPTION
WHEN OTHERS THEN
l_repairing_finish_date := NULL;
END;
BEGIN
l_check_date := to_date(a_check_date, 'yyyy-mm-dd hh24:mi:ss');
l_check_date := to_date(a_check_date,
'yyyy-mm-dd hh24:mi:ss');
EXCEPTION
WHEN OTHERS THEN
l_check_date := NULL;
@ -317,6 +346,74 @@ CREATE OR REPLACE PACKAGE BODY data_import_util_pkg IS
COMMIT;
END;
PROCEDURE import_repairing_suggestion
(
a_order_no VARCHAR2,
a_order_type VARCHAR2,
a_notify_no VARCHAR2,
a_推荐车商代码 VARCHAR2,
a_推荐车商名称 VARCHAR2,
a_damage_date VARCHAR2,
a_plateNo VARCHAR2,
a_brand_name VARCHAR2,
a_message_type VARCHAR2,
a_sending_date VARCHAR2,
a_data_source VARCHAR2
) IS
BEGIN
--防御性验证
IF a_order_no IS NULL
THEN
raise_application_error(no_order_no_excpt,
no_order_no_text);
END IF;
IF a_notify_no IS NULL
THEN
raise_application_error(no_notify_no_excpt,
no_notify_no_text);
END IF;
--删除旧数据
BEGIN
DELETE FROM car_dealer.送返修推荐表 a
WHERE a.工单号 = a_order_no
AND a.报案号 = a_notify_no;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
--插入数据
INSERT INTO car_dealer.送返修推荐表
(工单号,
工单类型,
报案号,
推荐车商代码,
推荐车商名称,
出险日期,
车牌号,
品牌名称,
短信类型,
发送时间,
数据来源)
VALUES
(a_order_no,
a_order_type,
a_notify_no,
a_推荐车商代码,
a_推荐车商名称,
to_date(a_damage_date,
'yyyy-mm-dd hh24:mi:ss'),
a_plateNo,
a_brand_name,
a_message_type,
to_date(a_sending_date,
'yyyy-mm-dd hh24:mi:ss'),
a_data_source);
END;
BEGIN
-- Initialization
NULL;

Binary file not shown.