提交信息!

This commit is contained in:
Kane Wang 2020-12-09 14:33:52 +08:00
parent aff4ec48f6
commit 63910b48ea
1 changed files with 299 additions and 15 deletions

View File

@ -10,11 +10,240 @@ using namespace libxl;
//车商方案表
const unsigned int CARDEALER_SCHEMA_CAPTION_COUNT = 9;
const wchar_t * pwszSchema[] = {L"年度", L"月份", L"车商代码", L"车商名称", L"工时标准", L"配件价格", L"其他理赔支持", L"营销活动方案", L"是否达成预期"};
const wchar_t * pwszSchema[] = {
L"年度",
L"月份",
L"车商代码",
L"车商名称",
L"工时标准",
L"配件价格",
L"其他理赔支持",
L"营销活动方案",
L"是否达成预期",
};
//车商业绩表
const unsigned int CARDEALER_ACHIEVEMENT_CAPTION_COUNT = 10;
const wchar_t* pwszAchievement[] = { L"年度", L"月份", L"车商代码", L"车商名称", L"店内双签产值(万元)", L"店内新车开票数", L"我司新车签单台次", L"人保新车签单台次", L"平安新车签单台次", L"其他保险公司新车签单台次" };
const wchar_t * pwszAchievement[] = {
L"年度",
L"月份",
L"车商代码",
L"车商名称",
L"店内双签产值(万元)",
L"店内新车开票数",
L"我司新车签单台次",
L"人保新车签单台次",
L"平安新车签单台次",
L"其他保险公司新车签单台次",
};
//送返修工单
const unsigned int REPAIR_ORDER_CAPTION_COUNT = 25;
const wchar_t * pwszRepairOrderCaption[] = {
L"分公司名称",
L"工单号",
L"工单类型",
L"报案号",
L"出险区域",
L"出险日期",
L"创建日期",
L"商业险保单号",
L"交强险保单号",
L"车牌号",
L"品牌名称",
L"是否标的车",
L"是否推荐成功",
L"推荐车商代码",
L"推荐车商名称",
L"报案推荐车商名称",
L"查勘推荐车商名称",
L"接报案人",
L"查勘员",
L"工单确认时间",
L"车辆进厂时间",
L"车辆出厂时间",
L"状态",
L"损失项目ID",
L"查勘员推荐状态",
};
//卢霖城-送返修推荐表
const unsigned int REPAIR_RECOMMANDATION_CAPTION_COUNT = 11;
const wchar_t * pwszRepairRecommandationCaption[] = {
L"工单号",
L"工单类型",
L"报案号",
L"推荐车商代码",
L"推荐车商名称",
L"出险日期",
L"车牌号",
L"品牌名称",
L"短信类型",
L"发送时间",
L"数据来源",
};
//新送返修推荐报表
const unsigned int NEW_REPAIR_MONITOR_CAPTION_COUNT = 157;
const wchar_t * pwszNewRepairMonitorCaption[] = {
L"分公司名称",
L"部门组名称",
L"报案号",
L"报案日期",
L"出险日期",
L"出险地点",
L"事故车目前位置",
L"车损序号",
L"车牌",
L"vin码",
L"车龄",
L"品牌代码",
L"品牌名称",
L"车系名称",
L"使用性质名称",
L"保单号",
L"标的车/三者车",
L"是否9座以下企业用车、行政用车、家庭自用车",
L"核价金额",
L"核损配件核损金额",
L"核损工时费核损金额",
L"核损辅料核损金额",
L"核损外修费核损金额",
L"核损施救费核损金额",
L"结案金额",
L"结案配件核损金额",
L"结案工时费核损金额",
L"结案辅料核损金额",
L"结案外修费核损金额",
L"结案施救费核损金额",
L"接报案人分公司名称",
L"接报案人工号",
L"接报案人名称",
L"第一任务分派时间",
L"第一定损员分公司",
L"第一定损员部门组名称",
L"第一定损员代码",
L"第一定损员名称",
L"第一车商是否已阅读",
L"第一车上是否预约进厂",
L"第一车商是否推荐失败",
L"第一车商是否进厂确认",
L"第一车商是否出场确认",
L"第二任务分派时间",
L"第二定损员分公司",
L"第二定损员部门组名称",
L"第二定损员代码",
L"第二定损员名称",
L"第二车商是否已阅读",
L"第二车上是否预约进厂",
L"第二车商是否推荐失败",
L"第二车商是否进厂确认",
L"第二车商是否出场确认",
L"第三任务分派时间",
L"第三定损员分公司",
L"第三定损员部门组名称",
L"第三定损员代码",
L"第三定损员名称",
L"第三车商是否已阅读",
L"第三车上是否预约进厂",
L"第三车商是否推荐失败",
L"第三车商是否进厂确认",
L"第三车商是否出场确认",
L"其他查勘员信息",
L"是否推荐",
L"是否存在工单",
L"工单类型",
L"查勘员操作类型",
L"案件状态名称",
L"车辆状态名称--当前状态",
L"车辆状态名称--报案环节",
L"车辆状态名称--现场推荐环节",
L"车辆状态名称--核价通过环节",
L"车辆状态名称--结案环节",
L"承保车商代码",
L"承保车商名称",
L"报案车商分公司名称",
L"报案车商部门组名称",
L"报案车商代码",
L"报案车商名称",
L"现场推荐车商分公司名称",
L"现场推荐车商代码",
L"现场推荐车商名称",
L"核价车商分公司名称",
L"核价车商部门组名称",
L"核价车商代码",
L"核价车商名称",
L"推荐车商与核价车商是否一致",
L"核价修理厂归属公司代码",
L"核价修理厂归属公司名称",
L"核价修理厂",
L"核价修理厂名称",
L"估损单号",
L"核价通过时间",
L"定损员机构",
L"定损员代码",
L"定损员名称",
L"结案车商分公司",
L"结案车商部门组名称",
L"结案车商代码",
L"结案车商名称",
L"推荐车商与结案车商是否一致",
L"结案修理厂归属公司代码",
L"结案修理厂归属公司名称",
L"结案修理厂代码",
L"结案修理厂名称",
L"车辆进厂时间",
L"车辆出厂时间",
L"结案时间",
L"事故经过",
L"数据更新日期",
L"备注",
L"估损单模板",
L"返修开关(报案)",
L"送修开关(报案)",
L"返修开关(核价)",
L"送修开关(核价)",
L"返修开关(结案)",
L"送修开关(结案)",
L"查勘员分公司名称",
L"查勘员代码",
L"查勘员名称",
L"核价修理厂归属中支",
L"结案修理厂归属中支",
L"是否诉讼",
L"座席推荐分公司代码",
L"座席推荐分公司名称",
L"座席推荐车商名代码",
L"座席推荐车商名称",
L"座席推荐操作类型",
L"座席推荐排名",
L"第一次推荐分公司代码 ",
L"第一次推荐分公司名称",
L"第一次推荐车商代码",
L"第一次推荐车商名称",
L"第一次推荐工具APP、M6",
L"第一次推荐操作类型",
L"第一次推荐排名、其他推荐信息",
L"第二次推荐分公司代码",
L"第二次推荐分公司名称",
L"第二次推荐车商代码",
L"第二次推荐车商名称",
L"第二次推荐工具APP、M6",
L"第二次推荐操作类型",
L"第二次推荐排名、其他推荐信息",
L"第三次推荐分公司代码 ",
L"第三次推荐分公司名称",
L"第三次推荐车商代码",
L"第三次推荐车商名称",
L"第三次推荐工具APP、M6",
L"第三次推荐操作类型",
L"第三次推荐排名、其他推荐信息",
L"其他推荐信息",
L"推荐失败具体原因",
L"是否现场报案",
L"报案地点",
L"是否在厂报案",
};
/************************************************
* \brief
@ -60,7 +289,11 @@ void LoadCarDealerSchemeFromXlsx( const wstring & filePath,
}
//验证表格内容是否相符
bool isEqual = checkExcelFileFormat( pBook, sheetIndex, startRowIndex - 1, pwszSchema, CARDEALER_SCHEMA_CAPTION_COUNT );
bool isEqual = checkExcelFileFormat( pBook,
sheetIndex,
startRowIndex - 1,
pwszSchema,
CARDEALER_SCHEMA_CAPTION_COUNT );
if ( isEqual == false )
{
@ -168,16 +401,16 @@ void LoadCarDealerAchievementFromXlsx( const std::wstring & fileP
}
//验证表格内容是否相符
bool isEqual = checkExcelFileFormat(pBook, sheetIndex, startRowIndex - 1, pwszAchievement, CARDEALER_ACHIEVEMENT_CAPTION_COUNT);
bool isEqual = checkExcelFileFormat( pBook, sheetIndex, startRowIndex - 1, pwszAchievement, CARDEALER_ACHIEVEMENT_CAPTION_COUNT );
if (isEqual == false)
if ( isEqual == false )
{
//内容不相符,抛出异常
string errorMessage = "Excel文件内容不符\n请核对后再导入!";
pBook->release();
throw runtime_error(errorMessage);
throw runtime_error( errorMessage );
}
pSheet = pBook->getSheet( sheetIndex );
@ -204,16 +437,16 @@ void LoadCarDealerAchievementFromXlsx( const std::wstring & fileP
{
int colunmIndex = firstRowIndex;
const wstring && theYear = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex, true );
const wstring && theMonth = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 1, true );
const wstring && carDealerCode = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 2, true );
const wstring && theYear = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex, true );
const wstring && theMonth = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 1, true );
const wstring && carDealerCode = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 2, true );
//const wstring && carDealerName = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 3, true );
long double checkedAchievement = 0;
int policyAmount = 0;
int cpicAmount = 0;
int piccAmount = 0;
int pinganAmount = 0;
int othersAmount = 0;
long double checkedAchievement = 0;
int policyAmount = 0;
int cpicAmount = 0;
int piccAmount = 0;
int pinganAmount = 0;
int othersAmount = 0;
//空行跳过
if ( carDealerCode.empty() == true )
@ -377,6 +610,23 @@ void LoadRepairOrderFromXlsx( const std::wstring & filePath,
throw runtime_error( errorMessage );
}
//验证表格内容是否相符
bool isEqual = checkExcelFileFormat( pBook,
sheetIndex,
startRowIndex - 1,
pwszRepairOrderCaption,
REPAIR_ORDER_CAPTION_COUNT );
if ( isEqual == false )
{
//内容不相符,抛出异常
string errorMessage = "Excel文件内容不符\n请核对后再导入!";
pBook->release();
throw runtime_error( errorMessage );
}
pSheet = pBook->getSheet( sheetIndex );
if ( pSheet == nullptr )
@ -493,6 +743,23 @@ void LoadRepairRecommandationFromXlsx( const std::wstring &
setKey( pBook );
//验证表格内容是否相符
bool isEqual = checkExcelFileFormat( pBook,
sheetIndex,
startRowIndex - 1,
pwszRepairRecommandationCaption,
REPAIR_RECOMMANDATION_CAPTION_COUNT );
if ( isEqual == false )
{
//内容不相符,抛出异常
string errorMessage = "Excel文件内容不符\n请核对后再导入!";
pBook->release();
throw runtime_error( errorMessage );
}
pSheet = pBook->getSheet( sheetIndex );
if ( pSheet == nullptr )
@ -569,6 +836,23 @@ void LoadNewRepairMonitorReportFromXlsx( const std::wstring &
throw runtime_error( errorMessage );
}
//验证表格内容是否相符
bool isEqual = checkExcelFileFormat( pBook,
sheetIndex,
startRowIndex - 1,
pwszNewRepairMonitorCaption,
NEW_REPAIR_MONITOR_CAPTION_COUNT );
if ( isEqual == false )
{
//内容不相符,抛出异常
string errorMessage = "Excel文件内容不符\n请核对后再导入!";
pBook->release();
throw runtime_error( errorMessage );
}
pSheet = pBook->getSheet( sheetIndex );
if ( pSheet == nullptr )